diff --git a/app/views/mailer/email_oversized/ru.txt.erb b/app/views/mailer/email_oversized/ru.txt.erb
new file mode 100644
index 000000000..810aa01fc
--- /dev/null
+++ b/app/views/mailer/email_oversized/ru.txt.erb
@@ -0,0 +1,12 @@
+[undeliverable] Сообщение слишком велико
+Уважаемый #{mail.from_display_name},
+
+К сожалению, ваше электронное письмо с названием "#{mail.subject}" не может быть доставлено одному или нескольким получателям.
+
+Размер вашего сообщения составляет #{mail.msg_size} МБ, но мы принимаем сообщения размером до #{config.postmaster_max_size} МБ.
+
+Уменьшите размер сообщения и попробуйте еще раз. Спасибо за Ваше понимание.
+
+С уважением,
+
+Почтмейстер #{config.fqdn}
\ No newline at end of file
diff --git a/app/views/mailer/password_change/ru.html.erb b/app/views/mailer/password_change/ru.html.erb
new file mode 100644
index 000000000..1eac76138
--- /dev/null
+++ b/app/views/mailer/password_change/ru.html.erb
@@ -0,0 +1,9 @@
+Пароль был изменен в #{config.product_name}
+
+
Здравствуйте #{user.firstname},
+
+Пароль для вашей учетной записи #{config.product_name} #{user.login} недавно был изменен.
+
+Эта деятельность вам не известна? Если нет, обратитесь к системному администратору..
+
+Команда #{config.product_name}
diff --git a/app/views/mailer/password_reset/ru.html.erb b/app/views/mailer/password_reset/ru.html.erb
new file mode 100644
index 000000000..620e1343c
--- /dev/null
+++ b/app/views/mailer/password_reset/ru.html.erb
@@ -0,0 +1,15 @@
+Cброс пароля учетной записи #{config.product_name}
+
+Здравствуйте #{user.firstname},
+
+Мы получили запрос на сброс пароля для вашей учетной записи #{config.product_name} #{user.login}.
+
+Если вы хотите сбросить пароль, нажмите на ссылку ниже (или скопируйте и вставьте URL-адрес в свой браузер):
+
+
+
+Эта ссылка приведет вас на страницу, где вы можете изменить свой пароль.
+
+Если вы не хотите сбрасывать пароль, не обращайте внимания на это сообщение. Ваш пароль не будет сброшен.
+
+Команда #{config.product_name}
diff --git a/app/views/mailer/signup/ru.html.erb b/app/views/mailer/signup/ru.html.erb
new file mode 100644
index 000000000..90a834510
--- /dev/null
+++ b/app/views/mailer/signup/ru.html.erb
@@ -0,0 +1,9 @@
+Подтвердите вашу учетную запись #{config.product_name}, #{user.firstname} #{user.lastname}
+
+Здравствуйте, #{user.firstname},
+
+Подтвердите свой адрес электронной почты, чтобы завершить учетную запись #{config.product_name}. Это просто, просто нажмите на ссылку ниже.
+
+
+
+Команда #{config.product_name}
\ No newline at end of file
diff --git a/app/views/mailer/signup_taken_reset/ru.html.erb b/app/views/mailer/signup_taken_reset/ru.html.erb
new file mode 100644
index 000000000..b82e2c40e
--- /dev/null
+++ b/app/views/mailer/signup_taken_reset/ru.html.erb
@@ -0,0 +1,15 @@
+Cброс пароля учетной записи #{config.product_name}
+
+Здравствуйте #{user.firstname},
+
+Вы или кто-то другой пытались зарегистрироваться с этим адресом электронной почты. Однако этот адрес электронной почты уже используется.
+
+Если вы хотите сбросить пароль, нажмите на ссылку ниже (или скопируйте и вставьте URL-адрес в свой браузер):
+
+
+
+Эта ссылка приведет вас на страницу, где вы можете изменить свой пароль.
+
+Если вы не хотите сбрасывать пароль, не обращайте внимания на это сообщение. Ваш пароль не будет сброшен.
+
+Комнда #{config.product_name}
diff --git a/app/views/mailer/test_ticket/ru.html.erb b/app/views/mailer/test_ticket/ru.html.erb
new file mode 100644
index 000000000..e3e13399e
--- /dev/null
+++ b/app/views/mailer/test_ticket/ru.html.erb
@@ -0,0 +1,9 @@
+Тестовый тикет!
+
+Уважаемый #{agent.firstname},
+
+Этотестовый тикет. Я клиент, и мне нужна помощь! :)
+
+#{customer.fullname}
+
+Проект Zammad
diff --git a/app/views/mailer/ticket_create/ru.html.erb b/app/views/mailer/ticket_create/ru.html.erb
new file mode 100644
index 000000000..d84c266da
--- /dev/null
+++ b/app/views/mailer/ticket_create/ru.html.erb
@@ -0,0 +1,24 @@
+Новый тикет (#{ticket.title})
+
+Здравствуйте #{recipient.firstname},
+
+Новый тикет (#{ticket.title}) был создан "#{current_user.longname}".
+
+
+#{t('Group')}: #{ticket.group.name}
+#{t('Owner')}: #{ticket.owner.fullname}
+#{t('State')}: #{t(ticket.state.name)}
+
+
+<% if @objects[:article] %>
+
+ #{t('Information')}:
+
+ #{article.body_as_html}
+
+
+<% end %>
+
+
diff --git a/app/views/mailer/ticket_escalation/ru.html.erb b/app/views/mailer/ticket_escalation/ru.html.erb
new file mode 100644
index 000000000..f28242ac5
--- /dev/null
+++ b/app/views/mailer/ticket_escalation/ru.html.erb
@@ -0,0 +1,18 @@
+Тикет эскалирован (#{ticket.title})
+
+Здравствуйте #{recipient.firstname},
+
+Тикет (#{ticket.title}) от "#{ticket.customer.longname}" бы эскалирован с "#{ticket.escalation_at}"!
+
+<% if @objects[:article] %>
+
+ #{t('Information')}:
+
+ #{article.body_as_html}
+
+
+<% end %>
+
+
diff --git a/app/views/mailer/ticket_escalation_warning/ru.html.erb b/app/views/mailer/ticket_escalation_warning/ru.html.erb
new file mode 100644
index 000000000..6abe5acd0
--- /dev/null
+++ b/app/views/mailer/ticket_escalation_warning/ru.html.erb
@@ -0,0 +1,18 @@
+Тикет будет эскалирован (#{ticket.title})
+
+Здравствуйте #{recipient.firstname},
+
+Тикет (#{ticket.title}) от "#{ticket.customer.longname}" будет эскалирован с "#{ticket.escalation_at}"!
+
+<% if @objects[:article] %>
+
+ #{t('Information')}:
+
+ #{article.body_as_html}
+
+
+<% end %>
+
+
diff --git a/app/views/mailer/ticket_reminder_reached/ru.html.erb b/app/views/mailer/ticket_reminder_reached/ru.html.erb
new file mode 100644
index 000000000..04077c5e9
--- /dev/null
+++ b/app/views/mailer/ticket_reminder_reached/ru.html.erb
@@ -0,0 +1,18 @@
+Напоминание доставлено (#{ticket.title})
+
+Здравствуйте #{recipient.firstname},
+
+Тикет требует внимания, напоминание доставленно для (#{ticket.title}) с клиентом "#{ticket.customer.longname}".
+
+<% if @objects[:article] %>
+
+ #{t('Information')}:
+
+ #{article.body_as_html}
+
+
+<% end %>
+
+
diff --git a/app/views/mailer/ticket_update/ru.html.erb b/app/views/mailer/ticket_update/ru.html.erb
new file mode 100644
index 000000000..d6029ce09
--- /dev/null
+++ b/app/views/mailer/ticket_update/ru.html.erb
@@ -0,0 +1,29 @@
+Тикет обновлен (#{ticket.title})
+
+Здравствуйте #{recipient.firstname},
+
+
+Тикет (#{ticket.title}) был обновлен "#{current_user.longname}".
+
+
+<% if @objects[:changes].present? %>
+
+ #{t('Changes')}:
+ <% @objects[:changes].each do |key, value| %>
+ <%= t key %>: <%= h value[0] %> -> <%= h value[1] %>
+ <% end %>
+
+<% end %>
+
+<% if @objects[:article] %>
+
+ #{t('Information')}:
+
+ #{article.body_as_html}
+
+
+<% end %>
+
+
diff --git a/app/views/mailer/ticket_update_merged_into/ru.html.erb b/app/views/mailer/ticket_update_merged_into/ru.html.erb
new file mode 100644
index 000000000..6e548cb8c
--- /dev/null
+++ b/app/views/mailer/ticket_update_merged_into/ru.html.erb
@@ -0,0 +1,11 @@
+Тикет (#{ticket.title}) был слит с другим тикетом
+
+Hi #{recipient.firstname},
+
+
+Тикет (#{ticket.title}) был слит с другим тикетом пользователем "#{current_user.longname}".
+
+
+
diff --git a/app/views/mailer/ticket_update_received_merge/ru.html.erb b/app/views/mailer/ticket_update_received_merge/ru.html.erb
new file mode 100644
index 000000000..7bc30c016
--- /dev/null
+++ b/app/views/mailer/ticket_update_received_merge/ru.html.erb
@@ -0,0 +1,11 @@
+Другой тикет был слит с тикетом (#{ticket.title})
+
+Hi #{recipient.firstname},
+
+
+Другой тикет был слит с тикетом (#{ticket.title}) пользователем "#{current_user.longname}".
+
+
+
diff --git a/app/views/mailer/user_device_new/ru.html.erb b/app/views/mailer/user_device_new/ru.html.erb
new file mode 100644
index 000000000..0cb235b48
--- /dev/null
+++ b/app/views/mailer/user_device_new/ru.html.erb
@@ -0,0 +1,19 @@
+#{config.product_name} вход обнаружен с нового устройства
+
+Здравствуйте #{user.firstname},
+
+Похоже, вы вошли в свою учетную запись с нового устройства в "#{user_device.created_at}":
+
+
+Ваше устройство: #{user_device.name}
+Ваша локация (относительная): #{user_device.location}
+Ваш IP: #{user_device.ip}
+
+
+Ваше устройство было добавлено в список известных устройств, который вы можете просмотреть здесь.:
+
+
+
+Если это не вы, удалите устройство, измените пароль учетной записи и обратитесь к администратору. Кто-то мог получить несанкционированный доступ к вашей учетной записи.
+
+Команда #{config.product_name}
diff --git a/app/views/mailer/user_device_new_location/ru.html.erb b/app/views/mailer/user_device_new_location/ru.html.erb
new file mode 100644
index 000000000..e7be526a1
--- /dev/null
+++ b/app/views/mailer/user_device_new_location/ru.html.erb
@@ -0,0 +1,19 @@
+#{config.product_name} обнаружен вход из новой страны
+
+Здравствуйте #{user.firstname},
+
+Похоже, вы использовали свою учетную запись на известном устройстве, но из другой страны в "#{user_device.created_at}":
+
+
+Ваше устройство: #{user_device.name}
+Ваша локация (относительная): #{user_device.location}
+Ваш IP: #{user_device.ip}
+
+
+Страна добавлена в список известных устройств, который вы можете просмотреть здесь.:
+
+
+
+Если это не вы, удалите устройство, измените пароль учетной записи и обратитесь к администратору. Кто-то мог получить несанкционированный доступ к вашей учетной записи.
+
+Команда #{config.product_name}
diff --git a/app/views/mailer/user_invite/ru.html.erb b/app/views/mailer/user_invite/ru.html.erb
new file mode 100644
index 000000000..b7e49053a
--- /dev/null
+++ b/app/views/mailer/user_invite/ru.html.erb
@@ -0,0 +1,13 @@
+Приглашение в #{config.product_name} на #{config.fqdn}
+
+Здравствуйте #{user.firstname},
+
+Я (#{current_user.firstname} #{current_user.lastname}) приглашаю вас в #{config.product_name} - наша платформа поддержки клиентов / тикет-системы.
+
+Нажмите
сюда и установите свой пароль.
+
+Наслаждайтесь,
+
+#{current_user.firstname} #{current_user.lastname}
+
+Команда #{config.product_name}
diff --git a/i18n/zammad.pot b/i18n/zammad.pot
index 2f595d9d6..1b138a99b 100644
--- a/i18n/zammad.pot
+++ b/i18n/zammad.pot
@@ -1496,6 +1496,7 @@ msgstr ""
#: app/views/mailer/ticket_update/fr.html.erb
#: app/views/mailer/ticket_update/it.html.erb
#: app/views/mailer/ticket_update/pt-br.html.erb
+#: app/views/mailer/ticket_update/ru.html.erb
#: app/views/mailer/ticket_update/zh-cn.html.erb
#: app/views/mailer/ticket_update/zh-tw.html.erb
msgid "Changes"
@@ -4409,6 +4410,7 @@ msgstr ""
#: app/views/mailer/ticket_create/it.html.erb
#: app/views/mailer/ticket_create/pl.html.erb
#: app/views/mailer/ticket_create/pt-br.html.erb
+#: app/views/mailer/ticket_create/ru.html.erb
#: app/views/mailer/ticket_create/zh-cn.html.erb
#: app/views/mailer/ticket_create/zh-tw.html.erb
#: app/views/slack/ticket_create/en.md.erb
@@ -4972,6 +4974,7 @@ msgstr ""
#: app/views/mailer/ticket_create/it.html.erb
#: app/views/mailer/ticket_create/pl.html.erb
#: app/views/mailer/ticket_create/pt-br.html.erb
+#: app/views/mailer/ticket_create/ru.html.erb
#: app/views/mailer/ticket_create/zh-cn.html.erb
#: app/views/mailer/ticket_create/zh-tw.html.erb
#: app/views/mailer/ticket_escalation/cs.html.erb
@@ -4982,6 +4985,7 @@ msgstr ""
#: app/views/mailer/ticket_escalation/it.html.erb
#: app/views/mailer/ticket_escalation/pl.html.erb
#: app/views/mailer/ticket_escalation/pt-br.html.erb
+#: app/views/mailer/ticket_escalation/ru.html.erb
#: app/views/mailer/ticket_escalation/zh-cn.html.erb
#: app/views/mailer/ticket_escalation/zh-tw.html.erb
#: app/views/mailer/ticket_escalation_warning/cs.html.erb
@@ -4992,6 +4996,7 @@ msgstr ""
#: app/views/mailer/ticket_escalation_warning/it.html.erb
#: app/views/mailer/ticket_escalation_warning/pl.html.erb
#: app/views/mailer/ticket_escalation_warning/pt-br.html.erb
+#: app/views/mailer/ticket_escalation_warning/ru.html.erb
#: app/views/mailer/ticket_escalation_warning/zh-cn.html.erb
#: app/views/mailer/ticket_escalation_warning/zh-tw.html.erb
#: app/views/mailer/ticket_reminder_reached/cs.html.erb
@@ -5001,6 +5006,7 @@ msgstr ""
#: app/views/mailer/ticket_reminder_reached/fr.html.erb
#: app/views/mailer/ticket_reminder_reached/it.html.erb
#: app/views/mailer/ticket_reminder_reached/pt-br.html.erb
+#: app/views/mailer/ticket_reminder_reached/ru.html.erb
#: app/views/mailer/ticket_reminder_reached/zh-cn.html.erb
#: app/views/mailer/ticket_reminder_reached/zh-tw.html.erb
#: app/views/mailer/ticket_update/cs.html.erb
@@ -5010,6 +5016,7 @@ msgstr ""
#: app/views/mailer/ticket_update/fr.html.erb
#: app/views/mailer/ticket_update/it.html.erb
#: app/views/mailer/ticket_update/pt-br.html.erb
+#: app/views/mailer/ticket_update/ru.html.erb
#: app/views/mailer/ticket_update/zh-cn.html.erb
#: app/views/mailer/ticket_update/zh-tw.html.erb
msgid "Information"
@@ -6940,6 +6947,7 @@ msgstr ""
#: app/views/mailer/ticket_create/it.html.erb
#: app/views/mailer/ticket_create/pl.html.erb
#: app/views/mailer/ticket_create/pt-br.html.erb
+#: app/views/mailer/ticket_create/ru.html.erb
#: app/views/mailer/ticket_create/zh-cn.html.erb
#: app/views/mailer/ticket_create/zh-tw.html.erb
#: app/views/slack/ticket_create/en.md.erb
@@ -8455,6 +8463,7 @@ msgstr ""
#: app/views/mailer/ticket_create/it.html.erb
#: app/views/mailer/ticket_create/pl.html.erb
#: app/views/mailer/ticket_create/pt-br.html.erb
+#: app/views/mailer/ticket_create/ru.html.erb
#: app/views/mailer/ticket_create/zh-cn.html.erb
#: app/views/mailer/ticket_create/zh-tw.html.erb
#: app/views/slack/ticket_create/en.md.erb
@@ -10045,6 +10054,7 @@ msgstr ""
#: app/views/mailer/ticket_create/es.html.erb
#: app/views/mailer/ticket_create/fr.html.erb
#: app/views/mailer/ticket_create/it.html.erb
+#: app/views/mailer/ticket_create/ru.html.erb
#: app/views/mailer/ticket_create/zh-cn.html.erb
#: app/views/mailer/ticket_create/zh-tw.html.erb
#: app/views/mailer/ticket_escalation/cs.html.erb
@@ -10053,6 +10063,7 @@ msgstr ""
#: app/views/mailer/ticket_escalation/es.html.erb
#: app/views/mailer/ticket_escalation/fr.html.erb
#: app/views/mailer/ticket_escalation/it.html.erb
+#: app/views/mailer/ticket_escalation/ru.html.erb
#: app/views/mailer/ticket_escalation/zh-cn.html.erb
#: app/views/mailer/ticket_escalation/zh-tw.html.erb
#: app/views/mailer/ticket_escalation_warning/cs.html.erb
@@ -10061,6 +10072,7 @@ msgstr ""
#: app/views/mailer/ticket_escalation_warning/es.html.erb
#: app/views/mailer/ticket_escalation_warning/fr.html.erb
#: app/views/mailer/ticket_escalation_warning/it.html.erb
+#: app/views/mailer/ticket_escalation_warning/ru.html.erb
#: app/views/mailer/ticket_escalation_warning/zh-cn.html.erb
#: app/views/mailer/ticket_escalation_warning/zh-tw.html.erb
#: app/views/mailer/ticket_reminder_reached/cs.html.erb
@@ -10069,6 +10081,7 @@ msgstr ""
#: app/views/mailer/ticket_reminder_reached/es.html.erb
#: app/views/mailer/ticket_reminder_reached/fr.html.erb
#: app/views/mailer/ticket_reminder_reached/it.html.erb
+#: app/views/mailer/ticket_reminder_reached/ru.html.erb
#: app/views/mailer/ticket_reminder_reached/zh-cn.html.erb
#: app/views/mailer/ticket_reminder_reached/zh-tw.html.erb
#: app/views/mailer/ticket_update/cs.html.erb
@@ -10077,10 +10090,13 @@ msgstr ""
#: app/views/mailer/ticket_update/es.html.erb
#: app/views/mailer/ticket_update/fr.html.erb
#: app/views/mailer/ticket_update/it.html.erb
+#: app/views/mailer/ticket_update/ru.html.erb
#: app/views/mailer/ticket_update/zh-cn.html.erb
#: app/views/mailer/ticket_update/zh-tw.html.erb
#: app/views/mailer/ticket_update_merged_into/en.html.erb
+#: app/views/mailer/ticket_update_merged_into/ru.html.erb
#: app/views/mailer/ticket_update_received_merge/en.html.erb
+#: app/views/mailer/ticket_update_received_merge/ru.html.erb
msgid "View this in Zammad"
msgstr ""
diff --git a/public/assets/chat/chat-no-jquery.coffee b/public/assets/chat/chat-no-jquery.coffee
index 977a5716d..bcd638126 100644
--- a/public/assets/chat/chat-no-jquery.coffee
+++ b/public/assets/chat/chat-no-jquery.coffee
@@ -206,7 +206,7 @@ do(window) ->
'Today': 'I dag'
'Send': 'Send'
'Chat closed by %s': 'Chat lukket af %s'
- 'Compose your message...': 'Skriv en besked...'
+ 'Compose your message…': 'Skriv en besked…'
'All colleagues are busy.': 'Alle kollegaer er optaget.'
'You are on waiting list position %s.': 'Du er i venteliste som nummer %s.'
'Start new conversation': 'Start en ny samtale'
@@ -223,7 +223,7 @@ do(window) ->
'Today': 'Heute'
'Send': 'Senden'
'Chat closed by %s': 'Chat beendet von %s'
- 'Compose your message...': 'Ihre Nachricht...'
+ 'Compose your message…': 'Ihre Nachricht…'
'All colleagues are busy.': 'Alle Kollegen sind belegt.'
'You are on waiting list position %s.': 'Sie sind in der Warteliste an der Position %s.'
'Start new conversation': 'Neue Konversation starten'
@@ -240,7 +240,7 @@ do(window) ->
'Today': 'Hoy'
'Send': 'Enviar'
'Chat closed by %s': 'Chat cerrado por %s'
- 'Compose your message...': 'Escriba su mensaje...'
+ 'Compose your message…': 'Escriba su mensaje…'
'All colleagues are busy.': 'Todos los agentes están ocupados.'
'You are on waiting list position %s.': 'Usted está en la posición %s de la lista de espera.'
'Start new conversation': 'Iniciar nueva conversación'
@@ -257,7 +257,7 @@ do(window) ->
'Today': 'Tänään'
'Send': 'Lähetä'
'Chat closed by %s': '%s sulki keskustelun'
- 'Compose your message...': 'Luo viestisi...'
+ 'Compose your message…': 'Luo viestisi…'
'All colleagues are busy.': 'Kaikki kollegat ovat varattuja.'
'You are on waiting list position %s.': 'Olet odotuslistalla sijalla %s.'
'Start new conversation': 'Aloita uusi keskustelu'
@@ -274,7 +274,7 @@ do(window) ->
'Today': 'Aujourdhui'
'Send': 'Envoyer'
'Chat closed by %s': 'Chat fermé par %s'
- 'Compose your message...': 'Composez votre message...'
+ 'Compose your message…': 'Composez votre message…'
'All colleagues are busy.': 'Tous les collaborateurs sont occupés actuellement.'
'You are on waiting list position %s.': 'Vous êtes actuellement en position %s dans la file d\'attente.'
'Start new conversation': 'Démarrer une nouvelle conversation'
@@ -291,7 +291,7 @@ do(window) ->
'Today': 'היום'
'Send': 'שלח'
'Chat closed by %s': 'הצאט נסגר ע"י %s'
- 'Compose your message...': 'כתוב את ההודעה שלך ...'
+ 'Compose your message…': 'כתוב את ההודעה שלך …'
'All colleagues are busy.': 'כל הנציגים תפוסים'
'You are on waiting list position %s.': 'מיקומך בתור %s.'
'Start new conversation': 'התחל שיחה חדשה'
@@ -308,7 +308,7 @@ do(window) ->
'Today': 'Ma'
'Send': 'Küldés'
'Chat closed by %s': 'A beszélgetést lezárta %s'
- 'Compose your message...': 'Írj üzenetet...'
+ 'Compose your message…': 'Írj üzenetet…'
'All colleagues are busy.': 'Jelenleg minden kollégánk elfoglalt.'
'You are on waiting list position %s.': 'A várólistán a %s. pozícióban várakozol.'
'Start new conversation': 'Új beszélgetés indítása'
@@ -325,7 +325,7 @@ do(window) ->
'Today': 'Vandaag'
'Send': 'Verzenden'
'Chat closed by %s': 'Chat gesloten door %s'
- 'Compose your message...': 'Typ uw bericht...'
+ 'Compose your message…': 'Typ uw bericht…'
'All colleagues are busy.': 'Alle medewerkers zijn bezet.'
'You are on waiting list position %s.': 'U bent %s in de wachtrij.'
'Start new conversation': 'Nieuwe conversatie starten'
@@ -342,7 +342,7 @@ do(window) ->
'Today': 'Oggi'
'Send': 'Invio'
'Chat closed by %s': 'Conversazione chiusa da %s'
- 'Compose your message...': 'Comporre il tuo messaggio...'
+ 'Compose your message…': 'Comporre il tuo messaggio…'
'All colleagues are busy.': 'Tutti i colleghi sono occupati.'
'You are on waiting list position %s.': 'Siete in posizione lista d\' attesa %s.'
'Start new conversation': 'Avviare una nuova conversazione'
@@ -359,7 +359,7 @@ do(window) ->
'Today': 'dzisiejszy'
'Send': 'Wyślij'
'Chat closed by %s': 'Czat zamknięty przez %s'
- 'Compose your message...': 'Utwórz swoją wiadomość...'
+ 'Compose your message…': 'Utwórz swoją wiadomość…'
'All colleagues are busy.': 'Wszyscy konsultanci są zajęci.'
'You are on waiting list position %s.': 'Na liście oczekujących znajduje się pozycja %s.'
'Start new conversation': 'Rozpoczęcie nowej konwersacji'
@@ -376,7 +376,7 @@ do(window) ->
'Today': 'Hoje',
'Send': 'Enviar',
'Chat closed by %s': 'Chat encerrado por %s',
- 'Compose your message...': 'Escreva sua mensagem...',
+ 'Compose your message…': 'Escreva sua mensagem…',
'All colleagues are busy.': 'Todos os agentes estão ocupados.',
'You are on waiting list position %s.': 'Você está na posição %s na fila de espera.',
'Start new conversation': 'Iniciar uma nova conversa',
@@ -394,7 +394,7 @@ do(window) ->
'Today': '今天'
'Send': '发送'
'Chat closed by %s': 'Chat closed by %s'
- 'Compose your message...': '正在输入信息...'
+ 'Compose your message…': '正在输入信息…'
'All colleagues are busy.': '所有工作人员都在忙碌中.'
'You are on waiting list position %s.': '您目前的等候位置是第 %s 位.'
'Start new conversation': '开始新的会话'
@@ -411,7 +411,7 @@ do(window) ->
'Today': '今天'
'Send': '發送'
'Chat closed by %s': 'Chat closed by %s'
- 'Compose your message...': '正在輸入訊息...'
+ 'Compose your message…': '正在輸入訊息…'
'All colleagues are busy.': '所有服務人員都在忙碌中.'
'You are on waiting list position %s.': '你目前的等候位置是第 %s 順位.'
'Start new conversation': '開始新的對話'
@@ -428,9 +428,9 @@ do(window) ->
'Today': 'Сегодня'
'Send': 'Отправить'
'Chat closed by %s': '%s закрыл чат'
- 'Compose your message...': 'Напишите сообщение...'
+ 'Compose your message…': 'Напишите сообщение…'
'All colleagues are busy.': 'Все сотрудники заняты'
- 'You are on waiting list position %s.': 'Вы в списке ожидания под номером %s'
+ 'You are on waiting list position %s.': 'Вы в списке ожидания под номером %s'
'Start new conversation': 'Начать новую переписку.'
'Since you didn\'t respond in the last %s minutes your conversation with %s got closed.': 'Поскольку вы не отвечали в течение последних %s минут, ваш разговор с %s был закрыт.'
'Since you didn\'t respond in the last %s minutes your conversation got closed.': 'Поскольку вы не отвечали в течение последних %s минут, ваш разговор был закрыт.'
@@ -445,7 +445,7 @@ do(window) ->
'Today': 'I dag'
'Send': 'Skicka'
'Chat closed by %s': 'Chatt stängd av %s'
- 'Compose your message...': 'Skriv ditt meddelande...'
+ 'Compose your message…': 'Skriv ditt meddelande…'
'All colleagues are busy.': 'Alla kollegor är upptagna.'
'You are on waiting list position %s.': 'Du är på väntelistan som position %s.'
'Start new conversation': 'Starta ny konversation'
@@ -462,7 +462,7 @@ do(window) ->
'Today': 'I dag'
'Send': 'Send'
'Chat closed by %s': 'Chat avsluttes om %s'
- 'Compose your message...': 'Skriv din melding...'
+ 'Compose your message…': 'Skriv din melding…'
'All colleagues are busy.': 'Alle våre kolleger er for øyeblikket opptatt.'
'You are on waiting list position %s.': 'Du står nå i kø og er nr. %s på ventelisten.'
'Start new conversation': 'Start en ny samtale'
@@ -479,7 +479,7 @@ do(window) ->
'Today': 'I dag'
'Send': 'Send'
'Chat closed by %s': 'Chat avsluttes om %s'
- 'Compose your message...': 'Skriv din melding...'
+ 'Compose your message…': 'Skriv din melding…'
'All colleagues are busy.': 'Alle våre kolleger er for øyeblikket opptatt.'
'You are on waiting list position %s.': 'Du står nå i kø og er nr. %s på ventelisten.'
'Start new conversation': 'Start en ny samtale'
@@ -496,7 +496,7 @@ do(window) ->
'Today': 'Σήμερα'
'Send': 'Αποστολή'
'Chat closed by %s': 'Η συνομιλία έκλεισε από τον/την %s'
- 'Compose your message...': 'Γράψτε το μήνυμα σας...'
+ 'Compose your message…': 'Γράψτε το μήνυμα σας…'
'All colleagues are busy.': 'Όλοι οι συνάδελφοι μας είναι απασχολημένοι.'
'You are on waiting list position %s.': 'Βρίσκεστε σε λίστα αναμονής στη θέση %s.'
'Start new conversation': 'Έναρξη νέας συνομιλίας'
diff --git a/public/assets/chat/chat-no-jquery.js b/public/assets/chat/chat-no-jquery.js
index cb35cb62d..ff76bef7d 100644
--- a/public/assets/chat/chat-no-jquery.js
+++ b/public/assets/chat/chat-no-jquery.js
@@ -1,3 +1,7 @@
+/*! @license DOMPurify 2.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.1/LICENSE */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).DOMPurify=t()}(this,(function(){"use strict";var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,r=Object.getPrototypeOf,o=Object.getOwnPropertyDescriptor,i=Object.freeze,a=Object.seal,l=Object.create,c="undefined"!=typeof Reflect&&Reflect,s=c.apply,u=c.construct;s||(s=function(e,t,n){return e.apply(t,n)}),i||(i=function(e){return e}),a||(a=function(e){return e}),u||(u=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?n-1:0),o=1;o/gm),U=a(/^data-[\-\w.\u00B7-\uFFFF]/),j=a(/^aria-[\-\w]+$/),B=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),P=a(/^(?:\w+script|data):/i),W=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function q(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:K(),n=function(t){return e(t)};if(n.version="2.3.1",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var r=t.document,o=t.document,a=t.DocumentFragment,l=t.HTMLTemplateElement,c=t.Node,s=t.Element,u=t.NodeFilter,f=t.NamedNodeMap,x=void 0===f?t.NamedNodeMap||t.MozNamedAttrMap:f,Y=t.Text,X=t.Comment,$=t.DOMParser,Z=t.trustedTypes,J=s.prototype,Q=N(J,"cloneNode"),ee=N(J,"nextSibling"),te=N(J,"childNodes"),ne=N(J,"parentNode");if("function"==typeof l){var re=o.createElement("template");re.content&&re.content.ownerDocument&&(o=re.content.ownerDocument)}var oe=V(Z,r),ie=oe&&ze?oe.createHTML(""):"",ae=o,le=ae.implementation,ce=ae.createNodeIterator,se=ae.createDocumentFragment,ue=ae.getElementsByTagName,fe=r.importNode,me={};try{me=w(o).documentMode?o.documentMode:{}}catch(e){}var de={};n.isSupported="function"==typeof ne&&le&&void 0!==le.createHTMLDocument&&9!==me;var pe=z,ge=H,he=U,ye=j,ve=P,be=W,Te=B,Ae=null,xe=S({},[].concat(q(k),q(E),q(D),q(R),q(M))),Se=null,we=S({},[].concat(q(L),q(F),q(I),q(C))),Ne=null,ke=null,Ee=!0,De=!0,Oe=!1,Re=!1,_e=!1,Me=!1,Le=!1,Fe=!1,Ie=!1,Ce=!0,ze=!1,He=!0,Ue=!0,je=!1,Be={},Pe=null,We=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Ge=null,qe=S({},["audio","video","img","source","image","track"]),Ke=null,Ve=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ye="http://www.w3.org/1998/Math/MathML",Xe="http://www.w3.org/2000/svg",$e="http://www.w3.org/1999/xhtml",Ze=$e,Je=!1,Qe=null,et=o.createElement("form"),tt=function(e){Qe&&Qe===e||(e&&"object"===(void 0===e?"undefined":G(e))||(e={}),e=w(e),Ae="ALLOWED_TAGS"in e?S({},e.ALLOWED_TAGS):xe,Se="ALLOWED_ATTR"in e?S({},e.ALLOWED_ATTR):we,Ke="ADD_URI_SAFE_ATTR"in e?S(w(Ve),e.ADD_URI_SAFE_ATTR):Ve,Ge="ADD_DATA_URI_TAGS"in e?S(w(qe),e.ADD_DATA_URI_TAGS):qe,Pe="FORBID_CONTENTS"in e?S({},e.FORBID_CONTENTS):We,Ne="FORBID_TAGS"in e?S({},e.FORBID_TAGS):{},ke="FORBID_ATTR"in e?S({},e.FORBID_ATTR):{},Be="USE_PROFILES"in e&&e.USE_PROFILES,Ee=!1!==e.ALLOW_ARIA_ATTR,De=!1!==e.ALLOW_DATA_ATTR,Oe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Re=e.SAFE_FOR_TEMPLATES||!1,_e=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,Ie=e.RETURN_DOM_FRAGMENT||!1,Ce=!1!==e.RETURN_DOM_IMPORT,ze=e.RETURN_TRUSTED_TYPE||!1,Le=e.FORCE_BODY||!1,He=!1!==e.SANITIZE_DOM,Ue=!1!==e.KEEP_CONTENT,je=e.IN_PLACE||!1,Te=e.ALLOWED_URI_REGEXP||Te,Ze=e.NAMESPACE||$e,Re&&(De=!1),Ie&&(Fe=!0),Be&&(Ae=S({},[].concat(q(M))),Se=[],!0===Be.html&&(S(Ae,k),S(Se,L)),!0===Be.svg&&(S(Ae,E),S(Se,F),S(Se,C)),!0===Be.svgFilters&&(S(Ae,D),S(Se,F),S(Se,C)),!0===Be.mathMl&&(S(Ae,R),S(Se,I),S(Se,C))),e.ADD_TAGS&&(Ae===xe&&(Ae=w(Ae)),S(Ae,e.ADD_TAGS)),e.ADD_ATTR&&(Se===we&&(Se=w(Se)),S(Se,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&S(Ke,e.ADD_URI_SAFE_ATTR),e.FORBID_CONTENTS&&(Pe===We&&(Pe=w(Pe)),S(Pe,e.FORBID_CONTENTS)),Ue&&(Ae["#text"]=!0),_e&&S(Ae,["html","head","body"]),Ae.table&&(S(Ae,["tbody"]),delete Ne.tbody),i&&i(e),Qe=e)},nt=S({},["mi","mo","mn","ms","mtext"]),rt=S({},["foreignobject","desc","title","annotation-xml"]),ot=S({},E);S(ot,D),S(ot,O);var it=S({},R);S(it,_);var at=function(e){var t=ne(e);t&&t.tagName||(t={namespaceURI:$e,tagName:"template"});var n=g(e.tagName),r=g(t.tagName);if(e.namespaceURI===Xe)return t.namespaceURI===$e?"svg"===n:t.namespaceURI===Ye?"svg"===n&&("annotation-xml"===r||nt[r]):Boolean(ot[n]);if(e.namespaceURI===Ye)return t.namespaceURI===$e?"math"===n:t.namespaceURI===Xe?"math"===n&&rt[r]:Boolean(it[n]);if(e.namespaceURI===$e){if(t.namespaceURI===Xe&&!rt[r])return!1;if(t.namespaceURI===Ye&&!nt[r])return!1;var o=S({},["title","style","font","a","script"]);return!it[n]&&(o[n]||!ot[n])}return!1},lt=function(e){p(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){try{e.outerHTML=ie}catch(t){e.remove()}}},ct=function(e,t){try{p(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Se[e])if(Fe||Ie)try{lt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},st=function(e){var t=void 0,n=void 0;if(Le)e=""+e;else{var r=h(e,/^[\r\n\t ]+/);n=r&&r[0]}var i=oe?oe.createHTML(e):e;if(Ze===$e)try{t=(new $).parseFromString(i,"text/html")}catch(e){}if(!t||!t.documentElement){t=le.createDocument(Ze,"template",null);try{t.documentElement.innerHTML=Je?"":i}catch(e){}}var a=t.body||t.documentElement;return e&&n&&a.insertBefore(o.createTextNode(n),a.childNodes[0]||null),Ze===$e?ue.call(t,_e?"html":"body")[0]:_e?t.documentElement:a},ut=function(e){return ce.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null,!1)},ft=function(e){return!(e instanceof Y||e instanceof X)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof x&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI&&"function"==typeof e.insertBefore)},mt=function(e){return"object"===(void 0===c?"undefined":G(c))?e instanceof c:e&&"object"===(void 0===e?"undefined":G(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},dt=function(e,t,r){de[e]&&m(de[e],(function(e){e.call(n,t,r,Qe)}))},pt=function(e){var t=void 0;if(dt("beforeSanitizeElements",e,null),ft(e))return lt(e),!0;if(h(e.nodeName,/[\u0080-\uFFFF]/))return lt(e),!0;var r=g(e.nodeName);if(dt("uponSanitizeElement",e,{tagName:r,allowedTags:Ae}),!mt(e.firstElementChild)&&(!mt(e.content)||!mt(e.content.firstElementChild))&&T(/<[/\w]/g,e.innerHTML)&&T(/<[/\w]/g,e.textContent))return lt(e),!0;if("select"===r&&T(/=0;--a)o.insertBefore(Q(i[a],!0),ee(e))}return lt(e),!0}return e instanceof s&&!at(e)?(lt(e),!0):"noscript"!==r&&"noembed"!==r||!T(/<\/no(script|embed)/i,e.innerHTML)?(Re&&3===e.nodeType&&(t=e.textContent,t=y(t,pe," "),t=y(t,ge," "),e.textContent!==t&&(p(n.removed,{element:e.cloneNode()}),e.textContent=t)),dt("afterSanitizeElements",e,null),!1):(lt(e),!0)},gt=function(e,t,n){if(He&&("id"===t||"name"===t)&&(n in o||n in et))return!1;if(De&&!ke[t]&&T(he,t));else if(Ee&&T(ye,t));else{if(!Se[t]||ke[t])return!1;if(Ke[t]);else if(T(Te,y(n,be,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(n,"data:")||!Ge[e]){if(Oe&&!T(ve,y(n,be,"")));else if(n)return!1}else;}return!0},ht=function(e){var t=void 0,r=void 0,o=void 0,i=void 0;dt("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var l={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};for(i=a.length;i--;){var c=t=a[i],s=c.name,u=c.namespaceURI;if(r=b(t.value),o=g(s),l.attrName=o,l.attrValue=r,l.keepAttr=!0,l.forceKeepAttr=void 0,dt("uponSanitizeAttribute",e,l),r=l.attrValue,!l.forceKeepAttr&&(ct(s,e),l.keepAttr))if(T(/\/>/i,r))ct(s,e);else{Re&&(r=y(r,pe," "),r=y(r,ge," "));var f=e.nodeName.toLowerCase();if(gt(f,o,r))try{u?e.setAttributeNS(u,s,r):e.setAttribute(s,r),d(n.removed)}catch(e){}}}dt("afterSanitizeAttributes",e,null)}},yt=function e(t){var n=void 0,r=ut(t);for(dt("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)dt("uponSanitizeShadowNode",n,null),pt(n)||(n.content instanceof a&&e(n.content),ht(n));dt("afterSanitizeShadowDOM",t,null)};return n.sanitize=function(e,o){var i=void 0,l=void 0,s=void 0,u=void 0,f=void 0;if((Je=!e)&&(e="\x3c!--\x3e"),"string"!=typeof e&&!mt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!n.isSupported){if("object"===G(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof e)return t.toStaticHTML(e);if(mt(e))return t.toStaticHTML(e.outerHTML)}return e}if(Me||tt(o),n.removed=[],"string"==typeof e&&(je=!1),je);else if(e instanceof c)1===(l=(i=st("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===l.nodeName||"HTML"===l.nodeName?i=l:i.appendChild(l);else{if(!Fe&&!Re&&!_e&&-1===e.indexOf("<"))return oe&&ze?oe.createHTML(e):e;if(!(i=st(e)))return Fe?null:ie}i&&Le&<(i.firstChild);for(var m=ut(je?e:i);s=m.nextNode();)3===s.nodeType&&s===u||pt(s)||(s.content instanceof a&&yt(s.content),ht(s),u=s);if(u=null,je)return e;if(Fe){if(Ie)for(f=se.call(i.ownerDocument);i.firstChild;)f.appendChild(i.firstChild);else f=i;return Ce&&(f=fe.call(r,f,!0)),f}var d=_e?i.outerHTML:i.innerHTML;return Re&&(d=y(d,pe," "),d=y(d,ge," ")),oe&&ze?oe.createHTML(d):d},n.setConfig=function(e){tt(e),Me=!0},n.clearConfig=function(){Qe=null,Me=!1},n.isValidAttribute=function(e,t,n){Qe||tt({});var r=g(e),o=g(t);return gt(r,o,n)},n.addHook=function(e,t){"function"==typeof t&&(de[e]=de[e]||[],p(de[e],t))},n.removeHook=function(e){de[e]&&d(de[e])},n.removeHooks=function(e){de[e]&&(de[e]=[])},n.removeAllHooks=function(){de={}},n}()}));
+//# sourceMappingURL=purify.min.js.map
+
if (!window.zammadChatTemplates) {
window.zammadChatTemplates = {};
}
@@ -59,10 +63,6 @@ window.zammadChatTemplates["agent"] = function (__obj) {
return __out.join('');
};
-/*! @license DOMPurify 2.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.1/LICENSE */
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).DOMPurify=t()}(this,(function(){"use strict";var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,r=Object.getPrototypeOf,o=Object.getOwnPropertyDescriptor,i=Object.freeze,a=Object.seal,l=Object.create,c="undefined"!=typeof Reflect&&Reflect,s=c.apply,u=c.construct;s||(s=function(e,t,n){return e.apply(t,n)}),i||(i=function(e){return e}),a||(a=function(e){return e}),u||(u=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?n-1:0),o=1;o/gm),U=a(/^data-[\-\w.\u00B7-\uFFFF]/),j=a(/^aria-[\-\w]+$/),B=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),P=a(/^(?:\w+script|data):/i),W=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function q(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:K(),n=function(t){return e(t)};if(n.version="2.3.1",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var r=t.document,o=t.document,a=t.DocumentFragment,l=t.HTMLTemplateElement,c=t.Node,s=t.Element,u=t.NodeFilter,f=t.NamedNodeMap,x=void 0===f?t.NamedNodeMap||t.MozNamedAttrMap:f,Y=t.Text,X=t.Comment,$=t.DOMParser,Z=t.trustedTypes,J=s.prototype,Q=N(J,"cloneNode"),ee=N(J,"nextSibling"),te=N(J,"childNodes"),ne=N(J,"parentNode");if("function"==typeof l){var re=o.createElement("template");re.content&&re.content.ownerDocument&&(o=re.content.ownerDocument)}var oe=V(Z,r),ie=oe&&ze?oe.createHTML(""):"",ae=o,le=ae.implementation,ce=ae.createNodeIterator,se=ae.createDocumentFragment,ue=ae.getElementsByTagName,fe=r.importNode,me={};try{me=w(o).documentMode?o.documentMode:{}}catch(e){}var de={};n.isSupported="function"==typeof ne&&le&&void 0!==le.createHTMLDocument&&9!==me;var pe=z,ge=H,he=U,ye=j,ve=P,be=W,Te=B,Ae=null,xe=S({},[].concat(q(k),q(E),q(D),q(R),q(M))),Se=null,we=S({},[].concat(q(L),q(F),q(I),q(C))),Ne=null,ke=null,Ee=!0,De=!0,Oe=!1,Re=!1,_e=!1,Me=!1,Le=!1,Fe=!1,Ie=!1,Ce=!0,ze=!1,He=!0,Ue=!0,je=!1,Be={},Pe=null,We=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Ge=null,qe=S({},["audio","video","img","source","image","track"]),Ke=null,Ve=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ye="http://www.w3.org/1998/Math/MathML",Xe="http://www.w3.org/2000/svg",$e="http://www.w3.org/1999/xhtml",Ze=$e,Je=!1,Qe=null,et=o.createElement("form"),tt=function(e){Qe&&Qe===e||(e&&"object"===(void 0===e?"undefined":G(e))||(e={}),e=w(e),Ae="ALLOWED_TAGS"in e?S({},e.ALLOWED_TAGS):xe,Se="ALLOWED_ATTR"in e?S({},e.ALLOWED_ATTR):we,Ke="ADD_URI_SAFE_ATTR"in e?S(w(Ve),e.ADD_URI_SAFE_ATTR):Ve,Ge="ADD_DATA_URI_TAGS"in e?S(w(qe),e.ADD_DATA_URI_TAGS):qe,Pe="FORBID_CONTENTS"in e?S({},e.FORBID_CONTENTS):We,Ne="FORBID_TAGS"in e?S({},e.FORBID_TAGS):{},ke="FORBID_ATTR"in e?S({},e.FORBID_ATTR):{},Be="USE_PROFILES"in e&&e.USE_PROFILES,Ee=!1!==e.ALLOW_ARIA_ATTR,De=!1!==e.ALLOW_DATA_ATTR,Oe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Re=e.SAFE_FOR_TEMPLATES||!1,_e=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,Ie=e.RETURN_DOM_FRAGMENT||!1,Ce=!1!==e.RETURN_DOM_IMPORT,ze=e.RETURN_TRUSTED_TYPE||!1,Le=e.FORCE_BODY||!1,He=!1!==e.SANITIZE_DOM,Ue=!1!==e.KEEP_CONTENT,je=e.IN_PLACE||!1,Te=e.ALLOWED_URI_REGEXP||Te,Ze=e.NAMESPACE||$e,Re&&(De=!1),Ie&&(Fe=!0),Be&&(Ae=S({},[].concat(q(M))),Se=[],!0===Be.html&&(S(Ae,k),S(Se,L)),!0===Be.svg&&(S(Ae,E),S(Se,F),S(Se,C)),!0===Be.svgFilters&&(S(Ae,D),S(Se,F),S(Se,C)),!0===Be.mathMl&&(S(Ae,R),S(Se,I),S(Se,C))),e.ADD_TAGS&&(Ae===xe&&(Ae=w(Ae)),S(Ae,e.ADD_TAGS)),e.ADD_ATTR&&(Se===we&&(Se=w(Se)),S(Se,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&S(Ke,e.ADD_URI_SAFE_ATTR),e.FORBID_CONTENTS&&(Pe===We&&(Pe=w(Pe)),S(Pe,e.FORBID_CONTENTS)),Ue&&(Ae["#text"]=!0),_e&&S(Ae,["html","head","body"]),Ae.table&&(S(Ae,["tbody"]),delete Ne.tbody),i&&i(e),Qe=e)},nt=S({},["mi","mo","mn","ms","mtext"]),rt=S({},["foreignobject","desc","title","annotation-xml"]),ot=S({},E);S(ot,D),S(ot,O);var it=S({},R);S(it,_);var at=function(e){var t=ne(e);t&&t.tagName||(t={namespaceURI:$e,tagName:"template"});var n=g(e.tagName),r=g(t.tagName);if(e.namespaceURI===Xe)return t.namespaceURI===$e?"svg"===n:t.namespaceURI===Ye?"svg"===n&&("annotation-xml"===r||nt[r]):Boolean(ot[n]);if(e.namespaceURI===Ye)return t.namespaceURI===$e?"math"===n:t.namespaceURI===Xe?"math"===n&&rt[r]:Boolean(it[n]);if(e.namespaceURI===$e){if(t.namespaceURI===Xe&&!rt[r])return!1;if(t.namespaceURI===Ye&&!nt[r])return!1;var o=S({},["title","style","font","a","script"]);return!it[n]&&(o[n]||!ot[n])}return!1},lt=function(e){p(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){try{e.outerHTML=ie}catch(t){e.remove()}}},ct=function(e,t){try{p(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Se[e])if(Fe||Ie)try{lt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},st=function(e){var t=void 0,n=void 0;if(Le)e=""+e;else{var r=h(e,/^[\r\n\t ]+/);n=r&&r[0]}var i=oe?oe.createHTML(e):e;if(Ze===$e)try{t=(new $).parseFromString(i,"text/html")}catch(e){}if(!t||!t.documentElement){t=le.createDocument(Ze,"template",null);try{t.documentElement.innerHTML=Je?"":i}catch(e){}}var a=t.body||t.documentElement;return e&&n&&a.insertBefore(o.createTextNode(n),a.childNodes[0]||null),Ze===$e?ue.call(t,_e?"html":"body")[0]:_e?t.documentElement:a},ut=function(e){return ce.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null,!1)},ft=function(e){return!(e instanceof Y||e instanceof X)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof x&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI&&"function"==typeof e.insertBefore)},mt=function(e){return"object"===(void 0===c?"undefined":G(c))?e instanceof c:e&&"object"===(void 0===e?"undefined":G(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},dt=function(e,t,r){de[e]&&m(de[e],(function(e){e.call(n,t,r,Qe)}))},pt=function(e){var t=void 0;if(dt("beforeSanitizeElements",e,null),ft(e))return lt(e),!0;if(h(e.nodeName,/[\u0080-\uFFFF]/))return lt(e),!0;var r=g(e.nodeName);if(dt("uponSanitizeElement",e,{tagName:r,allowedTags:Ae}),!mt(e.firstElementChild)&&(!mt(e.content)||!mt(e.content.firstElementChild))&&T(/<[/\w]/g,e.innerHTML)&&T(/<[/\w]/g,e.textContent))return lt(e),!0;if("select"===r&&T(/=0;--a)o.insertBefore(Q(i[a],!0),ee(e))}return lt(e),!0}return e instanceof s&&!at(e)?(lt(e),!0):"noscript"!==r&&"noembed"!==r||!T(/<\/no(script|embed)/i,e.innerHTML)?(Re&&3===e.nodeType&&(t=e.textContent,t=y(t,pe," "),t=y(t,ge," "),e.textContent!==t&&(p(n.removed,{element:e.cloneNode()}),e.textContent=t)),dt("afterSanitizeElements",e,null),!1):(lt(e),!0)},gt=function(e,t,n){if(He&&("id"===t||"name"===t)&&(n in o||n in et))return!1;if(De&&!ke[t]&&T(he,t));else if(Ee&&T(ye,t));else{if(!Se[t]||ke[t])return!1;if(Ke[t]);else if(T(Te,y(n,be,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(n,"data:")||!Ge[e]){if(Oe&&!T(ve,y(n,be,"")));else if(n)return!1}else;}return!0},ht=function(e){var t=void 0,r=void 0,o=void 0,i=void 0;dt("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var l={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};for(i=a.length;i--;){var c=t=a[i],s=c.name,u=c.namespaceURI;if(r=b(t.value),o=g(s),l.attrName=o,l.attrValue=r,l.keepAttr=!0,l.forceKeepAttr=void 0,dt("uponSanitizeAttribute",e,l),r=l.attrValue,!l.forceKeepAttr&&(ct(s,e),l.keepAttr))if(T(/\/>/i,r))ct(s,e);else{Re&&(r=y(r,pe," "),r=y(r,ge," "));var f=e.nodeName.toLowerCase();if(gt(f,o,r))try{u?e.setAttributeNS(u,s,r):e.setAttribute(s,r),d(n.removed)}catch(e){}}}dt("afterSanitizeAttributes",e,null)}},yt=function e(t){var n=void 0,r=ut(t);for(dt("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)dt("uponSanitizeShadowNode",n,null),pt(n)||(n.content instanceof a&&e(n.content),ht(n));dt("afterSanitizeShadowDOM",t,null)};return n.sanitize=function(e,o){var i=void 0,l=void 0,s=void 0,u=void 0,f=void 0;if((Je=!e)&&(e="\x3c!--\x3e"),"string"!=typeof e&&!mt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!n.isSupported){if("object"===G(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof e)return t.toStaticHTML(e);if(mt(e))return t.toStaticHTML(e.outerHTML)}return e}if(Me||tt(o),n.removed=[],"string"==typeof e&&(je=!1),je);else if(e instanceof c)1===(l=(i=st("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===l.nodeName||"HTML"===l.nodeName?i=l:i.appendChild(l);else{if(!Fe&&!Re&&!_e&&-1===e.indexOf("<"))return oe&&ze?oe.createHTML(e):e;if(!(i=st(e)))return Fe?null:ie}i&&Le&<(i.firstChild);for(var m=ut(je?e:i);s=m.nextNode();)3===s.nodeType&&s===u||pt(s)||(s.content instanceof a&&yt(s.content),ht(s),u=s);if(u=null,je)return e;if(Fe){if(Ie)for(f=se.call(i.ownerDocument);i.firstChild;)f.appendChild(i.firstChild);else f=i;return Ce&&(f=fe.call(r,f,!0)),f}var d=_e?i.outerHTML:i.innerHTML;return Re&&(d=y(d,pe," "),d=y(d,ge," ")),oe&&ze?oe.createHTML(d):d},n.setConfig=function(e){tt(e),Me=!0},n.clearConfig=function(){Qe=null,Me=!1},n.isValidAttribute=function(e,t,n){Qe||tt({});var r=g(e),o=g(t);return gt(r,o,n)},n.addHook=function(e,t){"function"==typeof t&&(de[e]=de[e]||[],p(de[e],t))},n.removeHook=function(e){de[e]&&d(de[e])},n.removeHooks=function(e){de[e]&&(de[e]=[])},n.removeAllHooks=function(){de={}},n}()}));
-//# sourceMappingURL=purify.min.js.map
-
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty,
bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
@@ -651,7 +651,7 @@ var extend = function(child, parent) { for (var key in parent) { if (hasProp.cal
'Chat closed by %s': '%s закрыл чат',
'Compose your message...': 'Напишите сообщение...',
'All colleagues are busy.': 'Все сотрудники заняты',
- 'You are on waiting list position %s.': 'Вы в списке ожидания под номером %s',
+ 'You are on waiting list position %s.': 'Вы в списке ожидания под номером %s',
'Start new conversation': 'Начать новую переписку.',
'Since you didn\'t respond in the last %s minutes your conversation with %s got closed.': 'Поскольку вы не отвечали в течение последних %s минут, ваш разговор с %s был закрыт.',
'Since you didn\'t respond in the last %s minutes your conversation got closed.': 'Поскольку вы не отвечали в течение последних %s минут, ваш разговор был закрыт.',
@@ -2196,7 +2196,7 @@ window.zammadChatTemplates["chat"] = function (__obj) {
__out.push('\n \n \n