]> git.mxchange.org Git - friendica-addons.git/commitdiff
New addon XMPP
authorMichael Vogel <icarus@dabo.de>
Sat, 31 Oct 2015 22:10:57 +0000 (23:10 +0100)
committerMichael Vogel <icarus@dabo.de>
Sat, 31 Oct 2015 22:10:57 +0000 (23:10 +0100)
29 files changed:
xmpp/converse/builds/converse.min.js [new file with mode: 0644]
xmpp/converse/builds/locales.js [new file with mode: 0644]
xmpp/converse/builds/templates.js [new file with mode: 0644]
xmpp/converse/css/converse.css [new file with mode: 0644]
xmpp/converse/css/converse.min.css [new file with mode: 0644]
xmpp/converse/css/images/arrow.svg [new file with mode: 0644]
xmpp/converse/css/images/bgbl.svg [new file with mode: 0644]
xmpp/converse/css/images/bgtr.svg [new file with mode: 0644]
xmpp/converse/css/images/bitcoin_qr_code.png [new file with mode: 0644]
xmpp/converse/css/images/dark-arrow.svg [new file with mode: 0644]
xmpp/converse/css/images/header.jpg [new file with mode: 0644]
xmpp/converse/css/images/overlay.png [new file with mode: 0644]
xmpp/converse/css/images/user.png [new file with mode: 0644]
xmpp/converse/css/theme.css [new file with mode: 0644]
xmpp/converse/fonticons/Read Me.txt [new file with mode: 0644]
xmpp/converse/fonticons/demo-files/demo.css [new file with mode: 0644]
xmpp/converse/fonticons/demo-files/demo.js [new file with mode: 0644]
xmpp/converse/fonticons/demo.html [new file with mode: 0644]
xmpp/converse/fonticons/fonts/icomoon.eot [new file with mode: 0644]
xmpp/converse/fonticons/fonts/icomoon.svg [new file with mode: 0644]
xmpp/converse/fonticons/fonts/icomoon.ttf [new file with mode: 0644]
xmpp/converse/fonticons/fonts/icomoon.woff [new file with mode: 0644]
xmpp/converse/fonticons/selection.json [new file with mode: 0644]
xmpp/converse/fonticons/style.css [new file with mode: 0644]
xmpp/converse/sounds/README [new file with mode: 0644]
xmpp/converse/sounds/msg_received.mp3 [new file with mode: 0644]
xmpp/converse/sounds/msg_received.ogg [new file with mode: 0644]
xmpp/templates/admin.tpl [new file with mode: 0644]
xmpp/xmpp.php [new file with mode: 0644]

diff --git a/xmpp/converse/builds/converse.min.js b/xmpp/converse/builds/converse.min.js
new file mode 100644 (file)
index 0000000..716ea6c
--- /dev/null
@@ -0,0 +1,236 @@
+/**
+ * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.
+ * Available via the MIT or new BSD license.
+ * see: http://github.com/jrburke/almond for details
+ */\r
+\r
+/*!
+ * jQuery JavaScript Library v1.11.0
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2014-01-23T21:02Z
+ */\r
+\r
+/*!
+ * Sizzle CSS Selector Engine v1.10.16
+ * http://sizzlejs.com/
+ *
+ * Copyright 2013 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2014-01-13
+ */\r
+\r
+/**
+ * @license RequireJS text 2.0.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
+ * Available via the MIT or new BSD license.
+ * see: http://github.com/requirejs/text for details
+ */\r
+\r
+//     Underscore.js 1.8.3\r
+//     http://underscorejs.org\r
+//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\r
+//     Underscore may be freely distributed under the MIT license.\r
+\r
+// RequireJS UnderscoreJS template plugin\r
+// http://github.com/jfparadis/requirejs-tpl\r
+//\r
+// An alternative to http://github.com/ZeeAgency/requirejs-tpl\r
+//\r
+// Using UnderscoreJS micro-templates at http://underscorejs.org/#template\r
+// Using and RequireJS text.js at http://requirejs.org/docs/api.html#text\r
+// @author JF Paradis\r
+// @version 0.0.2\r
+//\r
+// Released under the MIT license\r
+//\r
+// Usage:\r
+//   require(['backbone', 'tpl!mytemplate'], function (Backbone, mytemplate) {\r
+//     return Backbone.View.extend({\r
+//       initialize: function(){\r
+//         this.render();\r
+//       },\r
+//       render: function(){\r
+//         this.$el.html(mytemplate({message: 'hello'}));\r
+//     });\r
+//   });\r
+//\r
+// Configuration: (optional)\r
+//   require.config({\r
+//     tpl: {\r
+//       extension: '.tpl' // default = '.html'\r
+//     }\r
+//   });\r
+\r
+/*
+jed.js
+v0.5.0beta
+
+https://github.com/SlexAxton/Jed
+-----------
+A gettext compatible i18n library for modern JavaScript Applications
+
+by Alex Sexton - AlexSexton [at] gmail - @SlexAxton
+WTFPL license for use
+Dojo CLA for contributions
+
+Jed offers the entire applicable GNU gettext spec'd set of
+functions, but also offers some nicer wrappers around them.
+The api for gettext was written for a language with no function
+overloading, so Jed allows a little more of that.
+
+Many thanks to Joshua I. Miller - unrtst@cpan.org - who wrote
+gettext.js back in 2008. I was able to vet a lot of my ideas
+against his. I also made sure Jed passed against his tests
+in order to offer easy upgrades -- jsgettext.berlios.de
+*/\r
+\r
+// Underscore 1.3.0 was used to port and is licensed\r
+\r
+/**
+   sprintf() for JavaScript 0.7-beta1
+   http://www.diveintojavascript.com/projects/javascript-sprintf
+
+   Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
+   All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+       * Redistributions of source code must retain the above copyright
+         notice, this list of conditions and the following disclaimer.
+       * Redistributions in binary form must reproduce the above copyright
+         notice, this list of conditions and the following disclaimer in the
+         documentation and/or other materials provided with the distribution.
+       * Neither the name of sprintf() for JavaScript nor the
+         names of its contributors may be used to endorse or promote products
+         derived from this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+   DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
+   DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  */\r
+\r
+/*!
+ * jQuery Browser Plugin 0.0.8
+ * https://github.com/gabceb/jquery-browser-plugin
+ *
+ * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
+ * http://jquery.org/license
+ *
+ * Modifications Copyright 2015 Gabriel Cebrian
+ * https://github.com/gabceb
+ *
+ * Released under the MIT license
+ *
+ * Date: 05-07-2015
+ */\r
+\r
+/*
+CryptoJS v3.1.2
+code.google.com/p/crypto-js
+(c) 2009-2013 by Jeff Mott. All rights reserved.
+code.google.com/p/crypto-js/wiki/License
+*/\r
+\r
+/*!
+ * EventEmitter v4.2.3 - git.io/ee
+ * Oliver Caldwell
+ * MIT license
+ * @preserve
+ */\r
+\r
+/*!
+
+  otr.js v0.2.12 - 2014-04-15
+  (c) 2014 - Arlo Breault <arlolra@gmail.com>
+  Freely distributed under the MPL v2.0 license.
+
+  This file is concatenated for the browser.
+  Please see: https://github.com/arlolra/otr
+
+*/\r
+\r
+//! moment.js\r
+//! version : 2.10.6\r
+//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\r
+//! license : MIT\r
+//! momentjs.com\r
+\r
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS PUB 180-1
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */\r
+\r
+/*
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */\r
+\r
+/*
+    This program is distributed under the terms of the MIT license.
+    Please see the LICENSE file for details.
+
+    Copyright 2006-2008, OGG, LLC
+*/\r
+\r
+/*
+  Copyright 2010, François de Metz <francois@2metz.fr>
+*/\r
+\r
+/*
+* Based on Ping Strophejs plugins (https://github.com/metajack/strophejs-plugins/tree/master/ping)
+* This plugin is distributed under the terms of the MIT licence.
+* Please see the LICENCE file for details.
+*
+* Copyright (c) Markus Kohlhase, 2010
+* Refactored by Pavel Lang, 2011
+*/\r
+\r
+//     (c) 2010-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\r
+//     Backbone may be freely distributed under the MIT license.\r
+//     For all details and documentation:\r
+//     http://backbonejs.org\r
+\r
+/*!
+ * Backbone.Overview 
+ *
+ * Copyright (c) 2014, JC Brand <jc@opkode.com>
+ * Licensed under the Mozilla Public License (MPL) 
+ */\r
+\r
+/*!
+ * typeahead.js 0.10.5
+ * https://github.com/twitter/typeahead.js
+ * Copyright 2013-2014 Twitter, Inc. and other contributors; Licensed MIT
+ */\r
+\r
+// Converse.js (A browser based XMPP chat client)\r
+// http://conversejs.org\r
+//\r
+// Copyright (c) 2012-2015, Jan-Carel Brand <jc@opkode.com>\r
+// Licensed under the Mozilla Public License (MPLv2)\r
+\r
+var requirejs,require,define;(function(e){function h(e,t){return f.call(e,t)}function p(e,t){var n,r,i,s,o,a,f,l,h,p,d,v=t&&t.split("/"),m=u.map,g=m&&m["*"]||{};if(e&&e.charAt(0)===".")if(t){e=e.split("/"),o=e.length-1,u.nodeIdCompat&&c.test(e[o])&&(e[o]=e[o].replace(c,"")),e=v.slice(0,v.length-1).concat(e);for(h=0;h<e.length;h+=1){d=e[h];if(d===".")e.splice(h,1),h-=1;else if(d===".."){if(h===1&&(e[2]===".."||e[0]===".."))break;h>0&&(e.splice(h-1,2),h-=2)}}e=e.join("/")}else e.indexOf("./")===0&&(e=e.substring(2));if((v||g)&&m){n=e.split("/");for(h=n.length;h>0;h-=1){r=n.slice(0,h).join("/");if(v)for(p=v.length;p>0;p-=1){i=m[v.slice(0,p).join("/")];if(i){i=i[r];if(i){s=i,a=h;break}}}if(s)break;!f&&g&&g[r]&&(f=g[r],l=h)}!s&&f&&(s=f,a=l),s&&(n.splice(0,a,s),e=n.join("/"))}return e}function d(t,r){return function(){var i=l.call(arguments,0);return typeof i[0]!="string"&&i.length===1&&i.push(null),n.apply(e,i.concat([t,r]))}}function v(e){return function(t){return p(t,e)}}function m(e){return function(t){s[e]=t}}function g(n){if(h(o,n)){var r=o[n];delete o[n],a[n]=!0,t.apply(e,r)}if(!h(s,n)&&!h(a,n))throw new Error("No "+n);return s[n]}function y(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function b(e){return function(){return u&&u.config&&u.config[e]||{}}}var t,n,r,i,s={},o={},u={},a={},f=Object.prototype.hasOwnProperty,l=[].slice,c=/\.js$/;r=function(e,t){var n,r=y(e),i=r[0];return e=r[1],i&&(i=p(i,t),n=g(i)),i?n&&n.normalize?e=n.normalize(e,v(t)):e=p(e,t):(e=p(e,t),r=y(e),i=r[0],e=r[1],i&&(n=g(i))),{f:i?i+"!"+e:e,n:e,pr:i,p:n}},i={require:function(e){return d(e)},exports:function(e){var t=s[e];return typeof t!="undefined"?t:s[e]={}},module:function(e){return{id:e,uri:"",exports:s[e],config:b(e)}}},t=function(t,n,u,f){var l,c,p,v,y,b=[],w=typeof u,E;f=f||t;if(w==="undefined"||w==="function"){n=!n.length&&u.length?["require","exports","module"]:n;for(y=0;y<n.length;y+=1){v=r(n[y],f),c=v.f;if(c==="require")b[y]=i.require(t);else if(c==="exports")b[y]=i.exports(t),E=!0;else if(c==="module")l=b[y]=i.module(t);else if(h(s,c)||h(o,c)||h(a,c))b[y]=g(c);else{if(!v.p)throw new Error(t+" missing "+c);v.p.load(v.n,d(f,!0),m(c),{}),b[y]=s[c]}}p=u?u.apply(s[t],b):undefined;if(t)if(l&&l.exports!==e&&l.exports!==s[t])s[t]=l.exports;else if(p!==e||!E)s[t]=p}else t&&(s[t]=u)},requirejs=require=n=function(s,o,a,f,l){if(typeof s=="string")return i[s]?i[s](o):g(r(s,o).f);if(!s.splice){u=s,u.deps&&n(u.deps,u.callback);if(!o)return;o.splice?(s=o,o=a,a=null):s=e}return o=o||function(){},typeof a=="function"&&(a=f,f=l),f?t(e,s,o,a):setTimeout(function(){t(e,s,o,a)},4),n},n.config=function(e){return n(e)},requirejs._defined=s,define=function(e,t,n){if(typeof e!="string")throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),!h(s,e)&&!h(o,e)&&(o[e]=[e,t,n])},define.amd={jQuery:!0}})(),define("components/almond/almond.js",function(){}),function(e,t){typeof module=="object"&&typeof module.exports=="object"?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}(typeof window!="undefined"?window:this,function(e,t){function y(e){var t=e.length,n=p.type(e);return n==="function"||p.isWindow(e)?!1:e.nodeType===1&&t?!0:n==="array"||t===0||typeof t=="number"&&t>0&&t-1 in e}function x(e,t,n){if(p.isFunction(t))return p.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return p.grep(e,function(e){return e===t!==n});if(typeof t=="string"){if(S.test(t))return p.filter(t,e,n);t=p.filter(t,e)}return p.grep(e,function(e){return p.inArray(e,t)>=0!==n})}function O(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function D(e){var t=_[e]={};return p.each(e.match(M)||[],function(e,n){t[n]=!0}),t}function H(){N.addEventListener?(N.removeEventListener("DOMContentLoaded",B,!1),e.removeEventListener("load",B,!1)):(N.detachEvent("onreadystatechange",B),e.detachEvent("onload",B))}function B(){if(N.addEventListener||event.type==="load"||N.readyState==="complete")H(),p.ready()}function R(e,t,n){if(n===undefined&&e.nodeType===1){var r="data-"+t.replace(q,"-$1").toLowerCase();n=e.getAttribute(r);if(typeof n=="string"){try{n=n==="true"?!0:n==="false"?!1:n==="null"?null:+n+""===n?+n:I.test(n)?p.parseJSON(n):n}catch(i){}p.data(e,t,n)}else n=undefined}return n}function U(e){var t;for(t in e){if(t==="data"&&p.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function z(e,t,r,i){if(!p.acceptData(e))return;var s,o,u=p.expando,a=e.nodeType,f=a?p.cache:e,l=a?e[u]:e[u]&&u;if((!l||!f[l]||!i&&!f[l].data)&&r===undefined&&typeof t=="string")return;l||(a?l=e[u]=n.pop()||p.guid++:l=u),f[l]||(f[l]=a?{}:{toJSON:p.noop});if(typeof t=="object"||typeof t=="function")i?f[l]=p.extend(f[l],t):f[l].data=p.extend(f[l].data,t);return o=f[l],i||(o.data||(o.data={}),o=o.data),r!==undefined&&(o[p.camelCase(t)]=r),typeof t=="string"?(s=o[t],s==null&&(s=o[p.camelCase(t)])):s=o,s}function W(e,t,n){if(!p.acceptData(e))return;var r,i,s=e.nodeType,o=s?p.cache:e,u=s?e[p.expando]:p.expando;if(!o[u])return;if(t){r=n?o[u]:o[u].data;if(r){p.isArray(t)?t=t.concat(p.map(t,p.camelCase)):t in r?t=[t]:(t=p.camelCase(t),t in r?t=[t]:t=t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!U(r):!p.isEmptyObject(r))return}}if(!n){delete o[u].data;if(!U(o[u]))return}s?p.cleanData([e],!0):c.deleteExpando||o!=o.window?delete o[u]:o[u]=null}function tt(){return!0}function nt(){return!1}function rt(){try{return N.activeElement}catch(e){}}function it(e){var t=st.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Et(e,t){var n,r,i=0,s=typeof e.getElementsByTagName!==j?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==j?e.querySelectorAll(t||"*"):undefined;if(!s)for(s=[],n=e.childNodes||e;(r=n[i])!=null;i++)!t||p.nodeName(r,t)?s.push(r):p.merge(s,Et(r,t));return t===undefined||t&&p.nodeName(e,t)?p.merge([e],s):s}function St(e){K.test(e.type)&&(e.defaultChecked=e.checked)}function xt(e,t){return p.nodeName(e,"table")&&p.nodeName(t.nodeType!==11?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Tt(e){return e.type=(p.find.attr(e,"type")!==null)+"/"+e.type,e}function Nt(e){var t=mt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Ct(e,t){var n,r=0;for(;(n=e[r])!=null;r++)p._data(n,"globalEval",!t||p._data(t[r],"globalEval"))}function kt(e,t){if(t.nodeType!==1||!p.hasData(e))return;var n,r,i,s=p._data(e),o=p._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)p.event.add(t,n,u[n][r])}o.data&&(o.data=p.extend({},o.data))}function Lt(e,t){var n,r,i;if(t.nodeType!==1)return;n=t.nodeName.toLowerCase();if(!c.noCloneEvent&&t[p.expando]){i=p._data(t);for(r in i.events)p.removeEvent(t,r,i.handle);t.removeAttribute(p.expando)}if(n==="script"&&t.text!==e.text)Tt(t).text=e.text,Nt(t);else if(n==="object")t.parentNode&&(t.outerHTML=e.outerHTML),c.html5Clone&&e.innerHTML&&!p.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML);else if(n==="input"&&K.test(e.type))t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value);else if(n==="option")t.defaultSelected=t.selected=e.defaultSelected;else if(n==="input"||n==="textarea")t.defaultValue=e.defaultValue}function Mt(t,n){var r=p(n.createElement(t)).appendTo(n.body),i=e.getDefaultComputedStyle?e.getDefaultComputedStyle(r[0]).display:p.css(r[0],"display");return r.detach(),i}function _t(e){var t=N,n=Ot[e];if(!n){n=Mt(e,t);if(n==="none"||!n)At=(At||p("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(At[0].contentWindow||At[0].contentDocument).document,t.write(),t.close(),n=Mt(e,t),At.detach();Ot[e]=n}return n}function Ft(e,t){return{get:function(){var n=e();if(n==null)return;if(n){delete this.get;return}return(this.get=t).apply(this,arguments)}}}function $t(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Vt.length;while(i--){t=Vt[i]+n;if(t in e)return t}return r}function Jt(e,t){var n,r,i,s=[],o=0,u=e.length;for(;o<u;o++){r=e[o];if(!r.style)continue;s[o]=p._data(r,"olddisplay"),n=r.style.display,t?(!s[o]&&n==="none"&&(r.style.display=""),r.style.display===""&&$(r)&&(s[o]=p._data(r,"olddisplay",_t(r.nodeName)))):s[o]||(i=$(r),(n&&n!=="none"||!i)&&p._data(r,"olddisplay",i?n:p.css(r,"display")))}for(o=0;o<u;o++){r=e[o];if(!r.style)continue;if(!t||r.style.display==="none"||r.style.display==="")r.style.display=t?s[o]||"":"none"}return e}function Kt(e,t,n){var r=Ut.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Qt(e,t,n,r,i){var s=n===(r?"border":"content")?4:t==="width"?1:0,o=0;for(;s<4;s+=2)n==="margin"&&(o+=p.css(e,n+V[s],!0,i)),r?(n==="content"&&(o-=p.css(e,"padding"+V[s],!0,i)),n!=="margin"&&(o-=p.css(e,"border"+V[s]+"Width",!0,i))):(o+=p.css(e,"padding"+V[s],!0,i),n!=="padding"&&(o+=p.css(e,"border"+V[s]+"Width",!0,i)));return o}function Gt(e,t,n){var r=!0,i=t==="width"?e.offsetWidth:e.offsetHeight,s=Ht(e),o=c.boxSizing()&&p.css(e,"boxSizing",!1,s)==="border-box";if(i<=0||i==null){i=Bt(e,t,s);if(i<0||i==null)i=e.style[t];if(Pt.test(i))return i;r=o&&(c.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+Qt(e,t,n||(o?"border":"content"),r,s)+"px"}function Yt(e,t,n,r,i){return new Yt.prototype.init(e,t,n,r,i)}function un(){return setTimeout(function(){Zt=undefined}),Zt=p.now()}function an(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=V[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function fn(e,t,n){var r,i=(on[t]||[]).concat(on["*"]),s=0,o=i.length;for(;s<o;s++)if(r=i[s].call(n,t,e))return r}function ln(e,t,n){var r,i,s,o,u,a,f,l,h=this,d={},v=e.style,m=e.nodeType&&$(e),g=p._data(e,"fxshow");n.queue||(u=p._queueHooks(e,"fx"),u.unqueued==null&&(u.unqueued=0,a=u.empty.fire,u.empty.fire=function(){u.unqueued||a()}),u.unqueued++,h.always(function(){h.always(function(){u.unqueued--,p.queue(e,"fx").length||u.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[v.overflow,v.overflowX,v.overflowY],f=p.css(e,"display"),l=_t(e.nodeName),f==="none"&&(f=l),f==="inline"&&p.css(e,"float")==="none"&&(!c.inlineBlockNeedsLayout||l==="inline"?v.display="inline-block":v.zoom=1)),n.overflow&&(v.overflow="hidden",c.shrinkWrapBlocks()||h.always(function(){v.overflow=n.overflow[0],v.overflowX=n.overflow[1],v.overflowY=n.overflow[2]}));for(r in t){i=t[r];if(tn.exec(i)){delete t[r],s=s||i==="toggle";if(i===(m?"hide":"show")){if(i!=="show"||!g||g[r]===undefined)continue;m=!0}d[r]=g&&g[r]||p.style(e,r)}}if(!p.isEmptyObject(d)){g?"hidden"in g&&(m=g.hidden):g=p._data(e,"fxshow",{}),s&&(g.hidden=!m),m?p(e).show():h.done(function(){p(e).hide()}),h.done(function(){var t;p._removeData(e,"fxshow");for(t in d)p.style(e,t,d[t])});for(r in d)o=fn(m?g[r]:0,r,h),r in g||(g[r]=o.start,m&&(o.end=o.start,o.start=r==="width"||r==="height"?1:0))}}function cn(e,t){var n,r,i,s,o;for(n in e){r=p.camelCase(n),i=t[r],s=e[n],p.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=p.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function hn(e,t,n){var r,i,s=0,o=sn.length,u=p.Deferred().always(function(){delete a.elem}),a=function(){if(i)return!1;var t=Zt||un(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,s=1-r,o=0,a=f.tweens.length;for(;o<a;o++)f.tweens[o].run(s);return u.notifyWith(e,[f,s,n]),s<1&&a?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:p.extend({},t),opts:p.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Zt||un(),duration:n.duration,tweens:[],createTween:function(t,n){var r=p.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(r),r},stop:function(t){var n=0,r=t?f.tweens.length:0;if(i)return this;i=!0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;cn(l,f.opts.specialEasing);for(;s<o;s++){r=sn[s].call(f,e,l,f.opts);if(r)return r}return p.map(l,fn,f),p.isFunction(f.opts.start)&&f.opts.start.call(e,f),p.fx.timer(p.extend(a,{elem:e,anim:f,queue:f.opts.queue})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function In(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i=0,s=t.toLowerCase().match(M)||[];if(p.isFunction(n))while(r=s[i++])r.charAt(0)==="+"?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,t,n,r){function o(u){var a;return i[u]=!0,p.each(e[u]||[],function(e,u){var f=u(t,n,r);if(typeof f=="string"&&!s&&!i[f])return t.dataTypes.unshift(f),o(f),!1;if(s)return!(a=f)}),a}var i={},s=e===Bn;return o(t.dataTypes[0])||!i["*"]&&o("*")}function Rn(e,t){var n,r,i=p.ajaxSettings.flatOptions||{};for(r in t)t[r]!==undefined&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&p.extend(!0,e,n),e}function Un(e,t,n){var r,i,s,o,u=e.contents,a=e.dataTypes;while(a[0]==="*")a.shift(),i===undefined&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(o in u)if(u[o]&&u[o].test(i)){a.unshift(o);break}if(a[0]in n)s=a[0];else{for(o in n){if(!a[0]||e.converters[o+" "+a[0]]){s=o;break}r||(r=o)}s=s||r}if(s)return s!==a[0]&&a.unshift(s),n[s]}function zn(e,t,n,r){var i,s,o,u,a,f={},l=e.dataTypes.slice();if(l[1])for(o in e.converters)f[o.toLowerCase()]=e.converters[o];s=l.shift();while(s){e.responseFields[s]&&(n[e.responseFields[s]]=t),!a&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),a=s,s=l.shift();if(s)if(s==="*")s=a;else if(a!=="*"&&a!==s){o=f[a+" "+s]||f["* "+s];if(!o)for(i in f){u=i.split(" ");if(u[1]===s){o=f[a+" "+u[0]]||f["* "+u[0]];if(o){o===!0?o=f[i]:f[i]!==!0&&(s=u[0],l.unshift(u[1]));break}}}if(o!==!0)if(o&&e["throws"])t=o(t);else try{t=o(t)}catch(c){return{state:"parsererror",error:o?c:"No conversion from "+a+" to "+s}}}}return{state:"success",data:t}}function Kn(e,t,n,r){var i;if(p.isArray(t))p.each(t,function(t,i){n||Xn.test(e)?r(e,i):Kn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&p.type(t)==="object")for(i in t)Kn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Zn(){try{return new e.XMLHttpRequest}catch(t){}}function er(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function sr(e){return p.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n=[],r=n.slice,i=n.concat,s=n.push,o=n.indexOf,u={},a=u.toString,f=u.hasOwnProperty,l="".trim,c={},h="1.11.0",p=function(e,t){return new p.fn.init(e,t)},d=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,v=/^-ms-/,m=/-([\da-z])/gi,g=function(e,t){return t.toUpperCase()};p.fn=p.prototype={jquery:h,constructor:p,selector:"",length:0,toArray:function(){return r.call(this)},get:function(e){return e!=null?e<0?this[e+this.length]:this[e]:r.call(this)},pushStack:function(e){var t=p.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return p.each(this,e,t)},map:function(e){return this.pushStack(p.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(r.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:s,sort:n.sort,splice:n.splice},p.extend=p.fn.extend=function(){var e,t,n,r,i,s,o=arguments[0]||{},u=1,a=arguments.length,f=!1;typeof o=="boolean"&&(f=o,o=arguments[u]||{},u++),typeof o!="object"&&!p.isFunction(o)&&(o={}),u===a&&(o=this,u--);for(;u<a;u++)if((i=arguments[u])!=null)for(r in i){e=o[r],n=i[r];if(o===n)continue;f&&n&&(p.isPlainObject(n)||(t=p.isArray(n)))?(t?(t=!1,s=e&&p.isArray(e)?e:[]):s=e&&p.isPlainObject(e)?e:{},o[r]=p.extend(f,s,n)):n!==undefined&&(o[r]=n)}return o},p.extend({expando:"jQuery"+(h+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return p.type(e)==="function"},isArray:Array.isArray||function(e){return p.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return e-parseFloat(e)>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||p.type(e)!=="object"||e.nodeType||p.isWindow(e))return!1;try{if(e.constructor&&!f.call(e,"constructor")&&!f.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(c.ownLast)for(t in e)return f.call(e,t);for(t in e);return t===undefined||f.call(e,t)},type:function(e){return e==null?e+"":typeof e=="object"||typeof e=="function"?u[a.call(e)]||"object":typeof e},globalEval:function(t){t&&p.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(v,"ms-").replace(m,g)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,s=e.length,o=y(e);if(n)if(o)for(;i<s;i++){r=t.apply(e[i],n);if(r===!1)break}else for(i in e){r=t.apply(e[i],n);if(r===!1)break}else if(o)for(;i<s;i++){r=t.call(e[i],i,e[i]);if(r===!1)break}else for(i in e){r=t.call(e[i],i,e[i]);if(r===!1)break}return e},trim:l&&!l.call(" ")?function(e){return e==null?"":l.call(e)}:function(e){return e==null?"":(e+"").replace(d,"")},makeArray:function(e,t){var n=t||[];return e!=null&&(y(Object(e))?p.merge(n,typeof e=="string"?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(o)return o.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){var n=+t.length,r=0,i=e.length;while(r<n)e[i++]=t[r++];if(n!==n)while(t[r]!==undefined)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length,u=!n;for(;s<o;s++)r=!t(e[s],s),r!==u&&i.push(e[s]);return i},map:function(e,t,n){var r,s=0,o=e.length,u=y(e),a=[];if(u)for(;s<o;s++)r=t(e[s],s,n),r!=null&&a.push(r);else for(s in e)r=t(e[s],s,n),r!=null&&a.push(r);return i.apply([],a)},guid:1,proxy:function(e,t){var n,i,s;return typeof t=="string"&&(s=e[t],t=e,e=s),p.isFunction(e)?(n=r.call(arguments,2),i=function(){return e.apply(t||this,n.concat(r.call(arguments)))},i.guid=e.guid=e.guid||p.guid++,i):undefined},now:function(){return+(new Date)},support:c}),p.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){u["[object "+t+"]"]=t.toLowerCase()});var b=function(e){function rt(e,t,r,i){var s,o,u,a,f,h,v,m,w,E;(t?t.ownerDocument||t:b)!==c&&l(t),t=t||c,r=r||[];if(!e||typeof e!="string")return r;if((a=t.nodeType)!==1&&a!==9)return[];if(p&&!i){if(s=G.exec(e))if(u=s[1]){if(a===9){o=t.getElementById(u);if(!o||!o.parentNode)return r;if(o.id===u)return r.push(o),r}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(u))&&g(t,o)&&o.id===u)return r.push(o),r}else{if(s[2])return _.apply(r,t.getElementsByTagName(e)),r;if((u=s[3])&&n.getElementsByClassName&&t.getElementsByClassName)return _.apply(r,t.getElementsByClassName(u)),r}if(n.qsa&&(!d||!d.test(e))){m=v=y,w=t,E=a===9&&e;if(a===1&&t.nodeName.toLowerCase()!=="object"){h=dt(e),(v=t.getAttribute("id"))?m=v.replace(Z,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",f=h.length;while(f--)h[f]=m+vt(h[f]);w=Y.test(e)&&ht(t.parentNode)||t,E=h.join(",")}if(E)try{return _.apply(r,w.querySelectorAll(E)),r}catch(S){}finally{v||t.removeAttribute("id")}}}return xt(e.replace(R,"$1"),t,r,i)}function it(){function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function st(e){return e[y]=!0,e}function ot(e){var t=c.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ut(e,t){var n=e.split("|"),i=e.length;while(i--)r.attrHandle[n[i]]=t}function at(e,t){var n=t&&e,r=n&&e.nodeType===1&&t.nodeType===1&&(~t.sourceIndex||k)-(~e.sourceIndex||k);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function ct(e){return st(function(t){return t=+t,st(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ht(e){return e&&typeof e.getElementsByTagName!==C&&e}function pt(){}function dt(e,t){var n,i,s,o,u,a,f,l=x[e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=r.preFilter;while(u){if(!n||(i=U.exec(u)))i&&(u=u.slice(i[0].length)||u),a.push(s=[]);n=!1;if(i=z.exec(u))n=i.shift(),s.push({value:n,type:i[0].replace(R," ")}),u=u.slice(n.length);for(o in r.filter)(i=$[o].exec(u))&&(!f[o]||(i=f[o](i)))&&(n=i.shift(),s.push({value:n,type:o,matches:i}),u=u.slice(n.length));if(!n)break}return t?u.length:u?rt.error(e):x(e,a).slice(0)}function vt(e){var t=0,n=e.length,r="";for(;t<n;t++)r+=e[t].value;return r}function mt(e,t,n){var r=t.dir,i=n&&r==="parentNode",s=E++;return t.first?function(t,n,s){while(t=t[r])if(t.nodeType===1||i)return e(t,n,s)}:function(t,n,o){var u,a,f=[w,s];if(o){while(t=t[r])if(t.nodeType===1||i)if(e(t,n,o))return!0}else while(t=t[r])if(t.nodeType===1||i){a=t[y]||(t[y]={});if((u=a[r])&&u[0]===w&&u[1]===s)return f[2]=u[2];a[r]=f;if(f[2]=e(t,n,o))return!0}}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function yt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function bt(e,t,n,r,i,s){return r&&!r[y]&&(r=bt(r)),i&&!i[y]&&(i=bt(i,s)),st(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||St(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?yt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=yt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?P.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=yt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):_.apply(o,g)})}function wt(e){var t,n,i,s=e.length,o=r.relative[e[0].type],a=o||r.relative[" "],f=o?1:0,l=mt(function(e){return e===t},a,!0),c=mt(function(e){return P.call(t,e)>-1},a,!0),h=[function(e,n,r){return!o&&(r||n!==u)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];for(;f<s;f++)if(n=r.relative[e[f].type])h=[mt(gt(h),n)];else{n=r.filter[e[f].type].apply(null,e[f].matches);if(n[y]){i=++f;for(;i<s;i++)if(r.relative[e[i].type])break;return bt(f>1&&gt(h),f>1&&vt(e.slice(0,f-1).concat({value:e[f-2].type===" "?"*":""})).replace(R,"$1"),n,f<i&&wt(e.slice(f,i)),i<s&&wt(e=e.slice(i)),i<s&&vt(e))}h.push(n)}return gt(h)}function Et(e,t){var n=t.length>0,i=e.length>0,s=function(s,o,a,f,l){var h,p,d,v=0,m="0",g=s&&[],y=[],b=u,E=s||i&&r.find.TAG("*",l),S=w+=b==null?1:Math.random()||.1,x=E.length;l&&(u=o!==c&&o);for(;m!==x&&(h=E[m])!=null;m++){if(i&&h){p=0;while(d=e[p++])if(d(h,o,a)){f.push(h);break}l&&(w=S)}n&&((h=!d&&h)&&v--,s&&g.push(h))}v+=m;if(n&&m!==v){p=0;while(d=t[p++])d(g,y,o,a);if(s){if(v>0)while(m--)!g[m]&&!y[m]&&(y[m]=O.call(f));y=yt(y)}_.apply(f,y),l&&!s&&y.length>0&&v+t.length>1&&rt.uniqueSort(f)}return l&&(w=S,u=b),g};return n?st(s):s}function St(e,t,n){var r=0,i=t.length;for(;r<i;r++)rt(e,t[r],n);return n}function xt(e,t,i,s){var u,a,f,l,c,h=dt(e);if(!s&&h.length===1){a=h[0]=h[0].slice(0);if(a.length>2&&(f=a[0]).type==="ID"&&n.getById&&t.nodeType===9&&p&&r.relative[a[1].type]){t=(r.find.ID(f.matches[0].replace(et,tt),t)||[])[0];if(!t)return i;e=e.slice(a.shift().value.length)}u=$.needsContext.test(e)?0:a.length;while(u--){f=a[u];if(r.relative[l=f.type])break;if(c=r.find[l])if(s=c(f.matches[0].replace(et,tt),Y.test(a[0].type)&&ht(t.parentNode)||t)){a.splice(u,1),e=s.length&&vt(a);if(!e)return _.apply(i,s),i;break}}}return o(e,h)(s,t,!p,i,Y.test(e)&&ht(t.parentNode)||t),i}var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y="sizzle"+ -(new Date),b=e.document,w=0,E=0,S=it(),x=it(),T=it(),N=function(e,t){return e===t&&(f=!0),0},C=typeof undefined,k=1<<31,L={}.hasOwnProperty,A=[],O=A.pop,M=A.push,_=A.push,D=A.slice,P=A.indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},H="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",B="[\\x20\\t\\r\\n\\f]",j="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",F=j.replace("w","w#"),I="\\["+B+"*("+j+")"+B+"*(?:([*^$|!~]?=)"+B+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+F+")|)|)"+B+"*\\]",q=":("+j+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+I.replace(3,8)+")*)|.*)\\)|)",R=new RegExp("^"+B+"+|((?:^|[^\\\\])(?:\\\\.)*)"+B+"+$","g"),U=new RegExp("^"+B+"*,"+B+"*"),z=new RegExp("^"+B+"*([>+~]|"+B+")"+B+"*"),W=new RegExp("="+B+"*([^\\]'\"]*?)"+B+"*\\]","g"),X=new RegExp(q),V=new RegExp("^"+F+"$"),$={ID:new RegExp("^#("+j+")"),CLASS:new RegExp("^\\.("+j+")"),TAG:new RegExp("^("+j.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+B+"*(even|odd|(([+-]|)(\\d*)n|)"+B+"*(?:([+-]|)"+B+"*(\\d+)|))"+B+"*\\)|)","i"),bool:new RegExp("^(?:"+H+")$","i"),needsContext:new RegExp("^"+B+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+B+"*((?:-\\d)?\\d*)"+B+"*\\)|)(?=[^-]|$)","i")},J=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,G=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Y=/[+~]/,Z=/'|\\/g,et=new RegExp("\\\\([\\da-f]{1,6}"+B+"?|("+B+")|.)","ig"),tt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,r&1023|56320)};try{_.apply(A=D.call(b.childNodes),b.childNodes),A[b.childNodes.length].nodeType}catch(nt){_={apply:A.length?function(e,t){M.apply(e,D.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}n=rt.support={},s=rt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},l=rt.setDocument=function(e){var t,i=e?e.ownerDocument||e:b,o=i.defaultView;if(i===c||i.nodeType!==9||!i.documentElement)return c;c=i,h=i.documentElement,p=!s(i),o&&o!==o.top&&(o.addEventListener?o.addEventListener("unload",function(){l()},!1):o.attachEvent&&o.attachEvent("onunload",function(){l()})),n.attributes=ot(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ot(function(e){return e.appendChild(i.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(i.getElementsByClassName)&&ot(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",e.getElementsByClassName("i").length===2}),n.getById=ot(function(e){return h.appendChild(e).id=y,!i.getElementsByName||!i.getElementsByName(y).length}),n.getById?(r.find.ID=function(e,t){if(typeof t.getElementById!==C&&p){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},r.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(delete r.find.ID,r.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==C&&e.getAttributeNode("id");return n&&n.value===t}}),r.find.TAG=n.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==C)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],i=0,s=t.getElementsByTagName(e);if(e==="*"){while(n=s[i++])n.nodeType===1&&r.push(n);return r}return s},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(typeof t.getElementsByClassName!==C&&p)return t.getElementsByClassName(e)},v=[],d=[];if(n.qsa=Q.test(i.querySelectorAll))ot(function(e){e.innerHTML="<select t=''><option selected=''></option></select>",e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+B+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||d.push("\\["+B+"*(?:value|"+H+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ot(function(e){var t=i.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&d.push("name"+B+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")});return(n.matchesSelector=Q.test(m=h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ot(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),v.push("!=",q)}),d=d.length&&new RegExp(d.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),g=t||Q.test(h.contains)?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!r&&r.nodeType===1&&!!(n.contains?n.contains(r):e.compareDocumentPosition&&e.compareDocumentPosition(r)&16)}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r?r:(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,r&1||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===i||e.ownerDocument===b&&g(b,e)?-1:t===i||t.ownerDocument===b&&g(b,t)?1:a?P.call(a,e)-P.call(a,t):0:r&4?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,s=e.parentNode,o=t.parentNode,u=[e],l=[t];if(!s||!o)return e===i?-1:t===i?1:s?-1:o?1:a?P.call(a,e)-P.call(a,t):0;if(s===o)return at(e,t);n=e;while(n=n.parentNode)u.unshift(n);n=t;while(n=n.parentNode)l.unshift(n);while(u[r]===l[r])r++;return r?at(u[r],l[r]):u[r]===b?-1:l[r]===b?1:0},i},rt.matches=function(e,t){return rt(e,null,null,t)},rt.matchesSelector=function(e,t){(e.ownerDocument||e)!==c&&l(e),t=t.replace(W,"='$1']");if(n.matchesSelector&&p&&(!v||!v.test(t))&&(!d||!d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&e.document.nodeType!==11)return r}catch(i){}return rt(t,c,null,[e]).length>0},rt.contains=function(e,t){return(e.ownerDocument||e)!==c&&l(e),g(e,t)},rt.attr=function(e,t){(e.ownerDocument||e)!==c&&l(e);var i=r.attrHandle[t.toLowerCase()],s=i&&L.call(r.attrHandle,t.toLowerCase())?i(e,t,!p):undefined;return s!==undefined?s:n.attributes||!p?e.getAttribute(t):(s=e.getAttributeNode(t))&&s.specified?s.value:null},rt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},rt.uniqueSort=function(e){var t,r=[],i=0,s=0;f=!n.detectDuplicates,a=!n.sortStable&&e.slice(0),e.sort(N);if(f){while(t=e[s++])t===e[s]&&(i=r.push(s));while(i--)e.splice(r[i],1)}return a=null,e},i=rt.getText=function(e){var t,n="",r=0,s=e.nodeType;if(!s)while(t=e[r++])n+=i(t);else if(s===1||s===9||s===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(s===3||s===4)return e.nodeValue;return n},r=rt.selectors={cacheLength:50,createPseudo:st,match:$,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1].slice(0,3)==="nth"?(e[3]||rt.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd")),e[5]=+(e[7]+e[8]||e[3]==="odd")):e[3]&&rt.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return $.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&X.test(n)&&(t=dt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(et,tt).toLowerCase();return e==="*"?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=S[e+" "];return t||(t=new RegExp("(^|"+B+")"+e+"("+B+"|$)"))&&S(e,function(e){return t.test(typeof e.className=="string"&&e.className||typeof e.getAttribute!==C&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=rt.attr(r,e);return i==null?t==="!=":t?(i+="",t==="="?i===n:t==="!="?i!==n:t==="^="?n&&i.indexOf(n)===0:t==="*="?n&&i.indexOf(n)>-1:t==="$="?n&&i.slice(-n.length)===n:t==="~="?(" "+i+" ").indexOf(n)>-1:t==="|="?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var s=e.slice(0,3)!=="nth",o=e.slice(-4)!=="last",u=t==="of-type";return r===1&&i===0?function(e){return!!e.parentNode}:function(t,n,a){var f,l,c,h,p,d,v=s!==o?"nextSibling":"previousSibling",m=t.parentNode,g=u&&t.nodeName.toLowerCase(),b=!a&&!u;if(m){if(s){while(v){c=t;while(c=c[v])if(u?c.nodeName.toLowerCase()===g:c.nodeType===1)return!1;d=v=e==="only"&&!d&&"nextSibling"}return!0}d=[o?m.firstChild:m.lastChild];if(o&&b){l=m[y]||(m[y]={}),f=l[e]||[],p=f[0]===w&&f[1],h=f[0]===w&&f[2],c=p&&m.childNodes[p];while(c=++p&&c&&c[v]||(h=p=0)||d.pop())if(c.nodeType===1&&++h&&c===t){l[e]=[w,p,h];break}}else if(b&&(f=(t[y]||(t[y]={}))[e])&&f[0]===w)h=f[1];else while(c=++p&&c&&c[v]||(h=p=0)||d.pop())if((u?c.nodeName.toLowerCase()===g:c.nodeType===1)&&++h){b&&((c[y]||(c[y]={}))[e]=[w,h]);if(c===t)break}return h-=i,h===r||h%r===0&&h/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||rt.error("unsupported pseudo: "+e);return i[y]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?st(function(e,n){var r,s=i(e,t),o=s.length;while(o--)r=P.call(e,s[o]),e[r]=!(n[r]=s[o])}):function(e){return i(e,0,n)}):i}},pseudos:{not:st(function(e){var t=[],n=[],r=o(e.replace(R,"$1"));return r[y]?st(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:st(function(e){return function(t){return rt(e,t).length>0}}),contains:st(function(e){return function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:st(function(e){return V.test(e||"")||rt.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=p?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||n.indexOf(e+"-")===0;while((t=t.parentNode)&&t.nodeType===1);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===c.activeElement&&(!c.hasFocus||c.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return K.test(e.nodeName)},input:function(e){return J.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},text:function(e){var t;return e.nodeName.toLowerCase()==="input"&&e.type==="text"&&((t=e.getAttribute("type"))==null||t.toLowerCase()==="text")},first:ct(function(){return[0]}),last:ct(function(e,t){return[t-1]}),eq:ct(function(e,t,n){return[n<0?n+t:n]}),even:ct(function(e,t){var n=0;for(;n<t;n+=2)e.push(n);return e}),odd:ct(function(e,t){var n=1;for(;n<t;n+=2)e.push(n);return e}),lt:ct(function(e,t,n){var r=n<0?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ct(function(e,t,n){var r=n<0?n+t:n;for(;++r<t;)e.push(r);return e})}},r.pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=ft(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=lt(t);return pt.prototype=r.filters=r.pseudos,r.setFilters=new pt,o=rt.compile=function(e,t){var n,r=[],i=[],s=T[e+" "];if(!s){t||(t=dt(e)),n=t.length;while(n--)s=wt(t[n]),s[y]?r.push(s):i.push(s);s=T(e,Et(i,r))}return s},n.sortStable=y.split("").sort(N).join("")===y,n.detectDuplicates=!!f,l(),n.sortDetached=ot(function(e){return e.compareDocumentPosition(c.createElement("div"))&1}),ot(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild.getAttribute("href")==="#"})||ut("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,t.toLowerCase()==="type"?1:2)}),(!n.attributes||!ot(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),e.firstChild.getAttribute("value")===""}))&&ut("value",function(e,t,n){if(!n&&e.nodeName.toLowerCase()==="input")return e.defaultValue}),ot(function(e){return e.getAttribute("disabled")==null})||ut(H,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),rt}(e);p.find=b,p.expr=b.selectors,p.expr[":"]=p.expr.pseudos,p.unique=b.uniqueSort,p.text=b.getText,p.isXMLDoc=b.isXML,p.contains=b.contains;var w=p.expr.match.needsContext,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^.[^:#\[\.,]*$/;p.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),t.length===1&&r.nodeType===1?p.find.matchesSelector(r,e)?[r]:[]:p.find.matches(e,p.grep(t,function(e){return e.nodeType===1}))},p.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if(typeof e!="string")return this.pushStack(p(e).filter(function(){for(t=0;t<i;t++)if(p.contains(r[t],this))return!0}));for(t=0;t<i;t++)p.find(e,r[t],n);return n=this.pushStack(i>1?p.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(x(this,e||[],!1))},not:function(e){return this.pushStack(x(this,e||[],!0))},is:function(e){return!!x(this,typeof e=="string"&&w.test(e)?p(e):e||[],!1).length}});var T,N=e.document,C=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=p.fn.init=function(e,t){var n,r;if(!e)return this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?n=[null,e,null]:n=C.exec(e);if(n&&(n[1]||!t)){if(n[1]){t=t instanceof p?t[0]:t,p.merge(this,p.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:N,!0));if(E.test(n[1])&&p.isPlainObject(t))for(n in t)p.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}r=N.getElementById(n[2]);if(r&&r.parentNode){if(r.id!==n[2])return T.find(e);this.length=1,this[0]=r}return this.context=N,this.selector=e,this}return!t||t.jquery?(t||T).find(e):this.constructor(t).find(e)}return e.nodeType?(this.context=this[0]=e,this.length=1,this):p.isFunction(e)?typeof T.ready!="undefined"?T.ready(e):e(p):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),p.makeArray(e,this))};k.prototype=p.fn,T=p(N);var L=/^(?:parents|prev(?:Until|All))/,A={children:!0,contents:!0,next:!0,prev:!0};p.extend({dir:function(e,t,n){var r=[],i=e[t];while(i&&i.nodeType!==9&&(n===undefined||i.nodeType!==1||!p(i).is(n)))i.nodeType===1&&r.push(i),i=i[t];return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}}),p.fn.extend({has:function(e){var t,n=p(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(p.contains(this,n[t]))return!0})},closest:function(e,t){var n,r=0,i=this.length,s=[],o=w.test(e)||typeof e!="string"?p(e,t||this.context):0;for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(o?o.index(n)>-1:n.nodeType===1&&p.find.matchesSelector(n,e))){s.push(n);break}return this.pushStack(s.length>1?p.unique(s):s)},index:function(e){return e?typeof e=="string"?p.inArray(this[0],p(e)):p.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(p.unique(p.merge(this.get(),p(e,t))))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),p.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return p.dir(e,"parentNode")},parentsUntil:function(e,t,n){return p.dir(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return p.dir(e,"nextSibling")},prevAll:function(e){return p.dir(e,"previousSibling")},nextUntil:function(e,t,n){return p.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return p.dir(e,"previousSibling",n)},siblings:function(e){return p.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return p.sibling(e.firstChild)},contents:function(e){return p.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:p.merge([],e.childNodes)}},function(e,t){p.fn[e]=function(n,r){var i=p.map(this,t,n);return e.slice(-5)!=="Until"&&(r=n),r&&typeof r=="string"&&(i=p.filter(r,i)),this.length>1&&(A[e]||(i=p.unique(i)),L.test(e)&&(i=i.reverse())),this.pushStack(i)}});var M=/\S+/g,_={};p.Callbacks=function(e){e=typeof e=="string"?_[e]||D(e):p.extend({},e);var t,n,r,i,s,o,u=[],a=!e.once&&[],f=function(c){n=e.memory&&c,r=!0,s=o||0,o=0,i=u.length,t=!0;for(;u&&s<i;s++)if(u[s].apply(c[0],c[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,u&&(a?a.length&&f(a.shift()):n?u=[]:l.disable())},l={add:function(){if(u){var r=u.length;(function s(t){p.each(t,function(t,n){var r=p.type(n);r==="function"?(!e.unique||!l.has(n))&&u.push(n):n&&n.length&&r!=="string"&&s(n)})})(arguments),t?i=u.length:n&&(o=r,f(n))}return this},remove:function(){return u&&p.each(arguments,function(e,n){var r;while((r=p.inArray(n,u,r))>-1)u.splice(r,1),t&&(r<=i&&i--,r<=s&&s--)}),this},has:function(e){return e?p.inArray(e,u)>-1:!!u&&!!u.length},empty:function(){return u=[],i=0,this},disable:function(){return u=a=n=undefined,this},disabled:function(){return!u},lock:function(){return a=undefined,n||l.disable(),this},locked:function(){return!a},fireWith:function(e,n){return u&&(!r||a)&&(n=n||[],n=[e,n.slice?n.slice():n],t?a.push(n):f(n)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},p.extend({Deferred:function(e){var t=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return p.Deferred(function(n){p.each(t,function(t,s){var o=p.isFunction(e[t])&&e[t];i[s[1]](function(){var e=o&&o.apply(this,arguments);e&&p.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s[0]+"With"](this===r?n.promise():this,o?[e]:arguments)})}),e=null}).promise()},promise:function(e){return e!=null?p.extend(e,r):r}},i={};return r.pipe=r.then,p.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=function(){return i[s[0]+"With"](this===i?r:this,arguments),this},i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=r.call(arguments),i=n.length,s=i!==1||e&&p.isFunction(e.promise)?i:0,o=s===1?e:p.Deferred(),u=function(e,t,n){return function(i){t[e]=this,n[e]=arguments.length>1?r.call(arguments):i,n===a?o.notifyWith(t,n):--s||o.resolveWith(t,n)}},a,f,l;if(i>1){a=new Array(i),f=new Array(i),l=new Array(i);for(;t<i;t++)n[t]&&p.isFunction(n[t].promise)?n[t].promise().done(u(t,l,n)).fail(o.reject).progress(u(t,f,a)):--s}return s||o.resolveWith(l,n),o.promise()}});var P;p.fn.ready=function(e){return p.ready.promise().done(e),this},p.extend({isReady:!1,readyWait:1,holdReady:function(e){e?p.readyWait++:p.ready(!0)},ready:function(e){if(e===!0?--p.readyWait:p.isReady)return;if(!N.body)return setTimeout(p.ready);p.isReady=!0;if(e!==!0&&--p.readyWait>0)return;P.resolveWith(N,[p]),p.fn.trigger&&p(N).trigger("ready").off("ready")}}),p.ready.promise=function(t){if(!P){P=p.Deferred();if(N.readyState==="complete")setTimeout(p.ready);else if(N.addEventListener)N.addEventListener("DOMContentLoaded",B,!1),e.addEventListener("load",B,!1);else{N.attachEvent("onreadystatechange",B),e.attachEvent("onload",B);var n=!1;try{n=e.frameElement==null&&N.documentElement}catch(r){}n&&n.doScroll&&function i(){if(!p.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}H(),p.ready()}}()}}return P.promise(t)};var j=typeof undefined,F;for(F in p(c))break;c.ownLast=F!=="0",c.inlineBlockNeedsLayout=!1,p(function(){var e,t,n=N.getElementsByTagName("body")[0];if(!n)return;e=N.createElement("div"),e.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",t=N.createElement("div"),n.appendChild(e).appendChild(t);if(typeof t.style.zoom!==j){t.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1";if(c.inlineBlockNeedsLayout=t.offsetWidth===3)n.style.zoom=1}n.removeChild(e),e=t=null}),function(){var e=N.createElement("div");if(c.deleteExpando==null){c.deleteExpando=!0;try{delete e.test}catch(t){c.deleteExpando=!1}}e=null}(),p.acceptData=function(e){var t=p.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return n!==1&&n!==9?!1:!t||t!==!0&&e.getAttribute("classid")===t};var I=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,q=/([A-Z])/g;p.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?p.cache[e[p.expando]]:e[p.expando],!!e&&!U(e)},data:function(e,t,n){return z(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return z(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)}}),p.fn.extend({data:function(e,t){var n,r,i,s=this[0],o=s&&s.attributes;if(e===undefined){if(this.length){i=p.data(s);if(s.nodeType===1&&!p._data(s,"parsedAttrs")){n=o.length;while(n--)r=o[n].name,r.indexOf("data-")===0&&(r=p.camelCase(r.slice(5)),R(s,r,i[r]));p._data(s,"parsedAttrs",!0)}}return i}return typeof e=="object"?this.each(function(){p.data(this,e)}):arguments.length>1?this.each(function(){p.data(this,e,t)}):s?R(s,e,p.data(s,e)):undefined},removeData:function(e){return this.each(function(){p.removeData(this,e)})}}),p.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=p._data(e,t),n&&(!r||p.isArray(n)?r=p._data(e,t,p.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=p.queue(e,t),r=n.length,i=n.shift(),s=p._queueHooks(e,t),o=function(){p.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return p._data(e,n)||p._data(e,n,{empty:p.Callbacks("once memory").add(function(){p._removeData(e,t+"queue"),p._removeData(e,n)})})}}),p.fn.extend({queue:function(e,t){var n=2;return typeof e!="string"&&(t=e,e="fx",n--),arguments.length<n?p.queue(this[0],e):t===undefined?this:this.each(function(){var n=p.queue(this,e,t);p._queueHooks(this,e),e==="fx"&&n[0]!=="inprogress"&&p.dequeue(this,e)})},dequeue:function(e){return this.each(function(){p.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=p.Deferred(),s=this,o=this.length,u=function(){--r||i.resolveWith(s,[s])};typeof e!="string"&&(t=e,e=undefined),e=e||"fx";while(o--)n=p._data(s[o],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(u));return u(),i.promise(t)}});var X=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,V=["Top","Right","Bottom","Left"],$=function(e,t){return e=t||e,p.css(e,"display")==="none"||!p.contains(e.ownerDocument,e)},J=p.access=function(e,t,n,r,i,s,o){var u=0,a=e.length,f=n==null;if(p.type(n)==="object"){i=!0;for(u in n)p.access(e,t,u,n[u],!0,s,o)}else if(r!==undefined){i=!0,p.isFunction(r)||(o=!0),f&&(o?(t.call(e,r),t=null):(f=t,t=function(e,t,n){return f.call(p(e),n)}));if(t)for(;u<a;u++)t(e[u],n,o?r:r.call(e[u],u,t(e[u],n)))}return i?e:f?t.call(e):a?t(e[0],n):s},K=/^(?:checkbox|radio)$/i;(function(){var e=N.createDocumentFragment(),t=N.createElement("div"),n=N.createElement("input");t.setAttribute("className","t"),t.innerHTML="  <link/><table></table><a href='/a'>a</a>",c.leadingWhitespace=t.firstChild.nodeType===3,c.tbody=!t.getElementsByTagName("tbody").length,c.htmlSerialize=!!t.getElementsByTagName("link").length,c.html5Clone=N.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",n.type="checkbox",n.checked=!0,e.appendChild(n),c.appendChecked=n.checked,t.innerHTML="<textarea>x</textarea>",c.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,e.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",c.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,c.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){c.noCloneEvent=!1}),t.cloneNode(!0).click());if(c.deleteExpando==null){c.deleteExpando=!0;try{delete t.test}catch(r){c.deleteExpando=!1}}e=t=n=null})(),function(){var t,n,r=N.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(c[t+"Bubbles"]=n in e)||(r.setAttribute(n,"t"),c[t+"Bubbles"]=r.attributes[n].expando===!1);r=null}();var Q=/^(?:input|select|textarea)$/i,G=/^key/,Y=/^(?:mouse|contextmenu)|click/,Z=/^(?:focusinfocus|focusoutblur)$/,et=/^([^.]*)(?:\.(.+)|)$/;p.event={global:{},add:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,d,v,m,g=p._data(e);if(!g)return;n.handler&&(a=n,n=a.handler,i=a.selector),n.guid||(n.guid=p.guid++),(o=g.events)||(o=g.events={}),(l=g.handle)||(l=g.handle=function(e){return typeof p===j||!!e&&p.event.triggered===e.type?undefined:p.event.dispatch.apply(l.elem,arguments)},l.elem=e),t=(t||"").match(M)||[""],u=t.length;while(u--){s=et.exec(t[u])||[],d=m=s[1],v=(s[2]||"").split(".").sort();if(!d)continue;f=p.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=p.event.special[d]||{},c=p.extend({type:d,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&p.expr.match.needsContext.test(i),namespace:v.join(".")},a);if(!(h=o[d])){h=o[d]=[],h.delegateCount=0;if(!f.setup||f.setup.call(e,r,v,l)===!1)e.addEventListener?e.addEventListener(d,l,!1):e.attachEvent&&e.attachEvent("on"+d,l)}f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,c):h.push(c),p.event.global[d]=!0}e=null},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,d,v,m,g=p.hasData(e)&&p._data(e);if(!g||!(l=g.events))return;t=(t||"").match(M)||[""],f=t.length;while(f--){u=et.exec(t[f])||[],d=m=u[1],v=(u[2]||"").split(".").sort();if(!d){for(d in l)p.event.remove(e,d+t[f],n,r,!0);continue}c=p.event.special[d]||{},d=(r?c.delegateType:c.bindType)||d,h=l[d]||[],u=u[2]&&new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=s=h.length;while(s--)o=h[s],(i||m===o.origType)&&(!n||n.guid===o.guid)&&(!u||u.test(o.namespace))&&(!r||r===o.selector||r==="**"&&o.selector)&&(h.splice(s,1),o.selector&&h.delegateCount--,c.remove&&c.remove.call(e,o));a&&!h.length&&((!c.teardown||c.teardown.call(e,v,g.handle)===!1)&&p.removeEvent(e,d,g.handle),delete l[d])}p.isEmptyObject(l)&&(delete g.handle,p._removeData(e,"events"))},trigger:function(t,n,r,i){var s,o,u,a,l,c,h,d=[r||N],v=f.call(t,"type")?t.type:t,m=f.call(t,"namespace")?t.namespace.split("."):[];u=c=r=r||N;if(r.nodeType===3||r.nodeType===8)return;if(Z.test(v+p.event.triggered))return;v.indexOf(".")>=0&&(m=v.split("."),v=m.shift(),m.sort()),o=v.indexOf(":")<0&&"on"+v,t=t[p.expando]?t:new p.Event(v,typeof t=="object"&&t),t.isTrigger=i?2:3,t.namespace=m.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=n==null?[t]:p.makeArray(n,[t]),l=p.event.special[v]||{};if(!i&&l.trigger&&l.trigger.apply(r,n)===!1)return;if(!i&&!l.noBubble&&!p.isWindow(r)){a=l.delegateType||v,Z.test(a+v)||(u=u.parentNode);for(;u;u=u.parentNode)d.push(u),c=u;c===(r.ownerDocument||N)&&d.push(c.defaultView||c.parentWindow||e)}h=0;while((u=d[h++])&&!t.isPropagationStopped())t.type=h>1?a:l.bindType||v,s=(p._data(u,"events")||{})[t.type]&&p._data(u,"handle"),s&&s.apply(u,n),s=o&&u[o],s&&s.apply&&p.acceptData(u)&&(t.result=s.apply(u,n),t.result===!1&&t.preventDefault());t.type=v;if(!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&p.acceptData(r)&&o&&r[v]&&!p.isWindow(r)){c=r[o],c&&(r[o]=null),p.event.triggered=v;try{r[v]()}catch(g){}p.event.triggered=undefined,c&&(r[o]=c)}return t.result},dispatch:function(e){e=p.event.fix(e);var t,n,i,s,o,u=[],a=r.call(arguments),f=(p._data(this,"events")||{})[e.type]||[],l=p.event.special[e.type]||{};a[0]=e,e.delegateTarget=this;if(l.preDispatch&&l.preDispatch.call(this,e)===!1)return;u=p.event.handlers.call(this,e,f),t=0;while((s=u[t++])&&!e.isPropagationStopped()){e.currentTarget=s.elem,o=0;while((i=s.handlers[o++])&&!e.isImmediatePropagationStopped())if(!e.namespace_re||e.namespace_re.test(i.namespace))e.handleObj=i,e.data=i.data,n=((p.event.special[i.origType]||{}).handle||i.handler).apply(s.elem,a),n!==undefined&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation())}return l.postDispatch&&l.postDispatch.call(this,e),e.result},handlers:function(e,t){var n,r,i,s,o=[],u=t.delegateCount,a=e.target;if(u&&a.nodeType&&(!e.button||e.type!=="click"))for(;a!=this;a=a.parentNode||this)if(a.nodeType===1&&(a.disabled!==!0||e.type!=="click")){i=[];for(s=0;s<u;s++)r=t[s],n=r.selector+" ",i[n]===undefined&&(i[n]=r.needsContext?p(n,this).index(a)>=0:p.find(n,this,null,[a]).length),i[n]&&i.push(r);i.length&&o.push({elem:a,handlers:i})}return u<t.length&&o.push({elem:this,handlers:t.slice(u)}),o},fix:function(e){if(e[p.expando])return e;var t,n,r,i=e.type,s=e,o=this.fixHooks[i];o||(this.fixHooks[i]=o=Y.test(i)?this.mouseHooks:G.test(i)?this.keyHooks:{}),r=o.props?this.props.concat(o.props):this.props,e=new p.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=s.srcElement||N),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,o.filter?o.filter(e,s):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button,o=t.fromElement;return e.pageX==null&&t.clientX!=null&&(r=e.target.ownerDocument||N,i=r.documentElement,n=r.body,e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&o&&(e.relatedTarget=o===e.target?t.toElement:o),!e.which&&s!==undefined&&(e.which=s&1?1:s&2?3:s&4?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==rt()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){if(this===rt()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if(p.nodeName(this,"input")&&this.type==="checkbox"&&this.click)return this.click(),!1},_default:function(e){return p.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=p.extend(new p.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?p.event.trigger(i,null,t):p.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},p.removeEvent=N.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===j&&(e[r]=null),e.detachEvent(r,n))},p.Event=function(e,t){if(!(this instanceof p.Event))return new p.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.defaultPrevented===undefined&&(e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault())?tt:nt):this.type=e,t&&p.extend(this,t),this.timeStamp=e&&e.timeStamp||p.now(),this[p.expando]=!0},p.Event.prototype={isDefaultPrevented:nt,isPropagationStopped:nt,isImmediatePropagationStopped:nt,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=tt;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=tt;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()}},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){p.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj;if(!i||i!==r&&!p.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),c.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=p.nodeName(t,"input")||p.nodeName(t,"button")?t.form:undefined;n&&!p._data(n,"submitBubbles")&&(p.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),p._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&p.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),c.changeBubbles||(p.event.special.change={setup:function(){if(Q.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,e,!0)});return!1}p.event.add(this,"beforeactivate._change",function(e){var t=e.target;Q.test(t.nodeName)&&!p._data(t,"changeBubbles")&&(p.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&p.event.simulate("change",this.parentNode,e,!0)}),p._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),!Q.test(this.nodeName)}}),c.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){p.event.simulate(t,e.target,p.event.fix(e),!0)};p.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=p._data(r,t);i||r.addEventListener(e,n,!0),p._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=p._data(r,t)-1;i?p._data(r,t,i):(r.removeEventListener(e,n,!0),p._removeData(r,t))}}}),p.fn.extend({on:function(e,t,n,r,i){var s,o;if(typeof e=="object"){typeof t!="string"&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}n==null&&r==null?(r=t,n=t=undefined):r==null&&(typeof t=="string"?(r=n,n=undefined):(r=n,n=t,t=undefined));if(r===!1)r=nt;else if(!r)return this;return i===1&&(o=r,r=function(e){return p().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=p.guid++)),this.each(function(){p.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,p(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if(typeof e=="object"){for(i in e)this.off(i,t,e[i]);return this}if(t===!1||typeof t=="function")n=t,t=undefined;return n===!1&&(n=nt),this.each(function(){p.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){p.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return p.event.trigger(e,t,n,!0)}});var st="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ot=/ jQuery\d+="(?:null|\d+)"/g,ut=new RegExp("<(?:"+st+")[\\s/>]","i"),at=/^\s+/,ft=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,lt=/<([\w:]+)/,ct=/<tbody/i,ht=/<|&#?\w+;/,pt=/<(?:script|style|link)/i,dt=/checked\s*(?:[^=]|=\s*.checked.)/i,vt=/^$|\/(?:java|ecma)script/i,mt=/^true\/(.*)/,gt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,yt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:c.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},bt=it(N),wt=bt.appendChild(N.createElement("div"));yt.optgroup=yt.option,yt.tbody=yt.tfoot=yt.colgroup=yt.caption=yt.thead,yt.th=yt.td,p.extend({clone:function(e,t,n){var r,i,s,o,u,a=p.contains(e.ownerDocument,e);c.html5Clone||p.isXMLDoc(e)||!ut.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(wt.innerHTML=e.outerHTML,wt.removeChild(s=wt.firstChild));if((!c.noCloneEvent||!c.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!p.isXMLDoc(e)){r=Et(s),u=Et(e);for(o=0;(i=u[o])!=null;++o)r[o]&&Lt(i,r[o])}if(t)if(n){u=u||Et(e),r=r||Et(s);for(o=0;(i=u[o])!=null;o++)kt(i,r[o])}else kt(e,s);return r=Et(s,"script"),r.length>0&&Ct(r,!a&&Et(e,"script")),r=u=i=null,s},buildFragment:function(e,t,n,r){var i,s,o,u,a,f,l,h=e.length,d=it(t),v=[],m=0;for(;m<h;m++){s=e[m];if(s||s===0)if(p.type(s)==="object")p.merge(v,s.nodeType?[s]:s);else if(!ht.test(s))v.push(t.createTextNode(s));else{u=u||d.appendChild(t.createElement("div")),a=(lt.exec(s)||["",""])[1].toLowerCase(),l=yt[a]||yt._default,u.innerHTML=l[1]+s.replace(ft,"<$1></$2>")+l[2],i=l[0];while(i--)u=u.lastChild;!c.leadingWhitespace&&at.test(s)&&v.push(t.createTextNode(at.exec(s)[0]));if(!c.tbody){s=a==="table"&&!ct.test(s)?u.firstChild:l[1]==="<table>"&&!ct.test(s)?u:0,i=s&&s.childNodes.length;while(i--)p.nodeName(f=s.childNodes[i],"tbody")&&!f.childNodes.length&&s.removeChild(f)}p.merge(v,u.childNodes),u.textContent="";while(u.firstChild)u.removeChild(u.firstChild);u=d.lastChild}}u&&d.removeChild(u),c.appendChecked||p.grep(Et(v,"input"),St),m=0;while(s=v[m++]){if(r&&p.inArray(s,r)!==-1)continue;o=p.contains(s.ownerDocument,s),u=Et(d.appendChild(s),"script"),o&&Ct(u);if(n){i=0;while(s=u[i++])vt.test(s.type||"")&&n.push(s)}}return u=null,d},cleanData:function(e,t){var r,i,s,o,u=0,a=p.expando,f=p.cache,l=c.deleteExpando,h=p.event.special;for(;(r=e[u])!=null;u++)if(t||p.acceptData(r)){s=r[a],o=s&&f[s];if(o){if(o.events)for(i in o.events)h[i]?p.event.remove(r,i):p.removeEvent(r,i,o.handle);f[s]&&(delete f[s],l?delete r[a]:typeof r.removeAttribute!==j?r.removeAttribute(a):r[a]=null,n.push(s))}}}}),p.fn.extend({text:function(e){return J(this,function(e){return e===undefined?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||N).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=xt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=xt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?p.filter(e,this):this,i=0;for(;(n=r[i])!=null;i++)!t&&n.nodeType===1&&p.cleanData(Et(n)),n.parentNode&&(t&&p.contains(n.ownerDocument,n)&&Ct(Et(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&p.cleanData(Et(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&p.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return p.clone(this,e,t)})},html:function(e){return J(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined)return t.nodeType===1?t.innerHTML.replace(ot,""):undefined;if(typeof e=="string"&&!pt.test(e)&&(c.htmlSerialize||!ut.test(e))&&(c.leadingWhitespace||!at.test(e))&&!yt[(lt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(ft,"<$1></$2>");try{for(;n<r;n++)t=this[n]||{},t.nodeType===1&&(p.cleanData(Et(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,p.cleanData(Et(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=i.apply([],e);var n,r,s,o,u,a,f=0,l=this.length,h=this,d=l-1,v=e[0],m=p.isFunction(v);if(m||l>1&&typeof v=="string"&&!c.checkClone&&dt.test(v))return this.each(function(n){var r=h.eq(n);m&&(e[0]=v.call(this,n,r.html())),r.domManip(e,t)});if(l){a=p.buildFragment(e,this[0].ownerDocument,!1,this),n=a.firstChild,a.childNodes.length===1&&(a=n);if(n){o=p.map(Et(a,"script"),Tt),s=o.length;for(;f<l;f++)r=a,f!==d&&(r=p.clone(r,!0,!0),s&&p.merge(o,Et(r,"script"))),t.call(this[f],r,f);if(s){u=o[o.length-1].ownerDocument,p.map(o,Nt);for(f=0;f<s;f++)r=o[f],vt.test(r.type||"")&&!p._data(r,"globalEval")&&p.contains(u,r)&&(r.src?p._evalUrl&&p._evalUrl(r.src):p.globalEval((r.text||r.textContent||r.innerHTML||"").replace(gt,"")))}a=n=null}}return this}}),p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){p.fn[e]=function(e){var n,r=0,i=[],o=p(e),u=o.length-1;for(;r<=u;r++)n=r===u?this:this.clone(!0),p(o[r])[t](n),s.apply(i,n.get());return this.pushStack(i)}});var At,Ot={};(function(){var e,t,n=N.createElement("div"),r="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";n.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=n.getElementsByTagName("a")[0],e.style.cssText="float:left;opacity:.5",c.opacity=/^0.5/.test(e.style.opacity),c.cssFloat=!!e.style.cssFloat,n.style.backgroundClip="content-box",n.cloneNode(!0).style.backgroundClip="",c.clearCloneStyle=n.style.backgroundClip==="content-box",e=n=null,c.shrinkWrapBlocks=function(){var e,n,i,s;if(t==null){e=N.getElementsByTagName("body")[0];if(!e)return;s="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",n=N.createElement("div"),i=N.createElement("div"),e.appendChild(n).appendChild(i),t=!1,typeof i.style.zoom!==j&&(i.style.cssText=r+";width:1px;padding:1px;zoom:1",i.innerHTML="<div></div>",i.firstChild.style.width="5px",t=i.offsetWidth!==3),e.removeChild(n),e=n=i=null}return t}})();var Dt=/^margin/,Pt=new RegExp("^("+X+")(?!px)[a-z%]+$","i"),Ht,Bt,jt=/^(top|right|bottom|left)$/;e.getComputedStyle?(Ht=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)},Bt=function(e,t,n){var r,i,s,o,u=e.style;return n=n||Ht(e),o=n?n.getPropertyValue(t)||n[t]:undefined,n&&(o===""&&!p.contains(e.ownerDocument,e)&&(o=p.style(e,t)),Pt.test(o)&&Dt.test(t)&&(r=u.width,i=u.minWidth,s=u.maxWidth,u.minWidth=u.maxWidth=u.width=o,o=n.width,u.width=r,u.minWidth=i,u.maxWidth=s)),o===undefined?o:o+""}):N.documentElement.currentStyle&&(Ht=function(e){return e.currentStyle},Bt=function(e,t,n){var r,i,s,o,u=e.style;return n=n||Ht(e),o=n?n[t]:undefined,o==null&&u&&u[t]&&(o=u[t]),Pt.test(o)&&!jt.test(t)&&(r=u.left,i=e.runtimeStyle,s=i&&i.left,s&&(i.left=e.currentStyle.left),u.left=t==="fontSize"?"1em":o,o=u.pixelLeft+"px",u.left=r,s&&(i.left=s)),o===undefined?o:o+""||"auto"}),function(){function l(){var t,n,u=N.getElementsByTagName("body")[0];if(!u)return;t=N.createElement("div"),n=N.createElement("div"),t.style.cssText=a,u.appendChild(t).appendChild(n),n.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",p.swap(u,u.style.zoom!=null?{zoom:1}:{},function(){r=n.offsetWidth===4}),i=!0,s=!1,o=!0,e.getComputedStyle&&(s=(e.getComputedStyle(n,null)||{}).top!=="1%",i=(e.getComputedStyle(n,null)||{width:"4px"}).width==="4px"),u.removeChild(t),n=u=null}var t,n,r,i,s,o,u=N.createElement("div"),a="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",f="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";u.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",t=u.getElementsByTagName("a")[0],t.style.cssText="float:left;opacity:.5",c.opacity=/^0.5/.test(t.style.opacity),c.cssFloat=!!t.style.cssFloat,u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",c.clearCloneStyle=u.style.backgroundClip==="content-box",t=u=null,p.extend(c,{reliableHiddenOffsets:function(){if(n!=null)return n;var e,t,r,i=N.createElement("div"),s=N.getElementsByTagName("body")[0];if(!s)return;return i.setAttribute("className","t"),i.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=N.createElement("div"),e.style.cssText=a,s.appendChild(e).appendChild(i),i.innerHTML="<table><tr><td></td><td>t</td></tr></table>",t=i.getElementsByTagName("td"),t[0].style.cssText="padding:0;margin:0;border:0;display:none",r=t[0].offsetHeight===0,t[0].style.display="",t[1].style.display="none",n=r&&t[0].offsetHeight===0,s.removeChild(e),i=s=null,n},boxSizing:function(){return r==null&&l(),r},boxSizingReliable:function(){return i==null&&l(),i},pixelPosition:function(){return s==null&&l(),s},reliableMarginRight:function(){var t,n,r,i;if(o==null&&e.getComputedStyle){t=N.getElementsByTagName("body")[0];if(!t)return;n=N.createElement("div"),r=N.createElement("div"),n.style.cssText=a,t.appendChild(n).appendChild(r),i=r.appendChild(N.createElement("div")),i.style.cssText=r.style.cssText=f,i.style.marginRight=i.style.width="0",r.style.width="1px",o=!parseFloat((e.getComputedStyle(i,null)||{}).marginRight),t.removeChild(n)}return o}})}(),p.swap=function(e,t,n,r){var i,s,o={};for(s in t)o[s]=e.style[s],e.style[s]=t[s];i=n.apply(e,r||[]);for(s in t)e.style[s]=o[s];return i};var It=/alpha\([^)]*\)/i,qt=/opacity\s*=\s*([^)]*)/,Rt=/^(none|table(?!-c[ea]).+)/,Ut=new RegExp("^("+X+")(.*)$","i"),zt=new RegExp("^([+-])=("+X+")","i"),Wt={position:"absolute",visibility:"hidden",display:"block"},Xt={letterSpacing:0,fontWeight:400},Vt=["Webkit","O","Moz","ms"];p.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Bt(e,"opacity");return n===""?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":c.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var i,s,o,u=p.camelCase(t),a=e.style;t=p.cssProps[u]||(p.cssProps[u]=$t(a,u)),o=p.cssHooks[t]||p.cssHooks[u];if(n===undefined)return o&&"get"in o&&(i=o.get(e,!1,r))!==undefined?i:a[t];s=typeof n,s==="string"&&(i=zt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(p.css(e,t)),s="number");if(n==null||n!==n)return;s==="number"&&!p.cssNumber[u]&&(n+="px"),!c.clearCloneStyle&&n===""&&t.indexOf("background")===0&&(a[t]="inherit");if(!o||!("set"in o)||(n=o.set(e,n,r))!==undefined)try{a[t]="",a[t]=n}catch(f){}},css:function(e,t,n,r){var i,s,o,u=p.camelCase(t);return t=p.cssProps[u]||(p.cssProps[u]=$t(e.style,u)),o=p.cssHooks[t]||p.cssHooks[u],o&&"get"in o&&(s=o.get(e,!0,n)),s===undefined&&(s=Bt(e,t,r)),s==="normal"&&t in Xt&&(s=Xt[t]),n===""||n?(i=parseFloat(s),n===!0||p.isNumeric(i)?i||0:s):s}}),p.each(["height","width"],function(e,t){p.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&Rt.test(p.css(e,"display"))?p.swap(e,Wt,function(){return Gt(e,t,r)}):Gt(e,t,r)},set:function(e,n,r){var i=r&&Ht(e);return Kt(e,n,r?Qt(e,t,r,c.boxSizing()&&p.css(e,"boxSizing",!1,i)==="border-box",i):0)}}}),c.opacity||(p.cssHooks.opacity={get:function(e,t){return qt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=p.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if((t>=1||t==="")&&p.trim(s.replace(It,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(t===""||r&&!r.filter)return}n.filter=It.test(s)?s.replace(It,i):s+" "+i}}),p.cssHooks.marginRight=Ft(c.reliableMarginRight,function(e,t){if(t)return p.swap(e,{display:"inline-block"},Bt,[e,"marginRight"])}),p.each({margin:"",padding:"",border:"Width"},function(e,t){p.cssHooks[e+t]={expand:function(n){var r=0,i={},s=typeof n=="string"?n.split(" "):[n];for(;r<4;r++)i[e+V[r]+t]=s[r]||s[r-2]||s[0];return i}},Dt.test(e)||(p.cssHooks[e+t].set=Kt)}),p.fn.extend({css:function(e,t){return J(this,function(e,t,n){var r,i,s={},o=0;if(p.isArray(t)){r=Ht(e),i=t.length;for(;o<i;o++)s[t[o]]=p.css(e,t[o],!1,r);return s}return n!==undefined?p.style(e,t,n):p.css(e,t)},e,t,arguments.length>1)},show:function(){return Jt(this,!0)},hide:function(){return Jt(this)},toggle:function(e){return typeof e=="boolean"?e?this.show():this.hide():this.each(function(){$(this)?p(this).show():p(this).hide()})}}),p.Tween=Yt,Yt.prototype={constructor:Yt,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(p.cssNumber[n]?"":"px")},cur:function(){var e=Yt.propHooks[this.prop];return e&&e.get?e.get(this):Yt.propHooks._default.get(this)},run:function(e){var t,n=Yt.propHooks[this.prop];return this.options.duration?this.pos=t=p.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yt.propHooks._default.set(this),this}},Yt.prototype.init.prototype=Yt.prototype,Yt.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=p.css(e.elem,e.prop,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){p.fx.step[e.prop]?p.fx.step[e.prop](e):e.elem.style&&(e.elem.style[p.cssProps[e.prop]]!=null||p.cssHooks[e.prop])?p.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yt.propHooks.scrollTop=Yt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},p.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},p.fx=Yt.prototype.init,p.fx.step={};var Zt,en,tn=/^(?:toggle|show|hide)$/,nn=new RegExp("^(?:([+-])=|)("+X+")([a-z%]*)$","i"),rn=/queueHooks$/,sn=[ln],on={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=nn.exec(t),s=i&&i[3]||(p.cssNumber[e]?"":"px"),o=(p.cssNumber[e]||s!=="px"&&+r)&&nn.exec(p.css(n.elem,e)),u=1,a=20;if(o&&o[3]!==s){s=s||o[3],i=i||[],o=+r||1;do u=u||".5",o/=u,p.style(n.elem,e,o+s);while(u!==(u=n.cur()/r)&&u!==1&&--a)}return i&&(o=n.start=+o||+r||0,n.unit=s,n.end=i[1]?o+(i[1]+1)*i[2]:+i[2]),n}]};p.Animation=p.extend(hn,{tweener:function(e,t){p.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],on[n]=on[n]||[],on[n].unshift(t)},prefilter:function(e,t){t?sn.unshift(e):sn.push(e)}}),p.speed=function(e,t,n){var r=e&&typeof e=="object"?p.extend({},e):{complete:n||!n&&t||p.isFunction(e)&&e,duration:e,easing:n&&t||t&&!p.isFunction(t)&&t};r.duration=p.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in p.fx.speeds?p.fx.speeds[r.duration]:p.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){p.isFunction(r.old)&&r.old.call(this),r.queue&&p.dequeue(this,r.queue)},r},p.fn.extend({fadeTo:function(e,t,n,r){return this.filter($).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=p.isEmptyObject(e),s=p.speed(t,n,r),o=function(){var t=hn(this,p.extend({},e),s);(i||p._data(this,"finish"))&&t.stop(!0)};return o.finish=o,i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return typeof e!="string"&&(n=t,t=e,e=undefined),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=e!=null&&e+"queueHooks",s=p.timers,o=p._data(this);if(i)o[i]&&o[i].stop&&r(o[i]);else for(i in o)o[i]&&o[i].stop&&rn.test(i)&&r(o[i]);for(i=s.length;i--;)s[i].elem===this&&(e==null||s[i].queue===e)&&(s[i].anim.stop(n),t=!1,s.splice(i,1));(t||!n)&&p.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=p._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],s=p.timers,o=r?r.length:0;n.finish=!0,p.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0);for(t=s.length;t--;)s[t].elem===this&&s[t].queue===e&&(s[t].anim.stop(!0),s.splice(t,1));for(t=0;t<o;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),p.each(["toggle","show","hide"],function(e,t){var n=p.fn[t];p.fn[t]=function(e,r,i){return e==null||typeof e=="boolean"?n.apply(this,arguments):this.animate(an(t,!0),e,r,i)}}),p.each({slideDown:an("show"),slideUp:an("hide"),slideToggle:an("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){p.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),p.timers=[],p.fx.tick=function(){var e,t=p.timers,n=0;Zt=p.now();for(;n<t.length;n++)e=t[n],!e()&&t[n]===e&&t.splice(n--,1);t.length||p.fx.stop(),Zt=undefined},p.fx.timer=function(e){p.timers.push(e),e()?p.fx.start():p.timers.pop()},p.fx.interval=13,p.fx.start=function(){en||(en=setInterval(p.fx.tick,p.fx.interval))},p.fx.stop=function(){clearInterval(en),en=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fn.delay=function(e,t){return e=p.fx?p.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e,t,n,r,i=N.createElement("div");i.setAttribute("className","t"),i.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=i.getElementsByTagName("a")[0],n=N.createElement("select"),r=n.appendChild(N.createElement("option")),t=i.getElementsByTagName("input")[0],e.style.cssText="top:1px",c.getSetAttribute=i.className!=="t",c.style=/top/.test(e.getAttribute("style")),c.hrefNormalized=e.getAttribute("href")==="/a",c.checkOn=!!t.value,c.optSelected=r.selected,c.enctype=!!N.createElement("form").enctype,n.disabled=!0,c.optDisabled=!r.disabled,t=N.createElement("input"),t.setAttribute("value",""),c.input=t.getAttribute("value")==="",t.value="t",t.setAttribute("type","radio"),c.radioValue=t.value==="t",e=t=n=r=i=null}();var pn=/\r/g;p.fn.extend({val:function(e){var t,n,r,i=this[0];if(!arguments.length){if(i)return t=p.valHooks[i.type]||p.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,typeof n=="string"?n.replace(pn,""):n==null?"":n);return}return r=p.isFunction(e),this.each(function(n){var i;if(this.nodeType!==1)return;r?i=e.call(this,n,p(this).val()):i=e,i==null?i="":typeof i=="number"?i+="":p.isArray(i)&&(i=p.map(i,function(e){return e==null?"":e+""})),t=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!t||!("set"in t)||t.set(this,i,"value")===undefined)this.value=i})}}),p.extend({valHooks:{option:{get:function(e){var t=p.find.attr(e,"value");return t!=null?t:p.text(e)}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(c.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!p.nodeName(n.parentNode,"optgroup"))){t=p(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n,r,i=e.options,s=p.makeArray(t),o=i.length;while(o--){r=i[o];if(p.inArray(p.valHooks.option.get(r),s)>=0)try{r.selected=n=!0}catch(u){r.scrollHeight}else r.selected=!1}return n||(e.selectedIndex=-1),i}}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]={set:function(e,t){if(p.isArray(t))return e.checked=p.inArray(p(e).val(),t)>=0}},c.checkOn||(p.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value})});var dn,vn,mn=p.expr.attrHandle,gn=/^(?:checked|selected)$/i,yn=c.getSetAttribute,bn=c.input;p.fn.extend({attr:function(e,t){return J(this,p.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){p.removeAttr(this,e)})}}),p.extend({attr:function(e,t,n){var r,i,s=e.nodeType;if(!e||s===3||s===8||s===2)return;if(typeof e.getAttribute===j)return p.prop(e,t,n);if(s!==1||!p.isXMLDoc(e))t=t.toLowerCase(),r=p.attrHooks[t]||(p.expr.match.bool.test(t)?vn:dn);if(n===undefined)return r&&"get"in r&&(i=r.get(e,t))!==null?i:(i=p.find.attr(e,t),i==null?undefined:i);if(n!==null)return r&&"set"in r&&(i=r.set(e,n,t))!==undefined?i:(e.setAttribute(t,n+""),n);p.removeAttr(e,t)},removeAttr:function(e,t){var n,r,i=0,s=t&&t.match(M);if(s&&e.nodeType===1)while(n=s[i++])r=p.propFix[n]||n,p.expr.match.bool.test(n)?bn&&yn||!gn.test(n)?e[r]=!1:e[p.camelCase("default-"+n)]=e[r]=!1:p.attr(e,n,""),e.removeAttribute(yn?n:r)},attrHooks:{type:{set:function(e,t){if(!c.radioValue&&t==="radio"&&p.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),vn={set:function(e,t,n){return t===!1?p.removeAttr(e,n):bn&&yn||!gn.test(n)?e.setAttribute(!yn&&p.propFix[n]||n,n):e[p.camelCase("default-"+n)]=e[n]=!0,n}},p.each(p.expr.match.bool.source.match(/\w+/g),function(e,t){var n=mn[t]||p.find.attr;mn[t]=bn&&yn||!gn.test(t)?function(e,t,r){var i,s;return r||(s=mn[t],mn[t]=i,i=n(e,t,r)!=null?t.toLowerCase():null,mn[t]=s),i}:function(e,t,n){if(!n)return e[p.camelCase("default-"+t)]?t.toLowerCase():null}});if(!bn||!yn)p.attrHooks.value={set:function(e,t,n){if(!p.nodeName(e,"input"))return dn&&dn.set(e,t,n);e.defaultValue=t}};yn||(dn={set:function(e,t,n){var r=e.getAttributeNode(n);r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="";if(n==="value"||t===e.getAttribute(n))return t}},mn.id=mn.name=mn.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&r.value!==""?r.value:null},p.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:dn.set},p.attrHooks.contenteditable={set:function(e,t,n){dn.set(e,t===""?!1:t,n)}},p.each(["width","height"],function(e,t){p.attrHooks[t]={set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}}})),c.style||(p.attrHooks.style={get:function(e){return e.style.cssText||undefined},set:function(e,t){return e.style.cssText=t+""}});var wn=/^(?:input|select|textarea|button|object)$/i,En=/^(?:a|area)$/i;p.fn.extend({prop:function(e,t){return J(this,p.prop,e,t,arguments.length>1)},removeProp:function(e){return e=p.propFix[e]||e,this.each(function(){try{this[e]=undefined,delete this[e]}catch(t){}})}}),p.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,s,o=e.nodeType;if(!e||o===3||o===8||o===2)return;return s=o!==1||!p.isXMLDoc(e),s&&(t=p.propFix[t]||t,i=p.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&(r=i.get(e,t))!==null?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=p.find.attr(e,"tabindex");return t?parseInt(t,10):wn.test(e.nodeName)||En.test(e.nodeName)&&e.href?0:-1}}}}),c.hrefNormalized||p.each(["href","src"],function(e,t){p.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),c.optSelected||(p.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),p.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){p.propFix[this.toLowerCase()]=this}),c.enctype||(p.propFix.enctype="encoding");var Sn=/[\t\r\n\f]/g;p.fn.extend({addClass:function(e){var t,n,r,i,s,o,u=0,a=this.length,f=typeof e=="string"&&e;if(p.isFunction(e))return this.each(function(t){p(this).addClass(e.call(this,t,this.className))});if(f){t=(e||"").match(M)||[];for(;u<a;u++){n=this[u],r=n.nodeType===1&&(n.className?(" "+n.className+" ").replace(Sn," "):" ");if(r){s=0;while(i=t[s++])r.indexOf(" "+i+" ")<0&&(r+=i+" ");o=p.trim(r),n.className!==o&&(n.className=o)}}}return this},removeClass:function(e){var t,n,r,i,s,o,u=0,a=this.length,f=arguments.length===0||typeof e=="string"&&e;if(p.isFunction(e))return this.each(function(t){p(this).removeClass(e.call(this,t,this.className))});if(f){t=(e||"").match(M)||[];for(;u<a;u++){n=this[u],r=n.nodeType===1&&(n.className?(" "+n.className+" ").replace(Sn," "):"");if(r){s=0;while(i=t[s++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");o=e?p.trim(r):"",n.className!==o&&(n.className=o)}}}return this},toggleClass:function(e,t){var n=typeof e;return typeof t=="boolean"&&n==="string"?t?this.addClass(e):this.removeClass(e):p.isFunction(e)?this.each(function(n){p(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var t,r=0,i=p(this),s=e.match(M)||[];while(t=s[r++])i.hasClass(t)?i.removeClass(t):i.addClass(t)}else if(n===j||n==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||e===!1?"":p._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(Sn," ").indexOf(t)>=0)return!0;return!1}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){p.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),p.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)}});var xn=p.now(),Tn=/\?/,Nn=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;p.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=p.trim(t+"");return i&&!p.trim(i.replace(Nn,function(e,t,i,s){return n&&t&&(r=0),r===0?e:(n=i||t,r+=!s-!i,"")}))?Function("return "+i)():p.error("Invalid JSON: "+t)},p.parseXML=function(t){var n,r;if(!t||typeof t!="string")return null;try{e.DOMParser?(r=new DOMParser,n=r.parseFromString(t,"text/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=undefined}return(!n||!n.documentElement||n.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+t),n};var Cn,kn,Ln=/#.*$/,An=/([?&])_=[^&]*/,On=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,Mn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,_n=/^(?:GET|HEAD)$/,Dn=/^\/\//,Pn=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hn={},Bn={},jn="*/".concat("*");try{kn=location.href}catch(Fn){kn=N.createElement("a"),kn.href="",kn=kn.href}Cn=Pn.exec(kn.toLowerCase())||[],p.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:kn,type:"GET",isLocal:Mn.test(Cn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":jn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Rn(Rn(e,p.ajaxSettings),t):Rn(p.ajaxSettings,e)},ajaxPrefilter:In(Hn),ajaxTransport:In(Bn),ajax:function(e,t){function x(e,t,n,r){var f,g,y,w,S,x=t;if(b===2)return;b=2,o&&clearTimeout(o),a=undefined,s=r||"",E.readyState=e>0?4:0,f=e>=200&&e<300||e===304,n&&(w=Un(l,E,n)),w=zn(l,w,E,f);if(f)l.ifModified&&(S=E.getResponseHeader("Last-Modified"),S&&(p.lastModified[i]=S),S=E.getResponseHeader("etag"),S&&(p.etag[i]=S)),e===204||l.type==="HEAD"?x="nocontent":e===304?x="notmodified":(x=w.state,g=w.data,y=w.error,f=!y);else{y=x;if(e||!x)x="error",e<0&&(e=0)}E.status=e,E.statusText=(t||x)+"",f?d.resolveWith(c,[g,x,E]):d.rejectWith(c,[E,x,y]),E.statusCode(m),m=undefined,u&&h.trigger(f?"ajaxSuccess":"ajaxError",[E,l,f?g:y]),v.fireWith(c,[E,x]),u&&(h.trigger("ajaxComplete",[E,l]),--p.active||p.event.trigger("ajaxStop"))}typeof e=="object"&&(t=e,e=undefined),t=t||{};var n,r,i,s,o,u,a,f,l=p.ajaxSetup({},t),c=l.context||l,h=l.context&&(c.nodeType||c.jquery)?p(c):p.event,d=p.Deferred(),v=p.Callbacks("once memory"),m=l.statusCode||{},g={},y={},b=0,w="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(b===2){if(!f){f={};while(t=On.exec(s))f[t[1].toLowerCase()]=t[2]}t=f[e.toLowerCase()]}return t==null?null:t},getAllResponseHeaders:function(){return b===2?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,g[e]=t),this},overrideMimeType:function(e){return b||(l.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)m[t]=[m[t],e[t]];else E.always(e[E.status]);return this},abort:function(e){var t=e||w;return a&&a.abort(t),x(0,t),this}};d.promise(E).complete=v.add,E.success=E.done,E.error=E.fail,l.url=((e||l.url||kn)+"").replace(Ln,"").replace(Dn,Cn[1]+"//"),l.type=t.method||t.type||l.method||l.type,l.dataTypes=p.trim(l.dataType||"*").toLowerCase().match(M)||[""],l.crossDomain==null&&(n=Pn.exec(l.url.toLowerCase()),l.crossDomain=!(!n||n[1]===Cn[1]&&n[2]===Cn[2]&&(n[3]||(n[1]==="http:"?"80":"443"))===(Cn[3]||(Cn[1]==="http:"?"80":"443")))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),qn(Hn,l,t,E);if(b===2)return E;u=l.global,u&&p.active++===0&&p.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!_n.test(l.type),i=l.url,l.hasContent||(l.data&&(i=l.url+=(Tn.test(i)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=An.test(i)?i.replace(An,"$1_="+xn++):i+(Tn.test(i)?"&":"?")+"_="+xn++)),l.ifModified&&(p.lastModified[i]&&E.setRequestHeader("If-Modified-Since",p.lastModified[i]),p.etag[i]&&E.setRequestHeader("If-None-Match",p.etag[i])),(l.data&&l.hasContent&&l.contentType!==!1||t.contentType)&&E.setRequestHeader("Content-Type",l.contentType),E.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+jn+"; q=0.01":""):l.accepts["*"]);for(r in l.headers)E.setRequestHeader(r,l.headers[r]);if(!l.beforeSend||l.beforeSend.call(c,E,l)!==!1&&b!==2){w="abort";for(r in{success:1,error:1,complete:1})E[r](l[r]);a=qn(Bn,l,t,E);if(!a)x(-1,"No Transport");else{E.readyState=1,u&&h.trigger("ajaxSend",[E,l]),l.async&&l.timeout>0&&(o=setTimeout(function(){E.abort("timeout")},l.timeout));try{b=1,a.send(g,x)}catch(S){if(!(b<2))throw S;x(-1,S)}}return E}return E.abort()},getJSON:function(e,t,n){return p.get(e,t,n,"json")},getScript:function(e,t){return p.get(e,undefined,t,"script")}}),p.each(["get","post"],function(e,t){p[t]=function(e,n,r,i){return p.isFunction(n)&&(i=i||r,r=n,n=undefined),p.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),p.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){p.fn[t]=function(e){return this.on(t,e)}}),p._evalUrl=function(e){return p.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},p.fn.extend({wrapAll:function(e){if(p.isFunction(e))return this.each(function(t){p(this).wrapAll(e.call(this,t))});if(this[0]){var t=p(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return p.isFunction(e)?this.each(function(t){p(this).wrapInner(e.call(this,t))}):this.each(function(){var t=p(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=p.isFunction(e);return this.each(function(n){p(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()}}),p.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!c.reliableHiddenOffsets()&&(e.style&&e.style.display||p.css(e,"display"))==="none"},p.expr.filters.visible=function(e){return!p.expr.filters.hidden(e)};var Wn=/%20/g,Xn=/\[\]$/,Vn=/\r?\n/g,$n=/^(?:submit|button|image|reset|file)$/i,Jn=/^(?:input|select|textarea|keygen)/i;p.param=function(e,t){var n,r=[],i=function(e,t){t=p.isFunction(t)?t():t==null?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};t===undefined&&(t=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(e)||e.jquery&&!p.isPlainObject(e))p.each(e,function(){i(this.name,this.value)});else for(n in e)Kn(n,e[n],t,i);return r.join("&").replace(Wn,"+")},p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=p.prop(this,"elements");return e?p.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!p(this).is(":disabled")&&Jn.test(this.nodeName)&&!$n.test(e)&&(this.checked||!K.test(e))}).map(function(e,t){var n=p(this).val();return n==null?null:p.isArray(n)?p.map(n,function(e){return{name:t.name,value:e.replace(Vn,"\r\n")}}):{name:t.name,value:n.replace(Vn,"\r\n")}}).get()}}),p.ajaxSettings.xhr=e.ActiveXObject!==undefined?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zn()||er()}:Zn;var Qn=0,Gn={},Yn=p.ajaxSettings.xhr();e.ActiveXObject&&p(e).on("unload",function(){for(var e in Gn)Gn[e](undefined,!0)}),c.cors=!!Yn&&"withCredentials"in Yn,Yn=c.ajax=!!Yn,Yn&&p.ajaxTransport(function(e){if(!e.crossDomain||c.cors){var t;return{send:function(n,r){var i,s=e.xhr(),o=++Qn;s.open(e.type,e.url,e.async,e.username,e.password);if(e.xhrFields)for(i in e.xhrFields)s[i]=e.xhrFields[i];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),!e.crossDomain&&!n["X-Requested-With"]&&(n["X-Requested-With"]="XMLHttpRequest");for(i in n)n[i]!==undefined&&s.setRequestHeader(i,n[i]+"");s.send(e.hasContent&&e.data||null),t=function(n,i){var u,a,f;if(t&&(i||s.readyState===4)){delete Gn[o],t=undefined,s.onreadystatechange=p.noop;if(i)s.readyState!==4&&s.abort();else{f={},u=s.status,typeof s.responseText=="string"&&(f.text=s.responseText);try{a=s.statusText}catch(l){a=""}!u&&e.isLocal&&!e.crossDomain?u=f.text?200:404:u===1223&&(u=204)}}f&&r(u,a,f,s.getAllResponseHeaders())},e.async?s.readyState===4?setTimeout(t):s.onreadystatechange=Gn[o]=t:t()},abort:function(){t&&t(undefined,!0)}}}}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return p.globalEval(e),e}}}),p.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),p.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=N.head||p("head")[0]||N.documentElement;return{send:function(r,i){t=N.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){if(n||!t.readyState||/loaded|complete/.test(t.readyState))t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success")},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(undefined,!0)}}}});var tr=[],nr=/(=)\?(?=&|$)|\?\?/;p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=tr.pop()||p.expando+"_"+xn++;return this[e]=!0,e}}),p.ajaxPrefilter("json jsonp",function(t,n,r){var i,s,o,u=t.jsonp!==!1&&(nr.test(t.url)?"url":typeof t.data=="string"&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&nr.test(t.data)&&"data");if(u||t.dataTypes[0]==="jsonp")return i=t.jsonpCallback=p.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,u?t[u]=t[u].replace(nr,"$1"+i):t.jsonp!==!1&&(t.url+=(Tn.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return o||p.error(i+" was not called"),o[0]},t.dataTypes[0]="json",s=e[i],e[i]=function(){o=arguments},r.always(function(){e[i]=s,t[i]&&(t.jsonpCallback=n.jsonpCallback,tr.push(i)),o&&p.isFunction(s)&&s(o[0]),o=s=undefined}),"script"}),p.parseHTML=function(e,t,n){if(!e||typeof e!="string")return null;typeof t=="boolean"&&(n=t,t=!1),t=t||N;var r=E.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=p.buildFragment([e],t,i),i&&i.length&&p(i).remove(),p.merge([],r.childNodes))};var rr=p.fn.load;p.fn.load=function(e,t,n){if(typeof e!="string"&&rr)return rr.apply(this,arguments);var r,i,s,o=this,u=e.indexOf(" ");return u>=0&&(r=e.slice(u,e.length),e=e.slice(0,u)),p.isFunction(t)?(n=t,t=undefined):t&&typeof t=="object"&&(s="POST"),o.length>0&&p.ajax({url:e,type:s,dataType:"html",data:t}).done(function(e){i=arguments,o.html(r?p("<div>").append(p.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){o.each(n,i||[e.responseText,t,e])}),this},p.expr.filters.animated=function(e){return p.grep(p.timers,function(t){return e===t.elem}).length};var ir=e.document.documentElement;p.offset={setOffset:function(e,t,n){var r,i,s,o,u,a,f,l=p.css(e,"position"),c=p(e),h={};l==="static"&&(e.style.position="relative"),u=c.offset(),s=p.css(e,"top"),a=p.css(e,"left"),f=(l==="absolute"||l==="fixed")&&p.inArray("auto",[s,a])>-1,f?(r=c.position(),o=r.top,i=r.left):(o=parseFloat(s)||0,i=parseFloat(a)||0),p.isFunction(t)&&(t=t.call(e,n,u)),t.top!=null&&(h.top=t.top-u.top+o),t.left!=null&&(h.left=t.left-u.left+i),"using"in t?t.using.call(e,h):c.css(h)}},p.fn.extend({offset:function(e){if(arguments.length)return e===undefined?this:this.each(function(t){p.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],s=i&&i.ownerDocument;if(!s)return;return t=s.documentElement,p.contains(t,i)?(typeof i.getBoundingClientRect!==j&&(r=i.getBoundingClientRect()),n=sr(s),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(!this[0])return;var e,t,n={top:0,left:0},r=this[0];return p.css(r,"position")==="fixed"?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),p.nodeName(e[0],"html")||(n=e.offset()),n.top+=p.css(e[0],"borderTopWidth",!0),n.left+=p.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-p.css(r,"marginTop",!0),left:t.left-n.left-p.css(r,"marginLeft",!0)}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||ir;while(e&&!p.nodeName(e,"html")&&p.css(e,"position")==="static")e=e.offsetParent;return e||ir})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);p.fn[e]=function(r){return J(this,function(e,r,i){var s=sr(e);if(i===undefined)return s?t in s?s[t]:s.document.documentElement[r]:e[r];s?s.scrollTo(n?p(s).scrollLeft():i,n?i:p(s).scrollTop()):e[r]=i},e,r,arguments.length,null)}}),p.each(["top","left"],function(e,t){p.cssHooks[t]=Ft(c.pixelPosition,function(e,n){if(n)return n=Bt(e,t),Pt.test(n)?p(e).position()[t]+"px":n})}),p.each({Height:"height",Width:"width"},function(e,t){p.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){p.fn[r]=function(r,i){var s=arguments.length&&(n||typeof r!="boolean"),o=n||(r===!0||i===!0?"margin":"border");return J(this,function(t,n,r){var i;return p.isWindow(t)?t.document.documentElement["client"+e]:t.nodeType===9?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):r===undefined?p.css(t,n,o):p.style(t,n,r,o)},t,s?r:undefined,s,null)}})}),p.fn.size=function(){return this.length},p.fn.andSelf=p.fn.addBack,typeof define=="function"&&define.amd&&define("jquery",[],function(){return p});var or=e.jQuery,ur=e.$;return p.noConflict=function(t){return e.$===p&&(e.$=ur),t&&e.jQuery===p&&(e.jQuery=or),p},typeof t===j&&(e.jQuery=e.$=p),p}),define("jquery-private",["jquery"],function(e){return e.noConflict(!0)}),define("text",["module"],function(e){"use strict";var t,n,r,i,s,o=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],u=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,a=/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,f=typeof location!="undefined"&&location.href,l=f&&location.protocol&&location.protocol.replace(/\:/,""),c=f&&location.hostname,h=f&&(location.port||undefined),p={},d=e.config&&e.config()||{};t={version:"2.0.14",strip:function(e){if(e){e=e.replace(u,"");var t=e.match(a);t&&(e=t[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},createXhr:d.createXhr||function(){var e,t,n;if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")for(t=0;t<3;t+=1){n=o[t];try{e=new ActiveXObject(n)}catch(r){}if(e){o=[n];break}}return e},parseName:function(e){var t,n,r,i=!1,s=e.lastIndexOf("."),o=e.indexOf("./")===0||e.indexOf("../")===0;return s!==-1&&(!o||s>1)?(t=e.substring(0,s),n=e.substring(s+1)):t=e,r=n||t,s=r.indexOf("!"),s!==-1&&(i=r.substring(s+1)==="strip",r=r.substring(0,s),n?n=r:t=r),{moduleName:t,ext:n,strip:i}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,n,r,i){var s,o,u,a=t.xdRegExp.exec(e);return a?(s=a[2],o=a[3],o=o.split(":"),u=o[1],o=o[0],(!s||s===n)&&(!o||o.toLowerCase()===r.toLowerCase())&&(!u&&!o||u===i)):!0},finishLoad:function(e,n,r,i){r=n?t.strip(r):r,d.isBuild&&(p[e]=r),i(r)},load:function(e,n,r,i){if(i&&i.isBuild&&!i.inlineText){r();return}d.isBuild=i&&i.isBuild;var s=t.parseName(e),o=s.moduleName+(s.ext?"."+s.ext:""),u=n.toUrl(o),a=d.useXhr||t.useXhr;if(u.indexOf("empty:")===0){r();return}!f||a(u,l,c,h)?t.get(u,function(n){t.finishLoad(e,s.strip,n,r)},function(e){r.error&&r.error(e)}):n([o],function(e){t.finishLoad(s.moduleName+"."+s.ext,s.strip,e,r)})},write:function(e,n,r,i){if(p.hasOwnProperty(n)){var s=t.jsEscape(p[n]);r.asModule(e+"!"+n,"define(function () { return '"+s+"';});\n")}},writeFile:function(e,n,r,i,s){var o=t.parseName(n),u=o.ext?"."+o.ext:"",a=o.moduleName+u,f=r.toUrl(o.moduleName+u)+".js";t.load(a,r,function(n){var r=function(e){return i(f,e)};r.asModule=function(e,t){return i.asModule(e,f,t)},t.write(e,a,r,s)},s)}};if(d.env==="node"||!d.env&&typeof process!="undefined"&&process.versions&&!!process.versions.node&&!process.versions["node-webkit"]&&!process.versions["atom-shell"])n=require.nodeRequire("fs"),t.get=function(e,t,r){try{var i=n.readFileSync(e,"utf8");i[0]===""&&(i=i.substring(1)),t(i)}catch(s){r&&r(s)}};else if(d.env==="xhr"||!d.env&&t.createXhr())t.get=function(e,n,r,i){var s=t.createXhr(),o;s.open("GET",e,!0);if(i)for(o in i)i.hasOwnProperty(o)&&s.setRequestHeader(o.toLowerCase(),i[o]);d.onXhr&&d.onXhr(s,e),s.onreadystatechange=function(t){var i,o;s.readyState===4&&(i=s.status||0,i>399&&i<600?(o=new Error(e+" HTTP status: "+i),o.xhr=s,r&&r(o)):n(s.responseText),d.onXhrComplete&&d.onXhrComplete(s,e))},s.send(null)};else if(d.env==="rhino"||!d.env&&typeof Packages!="undefined"&&typeof java!="undefined")t.get=function(e,t){var n,r,i="utf-8",s=new java.io.File(e),o=java.lang.System.getProperty("line.separator"),u=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(s),i)),a="";try{n=new java.lang.StringBuffer,r=u.readLine(),r&&r.length()&&r.charAt(0)===65279&&(r=r.substring(1)),r!==null&&n.append(r);while((r=u.readLine())!==null)n.append(o),n.append(r);a=String(n.toString())}finally{u.close()}t(a)};else if(d.env==="xpconnect"||!d.env&&typeof Components!="undefined"&&Components.classes&&Components.interfaces)r=Components.classes,i=Components.interfaces,Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),s="@mozilla.org/windows-registry-key;1"in r,t.get=function(e,t){var n,o,u,a={};s&&(e=e.replace(/\//g,"\\")),u=new FileUtils.File(e);try{n=r["@mozilla.org/network/file-input-stream;1"].createInstance(i.nsIFileInputStream),n.init(u,1,0,!1),o=r["@mozilla.org/intl/converter-input-stream;1"].createInstance(i.nsIConverterInputStream),o.init(n,"utf-8",n.available(),i.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),o.readString(n.available(),a),o.close(),n.close(),t(a.value)}catch(f){throw new Error((u&&u.path||"")+": "+f)}};return t}),function(){function x(e){function t(t,n,r,i,s,o){for(;s>=0&&s<o;s+=e){var u=i?i[s]:s;r=n(r,t[u],u,t)}return r}return function(n,r,i,s){r=v(r,s,4);var o=!S(n)&&d.keys(n),u=(o||n).length,a=e>0?0:u-1;return arguments.length<3&&(i=n[o?o[a]:a],a+=e),t(n,r,i,o,a,u)}}function C(e){return function(t,n,r){n=m(n,r);var i=E(t),s=e>0?0:i-1;for(;s>=0&&s<i;s+=e)if(n(t[s],s,t))return s;return-1}}function k(e,t,n){return function(r,i,s){var u=0,a=E(r);if(typeof s=="number")e>0?u=s>=0?s:Math.max(s+a,u):a=s>=0?Math.min(s+1,a):s+a+1;else if(n&&s&&a)return s=n(r,i),r[s]===i?s:-1;if(i!==i)return s=t(o.call(r,u,a),d.isNaN),s>=0?s+u:-1;for(s=e>0?u:a-1;s>=0&&s<a;s+=e)if(r[s]===i)return s;return-1}}function M(e,t){var n=O.length,i=e.constructor,s=d.isFunction(i)&&i.prototype||r,o="constructor";d.has(e,o)&&!d.contains(t,o)&&t.push(o);while(n--)o=O[n],o in e&&e[o]!==s[o]&&!d.contains(t,o)&&t.push(o)}var e=this,t=e._,n=Array.prototype,r=Object.prototype,i=Function.prototype,s=n.push,o=n.slice,u=r.toString,a=r.hasOwnProperty,f=Array.isArray,l=Object.keys,c=i.bind,h=Object.create,p=function(){},d=function(e){if(e instanceof d)return e;if(!(this instanceof d))return new d(e);this._wrapped=e};typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=d),exports._=d):e._=d,d.VERSION="1.8.3";var v=function(e,t,n){if(t===void 0)return e;switch(n==null?3:n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,s){return e.call(t,n,r,i,s)}}return function(){return e.apply(t,arguments)}},m=function(e,t,n){return e==null?d.identity:d.isFunction(e)?v(e,t,n):d.isObject(e)?d.matcher(e):d.property(e)};d.iteratee=function(e,t){return m(e,t,Infinity)};var g=function(e,t){return function(n){var r=arguments.length;if(r<2||n==null)return n;for(var i=1;i<r;i++){var s=arguments[i],o=e(s),u=o.length;for(var a=0;a<u;a++){var f=o[a];if(!t||n[f]===void 0)n[f]=s[f]}}return n}},y=function(e){if(!d.isObject(e))return{};if(h)return h(e);p.prototype=e;var t=new p;return p.prototype=null,t},b=function(e){return function(t){return t==null?void 0:t[e]}},w=Math.pow(2,53)-1,E=b("length"),S=function(e){var t=E(e);return typeof t=="number"&&t>=0&&t<=w};d.each=d.forEach=function(e,t,n){t=v(t,n);var r,i;if(S(e))for(r=0,i=e.length;r<i;r++)t(e[r],r,e);else{var s=d.keys(e);for(r=0,i=s.length;r<i;r++)t(e[s[r]],s[r],e)}return e},d.map=d.collect=function(e,t,n){t=m(t,n);var r=!S(e)&&d.keys(e),i=(r||e).length,s=Array(i);for(var o=0;o<i;o++){var u=r?r[o]:o;s[o]=t(e[u],u,e)}return s},d.reduce=d.foldl=d.inject=x(1),d.reduceRight=d.foldr=x(-1),d.find=d.detect=function(e,t,n){var r;S(e)?r=d.findIndex(e,t,n):r=d.findKey(e,t,n);if(r!==void 0&&r!==-1)return e[r]},d.filter=d.select=function(e,t,n){var r=[];return t=m(t,n),d.each(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r},d.reject=function(e,t,n){return d.filter(e,d.negate(m(t)),n)},d.every=d.all=function(e,t,n){t=m(t,n);var r=!S(e)&&d.keys(e),i=(r||e).length;for(var s=0;s<i;s++){var o=r?r[s]:s;if(!t(e[o],o,e))return!1}return!0},d.some=d.any=function(e,t,n){t=m(t,n);var r=!S(e)&&d.keys(e),i=(r||e).length;for(var s=0;s<i;s++){var o=r?r[s]:s;if(t(e[o],o,e))return!0}return!1},d.contains=d.includes=d.include=function(e,t,n,r){S(e)||(e=d.values(e));if(typeof n!="number"||r)n=0;return d.indexOf(e,t,n)>=0},d.invoke=function(e,t){var n=o.call(arguments,2),r=d.isFunction(t);return d.map(e,function(e){var i=r?t:e[t];return i==null?i:i.apply(e,n)})},d.pluck=function(e,t){return d.map(e,d.property(t))},d.where=function(e,t){return d.filter(e,d.matcher(t))},d.findWhere=function(e,t){return d.find(e,d.matcher(t))},d.max=function(e,t,n){var r=-Infinity,i=-Infinity,s,o;if(t==null&&e!=null){e=S(e)?e:d.values(e);for(var u=0,a=e.length;u<a;u++)s=e[u],s>r&&(r=s)}else t=m(t,n),d.each(e,function(e,n,s){o=t(e,n,s);if(o>i||o===-Infinity&&r===-Infinity)r=e,i=o});return r},d.min=function(e,t,n){var r=Infinity,i=Infinity,s,o;if(t==null&&e!=null){e=S(e)?e:d.values(e);for(var u=0,a=e.length;u<a;u++)s=e[u],s<r&&(r=s)}else t=m(t,n),d.each(e,function(e,n,s){o=t(e,n,s);if(o<i||o===Infinity&&r===Infinity)r=e,i=o});return r},d.shuffle=function(e){var t=S(e)?e:d.values(e),n=t.length,r=Array(n);for(var i=0,s;i<n;i++)s=d.random(0,i),s!==i&&(r[i]=r[s]),r[s]=t[i];return r},d.sample=function(e,t,n){return t==null||n?(S(e)||(e=d.values(e)),e[d.random(e.length-1)]):d.shuffle(e).slice(0,Math.max(0,t))},d.sortBy=function(e,t,n){return t=m(t,n),d.pluck(d.map(e,function(e,n,r){return{value:e,index:n,criteria:t(e,n,r)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||n===void 0)return 1;if(n<r||r===void 0)return-1}return e.index-t.index}),"value")};var T=function(e){return function(t,n,r){var i={};return n=m(n,r),d.each(t,function(r,s){var o=n(r,s,t);e(i,r,o)}),i}};d.groupBy=T(function(e,t,n){d.has(e,n)?e[n].push(t):e[n]=[t]}),d.indexBy=T(function(e,t,n){e[n]=t}),d.countBy=T(function(e,t,n){d.has(e,n)?e[n]++:e[n]=1}),d.toArray=function(e){return e?d.isArray(e)?o.call(e):S(e)?d.map(e,d.identity):d.values(e):[]},d.size=function(e){return e==null?0:S(e)?e.length:d.keys(e).length},d.partition=function(e,t,n){t=m(t,n);var r=[],i=[];return d.each(e,function(e,n,s){(t(e,n,s)?r:i).push(e)}),[r,i]},d.first=d.head=d.take=function(e,t,n){return e==null?void 0:t==null||n?e[0]:d.initial(e,e.length-t)},d.initial=function(e,t,n){return o.call(e,0,Math.max(0,e.length-(t==null||n?1:t)))},d.last=function(e,t,n){return e==null?void 0:t==null||n?e[e.length-1]:d.rest(e,Math.max(0,e.length-t))},d.rest=d.tail=d.drop=function(e,t,n){return o.call(e,t==null||n?1:t)},d.compact=function(e){return d.filter(e,d.identity)};var N=function(e,t,n,r){var i=[],s=0;for(var o=r||0,u=E(e);o<u;o++){var a=e[o];if(S(a)&&(d.isArray(a)||d.isArguments(a))){t||(a=N(a,t,n));var f=0,l=a.length;i.length+=l;while(f<l)i[s++]=a[f++]}else n||(i[s++]=a)}return i};d.flatten=function(e,t){return N(e,t,!1)},d.without=function(e){return d.difference(e,o.call(arguments,1))},d.uniq=d.unique=function(e,t,n,r){d.isBoolean(t)||(r=n,n=t,t=!1),n!=null&&(n=m(n,r));var i=[],s=[];for(var o=0,u=E(e);o<u;o++){var a=e[o],f=n?n(a,o,e):a;t?((!o||s!==f)&&i.push(a),s=f):n?d.contains(s,f)||(s.push(f),i.push(a)):d.contains(i,a)||i.push(a)}return i},d.union=function(){return d.uniq(N(arguments,!0,!0))},d.intersection=function(e){var t=[],n=arguments.length;for(var r=0,i=E(e);r<i;r++){var s=e[r];if(d.contains(t,s))continue;for(var o=1;o<n;o++)if(!d.contains(arguments[o],s))break;o===n&&t.push(s)}return t},d.difference=function(e){var t=N(arguments,!0,!0,1);return d.filter(e,function(e){return!d.contains(t,e)})},d.zip=function(){return d.unzip(arguments)},d.unzip=function(e){var t=e&&d.max(e,E).length||0,n=Array(t);for(var r=0;r<t;r++)n[r]=d.pluck(e,r);return n},d.object=function(e,t){var n={};for(var r=0,i=E(e);r<i;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},d.findIndex=C(1),d.findLastIndex=C(-1),d.sortedIndex=function(e,t,n,r){n=m(n,r,1);var i=n(t),s=0,o=E(e);while(s<o){var u=Math.floor((s+o)/2);n(e[u])<i?s=u+1:o=u}return s},d.indexOf=k(1,d.findIndex,d.sortedIndex),d.lastIndexOf=k(-1,d.findLastIndex),d.range=function(e,t,n){t==null&&(t=e||0,e=0),n=n||1;var r=Math.max(Math.ceil((t-e)/n),0),i=Array(r);for(var s=0;s<r;s++,e+=n)i[s]=e;return i};var L=function(e,t,n,r,i){if(r instanceof t){var s=y(e.prototype),o=e.apply(s,i);return d.isObject(o)?o:s}return e.apply(n,i)};d.bind=function(e,t){if(c&&e.bind===c)return c.apply(e,o.call(arguments,1));if(!d.isFunction(e))throw new TypeError("Bind must be called on a function");var n=o.call(arguments,2),r=function(){return L(e,r,t,this,n.concat(o.call(arguments)))};return r},d.partial=function(e){var t=o.call(arguments,1),n=function(){var r=0,i=t.length,s=Array(i);for(var o=0;o<i;o++)s[o]=t[o]===d?arguments[r++]:t[o];while(r<arguments.length)s.push(arguments[r++]);return L(e,n,this,this,s)};return n},d.bindAll=function(e){var t,n=arguments.length,r;if(n<=1)throw new Error("bindAll must be passed function names");for(t=1;t<n;t++)r=arguments[t],e[r]=d.bind(e[r],e);return e},d.memoize=function(e,t){var n=function(r){var i=n.cache,s=""+(t?t.apply(this,arguments):r);return d.has(i,s)||(i[s]=e.apply(this,arguments)),i[s]};return n.cache={},n},d.delay=function(e,t){var n=o.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},d.defer=d.partial(d.delay,d,1),d.throttle=function(e,t,n){var r,i,s,o=null,u=0;n||(n={});var a=function(){u=n.leading===!1?0:d.now(),o=null,s=e.apply(r,i),o||(r=i=null)};return function(){var f=d.now();!u&&n.leading===!1&&(u=f);var l=t-(f-u);return r=this,i=arguments,l<=0||l>t?(o&&(clearTimeout(o),o=null),u=f,s=e.apply(r,i),o||(r=i=null)):!o&&n.trailing!==!1&&(o=setTimeout(a,l)),s}},d.debounce=function(e,t,n){var r,i,s,o,u,a=function(){var f=d.now()-o;f<t&&f>=0?r=setTimeout(a,t-f):(r=null,n||(u=e.apply(s,i),r||(s=i=null)))};return function(){s=this,i=arguments,o=d.now();var f=n&&!r;return r||(r=setTimeout(a,t)),f&&(u=e.apply(s,i),s=i=null),u}},d.wrap=function(e,t){return d.partial(t,e)},d.negate=function(e){return function(){return!e.apply(this,arguments)}},d.compose=function(){var e=arguments,t=e.length-1;return function(){var n=t,r=e[t].apply(this,arguments);while(n--)r=e[n].call(this,r);return r}},d.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},d.before=function(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},d.once=d.partial(d.before,2);var A=!{toString:null}.propertyIsEnumerable("toString"),O=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];d.keys=function(e){if(!d.isObject(e))return[];if(l)return l(e);var t=[];for(var n in e)d.has(e,n)&&t.push(n);return A&&M(e,t),t},d.allKeys=function(e){if(!d.isObject(e))return[];var t=[];for(var n in e)t.push(n);return A&&M(e,t),t},d.values=function(e){var t=d.keys(e),n=t.length,r=Array(n);for(var i=0;i<n;i++)r[i]=e[t[i]];return r},d.mapObject=function(e,t,n){t=m(t,n);var r=d.keys(e),i=r.length,s={},o;for(var u=0;u<i;u++)o=r[u],s[o]=t(e[o],o,e);return s},d.pairs=function(e){var t=d.keys(e),n=t.length,r=Array(n);for(var i=0;i<n;i++)r[i]=[t[i],e[t[i]]];return r},d.invert=function(e){var t={},n=d.keys(e);for(var r=0,i=n.length;r<i;r++)t[e[n[r]]]=n[r];return t},d.functions=d.methods=function(e){var t=[];for(var n in e)d.isFunction(e[n])&&t.push(n);return t.sort()},d.extend=g(d.allKeys),d.extendOwn=d.assign=g(d.keys),d.findKey=function(e,t,n){t=m(t,n);var r=d.keys(e),i;for(var s=0,o=r.length;s<o;s++){i=r[s];if(t(e[i],i,e))return i}},d.pick=function(e,t,n){var r={},i=e,s,o;if(i==null)return r;d.isFunction(t)?(o=d.allKeys(i),s=v(t,n)):(o=N(arguments,!1,!1,1),s=function(e,t,n){return t in n},i=Object(i));for(var u=0,a=o.length;u<a;u++){var f=o[u],l=i[f];s(l,f,i)&&(r[f]=l)}return r},d.omit=function(e,t,n){if(d.isFunction(t))t=d.negate(t);else{var r=d.map(N(arguments,!1,!1,1),String);t=function(e,t){return!d.contains(r,t)}}return d.pick(e,t,n)},d.defaults=g(d.allKeys,!0),d.create=function(e,t){var n=y(e);return t&&d.extendOwn(n,t),n},d.clone=function(e){return d.isObject(e)?d.isArray(e)?e.slice():d.extend({},e):e},d.tap=function(e,t){return t(e),e},d.isMatch=function(e,t){var n=d.keys(t),r=n.length;if(e==null)return!r;var i=Object(e);for(var s=0;s<r;s++){var o=n[s];if(t[o]!==i[o]||!(o in i))return!1}return!0};var _=function(e,t,n,r){if(e===t)return e!==0||1/e===1/t;if(e==null||t==null)return e===t;e instanceof d&&(e=e._wrapped),t instanceof d&&(t=t._wrapped);var i=u.call(e);if(i!==u.call(t))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":if(+e!==+e)return+t!==+t;return+e===0?1/+e===1/t:+e===+t;case"[object Date]":case"[object Boolean]":return+e===+t}var s=i==="[object Array]";if(!s){if(typeof e!="object"||typeof t!="object")return!1;var o=e.constructor,a=t.constructor;if(o!==a&&!(d.isFunction(o)&&o instanceof o&&d.isFunction(a)&&a instanceof a)&&"constructor"in e&&"constructor"in t)return!1}n=n||[],r=r||[];var f=n.length;while(f--)if(n[f]===e)return r[f]===t;n.push(e),r.push(t);if(s){f=e.length;if(f!==t.length)return!1;while(f--)if(!_(e[f],t[f],n,r))return!1}else{var l=d.keys(e),c;f=l.length;if(d.keys(t).length!==f)return!1;while(f--){c=l[f];if(!d.has(t,c)||!_(e[c],t[c],n,r))return!1}}return n.pop(),r.pop(),!0};d.isEqual=function(e,t){return _(e,t)},d.isEmpty=function(e){return e==null?!0:S(e)&&(d.isArray(e)||d.isString(e)||d.isArguments(e))?e.length===0:d.keys(e).length===0},d.isElement=function(e){return!!e&&e.nodeType===1},d.isArray=f||function(e){return u.call(e)==="[object Array]"},d.isObject=function(e){var t=typeof e;return t==="function"||t==="object"&&!!e},d.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(e){d["is"+e]=function(t){return u.call(t)==="[object "+e+"]"}}),d.isArguments(arguments)||(d.isArguments=function(e){return d.has(e,"callee")}),typeof /./!="function"&&typeof Int8Array!="object"&&(d.isFunction=function(e){return typeof e=="function"||!1}),d.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},d.isNaN=function(e){return d.isNumber(e)&&e!==+e},d.isBoolean=function(e){return e===!0||e===!1||u.call(e)==="[object Boolean]"},d.isNull=function(e){return e===null},d.isUndefined=function(e){return e===void 0},d.has=function(e,t){return e!=null&&a.call(e,t)},d.noConflict=function(){return e._=t,this},d.identity=function(e){return e},d.constant=function(e){return function(){return e}},d.noop=function(){},d.property=b,d.propertyOf=function(e){return e==null?function(){}:function(t){return e[t]}},d.matcher=d.matches=function(e){return e=d.extendOwn({},e),function(t){return d.isMatch(t,e)}},d.times=function(e,t,n){var r=Array(Math.max(0,e));t=v(t,n,1);for(var i=0;i<e;i++)r[i]=t(i);return r},d.random=function(e,t){return t==null&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},d.now=Date.now||function(){return(new Date).getTime()};var D={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},P=d.invert(D),H=function(e){var t=function(t){return e[t]},n="(?:"+d.keys(e).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(e){return e=e==null?"":""+e,r.test(e)?e.replace(i,t):e}};d.escape=H(D),d.unescape=H(P),d.result=function(e,t,n){var r=e==null?void 0:e[t];return r===void 0&&(r=n),d.isFunction(r)?r.call(e):r};var B=0;d.uniqueId=function(e){var t=++B+"";return e?e+t:t},d.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var j=/(.)^/,F={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},I=/\\|'|\r|\n|\u2028|\u2029/g,q=function(e){return"\\"+F[e]};d.template=function(e,t,n){!t&&n&&(t=n),t=d.defaults({},t,d.templateSettings);var r=RegExp([(t.escape||j).source,(t.interpolate||j).source,(t.evaluate||j).source].join("|")+"|$","g"),i=0,s="__p+='";e.replace(r,function(t,n,r,o,u){return s+=e.slice(i,u).replace(I,q),i=u+t.length,n?s+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?s+="'+\n((__t=("+r+"))==null?'':__t)+\n'":o&&(s+="';\n"+o+"\n__p+='"),t}),s+="';\n",t.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{var o=new Function(t.variable||"obj","_",s)}catch(u){throw u.source=s,u}var a=function(e){return o.call(this,e,d)},f=t.variable||"obj";return a.source="function("+f+"){\n"+s+"}",a},d.chain=function(e){var t=d(e);return t._chain=!0,t};var R=function(e,t){return e._chain?d(t).chain():t};d.mixin=function(e){d.each(d.functions(e),function(t){var n=d[t]=e[t];d.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),R(this,n.apply(d,e))}})},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=n[e];d.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),(e==="shift"||e==="splice")&&n.length===0&&delete n[0],R(this,n)}}),d.each(["concat","join","slice"],function(e){var t=n[e];d.prototype[e]=function(){return R(this,t.apply(this._wrapped,arguments))}}),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return""+this._wrapped},typeof define=="function"&&define.amd&&define("underscore",[],function(){return d})}.call(this),define("tpl",["text","underscore"],function(e,t){"use strict";var n={},r="define('{pluginName}!{moduleName}', function () { return {source}; });\n";return{version:"0.0.2",load:function(r,i,s,o){o.tpl&&o.tpl.templateSettings&&(t.templateSettings=o.tpl.templateSettings);if(n[r])s(n[r]);else{var u=o.tpl&&o.tpl.extension||".html",a=o.tpl&&o.tpl.path||"";e.load(a+r+u,i,function(e){n[r]=t.template(e),s(n[r])},o)}},write:function(e,t,i){var s=n[t],o=s&&s.source;o&&i.asModule(e+"!"+t,r.replace("{pluginName}",e).replace("{moduleName}",t).replace("{source}",o))}}}),define("tpl!action",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chat-message '+((__t=extra_classes)==null?"":__t)+'" data-isodate="'+((__t=isodate)==null?"":__t)+'">\n    <span class="chat-message-'+((__t=sender)==null?"":__t)+'">'+((__t=time)==null?"":__t)+" **"+((__t=username)==null?"":__t)+' </span>\n    <span class="chat-message-content">'+((__t=message)==null?"":__t)+"</span>\n</div>\n";return __p}}),define("tpl!add_contact_dropdown",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dl class="add-converse-contact dropdown">\n    <dt id="xmpp-contact-search" class="fancy-dropdown">\n        <a class="toggle-xmpp-contact-form" href="#"\n            title="'+((__t=label_click_to_chat)==null?"":__t)+'">\n        <span class="icon-plus"></span>'+((__t=label_add_contact)==null?"":__t)+'</a>\n    </dt>\n    <dd class="search-xmpp" style="display:none"><ul></ul></dd>\n</dl>\n';return __p}}),define("tpl!add_contact_form",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li>\n    <form class="add-xmpp-contact">\n        <input type="text"\n            name="identifier"\n            class="username"\n            placeholder="'+((__t=label_contact_username)==null?"":__t)+'"/>\n        <button type="submit">'+((__t=label_add)==null?"":__t)+"</button>\n    </form>\n</li>\n";return __p}}),define("tpl!change_status_message",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form id="set-custom-xmpp-status">\n    <span class="input-button-group">\n        <input type="text" class="custom-xmpp-status" '+((__t=status_message)==null?"":__t)+'\n            placeholder="'+((__t=label_custom_status)==null?"":__t)+'"/>\n        <button type="submit">'+((__t=label_save)==null?"":__t)+"</button>\n    </span>\n</form>\n";return __p}}),define("tpl!chat_status",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="xmpp-status">\n    <a class="choose-xmpp-status '+((__t=chat_status)==null?"":__t)+'"\n       data-value="'+((__t=status_message)==null?"":__t)+'"\n       href="#" title="'+((__t=desc_change_status)==null?"":__t)+'">\n\n        <span class="icon-'+((__t=chat_status)==null?"":__t)+'"></span>'+((__t=status_message)==null?"":__t)+'\n    </a>\n    <a class="change-xmpp-status-message icon-pencil"\n        href="#"\n        title="'+((__t=desc_custom_status)==null?"":__t)+'"></a>\n</div>\n';return __p}}),define("tpl!chatarea",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chat-area">\n    <div class="chat-content"></div>\n    <form class="sendXMPPMessage" action="" method="post">\n        ',show_toolbar&&(__p+='\n            <ul class="chat-toolbar no-text-select"></ul>\n        '),__p+='\n        <textarea type="text" class="chat-textarea" \n            placeholder="'+((__t=label_message)==null?"":__t)+'"/>\n    </form>\n</div>\n';return __p}}),define("tpl!chatbox",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="box-flyout" ',height&&(__p+=' style="height: '+((__t=height)==null?"":__t)+'px" '),__p+='>\n    <div class="dragresize"></div>\n    <div class="chat-head chat-head-chatbox">\n        <a class="close-chatbox-button icon-close"></a>\n        <a class="toggle-chatbox-button icon-minus"></a>\n        <div class="chat-title">\n            ',url&&(__p+='\n                <a href="'+((__t=url)==null?"":__t)+'" target="_blank" class="user">\n            '),__p+="\n                    "+((__t=fullname)==null?"":__t)+"\n            ",url&&(__p+="\n                </a>\n            "),__p+='\n        </div>\n        <p class="user-custom-message"><p/>\n    </div>\n    <div class="chat-body">\n        <div class="chat-content"></div>\n        <form class="sendXMPPMessage" action="" method="post">\n            ',show_toolbar&&(__p+='\n                <ul class="chat-toolbar no-text-select"></ul>\n            '),__p+='\n        <textarea\n            type="text"\n            class="chat-textarea"\n            placeholder="'+((__t=label_personal_message)==null?"":__t)+'"/>\n        </form>\n    </div>\n</div>\n';return __p}}),define("tpl!chatroom",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="box-flyout" ',height&&(__p+=' style="height: '+((__t=height)==null?"":__t)+'px" '),__p+='>\n    <div class="dragresize"></div>\n    <div class="chat-head chat-head-chatroom">\n        <a class="close-chatbox-button icon-close"></a>\n        <a class="toggle-chatbox-button icon-minus"></a>\n        <a class="configure-chatroom-button icon-wrench" style="display:none"></a>\n        <div class="chat-title"> '+((__t=_.escape(name))==null?"":__t)+' </div>\n        <p class="chatroom-topic"><p/>\n    </div>\n    <div class="chat-body"><span class="spinner centered"/></div>\n</div>\n';return __p}}),define("tpl!chatroom_password_form",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chatroom-form-container">\n    <form class="chatroom-form">\n        <legend>'+((__t=heading)==null?"":__t)+"</legend>\n        <label>"+((__t=label_password)==null?"":__t)+'</label>\n        <input type="password" name="password"/>\n        <input type="submit" value="'+((__t=label_submit)==null?"":__t)+'"/>\n    </form>\n</div>\n';return __p}}),define("tpl!chatroom_sidebar",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<!-- <div class="participants"> -->\n<form class="room-invite">\n    <input class="invited-contact" placeholder="'+((__t=label_invitation)==null?"":__t)+'" type="text"/>\n</form>\n<label>'+((__t=label_occupants)==null?"":__t)+':</label>\n<ul class="participant-list"></ul>\n<!-- </div> -->\n';return __p}}),define("tpl!chatrooms_tab",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li><a class="s" href="#chatrooms">'+((__t=label_rooms)==null?"":__t)+"</a></li>\n";return __p}}),define("tpl!chats_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div id="minimized-chats">\n    <a id="toggle-minimized-chats" href="#"></a>\n    <div class="minimized-chats-flyout"></div>\n</div>\n';return __p}}),define("tpl!choose_status",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dl id="target" class="dropdown">\n    <dt id="fancy-xmpp-status-select" class="fancy-dropdown"></dt>\n    <dd><ul class="xmpp-status-menu"></ul></dd>\n</dl>\n';return __p}}),define("tpl!contacts_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form class="set-xmpp-status" action="" method="post">\n    <span id="xmpp-status-holder">\n        <select id="select-xmpp-status" style="display:none">\n            <option value="online">'+((__t=label_online)==null?"":__t)+'</option>\n            <option value="dnd">'+((__t=label_busy)==null?"":__t)+'</option>\n            <option value="away">'+((__t=label_away)==null?"":__t)+'</option>\n            <option value="offline">'+((__t=label_offline)==null?"":__t)+"</option>\n            ",allow_logout&&(__p+='\n            <option value="logout">'+((__t=label_logout)==null?"":__t)+"</option>\n            "),__p+="\n        </select>\n    </span>\n</form>\n";return __p}}),define("tpl!contacts_tab",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li><a class="s current" href="#users">'+((__t=label_contacts)==null?"":__t)+"</a></li>\n";return __p}}),define("tpl!controlbox",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="box-flyout" ',height&&(__p+=' style="height: '+((__t=height)==null?"":__t)+'px" '),__p+='>\n    <div class="dragresize"></div>\n    <div class="chat-head controlbox-head">\n        <ul id="controlbox-tabs"></ul>\n        <a class="close-chatbox-button icon-close"></a>\n    </div>\n    <div class="controlbox-panes"></div>\n</div>\n';return __p}}),define("tpl!controlbox_toggle",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<span class="conn-feedback">'+((__t=label_toggle)==null?"":__t)+'</span>\n<span style="display: none" id="online-count">(0)</span>\n';return __p}}),define("tpl!field",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<field var="'+((__t=name)==null?"":__t)+'">',_.isArray(value)?(__p+="\n    ",_.each(value,function(e){__p+="<value>"+((__t=e)==null?"":__t)+"</value>"}),__p+="\n"):__p+="\n    <value>"+((__t=value)==null?"":__t)+"</value>\n",__p+="</field>\n";return __p}}),define("tpl!form_captcha",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",label&&(__p+="\n<label>\n    "+((__t=label)==null?"":__t)+"\n</label>\n"),__p+='\n<img src="data:'+((__t=type)==null?"":__t)+";base64,"+((__t=data)==null?"":__t)+'">\n<input name="'+((__t=name)==null?"":__t)+'" type="text" ',required&&(__p+=' class="required" '),__p+=" >\n\n\n";return __p}}),define("tpl!form_checkbox",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="<label>"+((__t=label)==null?"":__t)+'</label>\n<input name="'+((__t=name)==null?"":__t)+'" type="'+((__t=type)==null?"":__t)+'" '+((__t=checked)==null?"":__t)+">\n";return __p}}),define("tpl!form_input",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",label&&(__p+="\n<label>\n    "+((__t=label)==null?"":__t)+"\n</label>\n"),__p+='\n<input name="'+((__t=name)==null?"":__t)+'" type="'+((__t=type)==null?"":__t)+'" \n    ',value&&(__p+=' value="'+((__t=value)==null?"":__t)+'" '),__p+="\n    ",required&&(__p+=' class="required" '),__p+=" >\n";return __p}}),define("tpl!form_select",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="<label>"+((__t=label)==null?"":__t)+'</label>\n<select name="'+((__t=name)==null?"":__t)+'"  ',multiple&&(__p+=' multiple="multiple" '),__p+=">"+((__t=options)==null?"":__t)+"</select>\n";return __p}}),define("tpl!form_textarea",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<label class="label-ta">'+((__t=label)==null?"":__t)+'</label>\n<textarea name="'+((__t=name)==null?"":__t)+'">'+((__t=value)==null?"":__t)+"</textarea>\n";return __p}}),define("tpl!form_username",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",label&&(__p+="\n<label>\n    "+((__t=label)==null?"":__t)+"\n</label>\n"),__p+='\n<div class="input-group">\n    <input name="'+((__t=name)==null?"":__t)+'" type="'+((__t=type)==null?"":__t)+'"\n        ',value&&(__p+=' value="'+((__t=value)==null?"":__t)+'" '),__p+="\n        ",required&&(__p+=' class="required" '),__p+=' />\n    <span title="'+((__t=domain)==null?"":__t)+'">'+((__t=domain)==null?"":__t)+"</span>\n</div>\n";return __p}}),define("tpl!group_header",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<a href="#" class="group-toggle icon-'+((__t=toggle_state)==null?"":__t)+'" title="'+((__t=desc_group_toggle)==null?"":__t)+'">'+((__t=label_group)==null?"":__t)+"</a>\n";return __p}}),define("tpl!info",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chat-info">'+((__t=message)==null?"":__t)+"</div>\n";return __p}}),define("tpl!login_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form id="converse-login" method="post">\n    ',auto_login&&(__p+='\n        <span class="spinner login-submit"/>\n    '),__p+="\n    ",auto_login||(__p+="\n        ",authentication==LOGIN&&(__p+="\n            <label>"+((__t=label_username)==null?"":__t)+'</label>\n            <input name="jid" placeholder="'+((__t=placeholder_username)==null?"":__t)+'">\n            <label>'+((__t=label_password)==null?"":__t)+'</label>\n            <input type="password" name="password" placeholder="'+((__t=placeholder_password)==null?"":__t)+'">\n            <input class="submit" type="submit" value="'+((__t=label_login)==null?"":__t)+'">\n            <span class="conn-feedback"></span>\n        '),__p+="\n        ",authentication==ANONYMOUS&&(__p+='\n            <input type="submit" class="submit login-anon" value="'+((__t=label_anon_login)==null?"":__t)+'"/>\n        '),__p+="\n        ",authentication==PREBIND&&(__p+="\n            <p>Disconnected.</p>\n        "),__p+="\n    "),__p+="\n</form>\n";return __p}}),define("tpl!login_tab",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li><a class="current" href="#login-dialog">'+((__t=label_sign_in)==null?"":__t)+"</a></li>\n";return __p}}),define("tpl!message",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chat-message '+((__t=extra_classes)==null?"":__t)+'" data-isodate="'+((__t=isodate)==null?"":__t)+'" data-msgid="'+((__t=msgid)==null?"":__t)+'">\n    <span class="chat-message-'+((__t=sender)==null?"":__t)+'">'+((__t=time)==null?"":__t)+" "+((__t=username)==null?"":__t)+':&nbsp;</span>\n    <span class="chat-message-content">'+((__t=message)==null?"":__t)+"</span>\n</div>\n";return __p}}),define("tpl!new_day",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<time class="chat-date" data-isodate="'+((__t=isodate)==null?"":__t)+'">'+((__t=datestring)==null?"":__t)+"</time>\n";return __p}}),define("tpl!occupant",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li class="'+((__t=role)==null?"":__t)+'"\n    ',role==="moderator"&&(__p+='\n       title="'+((__t=desc_moderator)==null?"":__t)+'"\n    '),__p+="\n    ",role==="participant"&&(__p+='\n       title="'+((__t=desc_participant)==null?"":__t)+'"\n    '),__p+="\n    ",role==="visitor"&&(__p+='\n       title="'+((__t=desc_visitor)==null?"":__t)+'"\n    '),__p+="\n>"+((__t=nick)==null?"":__t)+"</li>\n";return __p}}),define("tpl!pending_contact",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",allow_chat_pending_contacts&&(__p+='\n<a class="open-chat"href="#">\n'),__p+='\n<span class="pending-contact-name" title="Name: '+((__t=fullname)==null?"":__t)+"\nJID: "+((__t=jid)==null?"":__t)+'">'+((__t=fullname)==null?"":__t)+"</span> \n",allow_chat_pending_contacts&&(__p+="\n</a>\n"),__p+='\n<a class="remove-xmpp-contact icon-remove" title="'+((__t=desc_remove)==null?"":__t)+'" href="#"></a>\n';return __p}}),define("tpl!pending_contacts",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dt id="pending-xmpp-contacts"><a href="#" class="group-toggle icon-'+((__t=toggle_state)==null?"":__t)+'" title="'+((__t=desc_group_toggle)==null?"":__t)+'">'+((__t=label_pending_contacts)==null?"":__t)+"</a></dt>\n";return __p}}),define("tpl!register_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form id="converse-register">\n    <span class="reg-feedback"></span>\n    <label>'+((__t=label_domain)==null?"":__t)+'</label>\n    <input type="text" name="domain" placeholder="'+((__t=domain_placeholder)==null?"":__t)+'">\n    <p class="form-help">'+((__t=help_providers)==null?"":__t)+' <a href="'+((__t=href_providers)==null?"":__t)+'" class="url" target="_blank">'+((__t=help_providers_link)==null?"":__t)+'</a>.</p>\n    <input class="submit" type="submit" value="'+((__t=label_register)==null?"":__t)+'">\n</form>\n';return __p}}),define("tpl!register_tab",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li><a class="s" href="#register">'+((__t=label_register)==null?"":__t)+"</a></li>\n";return __p}}),define("tpl!registration_form",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<p class="provider-title">'+((__t=domain)==null?"":__t)+"</p>\n<a href='https://xmpp.net/result.php?domain="+((__t=domain)==null?"":__t)+"&amp;type=client'>\n    <img class=\"provider-score\" src='https://xmpp.net/badge.php?domain="+((__t=domain)==null?"":__t)+"' alt='xmpp.net score' />\n</a>\n<p class=\"title\">"+((__t=title)==null?"":__t)+'</p>\n<p class="instructions">'+((__t=instructions)==null?"":__t)+"</p>\n";return __p}}),define("tpl!registration_request",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<span class="spinner login-submit"/>\n<p class="info">'+((__t=info_message)==null?"":__t)+'</p>\n<button class="cancel hor_centered">'+((__t=cancel)==null?"":__t)+"</button>\n";return __p}}),define("tpl!requesting_contact",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",allow_chat_pending_contacts&&(__p+='\n<a class="open-chat"href="#">\n'),__p+='\n<span class="req-contact-name" title="Name: '+((__t=fullname)==null?"":__t)+"\nJID: "+((__t=jid)==null?"":__t)+'">'+((__t=fullname)==null?"":__t)+"</span>\n",allow_chat_pending_contacts&&(__p+="\n</a>\n"),__p+='\n<span class="request-actions">\n    <a class="accept-xmpp-request icon-checkmark" title="'+((__t=desc_accept)==null?"":__t)+'" href="#"></a>\n    <a class="decline-xmpp-request icon-close" title="'+((__t=desc_decline)==null?"":__t)+'" href="#"></a>\n</span>\n';return __p}}),define("tpl!requesting_contacts",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dt id="xmpp-contact-requests"><a href="#" class="group-toggle icon-'+((__t=toggle_state)==null?"":__t)+'" title="'+((__t=desc_group_toggle)==null?"":__t)+'">'+((__t=label_contact_requests)==null?"":__t)+"</a></dt>\n";return __p}}),define("tpl!room_description",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<!-- FIXME: check markup in mockup -->\n<div class="room-info">\n<p class="room-info"><strong>'+((__t=label_desc)==null?"":__t)+"</strong> "+((__t=desc)==null?"":__t)+'</p>\n<p class="room-info"><strong>'+((__t=label_occ)==null?"":__t)+"</strong> "+((__t=occ)==null?"":__t)+'</p>\n<p class="room-info"><strong>'+((__t=label_features)==null?"":__t)+"</strong>\n    <ul>\n        ",passwordprotected&&(__p+='\n        <li class="room-info locked">'+((__t=label_requires_auth)==null?"":__t)+"</li>\n        "),__p+="\n        ",hidden&&(__p+='\n        <li class="room-info">'+((__t=label_hidden)==null?"":__t)+"</li>\n        "),__p+="\n        ",membersonly&&(__p+='\n        <li class="room-info">'+((__t=label_requires_invite)==null?"":__t)+"</li>\n        "),__p+="\n        ",moderated&&(__p+='\n        <li class="room-info">'+((__t=label_moderated)==null?"":__t)+"</li>\n        "),__p+="\n        ",nonanonymous&&(__p+='\n        <li class="room-info">'+((__t=label_non_anon)==null?"":__t)+"</li>\n        "),__p+="\n        ",open&&(__p+='\n        <li class="room-info">'+((__t=label_open_room)==null?"":__t)+"</li>\n        "),__p+="\n        ",persistent&&(__p+='\n        <li class="room-info">'+((__t=label_permanent_room)==null?"":__t)+"</li>\n        "),__p+="\n        ",publicroom&&(__p+='\n        <li class="room-info">'+((__t=label_public)==null?"":__t)+"</li>\n        "),__p+="\n        ",semianonymous&&(__p+='\n        <li class="room-info">'+((__t=label_semi_anon)==null?"":__t)+"</li>\n        "),__p+="\n        ",temporary&&(__p+='\n        <li class="room-info">'+((__t=label_temp_room)==null?"":__t)+"</li>\n        "),__p+="\n        ",unmoderated&&(__p+='\n        <li class="room-info">'+((__t=label_unmoderated)==null?"":__t)+"</li>\n        "),__p+="\n    </ul>\n</p>\n</div>\n";return __p}}),define("tpl!room_item",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dd class="available-chatroom">\n<a class="open-room" data-room-jid="'+((__t=jid)==null?"":__t)+'"\n   title="'+((__t=open_title)==null?"":__t)+'" href="#">'+((__t=_.escape(name))==null?"":__t)+'</a>\n<a class="room-info icon-room-info" data-room-jid="'+((__t=jid)==null?"":__t)+'"\n   title="'+((__t=info_title)==null?"":__t)+'" href="#">&nbsp;</a>\n</dd>\n';return __p}}),define("tpl!room_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form class="add-chatroom" action="" method="post">\n    <label>'+((__t=label_room_name)==null?"":__t)+'</label>\n    <input type="text" name="chatroom" class="new-chatroom-name"\n        placeholder="'+((__t=label_room_name)==null?"":__t)+'"/>\n    <label>'+((__t=label_nickname)==null?"":__t)+'</label>\n    <input type="text" name="nick" class="new-chatroom-nick"\n        placeholder="'+((__t=label_nickname)==null?"":__t)+'"/>\n    ',server_input_type!="hidden"&&(__p+="\n        <label"+((__t=server_label_global_attr)==null?"":__t)+">"+((__t=label_server)==null?"":__t)+"</label>\n    "),__p+='\n    <input type="'+((__t=server_input_type)==null?"":__t)+'" name="server" class="new-chatroom-server"\n        placeholder="'+((__t=label_server)==null?"":__t)+'"/>\n    <div class="button-group">\n        <input type="submit" class="left" name="join" value="'+((__t=label_join)==null?"":__t)+'"/>\n        <input type="button" class="right" name="show" id="show-rooms" value="'+((__t=label_show_rooms)==null?"":__t)+'"/>\n    </div>\n</form>\n<dl id="available-chatrooms"></dl>\n';return __p}}),define("tpl!roster",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<span class="input-button-group">\n    <input style="display: none;" class="roster-filter" placeholder="'+((__t=placeholder)==null?"":__t)+'">\n    <select style="display: none;" class="filter-type">\n        <option value="contacts">'+((__t=label_contacts)==null?"":__t)+'</option>\n        <option value="groups">'+((__t=label_groups)==null?"":__t)+"</option>\n    </select>\n</span>\n";return __p}}),define("tpl!roster_item",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<a class="open-chat" title="'+((__t=title_fullname)==null?"":__t)+": "+((__t=fullname)==null?"":__t)+"\nJID: "+((__t=jid)==null?"":__t)+"\n"+((__t=desc_chat)==null?"":__t)+'" href="#"><span class="icon-'+((__t=chat_status)==null?"":__t)+'" title="'+((__t=desc_status)==null?"":__t)+'"></span>'+((__t=fullname)==null?"":__t)+"</a>\n",allow_contact_removal&&(__p+='\n<a class="remove-xmpp-contact icon-remove" title="'+((__t=desc_remove)==null?"":__t)+'" href="#"></a>\n'),__p+="\n";return __p}}),define("tpl!search_contact",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li>\n    <form class="search-xmpp-contact">\n        <input type="text"\n            name="identifier"\n            class="username"\n            placeholder="'+((__t=label_contact_name)==null?"":__t)+'"/>\n        <button type="submit">'+((__t=label_search)==null?"":__t)+"</button>\n    </form>\n</li>\n";return __p}}),define("tpl!select_option",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<option value="'+((__t=value)==null?"":__t)+'" ',selected&&(__p+=' selected="selected" '),__p+=" >"+((__t=label)==null?"":__t)+"</option>\n";return __p}}),define("tpl!status_option",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li>\n    <a href="#" class="'+((__t=value)==null?"":__t)+'" data-value="'+((__t=value)==null?"":__t)+'">\n        <span class="icon-'+((__t=value)==null?"":__t)+'"></span>\n        '+((__t=text)==null?"":__t)+"\n    </a>\n</li>\n";return __p}}),define("tpl!toggle_chats",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+=""+((__t=Minimized)==null?"":__t)+' <span id="minimized-count">('+((__t=num_minimized)==null?"":__t)+')</span>\n<span class="unread-message-count"\n    ',num_unread||(__p+=' style="display: none" '),__p+='\n    href="#">'+((__t=num_unread)==null?"":__t)+"</span>\n";return __p}}),define("tpl!toolbar",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",show_emoticons&&(__p+='\n    <li class="toggle-smiley icon-happy" title="'+((__t=label_insert_smiley)==null?"":__t)+'">\n        <ul>\n            <li><a class="icon-smiley" href="#" data-emoticon=":)"></a></li>\n            <li><a class="icon-wink" href="#" data-emoticon=";)"></a></li>\n            <li><a class="icon-grin" href="#" data-emoticon=":D"></a></li>\n            <li><a class="icon-tongue" href="#" data-emoticon=":P"></a></li>\n            <li><a class="icon-cool" href="#" data-emoticon="8)"></a></li>\n            <li><a class="icon-evil" href="#" data-emoticon=">:)"></a></li>\n            <li><a class="icon-confused" href="#" data-emoticon=":S"></a></li>\n            <li><a class="icon-wondering" href="#" data-emoticon=":\\"></a></li>\n            <li><a class="icon-angry" href="#" data-emoticon=">:("></a></li>\n            <li><a class="icon-sad" href="#" data-emoticon=":("></a></li>\n            <li><a class="icon-shocked" href="#" data-emoticon=":O"></a></li>\n            <li><a class="icon-thumbs-up" href="#" data-emoticon="(^.^)b"></a></li>\n            <li><a class="icon-heart" href="#" data-emoticon="<3"></a></li>\n        </ul>\n    </li>\n'),__p+="\n",show_call_button&&(__p+='\n<li class="toggle-call"><a class="icon-phone" title="'+((__t=label_start_call)==null?"":__t)+'"></a></li>\n'),__p+="\n",show_participants_toggle&&(__p+='\n<li class="toggle-participants"><a class="icon-hide-users" title="'+((__t=label_hide_participants)==null?"":__t)+'"></a></li>\n'),__p+="\n",show_clear_button&&(__p+='\n<li class="toggle-clear"><a class="icon-remove" title="'+((__t=label_clear)==null?"":__t)+'"></a></li>\n'),__p+="\n",allow_otr&&(__p+='\n    <li class="toggle-otr '+((__t=otr_status_class)==null?"":__t)+'" title="'+((__t=otr_tooltip)==null?"":__t)+'">\n        <span class="chat-toolbar-text">'+((__t=otr_translated_status)==null?"":__t)+"</span>\n        ",otr_status==UNENCRYPTED&&(__p+='\n            <span class="icon-unlocked"></span>\n        '),__p+="\n        ",otr_status==UNVERIFIED&&(__p+='\n            <span class="icon-lock"></span>\n        '),__p+="\n        ",otr_status==VERIFIED&&(__p+='\n            <span class="icon-lock"></span>\n        '),__p+="\n        ",otr_status==FINISHED&&(__p+='\n            <span class="icon-unlocked"></span>\n        '),__p+="\n        <ul>\n            ",otr_status==UNENCRYPTED&&(__p+='\n               <li><a class="start-otr" href="#">'+((__t=label_start_encrypted_conversation)==null?"":__t)+"</a></li>\n            "),__p+="\n            ",otr_status!=UNENCRYPTED&&(__p+='\n               <li><a class="start-otr" href="#">'+((__t=label_refresh_encrypted_conversation)==null?"":__t)+'</a></li>\n               <li><a class="end-otr" href="#">'+((__t=label_end_encrypted_conversation)==null?"":__t)+'</a></li>\n               <li><a class="auth-otr" data-scheme="smp" href="#">'+((__t=label_verify_with_smp)==null?"":__t)+"</a></li>\n            "),__p+="\n            ",otr_status==UNVERIFIED&&(__p+='\n               <li><a class="auth-otr" data-scheme="fingerprint" href="#">'+((__t=label_verify_with_fingerprints)==null?"":__t)+"</a></li>\n            "),__p+='\n            <li><a href="http://www.cypherpunks.ca/otr/help/3.2.0/levels.php" target="_blank">'+((__t=label_whats_this)==null?"":__t)+"</a></li>\n        </ul>\n    </li>\n"),__p+="\n";return __p}}),define("tpl!trimmed_chat",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<a class="close-chatbox-button icon-close"></a>\n<a class="chat-head-message-count" \n    ',num_unread||(__p+=' style="display: none" '),__p+='\n    href="#">'+((__t=num_unread)==null?"":__t)+'</a>\n<a href="#" class="restore-chat" title="'+((__t=tooltip)==null?"":__t)+'">\n    '+((__t=title)==null?"":__t)+"\n</a>\n";return __p}}),define("converse-templates",["tpl!action","tpl!add_contact_dropdown","tpl!add_contact_form","tpl!change_status_message","tpl!chat_status","tpl!chatarea","tpl!chatbox","tpl!chatroom","tpl!chatroom_password_form","tpl!chatroom_sidebar","tpl!chatrooms_tab","tpl!chats_panel","tpl!choose_status","tpl!contacts_panel","tpl!contacts_tab","tpl!controlbox","tpl!controlbox_toggle","tpl!field","tpl!form_captcha","tpl!form_checkbox","tpl!form_input","tpl!form_select","tpl!form_textarea","tpl!form_username","tpl!group_header","tpl!info","tpl!login_panel","tpl!login_tab","tpl!message","tpl!new_day","tpl!occupant","tpl!pending_contact","tpl!pending_contacts","tpl!register_panel","tpl!register_tab","tpl!registration_form","tpl!registration_request","tpl!requesting_contact","tpl!requesting_contacts","tpl!room_description","tpl!room_item","tpl!room_panel","tpl!roster","tpl!roster_item","tpl!search_contact","tpl!select_option","tpl!status_option","tpl!toggle_chats","tpl!toolbar","tpl!trimmed_chat"],function(){return{action:arguments[0],add_contact_dropdown:arguments[1],add_contact_form:arguments[2],change_status_message:arguments[3],chat_status:arguments[4],chatarea:arguments[5],chatbox:arguments[6],chatroom:arguments[7],chatroom_password_form:arguments[8],chatroom_sidebar:arguments[9],chatrooms_tab:arguments[10],chats_panel:arguments[11],choose_status:arguments[12],contacts_panel:arguments[13],contacts_tab:arguments[14],controlbox:arguments[15],controlbox_toggle:arguments[16],field:arguments[17],form_captcha:arguments[18],form_checkbox:arguments[19],form_input:arguments[20],form_select:arguments[21],form_textarea:arguments[22],form_username:arguments[23],group_header:arguments[24],info:arguments[25],login_panel:arguments[26],login_tab:arguments[27],message:arguments[28],new_day:arguments[29],occupant:arguments[30],pending_contact:arguments[31],pending_contacts:arguments[32],register_panel:arguments[33],register_tab:arguments[34],registration_form:arguments[35],registration_request:arguments[36],requesting_contact:arguments[37],requesting_contacts:arguments[38],room_description:arguments[39],room_item:arguments[40],room_panel:arguments[41],roster:arguments[42],roster_item:arguments[43],search_contact:arguments[44],select_option:arguments[45],status_option:arguments[46],toggle_chats:arguments[47],toolbar:arguments[48],trimmed_chat:arguments[49]}}),function(e,t){function l(e){return f.PF.compile(e||"nplurals=2; plural=(n != 1);")}function c(e,t){this._key=e,this._i18n=t}var n=Array.prototype,r=Object.prototype,i=n.slice,s=r.hasOwnProperty,o=n.forEach,u={},a={forEach:function(e,t,n){var r,i,a;if(e===null)return;if(o&&e.forEach===o)e.forEach(t,n);else if(e.length===+e.length){for(r=0,i=e.length;r<i;r++)if(r in e&&t.call(n,e[r],r,e)===u)return}else for(a in e)if(s.call(e,a)&&t.call(n,e[a],a,e)===u)return},extend:function(e){return this.forEach(i.call(arguments,1),function(t){for(var n in t)e[n]=t[n]}),e}},f=function(e){this.defaults={locale_data:{messages:{"":{domain:"messages",lang:"en",plural_forms:"nplurals=2; plural=(n != 1);"}}},domain:"messages"},this.options=a.extend({},this.defaults,e),this.textdomain(this.options.domain);if(e.domain&&!this.options.locale_data[this.options.domain])throw new Error("Text domain set to non-existent domain: `"+e.domain+"`")};f.context_delimiter=String.fromCharCode(4),a.extend(c.prototype,{onDomain:function(e){return this._domain=e,this},withContext:function(e){return this._context=e,this},ifPlural:function(e,t){return this._val=e,this._pkey=t,this},fetch:function(e){return{}.toString.call(e)!="[object Array]"&&(e=[].slice.call(arguments)),(e&&e.length?f.sprintf:function(e){return e})(this._i18n.dcnpgettext(this._domain,this._context,this._key,this._pkey,this._val),e)}}),a.extend(f.prototype,{translate:function(e){return new c(e,this)},textdomain:function(e){if(!e)return this._textdomain;this._textdomain=e},gettext:function(e){return this.dcnpgettext.call(this,t,t,e)},dgettext:function(e,n){return this.dcnpgettext.call(this,e,t,n)},dcgettext:function(e,n){return this.dcnpgettext.call(this,e,t,n)},ngettext:function(e,n,r){return this.dcnpgettext.call(this,t,t,e,n,r)},dngettext:function(e,n,r,i){return this.dcnpgettext.call(this,e,t,n,r,i)},dcngettext:function(e,n,r,i){return this.dcnpgettext.call(this,e,t,n,r,i)},pgettext:function(e,n){return this.dcnpgettext.call(this,t,e,n)},dpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},dcpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},npgettext:function(e,n,r,i){return this.dcnpgettext.call(this,t,e,n,r,i)},dnpgettext:function(e,t,n,r,i){return this.dcnpgettext.call(this,e,t,n,r,i)},dcnpgettext:function(e,t,n,r,i){r=r||n,e=e||this._textdomain,i=typeof i=="undefined"?1:i;var s;if(!this.options)return s=new f,s.dcnpgettext.call(s,undefined,undefined,n,r,i);if(!this.options.locale_data)throw new Error("No locale data provided.");if(!this.options.locale_data[e])throw new Error("Domain `"+e+"` was not found.");if(!this.options.locale_data[e][""])throw new Error("No locale meta information provided.");if(!n)throw new Error("No translation key found.");if(typeof i!="number"){i=parseInt(i,10);if(isNaN(i))throw new Error("The number that was passed in is not a number.")}var o=t?t+f.context_delimiter+n:n,u=this.options.locale_data,a=u[e],c=a[""].plural_forms||(u.messages||this.defaults.locale_data.messages)[""].plural_forms,h=l(c)(i)+1,p,d;if(!a)throw new Error("No domain named `"+e+"` could be found.");return p=a[o],!p||h>=p.length?(this.options.missing_key_callback&&this.options.missing_key_callback(o),d=[null,n,r],d[l(c)(i)+1]):(d=p[h],d?d:(d=[null,n,r],d[l(c)(i)+1]))}});var h=function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e,t){for(var n=[];t>0;n[--t]=e);return n.join("")}var n=function(){return n.cache.hasOwnProperty(arguments[0])||(n.cache[arguments[0]]=n.parse(arguments[0])),n.format.call(null,n.cache[arguments[0]],arguments)};return n.format=function(n,r){var i=1,s=n.length,o="",u,a=[],f,l,c,p,d,v;for(f=0;f<s;f++){o=e(n[f]);if(o==="string")a.push(n[f]);else if(o==="array"){c=n[f];if(c[2]){u=r[i];for(l=0;l<c[2].length;l++){if(!u.hasOwnProperty(c[2][l]))throw h('[sprintf] property "%s" does not exist',c[2][l]);u=u[c[2][l]]}}else c[1]?u=r[c[1]]:u=r[i++];if(/[^s]/.test(c[8])&&e(u)!="number")throw h("[sprintf] expecting number but found %s",e(u));if(typeof u=="undefined"||u===null)u="";switch(c[8]){case"b":u=u.toString(2);break;case"c":u=String.fromCharCode(u);break;case"d":u=parseInt(u,10);break;case"e":u=c[7]?u.toExponential(c[7]):u.toExponential();break;case"f":u=c[7]?parseFloat(u).toFixed(c[7]):parseFloat(u);break;case"o":u=u.toString(8);break;case"s":u=(u=String(u))&&c[7]?u.substring(0,c[7]):u;break;case"u":u=Math.abs(u);break;case"x":u=u.toString(16);break;case"X":u=u.toString(16).toUpperCase()}u=/[def]/.test(c[8])&&c[3]&&u>=0?"+"+u:u,d=c[4]?c[4]=="0"?"0":c[4].charAt(1):" ",v=c[6]-String(u).length,p=c[6]?t(d,v):"",a.push(c[5]?u+p:p+u)}}return a.join("")},n.cache={},n.parse=function(e){var t=e,n=[],r=[],i=0;while(t){if((n=/^[^\x25]+/.exec(t))!==null)r.push(n[0]);else if((n=/^\x25{2}/.exec(t))!==null)r.push("%");else{if((n=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(t))===null)throw"[sprintf] huh?";if(n[2]){i|=1;var s=[],o=n[2],u=[];if((u=/^([a-z_][a-z_\d]*)/i.exec(o))===null)throw"[sprintf] huh?";s.push(u[1]);while((o=o.substring(u[0].length))!=="")if((u=/^\.([a-z_][a-z_\d]*)/i.exec(o))!==null)s.push(u[1]);else{if((u=/^\[(\d+)\]/.exec(o))===null)throw"[sprintf] huh?";s.push(u[1])}n[2]=s}else i|=2;if(i===3)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";r.push(n)}t=t.substring(n[0].length)}return r},n}(),p=function(e,t){return t.unshift(e),h.apply(null,t)};f.parse_plural=function(e,t){return e=e.replace(/n/g,t),f.parse_expression(e)},f.sprintf=function(e,t){return{}.toString.call(t)=="[object Array]"?p(e,[].slice.call(t)):h.apply(this,[].slice.call(arguments))},f.prototype.sprintf=function(){return f.sprintf.apply(this,arguments)},f.PF={},f.PF.parse=function(e){var t=f.PF.extractPluralExpr(e);return f.PF.parser.parse.call(f.PF.parser,t)},f.PF.compile=function(e){function t(e){return e===!0?1:e?e:0}var n=f.PF.parse(e);return function(e){return t(f.PF.interpreter(n)(e))}},f.PF.interpreter=function(e){return function(t){var n;switch(e.type){case"GROUP":return f.PF.interpreter(e.expr)(t);case"TERNARY":if(f.PF.interpreter(e.expr)(t))return f.PF.interpreter(e.truthy)(t);return f.PF.interpreter(e.falsey)(t);case"OR":return f.PF.interpreter(e.left)(t)||f.PF.interpreter(e.right)(t);case"AND":return f.PF.interpreter(e.left)(t)&&f.PF.interpreter(e.right)(t);case"LT":return f.PF.interpreter(e.left)(t)<f.PF.interpreter(e.right)(t);case"GT":return f.PF.interpreter(e.left)(t)>f.PF.interpreter(e.right)(t);case"LTE":return f.PF.interpreter(e.left)(t)<=f.PF.interpreter(e.right)(t);case"GTE":return f.PF.interpreter(e.left)(t)>=f.PF.interpreter(e.right)(t);case"EQ":return f.PF.interpreter(e.left)(t)==f.PF.interpreter(e.right)(t);case"NEQ":return f.PF.interpreter(e.left)(t)!=f.PF.interpreter(e.right)(t);case"MOD":return f.PF.interpreter(e.left)(t)%f.PF.interpreter(e.right)(t);case"VAR":return t;case"NUM":return e.val;default:throw new Error("Invalid Token found.")}}},f.PF.extractPluralExpr=function(e){e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),/;\s*$/.test(e)||(e=e.concat(";"));var t=/nplurals\=(\d+);/,n=/plural\=(.*);/,r=e.match(t),i={},s;if(r.length>1){i.nplurals=r[1],e=e.replace(t,""),s=e.match(n);if(!(s&&s.length>1))throw new Error("`plural` expression not found: "+e);return s[1]}throw new Error("nplurals not found in plural_forms string: "+e)},f.PF.parser=function(){var e={trace:function(){},yy:{},symbols_:{error:2,expressions:3,e:4,EOF:5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,n:19,NUMBER:20,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function(t,n,r,i,s,o,u){var a=o.length-1;switch(s){case 1:return{type:"GROUP",expr:o[a-1]};case 2:this.$={type:"TERNARY",expr:o[a-4],truthy:o[a-2],falsey:o[a]};break;case 3:this.$={type:"OR",left:o[a-2],right:o[a]};break;case 4:this.$={type:"AND",left:o[a-2],right:o[a]};break;case 5:this.$={type:"LT",left:o[a-2],right:o[a]};break;case 6:this.$={type:"LTE",left:o[a-2],right:o[a]};break;case 7:this.$={type:"GT",left:o[a-2],right:o[a]};break;case 8:this.$={type:"GTE",left:o[a-2],right:o[a]};break;case 9:this.$={type:"NEQ",left:o[a-2],right:o[a]};break;case 10:this.$={type:"EQ",left:o[a-2],right:o[a]};break;case 11:this.$={type:"MOD",left:o[a-2],right:o[a]};break;case 12:this.$={type:"GROUP",expr:o[a-1]};break;case 13:this.$={type:"VAR"};break;case 14:this.$={type:"NUM",val:Number(t)}}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function(t,n){throw new Error(t)},parse:function(t){function d(e){r.length=r.length-2*e,i.length=i.length-e,s.length=s.length-e}function v(){var e;return e=n.lexer.lex()||1,typeof e!="number"&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],s=[],o=this.table,u="",a=0,f=0,l=0,c=2,h=1;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var p=this.lexer.yylloc;s.push(p),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var m,g,y,b,w,E,S={},x,T,N,C;for(;;){y=r[r.length-1],this.defaultActions[y]?b=this.defaultActions[y]:(m==null&&(m=v()),b=o[y]&&o[y][m]);if(typeof b=="undefined"||!b.length||!b[0]){if(!l){C=[];for(x in o[y])this.terminals_[x]&&x>2&&C.push("'"+this.terminals_[x]+"'");var k="";this.lexer.showPosition?k="Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[m]+"'":k="Parse error on line "+(a+1)+": Unexpected "+(m==1?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:p,expected:C})}if(l==3){if(m==h)throw new Error(k||"Parsing halted.");f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,m=v()}for(;;){if(c.toString()in o[y])break;if(y==0)throw new Error(k||"Parsing halted.");d(1),y=r[r.length-1]}g=m,m=c,y=r[r.length-1],b=o[y]&&o[y][c],l=3}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+m);switch(b[0]){case 1:r.push(m),i.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(b[1]),m=null,g?(m=g,g=null):(f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,l>0&&l--);break;case 2:T=this.productions_[b[1]][1],S.$=i[i.length-T],S._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},E=this.performAction.call(S,u,f,a,this.yy,b[1],i,s);if(typeof E!="undefined")return E;T&&(r=r.slice(0,-1*T*2),i=i.slice(0,-1*T),s=s.slice(0,-1*T)),r.push(this.productions_[b[1]][0]),i.push(S.$),s.push(S._$),N=o[r[r.length-2]][r[r.length-1]],r.push(N);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(t,n){if(!this.yy.parseError)throw new Error(t);this.yy.parseError(t,n)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=(new Array(e.length+1)).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext="",this.match="");var i=this._currentRules();for(var s=0;s<i.length;s++){t=this._input.match(this.rules[i[s]]);if(t){r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i[s],this.conditionStack[this.conditionStack.length-1]);if(e)return e;return}}if(this._input==="")return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return typeof t!="undefined"?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)}};return e.performAction=function(t,n,r,i){var s=i;switch(r){case 0:break;case 1:return 20;case 2:return 19;case 3:return 8;case 4:return 9;case 5:return 6;case 6:return 7;case 7:return 11;case 8:return 13;case 9:return 10;case 10:return 12;case 11:return 14;case 12:return 15;case 13:return 16;case 14:return 17;case 15:return 18;case 16:return 5;case 17:return"INVALID"}},e.rules=[/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}},e}();return e.lexer=t,e}(),typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=f),exports.Jed=f):(typeof define=="function"&&define.amd&&define("jed",[],function(){return f}),e.Jed=f)}(this),define("text!af",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "lang": "af"\n         },\n         " e.g. conversejs.org": [\n            null,\n            "bv. conversejs.org"\n         ],\n         "unencrypted": [\n            null,\n            "nie-privaat"\n         ],\n         "unverified": [\n            null,\n            "onbevestig"\n         ],\n         "verified": [\n            null,\n            "privaat"\n         ],\n         "finished": [\n            null,\n            "afgesluit"\n         ],\n         "This contact is busy": [\n            null,\n            "Hierdie persoon is besig"\n         ],\n         "This contact is online": [\n            null,\n            "Hierdie persoon is aanlyn"\n         ],\n         "This contact is offline": [\n            null,\n            "Hierdie persoon is aflyn"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Hierdie persoon is onbeskikbaar"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Hierdie persoon is vir lank afwesig"\n         ],\n         "This contact is away": [\n            null,\n            "Hierdie persoon is afwesig"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "Kliek om hierdie kontakte te verskuil"\n         ],\n         "My contacts": [\n            null,\n            "My kontakte"\n         ],\n         "Pending contacts": [\n            null,\n            "Hangende kontakte"\n         ],\n         "Contact requests": [\n            null,\n            "Kontak versoeke"\n         ],\n         "Ungrouped": [\n            null,\n            "Ongegroepeer"\n         ],\n         "Contacts": [\n            null,\n            "Kontakte"\n         ],\n         "Groups": [\n            null,\n            "Groepe"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Fout"\n         ],\n         "Connecting": [\n            null,\n            "Verbind tans"\n         ],\n         "Authenticating": [\n            null,\n            "Besig om te bekragtig"\n         ],\n         "Authentication Failed": [\n            null,\n            "Bekragtiging het gefaal"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Herstel versleutelde sessie"\n         ],\n         "Generating private key.": [\n            null,\n            "Genereer private sleutel."\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "U webblaaier mag tydelik onreageerbaar word."\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            "Identiteitbevestigingsversoek van  %1$s\\n\\nU gespreksmaat probeer om u identiteit te bevestig, deur die volgende vraag te vra \\n\\n%2$s"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "Kon nie hierdie gebruiker se identitied bevestig nie."\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            "Sleutels word met gespreksmaat uitgeruil."\n         ],\n         "Personal message": [\n            null,\n            "Persoonlike boodskap"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "Is u seker dat u die boodskappe in hierdie kamer wil verwyder?"\n         ],\n         "me": [\n            null,\n            "ek"\n         ],\n         "is typing": [\n            null,\n            "tik tans"\n         ],\n         "has stopped typing": [\n            null,\n            "het opgehou tik"\n         ],\n         "has gone away": [\n            null,\n            "het weggegaan"\n         ],\n         "Show this menu": [\n            null,\n            "Vertoon hierdie keuselys"\n         ],\n         "Write in the third person": [\n            null,\n            "Skryf in die derde persoon"\n         ],\n         "Remove messages": [\n            null,\n            "Verwyder boodskappe"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "Is u seker u wil die boodskappe van hierdie klets uitvee?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "U boodskap kon nie gestuur word nie"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Ons het \'n onversleutelde boodskap ontvang"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Ons het \'n onleesbare versleutelde boodskap ontvang"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Hier is die vingerafdrukke, bevestig hulle met %1$s, buite hierdie kletskanaal \\n\\nU vingerafdruk, %2$s: %3$s\\n\\nVingerafdruk vir %1$s: %4$s\\n\\nIndien u die vingerafdrukke bevestig het, klik OK, andersinds klik Kanselleer"\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            "Daar sal van u verwag word om \'n sekuriteitsvraag te stel, en dan ook die antwoord tot daardie vraag te verskaf.\\n\\nU gespreksmaat sal dan daardie vraag gestel word, en indien hulle presies dieselfde antwoord (lw. hoofletters tel) verskaf, sal hul identiteit bevestig wees."\n         ],\n         "What is your security question?": [\n            null,\n            "Wat is u sekuriteitsvraag?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Wat is die antwoord tot die sekuriteitsvraag?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Ongeldige verifikasiemetode verskaf"\n         ],\n         "has gone offline": [\n            null,\n            "is nou aflyn"\n         ],\n         "is busy": [\n            null,\n            "is besig"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "U boodskappe is nie meer versleutel nie"\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            "U boodskappe is now versleutel maar u gespreksmaat se identiteit is nog onseker."\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            "U gespreksmaat se identiteit is bevestig."\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            "U gespreksmaat het versleuteling gestaak, u behoort nou dieselfde te doen."\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "U boodskappe is nie versleutel nie. Klik hier om OTR versleuteling te aktiveer."\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            "U boodskappe is versleutel, maar u gespreksmaat se identiteit is not onseker."\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            "U boodskappe is versleutel en u gespreksmaat se identiteit bevestig."\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            "U gespreksmaat het die private sessie gestaak. U behoort dieselfde te doen"\n         ],\n         "Clear all messages": [\n            null,\n            "Vee alle boodskappe uit"\n         ],\n         "End encrypted conversation": [\n            null,\n            "Beëindig versleutelde gesprek"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            "Verskuil die lys van deelnemers"\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Verfris versleutelde gesprek"\n         ],\n         "Start a call": [\n            null,\n            "Begin \'n oproep"\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Begin versleutelde gesprek"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Bevestig met vingerafdrukke"\n         ],\n         "Verify with SMP": [\n            null,\n            "Bevestig met SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "Wat is hierdie?"\n         ],\n         "Online": [\n            null,\n            "Aangemeld"\n         ],\n         "Busy": [\n            null,\n            "Besig"\n         ],\n         "Away": [\n            null,\n            "Afwesig"\n         ],\n         "Offline": [\n            null,\n            "Afgemeld"\n         ],\n         "Log out": [\n            null,\n            "Meld af"\n         ],\n         "Contact name": [\n            null,\n            "Kontaknaam"\n         ],\n         "Search": [\n            null,\n            "Soek"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Voeg by"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Kliek om nuwe kletskontakte by te voeg"\n         ],\n         "Add a contact": [\n            null,\n            "Voeg \'n kontak by"\n         ],\n         "No users found": [\n            null,\n            "Geen gebruikers gevind"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Kliek om as kletskontak by te voeg"\n         ],\n         "Room name": [\n            null,\n            "Kamer naam"\n         ],\n         "Nickname": [\n            null,\n            "Bynaam"\n         ],\n         "Server": [\n            null,\n            "Bediener"\n         ],\n         "Join Room": [\n            null,\n            "Betree kamer"\n         ],\n         "Show rooms": [\n            null,\n            "Wys kamers"\n         ],\n         "Rooms": [\n            null,\n            "Kamers"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Geen kamers op %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Kamers op %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Kliek om hierdie kletskamer te open"\n         ],\n         "Show more information on this room": [\n            null,\n            "Wys meer inligting aangaande hierdie kletskamer"\n         ],\n         "Description:": [\n            null,\n            "Beskrywing:"\n         ],\n         "Occupants:": [\n            null,\n            "Deelnemers:"\n         ],\n         "Features:": [\n            null,\n            "Eienskappe:"\n         ],\n         "Requires authentication": [\n            null,\n            "Benodig magtiging"\n         ],\n         "Hidden": [\n            null,\n            "Verskuil"\n         ],\n         "Requires an invitation": [\n            null,\n            "Benodig \'n uitnodiging"\n         ],\n         "Moderated": [\n            null,\n            "Gemodereer"\n         ],\n         "Non-anonymous": [\n            null,\n            "Nie-anoniem"\n         ],\n         "Open room": [\n            null,\n            "Oop kletskamer"\n         ],\n         "Permanent room": [\n            null,\n            "Permanente kamer"\n         ],\n         "Public": [\n            null,\n            "Publiek"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Deels anoniem"\n         ],\n         "Temporary room": [\n            null,\n            "Tydelike kamer"\n         ],\n         "Unmoderated": [\n            null,\n            "Ongemodereer"\n         ],\n         "This user is a moderator": [\n            null,\n            "Hierdie gebruiker is \'n moderator"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Hierdie gebruiker kan boodskappe na die kamer stuur"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Hierdie gebruiker kan NIE boodskappe na die kamer stuur nie"\n         ],\n         "Invite...": [\n            null,\n            "Nooi uit..."\n         ],\n         "Occupants": [\n            null,\n            "Deelnemers"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            "U is op die punt om %1$s na die kletskamer \\"%2$s\\" uit te nooi."\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            "U mag na keuse \'n boodskap insluit, om bv. die rede vir die uitnodiging te staaf."\n         ],\n         "Message": [\n            null,\n            "Boodskap"\n         ],\n         "Error: could not execute the command": [\n            null,\n            "Fout: kon nie die opdrag uitvoer nie"\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Ban user from room": [\n            null,\n            "Verban gebruiker uit hierdie kletskamer"\n         ],\n         "Change user role to participant": [\n            null,\n            "Verander gebruikersrol na deelnemer"\n         ],\n         "Kick user from room": [\n            null,\n            "Skop gebruiker uit hierdie kletskamer"\n         ],\n         "Write in 3rd person": [\n            null,\n            "Skryf in die derde persoon"\n         ],\n         "Grant membership to a user": [\n            null,\n            "Verleen lidmaatskap aan \'n gebruiker"\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            "Verwyder gebruiker se vermoë om boodskappe te plaas"\n         ],\n         "Change your nickname": [\n            null,\n            "Verander u bynaam"\n         ],\n         "Grant moderator role to user": [\n            null,\n            "Verleen moderator rol aan gebruiker"\n         ],\n         "Grant ownership of this room": [\n            null,\n            "Verleen eienaarskap van hierdie kamer"\n         ],\n         "Revoke user\'s membership": [\n            null,\n            "Herroep gebruiker se lidmaatskap"\n         ],\n         "Set room topic": [\n            null,\n            "Stel onderwerp vir kletskamer"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            "Laat stilgemaakte gebruiker toe om weer boodskappe te plaas"\n         ],\n         "Save": [\n            null,\n            "Stoor"\n         ],\n         "Cancel": [\n            null,\n            "Kanseleer"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "A fout het voorgekom terwyl probeer is om die vorm te stoor."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Hiedie kletskamer benodig \'n wagwoord"\n         ],\n         "Password: ": [\n            null,\n            "Wagwoord:"\n         ],\n         "Submit": [\n            null,\n            "Dien in"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Hierdie vertrek is nie anoniem nie"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Hierdie vertrek wys nou onbeskikbare lede"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Hierdie vertrek wys nie onbeskikbare lede nie"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Nie-privaatheidverwante kamer instellings het verander"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "Kamer log is nou aangeskakel"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "Kamer log is nou afgeskakel"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Hiedie kamer is nou nie anoniem nie"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Hierdie kamer is nou gedeeltelik anoniem"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Hierdie kamer is nou ten volle anoniem"\n         ],\n         "A new room has been created": [\n            null,\n            "\'n Nuwe kamer is geskep"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Jy is uit die kamer verban"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Jy is uit die kamer geskop"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Jy is vanuit die kamer verwyder a.g.v \'n verandering van affiliasie"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Jy is vanuit die kamer verwyder omdat die kamer nou slegs tot lede beperk word en jy nie \'n lid is nie."\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Jy is van hierdie kamer verwyder aangesien die MUC (Multi-user chat) diens nou afgeskakel word."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> is verban"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "<strong>%1$s</strong> se bynaam het verander"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> is uitgeskop"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> is verwyder a.g.v \'n verandering van affiliasie"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> is nie \'n lid nie, en dus verwyder"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "U bynaam is outomaties verander na: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "U bynaam is verander na: <strong>%1$s</strong>"\n         ],\n         "The reason given is: \\"": [\n            null,\n            "Die gegewe rede is: \\""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Jy is nie op die ledelys van hierdie kamer nie"\n         ],\n         "No nickname was specified": [\n            null,\n            "Geen bynaam verskaf nie"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Jy word nie toegelaat om nog kamers te skep nie"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Jou bynaam voldoen nie aan die kamer se beleid nie"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Jou bynaam is reeds geneem"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Hierdie kamer bestaan tans (nog) nie"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Hierdie kamer het sy maksimum aantal deelnemers bereik"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Onderwerp deur %1$s bygewerk na: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s het u uitgenooi om die kletskamer %2$s te besoek"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s het u uitgenooi om die kletskamer %2$s te besoek, en het die volgende rede verskaf: \\"%3$s\\""\n         ],\n         "Click to restore this chat": [\n            null,\n            "Kliek om hierdie klets te herstel"\n         ],\n         "Minimized": [\n            null,\n            "Geminimaliseer"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Kliek om hierdie kontak te verwyder"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "Kliek om hierdie kontakversoek te aanvaar"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "Kliek om hierdie kontakversoek te weier"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Kliek om met hierdie kontak te klets"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "Is u seker u wil hierdie gespreksmaat verwyder?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "Is u seker dat u hierdie persoon se versoek wil afkeur?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            "Tik om te filtreer"\n         ],\n         "I am %1$s": [\n            null,\n            "Ek is %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Kliek hier om jou eie statusboodskap te skryf"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Kliek om jou klets-status te verander"\n         ],\n         "Custom status": [\n            null,\n            "Doelgemaakte status"\n         ],\n         "online": [\n            null,\n            "aangemeld"\n         ],\n         "busy": [\n            null,\n            "besig"\n         ],\n         "away for long": [\n            null,\n            "vir lank afwesig"\n         ],\n         "away": [\n            null,\n            "afwesig"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            "U XMPP-verskaffer se domein naam:"\n         ],\n         "Fetch registration form": [\n            null,\n            "Haal die registrasie form"\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            "Wenk: A lys van publieke XMPP-verskaffers is beskikbaar"\n         ],\n         "here": [\n            null,\n            "hier"\n         ],\n         "Register": [\n            null,\n            "Registreer"\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            "Jammer, die gekose verskaffer ondersteun nie in-band registrasie nie.Probeer weer met \'n ander verskaffer."\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            "Vra tans die XMPP-bediener vir \'n registrasie vorm"\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            "Iets het fout geloop tydens koppeling met \\"%1$s\\". Is u seker dat dit bestaan?"\n         ],\n         "Now logging you in": [\n            null,\n            "U word nou aangemeld"\n         ],\n         "Registered successfully": [\n            null,\n            "Suksesvol geregistreer"\n         ],\n         "Return": [\n            null,\n            "Terug"\n         ],\n         "XMPP Username:": [\n            null,\n            "XMPP Gebruikersnaam:"\n         ],\n         "Password:": [\n            null,\n            "Wagwoord"\n         ],\n         "Click here to log in anonymously": [\n            null,\n            "Kliek hier om anoniem aan te meld"\n         ],\n         "Log In": [\n            null,\n            "Meld aan"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Teken in"\n         ],\n         "Toggle chat": [\n            null,\n            "Klets"\n         ]\n      }\n   }\n}'}),define("text!de",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n != 1);",\n            "lang": "de"\n         },\n         " e.g. conversejs.org": [\n            null,\n            "z. B. conversejs.org"\n         ],\n         "unencrypted": [\n            null,\n            "unverschlüsselt"\n         ],\n         "unverified": [\n            null,\n            "nicht verifiziert"\n         ],\n         "verified": [\n            null,\n            "verifiziert"\n         ],\n         "finished": [\n            null,\n            "erledigt"\n         ],\n         "This contact is busy": [\n            null,\n            "Dieser Kontakt ist beschäftigt"\n         ],\n         "This contact is online": [\n            null,\n            "Dieser Kontakt ist online"\n         ],\n         "This contact is offline": [\n            null,\n            "Dieser Kontakt ist offline"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Dieser Kontakt ist nicht verfügbar"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Dieser Kontakt ist für längere Zeit abwesend"\n         ],\n         "This contact is away": [\n            null,\n            "Dieser Kontakt ist abwesend"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "Hier klicken um diese Kontakte zu verstecken"\n         ],\n         "My contacts": [\n            null,\n            "Meine Kontakte"\n         ],\n         "Pending contacts": [\n            null,\n            "Unbestätigte Kontakte"\n         ],\n         "Contact requests": [\n            null,\n            "Kontaktanfragen"\n         ],\n         "Ungrouped": [\n            null,\n            "Ungruppiert"\n         ],\n         "Contacts": [\n            null,\n            "Kontakte"\n         ],\n         "Groups": [\n            null,\n            "Gruppen"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Fehler"\n         ],\n         "Connecting": [\n            null,\n            "Verbindungsaufbau …"\n         ],\n         "Authenticating": [\n            null,\n            "Authentifizierung"\n         ],\n         "Authentication Failed": [\n            null,\n            "Authentifizierung gescheitert"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Verschlüsselte Sitzung wiederherstellen"\n         ],\n         "Generating private key.": [\n            null,\n            "Generiere privaten Schlüssel."\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "Ihr Browser könnte langsam reagieren."\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            "Authentifizierungsanfrage von %1$s\\n\\nIhr Kontakt möchte durch die folgende Frage Ihre Identität verifizieren:\\n\\n%2$s"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "Die Identität des Benutzers konnte nicht verifiziert werden."\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            "Tausche private Schlüssel mit Kontakt aus."\n         ],\n         "Personal message": [\n            null,\n            "Persönliche Nachricht"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "Sind Sie sicher, dass Sie alle Nachrichten in diesem Raum löschen möchten?"\n         ],\n         "me": [\n            null,\n            "Ich"\n         ],\n         "is typing": [\n            null,\n            "tippt"\n         ],\n         "has stopped typing": [\n            null,\n            "tippt nicht mehr"\n         ],\n         "has gone away": [\n            null,\n            "ist jetzt abwesend"\n         ],\n         "Show this menu": [\n            null,\n            "Dieses Menü anzeigen"\n         ],\n         "Write in the third person": [\n            null,\n            "In der dritten Person schreiben"\n         ],\n         "Remove messages": [\n            null,\n            "Nachrichten entfernen"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "Sind Sie sicher, dass Sie alle Nachrichten dieses Chats löschen möchten?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "Ihre Nachricht konnte nicht gesendet werden"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Wir haben eine unverschlüsselte Nachricht empfangen"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Wir haben eine unlesbare Nachricht empfangen"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            ""\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            ""\n         ],\n         "What is your security question?": [\n            null,\n            ""\n         ],\n         "What is the answer to the security question?": [\n            null,\n            ""\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            ""\n         ],\n         "is busy": [\n            null,\n            "ist beschäftigt"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            ""\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            ""\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            ""\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            ""\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            ""\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            ""\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            ""\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            ""\n         ],\n         "Clear all messages": [\n            null,\n            "Alle Nachrichten löschen"\n         ],\n         "End encrypted conversation": [\n            null,\n            ""\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            "Teilnehmerliste ausblenden"\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            ""\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            ""\n         ],\n         "Verify with fingerprints": [\n            null,\n            ""\n         ],\n         "Verify with SMP": [\n            null,\n            ""\n         ],\n         "What\'s this?": [\n            null,\n            "Was ist das?"\n         ],\n         "Online": [\n            null,\n            "Online"\n         ],\n         "Busy": [\n            null,\n            "Beschäftigt"\n         ],\n         "Away": [\n            null,\n            "Abwesend"\n         ],\n         "Offline": [\n            null,\n            "Abgemeldet"\n         ],\n         "Log out": [\n            null,\n            "Abmelden"\n         ],\n         "Contact name": [\n            null,\n            "Name des Kontakts"\n         ],\n         "Search": [\n            null,\n            "Suche"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Hinzufügen"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Hier klicken um neuen Kontakt hinzuzufügen"\n         ],\n         "Add a contact": [\n            null,\n            "Kontakt hinzufügen"\n         ],\n         "No users found": [\n            null,\n            "Keine Benutzer gefunden"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Hier klicken um als Kontakt hinzuzufügen"\n         ],\n         "Room name": [\n            null,\n            "Raumname"\n         ],\n         "Nickname": [\n            null,\n            "Spitzname"\n         ],\n         "Server": [\n            null,\n            "Server"\n         ],\n         "Join Room": [\n            null,\n            "Raum betreten"\n         ],\n         "Show rooms": [\n            null,\n            "Räume anzeigen"\n         ],\n         "Rooms": [\n            null,\n            "Räume"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Keine Räume auf %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Räume auf %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Hier klicken um diesen Raum zu öffnen"\n         ],\n         "Show more information on this room": [\n            null,\n            "Mehr Information über diesen Raum zeigen"\n         ],\n         "Description:": [\n            null,\n            "Beschreibung"\n         ],\n         "Occupants:": [\n            null,\n            "Teilnehmer"\n         ],\n         "Features:": [\n            null,\n            "Funktionen:"\n         ],\n         "Requires authentication": [\n            null,\n            "Authentifizierung erforderlich"\n         ],\n         "Hidden": [\n            null,\n            "Versteckt"\n         ],\n         "Requires an invitation": [\n            null,\n            "Einladung erforderlich"\n         ],\n         "Moderated": [\n            null,\n            "Moderiert"\n         ],\n         "Non-anonymous": [\n            null,\n            "Nicht anonym"\n         ],\n         "Open room": [\n            null,\n            "Offener Raum"\n         ],\n         "Permanent room": [\n            null,\n            "Dauerhafter Raum"\n         ],\n         "Public": [\n            null,\n            "Öffentlich"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Teils anonym"\n         ],\n         "Temporary room": [\n            null,\n            "Vorübergehender Raum"\n         ],\n         "Unmoderated": [\n            null,\n            "Unmoderiert"\n         ],\n         "This user is a moderator": [\n            null,\n            "Dieser Benutzer ist ein Moderator"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Dieser Benutzer kann Nachrichten in diesem Raum verschicken"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Dieser Benutzer kann keine Nachrichten in diesem Raum verschicken"\n         ],\n         "Invite...": [\n            null,\n            "Einladen..."\n         ],\n         "Occupants": [\n            null,\n            "Teilnehmer"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "Nachricht"\n         ],\n         "Error: could not execute the command": [\n            null,\n            "Fehler: Konnte den Befehl nicht ausführen"\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Ban user from room": [\n            null,\n            "Verbanne einen Benutzer aus dem Raum."\n         ],\n         "Change user role to participant": [\n            null,\n            "Benutzerrolle zu Teilnehmer ändern"\n         ],\n         "Kick user from room": [\n            null,\n            "Werfe einen Benutzer aus dem Raum."\n         ],\n         "Write in 3rd person": [\n            null,\n            "In der dritten Person schreiben"\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            "Spitznamen ändern"\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Grant ownership of this room": [\n            null,\n            "Besitzrechte an diesem Raum vergeben"\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Set room topic": [\n            null,\n            "Chatraum Thema festlegen"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "Speichern"\n         ],\n         "Cancel": [\n            null,\n            "Abbrechen"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Beim Speichern des Formulars ist ein Fehler aufgetreten."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Dieser Raum erfordert ein Passwort"\n         ],\n         "Password: ": [\n            null,\n            "Passwort: "\n         ],\n         "Submit": [\n            null,\n            "Abschicken"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Dieser Raum ist nicht anonym"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Dieser Raum zeigt jetzt nicht verfügbare Mitglieder an"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Dieser Raum zeigt jetzt nicht verfügbare Mitglieder nicht an"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Die Raumkonfiguration hat sich geändert (nicht Privatsphäre relevant)"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "Nachrichten in diesem Raum werden ab jetzt protokolliert."\n         ],\n         "Room logging is now disabled": [\n            null,\n            "Nachrichten in diesem Raum werden nicht mehr protokolliert."\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Dieser Raum ist jetzt nicht anonym"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Dieser Raum ist jetzt teils anonym"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Dieser Raum ist jetzt anonym"\n         ],\n         "A new room has been created": [\n            null,\n            "Ein neuer Raum wurde erstellt"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Sie sind aus diesem Raum verbannt worden"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Sie wurden aus diesem Raum hinausgeworfen"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Sie wurden wegen einer Zugehörigkeitsänderung entfernt"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Sie wurden aus diesem Raum entfernt, da Sie kein Mitglied sind."\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Sie wurden aus diesem Raum entfernt, da der MUC (Multi-User Chat) Dienst gerade heruntergefahren wird."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> ist verbannt worden"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "<strong>%1$s</strong> hat den Spitznamen geändert"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> wurde hinausgeworfen"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> wurde wegen einer Zugehörigkeitsänderung entfernt"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> ist kein Mitglied und wurde daher entfernt"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "Ihr Spitzname wurde automatisiert geändert zu: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "Ihr Spitzname wurde geändert zu: <strong>%1$s</strong>"\n         ],\n         "The reason given is: \\"": [\n            null,\n            "Die angegebene Begründung lautet: \\""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Sie sind nicht auf der Mitgliederliste dieses Raums"\n         ],\n         "No nickname was specified": [\n            null,\n            "Kein Spitzname festgelegt"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Es ist Ihnen nicht erlaubt neue Räume anzulegen"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Ungültiger Spitzname"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Ihre Spitzname existiert bereits."\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Dieser Raum existiert (noch) nicht"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Dieser Raum hat die maximale Mitgliederanzahl erreicht"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "%1$s hat das Thema zu \\"%2$s\\" geändert"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s hat Sie in den Raum \\"%2$s\\" eingeladen"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s hat Sie in den Raum \\"%2$s\\" eingeladen. Begründung: \\"%3$s\\""\n         ],\n         "Click to restore this chat": [\n            null,\n            "Hier klicken um diesen Chat wiederherzustellen"\n         ],\n         "Minimized": [\n            null,\n            "Minimiert"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Hier klicken um diesen Kontakt zu entfernen"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "Hier klicken um diese Kontaktanfrage zu akzeptieren"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "Hier klicken um diese Kontaktanfrage zu abzulehnen"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Hier klicken um mit diesem Kontakt zu chatten"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "Wollen Sie diesen Kontakt wirklich entfernen?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "Wollen Sie diese Kontaktanfrage wirklich ablehnen?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            "Tippen um zu filtern"\n         ],\n         "I am %1$s": [\n            null,\n            "Ich bin %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Hier klicken um Statusnachricht zu ändern"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Hier klicken um Status zu ändern"\n         ],\n         "Custom status": [\n            null,\n            "Statusnachricht"\n         ],\n         "online": [\n            null,\n            "online"\n         ],\n         "busy": [\n            null,\n            "beschäftigt"\n         ],\n         "away for long": [\n            null,\n            "länger abwesend"\n         ],\n         "away": [\n            null,\n            "abwesend"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            "Zurück"\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "XMPP Username:": [\n            null,\n            "XMPP Benutzername"\n         ],\n         "Password:": [\n            null,\n            "Passwort:"\n         ],\n         "Click here to log in anonymously": [\n            null,\n            "Hier klicken um anonym anzumelden"\n         ],\n         "Log In": [\n            null,\n            "Anmelden"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Anmelden"\n         ],\n         "Toggle chat": [\n            null,\n            "Chat ein-/ausblenden"\n         ]\n      }\n   }\n}'}),define("text!en",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n != 1);",\n            "lang": "en"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            ""\n         ],\n         "unverified": [\n            null,\n            ""\n         ],\n         "verified": [\n            null,\n            ""\n         ],\n         "finished": [\n            null,\n            ""\n         ],\n         "This contact is busy": [\n            null,\n            ""\n         ],\n         "This contact is online": [\n            null,\n            ""\n         ],\n         "This contact is offline": [\n            null,\n            ""\n         ],\n         "This contact is unavailable": [\n            null,\n            ""\n         ],\n         "This contact is away for an extended period": [\n            null,\n            ""\n         ],\n         "This contact is away": [\n            null,\n            ""\n         ],\n         "Click to hide these contacts": [\n            null,\n            ""\n         ],\n         "My contacts": [\n            null,\n            ""\n         ],\n         "Pending contacts": [\n            null,\n            ""\n         ],\n         "Contact requests": [\n            null,\n            ""\n         ],\n         "Ungrouped": [\n            null,\n            ""\n         ],\n         "Contacts": [\n            null,\n            ""\n         ],\n         "Groups": [\n            null,\n            ""\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            ""\n         ],\n         "Connecting": [\n            null,\n            ""\n         ],\n         "Authenticating": [\n            null,\n            ""\n         ],\n         "Authentication Failed": [\n            null,\n            ""\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            ""\n         ],\n         "Generating private key.": [\n            null,\n            ""\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            ""\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            ""\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            ""\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            ""\n         ],\n         "Personal message": [\n            null,\n            ""\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            ""\n         ],\n         "me": [\n            null,\n            ""\n         ],\n         "is typing": [\n            null,\n            ""\n         ],\n         "has stopped typing": [\n            null,\n            ""\n         ],\n         "has gone away": [\n            null,\n            ""\n         ],\n         "Show this menu": [\n            null,\n            "Show this menu"\n         ],\n         "Write in the third person": [\n            null,\n            "Write in the third person"\n         ],\n         "Remove messages": [\n            null,\n            "Remove messages"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            ""\n         ],\n         "Your message could not be sent": [\n            null,\n            ""\n         ],\n         "We received an unencrypted message": [\n            null,\n            ""\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            ""\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            ""\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            ""\n         ],\n         "What is your security question?": [\n            null,\n            ""\n         ],\n         "What is the answer to the security question?": [\n            null,\n            ""\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            ""\n         ],\n         "has gone offline": [\n            null,\n            ""\n         ],\n         "is busy": [\n            null,\n            ""\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            ""\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            ""\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            ""\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            ""\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            ""\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            ""\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            ""\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            ""\n         ],\n         "Clear all messages": [\n            null,\n            ""\n         ],\n         "End encrypted conversation": [\n            null,\n            ""\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            ""\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            ""\n         ],\n         "Verify with fingerprints": [\n            null,\n            ""\n         ],\n         "Verify with SMP": [\n            null,\n            ""\n         ],\n         "What\'s this?": [\n            null,\n            ""\n         ],\n         "Online": [\n            null,\n            ""\n         ],\n         "Busy": [\n            null,\n            ""\n         ],\n         "Away": [\n            null,\n            ""\n         ],\n         "Offline": [\n            null,\n            ""\n         ],\n         "Log out": [\n            null,\n            ""\n         ],\n         "Contact name": [\n            null,\n            ""\n         ],\n         "Search": [\n            null,\n            ""\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            ""\n         ],\n         "Click to add new chat contacts": [\n            null,\n            ""\n         ],\n         "Add a contact": [\n            null,\n            ""\n         ],\n         "No users found": [\n            null,\n            ""\n         ],\n         "Click to add as a chat contact": [\n            null,\n            ""\n         ],\n         "Room name": [\n            null,\n            ""\n         ],\n         "Nickname": [\n            null,\n            ""\n         ],\n         "Server": [\n            null,\n            "Server"\n         ],\n         "Join Room": [\n            null,\n            ""\n         ],\n         "Show rooms": [\n            null,\n            ""\n         ],\n         "Rooms": [\n            null,\n            ""\n         ],\n         "No rooms on %1$s": [\n            null,\n            ""\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Rooms on %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Click to open this room"\n         ],\n         "Show more information on this room": [\n            null,\n            "Show more information on this room"\n         ],\n         "Description:": [\n            null,\n            "Description:"\n         ],\n         "Occupants:": [\n            null,\n            "Occupants:"\n         ],\n         "Features:": [\n            null,\n            "Features:"\n         ],\n         "Requires authentication": [\n            null,\n            "Requires authentication"\n         ],\n         "Hidden": [\n            null,\n            "Hidden"\n         ],\n         "Requires an invitation": [\n            null,\n            "Requires an invitation"\n         ],\n         "Moderated": [\n            null,\n            "Moderated"\n         ],\n         "Non-anonymous": [\n            null,\n            "Non-anonymous"\n         ],\n         "Open room": [\n            null,\n            "Open room"\n         ],\n         "Permanent room": [\n            null,\n            "Permanent room"\n         ],\n         "Public": [\n            null,\n            "Public"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Semi-anonymous"\n         ],\n         "Temporary room": [\n            null,\n            "Temporary room"\n         ],\n         "Unmoderated": [\n            null,\n            "Unmoderated"\n         ],\n         "This user is a moderator": [\n            null,\n            "This user is a moderator"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "This user can send messages in this room"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "This user can NOT send messages in this room"\n         ],\n         "Invite...": [\n            null,\n            ""\n         ],\n         "Occupants": [\n            null,\n            ""\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "Message"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Ban user from room": [\n            null,\n            ""\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Kick user from room": [\n            null,\n            ""\n         ],\n         "Write in 3rd person": [\n            null,\n            ""\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Grant ownership of this room": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Set room topic": [\n            null,\n            ""\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "Save"\n         ],\n         "Cancel": [\n            null,\n            "Cancel"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "An error occurred while trying to save the form."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "This chatroom requires a password"\n         ],\n         "Password: ": [\n            null,\n            "Password: "\n         ],\n         "Submit": [\n            null,\n            "Submit"\n         ],\n         "This room is not anonymous": [\n            null,\n            "This room is not anonymous"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "This room now shows unavailable members"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "This room does not show unavailable members"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Non-privacy-related room configuration has changed"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "Room logging is now enabled"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "Room logging is now disabled"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "This room is now non-anonymous"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "This room is now semi-anonymous"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "This room is now fully-anonymous"\n         ],\n         "A new room has been created": [\n            null,\n            "A new room has been created"\n         ],\n         "You have been banned from this room": [\n            null,\n            "You have been banned from this room"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "You have been kicked from this room"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "You have been removed from this room because of an affiliation change"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "You have been removed from this room because the room has changed to members-only and you\'re not a member"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "You have been removed from this room because the MUC (Multi-user chat) service is being shut down."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> has been banned"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            ""\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> has been kicked out"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> has been removed because of an affiliation change"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> has been removed for not being a member"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            ""\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            ""\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "You are not on the member list of this room"\n         ],\n         "No nickname was specified": [\n            null,\n            "No nickname was specified"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "You are not allowed to create new rooms"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Your nickname doesn\'t conform to this room\'s policies"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Your nickname is already taken"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "This room does not (yet) exist"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "This room has reached it\'s maximum number of occupants"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Topic set by %1$s to: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            ""\n         ],\n         "Click to restore this chat": [\n            null,\n            ""\n         ],\n         "Minimized": [\n            null,\n            ""\n         ],\n         "Click to remove this contact": [\n            null,\n            "Click to remove this contact"\n         ],\n         "Click to accept this contact request": [\n            null,\n            ""\n         ],\n         "Click to decline this contact request": [\n            null,\n            ""\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Click to chat with this contact"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "I am %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Click here to write a custom status message"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Click to change your chat status"\n         ],\n         "Custom status": [\n            null,\n            "Custom status"\n         ],\n         "online": [\n            null,\n            "online"\n         ],\n         "busy": [\n            null,\n            "busy"\n         ],\n         "away for long": [\n            null,\n            "away for long"\n         ],\n         "away": [\n            null,\n            "away"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "XMPP Username:": [\n            null,\n            ""\n         ],\n         "Password:": [\n            null,\n            "Password:"\n         ],\n         "Click here to log in anonymously": [\n            null,\n            "Click here to log in anonymously"\n         ],\n         "Log In": [\n            null,\n            "Log In"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Sign in"\n         ],\n         "Toggle chat": [\n            null,\n            ""\n         ]\n      }\n   }\n}'}),define("text!es",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n != 1);",\n            "lang": "es"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "texto plano"\n         ],\n         "unverified": [\n            null,\n            "sin verificar"\n         ],\n         "verified": [\n            null,\n            "verificado"\n         ],\n         "finished": [\n            null,\n            "finalizado"\n         ],\n         "This contact is busy": [\n            null,\n            "Este contacto está ocupado"\n         ],\n         "This contact is online": [\n            null,\n            "Este contacto está en línea"\n         ],\n         "This contact is offline": [\n            null,\n            "Este contacto está desconectado"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Este contacto no está disponible"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Este contacto está ausente por un largo periodo de tiempo"\n         ],\n         "This contact is away": [\n            null,\n            "Este contacto está ausente"\n         ],\n         "My contacts": [\n            null,\n            "Mis contactos"\n         ],\n         "Pending contacts": [\n            null,\n            "Contactos pendientes"\n         ],\n         "Contact requests": [\n            null,\n            "Solicitudes de contacto"\n         ],\n         "Ungrouped": [\n            null,\n            ""\n         ],\n         "Contacts": [\n            null,\n            "Contactos"\n         ],\n         "Groups": [\n            null,\n            ""\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Error"\n         ],\n         "Connecting": [\n            null,\n            "Conectando"\n         ],\n         "Authenticating": [\n            null,\n            "Autenticando"\n         ],\n         "Authentication Failed": [\n            null,\n            "La autenticación falló"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Re-estableciendo sesión cifrada"\n         ],\n         "Generating private key.": [\n            null,\n            "Generando llave privada"\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "Su navegador podría dejar de responder por un momento"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "No se pudo verificar la identidad de este usuario"\n         ],\n         "Personal message": [\n            null,\n            "Mensaje personal"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "¿Está seguro de querer limpiar los mensajes de esta sala?"\n         ],\n         "me": [\n            null,\n            "yo"\n         ],\n         "is typing": [\n            null,\n            ""\n         ],\n         "has stopped typing": [\n            null,\n            ""\n         ],\n         "Show this menu": [\n            null,\n            "Mostrar este menú"\n         ],\n         "Write in the third person": [\n            null,\n            "Escribir en tercera persona"\n         ],\n         "Remove messages": [\n            null,\n            "Eliminar mensajes"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "¿Está seguro de querer limpiar los mensajes de esta conversación?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "Su mensaje no se pudo enviar"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Se recibío un mensaje sin cifrar"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Se recibío un mensaje cifrado corrupto"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Por favor confirme los identificadores de %1$s fuera de este chat.\\n\\nSu identificador es, %2$s: %3$s\\n\\nEl identificador de %1$s es: %4$s\\n\\nDespués de confirmar los identificadores haga click en OK, cancele si no concuerdan."\n         ],\n         "What is your security question?": [\n            null,\n            "Introduzca su pregunta de seguridad"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Introduzca la respuesta a su pregunta de seguridad"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Esquema de autenticación inválido"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Sus mensajes han dejado de cifrarse"\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Sus mensajes no están cifrados. Haga click aquí para habilitar el cifrado OTR"\n         ],\n         "End encrypted conversation": [\n            null,\n            "Finalizar sesión cifrada"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Actualizar sesión cifrada"\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Iniciar sesión cifrada"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Verificar con identificadores"\n         ],\n         "Verify with SMP": [\n            null,\n            "Verificar con SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "¿Qué es esto?"\n         ],\n         "Online": [\n            null,\n            "En línea"\n         ],\n         "Busy": [\n            null,\n            "Ocupado"\n         ],\n         "Away": [\n            null,\n            "Ausente"\n         ],\n         "Offline": [\n            null,\n            "Desconectado"\n         ],\n         "Contact name": [\n            null,\n            "Nombre de contacto"\n         ],\n         "Search": [\n            null,\n            "Búsqueda"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Agregar"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Haga click para agregar nuevos contactos al chat"\n         ],\n         "Add a contact": [\n            null,\n            "Agregar un contacto"\n         ],\n         "No users found": [\n            null,\n            "Sin usuarios encontrados"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Haga click para agregar como contacto de chat"\n         ],\n         "Room name": [\n            null,\n            "Nombre de sala"\n         ],\n         "Nickname": [\n            null,\n            "Apodo"\n         ],\n         "Server": [\n            null,\n            "Servidor"\n         ],\n         "Show rooms": [\n            null,\n            "Mostrar salas"\n         ],\n         "Rooms": [\n            null,\n            "Salas"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Sin salas en %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Salas en %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Haga click para abrir esta sala"\n         ],\n         "Show more information on this room": [\n            null,\n            "Mostrar más información en esta sala"\n         ],\n         "Description:": [\n            null,\n            "Descripción"\n         ],\n         "Occupants:": [\n            null,\n            "Ocupantes:"\n         ],\n         "Features:": [\n            null,\n            "Características:"\n         ],\n         "Requires authentication": [\n            null,\n            "Autenticación requerida"\n         ],\n         "Hidden": [\n            null,\n            "Oculto"\n         ],\n         "Requires an invitation": [\n            null,\n            "Requiere una invitación"\n         ],\n         "Moderated": [\n            null,\n            "Moderado"\n         ],\n         "Non-anonymous": [\n            null,\n            "No anónimo"\n         ],\n         "Open room": [\n            null,\n            "Abrir sala"\n         ],\n         "Permanent room": [\n            null,\n            "Sala permanente"\n         ],\n         "Public": [\n            null,\n            "Pública"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Semi anónimo"\n         ],\n         "Temporary room": [\n            null,\n            "Sala temporal"\n         ],\n         "Unmoderated": [\n            null,\n            "Sin moderar"\n         ],\n         "This user is a moderator": [\n            null,\n            "Este usuario es un moderador"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Este usuario puede enviar mensajes en esta sala"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Este usuario NO puede enviar mensajes en esta"\n         ],\n         "Invite...": [\n            null,\n            ""\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "Mensaje"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "Guardar"\n         ],\n         "Cancel": [\n            null,\n            "Cancelar"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Un error ocurrío mientras se guardaba el formulario."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Esta sala de chat requiere una contraseña."\n         ],\n         "Password: ": [\n            null,\n            "Contraseña: "\n         ],\n         "Submit": [\n            null,\n            "Enviar"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Esta sala no es para usuarios anónimos"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Esta sala ahora muestra los miembros no disponibles"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Esta sala no muestra los miembros no disponibles"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Una configuración de la sala no relacionada con la privacidad ha sido cambiada"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "El registro de la sala ahora está habilitado"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "El registro de la sala ahora está deshabilitado"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Esta sala ahora es pública"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Esta sala ahora es semi-anónima"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Esta sala ahora es completamente anónima"\n         ],\n         "A new room has been created": [\n            null,\n            "Una nueva sala ha sido creada"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Usted ha sido bloqueado de esta sala"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Usted ha sido expulsado de esta sala"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Usted ha sido eliminado de esta sala debido a un cambio de afiliación"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Usted ha sido eliminado de esta sala debido a que la sala cambio su configuración a solo-miembros y usted no es un miembro"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Usted ha sido eliminado de esta sala debido a que el servicio MUC (Multi-user chat) está deshabilitado."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> ha sido bloqueado"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> ha sido expulsado"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> ha sido eliminado debido a un cambio de afiliación"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> ha sido eliminado debido a que no es miembro"\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Usted no está en la lista de miembros de esta sala"\n         ],\n         "No nickname was specified": [\n            null,\n            "Sin apodo especificado"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Usted no esta autorizado para crear nuevas salas"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Su apodo no se ajusta a la política de esta sala"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Su apodo ya ha sido tomando por otro usuario"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Esta sala (aún) no existe"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Esta sala ha alcanzado su número máximo de ocupantes"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Tema fijado por %1$s a: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            ""\n         ],\n         "Click to restore this chat": [\n            null,\n            "Haga click para eliminar este contacto"\n         ],\n         "Minimized": [\n            null,\n            "Minimizado"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Haga click para eliminar este contacto"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Haga click para conversar con este contacto"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "¿Esta seguro de querer eliminar este contacto?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "Estoy %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Haga click para escribir un mensaje de estatus personalizado"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Haga click para cambiar su estatus de chat"\n         ],\n         "Custom status": [\n            null,\n            "Personalizar estatus"\n         ],\n         "online": [\n            null,\n            "en línea"\n         ],\n         "busy": [\n            null,\n            "ocupado"\n         ],\n         "away for long": [\n            null,\n            "ausente por mucho tiempo"\n         ],\n         "away": [\n            null,\n            "ausente"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "Password:": [\n            null,\n            "Contraseña:"\n         ],\n         "Log In": [\n            null,\n            "Iniciar sesión"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Registrar"\n         ],\n         "Toggle chat": [\n            null,\n            "Chat"\n         ]\n      }\n   }\n}'}),define("text!fr",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n != 1);",\n            "lang": "fr"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "non crypté"\n         ],\n         "unverified": [\n            null,\n            "non vérifié"\n         ],\n         "verified": [\n            null,\n            "vérifié"\n         ],\n         "finished": [\n            null,\n            "terminé"\n         ],\n         "This contact is busy": [\n            null,\n            "Ce contact est occupé"\n         ],\n         "This contact is online": [\n            null,\n            "Ce contact est connecté"\n         ],\n         "This contact is offline": [\n            null,\n            "Ce contact est déconnecté"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Ce contact est indisponible"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Ce contact est absent"\n         ],\n         "This contact is away": [\n            null,\n            "Ce contact est absent"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "Cliquez pour cacher ces contacts"\n         ],\n         "My contacts": [\n            null,\n            "Mes contacts"\n         ],\n         "Pending contacts": [\n            null,\n            "Contacts en attente"\n         ],\n         "Contact requests": [\n            null,\n            "Demandes de contacts"\n         ],\n         "Ungrouped": [\n            null,\n            "Sans groupe"\n         ],\n         "Contacts": [\n            null,\n            "Contacts"\n         ],\n         "Groups": [\n            null,\n            "Groupes"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Erreur"\n         ],\n         "Connecting": [\n            null,\n            "Connexion"\n         ],\n         "Authenticating": [\n            null,\n            "Authentification"\n         ],\n         "Authentication Failed": [\n            null,\n            "L\'authentification a échoué"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Rétablissement de la session encryptée"\n         ],\n         "Generating private key.": [\n            null,\n            "Génération de la clé privée"\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "Votre navigateur pourrait ne plus répondre"\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            "Demande d\'authentification de %1$s\\n\\nVotre contact tente de vérifier votre identité, en vous posant la question ci-dessous.\\n\\n%2$s"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "L\'identité de cet utilisateur ne peut pas être vérifiée"\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            "Échange de clé privée avec le contact"\n         ],\n         "Personal message": [\n            null,\n            "Message personnel"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "Etes-vous sûr de vouloir supprimer les messages de ce salon ?"\n         ],\n         "me": [\n            null,\n            "moi"\n         ],\n         "is typing": [\n            null,\n            "écrit"\n         ],\n         "has stopped typing": [\n            null,\n            "a arrêté d\'écrire"\n         ],\n         "has gone away": [\n            null,\n            "est parti"\n         ],\n         "Show this menu": [\n            null,\n            "Afficher ce menu"\n         ],\n         "Write in the third person": [\n            null,\n            "Écrire à la troisième personne"\n         ],\n         "Remove messages": [\n            null,\n            "Effacer les messages"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "Êtes-vous sûr de vouloir supprimer les messages de cette conversation?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "Votre message ne peut pas être envoyé"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Un message non crypté a été reçu"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Un message crypté illisible a été reçu"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Voici les empreintes de sécurité, veuillez les confirmer avec %1$s, en dehors de ce chat.\\n\\nEmpreinte pour vous, %2$s: %3$s\\n\\nEmpreinte pour %1$s: %4$s\\n\\nSi vous avez confirmé que les empreintes correspondent, cliquez OK, sinon cliquez Annuler."\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            "Vous allez être invité à fournir une question de sécurité et une réponse à cette question.\\n\\nVotre contact devra répondre à la même question et s\'il fournit la même réponse (sensible à la casse), son identité sera vérifiée."\n         ],\n         "What is your security question?": [\n            null,\n            "Quelle est votre question de sécurité?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Quelle est la réponse à la question de sécurité?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Schéma d\'authentification fourni non valide"\n         ],\n         "has gone offline": [\n            null,\n            "s\'est déconnecté"\n         ],\n         "is busy": [\n            null,\n            "est occupé"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Vos messages ne sont plus cryptés"\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            "Vos messages sont maintenant cryptés mais l\'identité de votre contact n\'a pas econre été véfifiée"\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            "L\'identité de votre contact a été vérifiée"\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            "Votre contact a arrêté le cryptage de son côté, vous devriez le faire aussi"\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Vos messges ne sont pas cryptés. Cliquez ici pour activer le cryptage OTR"\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            "Vos messges sont cryptés, mais votre contact n\'a pas été vérifié"\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            "Vos messages sont cryptés et votre contact est vérifié"\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            "Votre contact a fermé la session privée de son côté, vous devriez le faire aussi"\n         ],\n         "Clear all messages": [\n            null,\n            "Supprimer tous les messages"\n         ],\n         "End encrypted conversation": [\n            null,\n            "Terminer la conversation cryptée"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            "Cacher la liste des participants"\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Actualiser la conversation cryptée"\n         ],\n         "Start a call": [\n            null,\n            "Démarrer un appel"\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Démarrer une conversation cryptée"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Vérifier par empreintes de sécurité"\n         ],\n         "Verify with SMP": [\n            null,\n            "Vérifier par Question/Réponse"\n         ],\n         "What\'s this?": [\n            null,\n            "Qu\'est-ce qu\'une conversation cryptée?"\n         ],\n         "Online": [\n            null,\n            "En ligne"\n         ],\n         "Busy": [\n            null,\n            "Occupé"\n         ],\n         "Away": [\n            null,\n            "Absent"\n         ],\n         "Offline": [\n            null,\n            "Déconnecté"\n         ],\n         "Log out": [\n            null,\n            "Se déconnecter"\n         ],\n         "Contact name": [\n            null,\n            "Nom du contact"\n         ],\n         "Search": [\n            null,\n            "Rechercher"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Ajouter"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Cliquez pour ajouter de nouveaux contacts"\n         ],\n         "Add a contact": [\n            null,\n            "Ajouter un contact"\n         ],\n         "No users found": [\n            null,\n            "Aucun utilisateur trouvé"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Cliquer pour ajouter aux contacts"\n         ],\n         "Room name": [\n            null,\n            "Nom du salon"\n         ],\n         "Nickname": [\n            null,\n            "Alias"\n         ],\n         "Server": [\n            null,\n            "Serveur"\n         ],\n         "Join Room": [\n            null,\n            "Rejoindre"\n         ],\n         "Show rooms": [\n            null,\n            "Afficher les salons"\n         ],\n         "Rooms": [\n            null,\n            "Salons"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Aucun salon dans %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Salons dans %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Cliquer pour ouvrir ce salon"\n         ],\n         "Show more information on this room": [\n            null,\n            "Afficher davantage d\'informations sur ce salon"\n         ],\n         "Description:": [\n            null,\n            "Description:"\n         ],\n         "Occupants:": [\n            null,\n            "Participants:"\n         ],\n         "Features:": [\n            null,\n            "Caractéristiques:"\n         ],\n         "Requires authentication": [\n            null,\n            "Nécessite une authentification"\n         ],\n         "Hidden": [\n            null,\n            "Masqué"\n         ],\n         "Requires an invitation": [\n            null,\n            "Nécessite une invitation"\n         ],\n         "Moderated": [\n            null,\n            "Modéré"\n         ],\n         "Non-anonymous": [\n            null,\n            "Non-anonyme"\n         ],\n         "Open room": [\n            null,\n            "Ouvrir un salon"\n         ],\n         "Permanent room": [\n            null,\n            "Salon permanent"\n         ],\n         "Public": [\n            null,\n            "Public"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Semi-anonyme"\n         ],\n         "Temporary room": [\n            null,\n            "Salon temporaire"\n         ],\n         "Unmoderated": [\n            null,\n            "Non modéré"\n         ],\n         "This user is a moderator": [\n            null,\n            "Cet utilisateur est modérateur"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Cet utilisateur peut envoyer des messages dans ce salon"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Cet utilisateur ne peut PAS envoyer de messages dans ce salon"\n         ],\n         "Invite...": [\n            null,\n            "Inviter..."\n         ],\n         "Occupants": [\n            null,\n            "Participants:"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            "Vous vous apprêtez à inviter %1$s dans le salon \\"%2$s\\". "\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            "Vous pouvez facultativement ajouter un message, expliquant la raison de cette invitation."\n         ],\n         "Message": [\n            null,\n            "Message"\n         ],\n         "Error: could not execute the command": [\n            null,\n            "Erreur: la commande ne peut pas être exécutée"\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            "Changer le rôle  de l\'utilisateur en administrateur"\n         ],\n         "Ban user from room": [\n            null,\n            "Bannir l\'utilisateur du salon"\n         ],\n         "Change user role to participant": [\n            null,\n            "Changer le rôle  de l\'utilisateur en participant"\n         ],\n         "Kick user from room": [\n            null,\n            "Expulser l\'utilisateur du salon"\n         ],\n         "Write in 3rd person": [\n            null,\n            "Écrire à la troisième personne"\n         ],\n         "Grant membership to a user": [\n            null,\n            "Autoriser l\'utilisateur à être membre"\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            "Retirer le droit d\'envoyer des messages"\n         ],\n         "Change your nickname": [\n            null,\n            "Changer votre alias"\n         ],\n         "Grant moderator role to user": [\n            null,\n            "Changer le rôle de l\'utilisateur en modérateur"\n         ],\n         "Grant ownership of this room": [\n            null,\n            "Accorder la propriété à ce salon"\n         ],\n         "Revoke user\'s membership": [\n            null,\n            "Révoquer l\'utilisateur des membres"\n         ],\n         "Set room topic": [\n            null,\n            "Indiquer le sujet du salon"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            "Autoriser les utilisateurs muets à poster des messages"\n         ],\n         "Save": [\n            null,\n            "Enregistrer"\n         ],\n         "Cancel": [\n            null,\n            "Annuler"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Une erreur est survenue lors de l\'enregistrement du formulaire."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Ce salon nécessite un mot de passe."\n         ],\n         "Password: ": [\n            null,\n            "Mot de passe: "\n         ],\n         "Submit": [\n            null,\n            "Soumettre"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Ce salon n\'est pas anonyme"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Ce salon affiche maintenant les membres indisponibles"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Ce salon n\'affiche pas les membres indisponibles"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Les paramètres du salon non liés à la confidentialité ont été modifiés"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "Le logging du salon est activé"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "Le logging du salon est désactivé"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Ce salon est maintenant non-anonyme"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Ce salon est maintenant semi-anonyme"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Ce salon est maintenant entièrement anonyme"\n         ],\n         "A new room has been created": [\n            null,\n            "Un nouveau salon a été créé"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Vous avez été banni de ce salon"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Vous avez été expulsé de ce salon"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Vous avez été retiré de ce salon du fait d\'un changement d\'affiliation"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux membres et vous n\'êtes pas membre"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Vous avez été retiré de ce salon parce que le service de chat multi-utilisateur a été désactivé."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> a été banni"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "<strong>%1$s</strong> a changé son nom"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> a été expulsé"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> a été supprimé à cause d\'un changement d\'affiliation"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> a été supprimé car il n\'est pas membre"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "Votre alias a été modifié automatiquement en: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "Votre alias a été modifié en: <strong>%1$s</strong>"\n         ],\n         "The reason given is: \\"": [\n            null,\n            "La raison indiquée est: \\""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Vous n\'êtes pas dans la liste des membres de ce salon"\n         ],\n         "No nickname was specified": [\n            null,\n            "Aucun alias n\'a été indiqué"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Vous n\'êtes pas autorisé à créer des salons"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Votre alias n\'est pas conforme à la politique de ce salon"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Votre alias est déjà utilisé"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Ce salon n\'existe pas encore"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Ce salon a atteint la limite maximale d\'occupants"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Le sujet \'%2$s\' a été défini par %1$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s vous invite à rejoindre le salon: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s vous invite à rejoindre le salon: %2$s, avec le message suivant:\\"%3$s\\""\n         ],\n         "Click to restore this chat": [\n            null,\n            "Cliquez pour afficher cette discussion"\n         ],\n         "Minimized": [\n            null,\n            "Réduit(s)"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Cliquez pour supprimer ce contact"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "Cliquez pour accepter la demande de ce contact"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "Cliquez pour refuser la demande de ce contact"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Cliquez pour discuter avec ce contact"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "Êtes-vous sûr de vouloir supprimer ce contact?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "Êtes-vous sûr de vouloir refuser la demande de ce contact?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            "Filtrer"\n         ],\n         "I am %1$s": [\n            null,\n            "Je suis %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Cliquez ici pour indiquer votre statut personnel"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Cliquez pour changer votre statut"\n         ],\n         "Custom status": [\n            null,\n            "Statut personnel"\n         ],\n         "online": [\n            null,\n            "en ligne"\n         ],\n         "busy": [\n            null,\n            "occupé"\n         ],\n         "away for long": [\n            null,\n            "absent pour une longue durée"\n         ],\n         "away": [\n            null,\n            "absent"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            "Votre domaine XMPP:"\n         ],\n         "Fetch registration form": [\n            null,\n            "Récupération du formulaire d\'enregistrement"\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            "Astuce: Une liste publique de fournisseurs XMPP est disponible"\n         ],\n         "here": [\n            null,\n            "ici"\n         ],\n         "Register": [\n            null,\n            "S\'enregistrer"\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            "Désolé, le fournisseur indiqué ne supporte pas l\'enregistrement de compte en ligne. Merci d\'essayer avec un autre fournisseur."\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            "Demande du formulaire enregistrement au serveur XMPP"\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            "Quelque chose a échoué lors de l\'établissement de la connexion avec \\"%1$s\\". Êtes-vous sure qu\'il existe ?"\n         ],\n         "Now logging you in": [\n            null,\n            "En cours de connexion"\n         ],\n         "Registered successfully": [\n            null,\n            "Enregistré avec succès"\n         ],\n         "Return": [\n            null,\n            "Retourner"\n         ],\n         "XMPP Username:": [\n            null,\n            "Nom d\'utilisateur XMPP/Jabber"\n         ],\n         "Password:": [\n            null,\n            "Mot de passe:"\n         ],\n         "Click here to log in anonymously": [\n            null,\n            "Cliquez ici pour se connecter anonymement"\n         ],\n         "Log In": [\n            null,\n            "Se connecter"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "S\'inscrire"\n         ],\n         "Toggle chat": [\n            null,\n            "Ouvrir IM"\n         ]\n      }\n   }\n}'}),define("text!he",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n != 1);",\n            "lang": "he"\n         },\n         " e.g. conversejs.org": [\n            null,\n            " למשל conversejs.org"\n         ],\n         "unencrypted": [\n            null,\n            "לא מוצפנת"\n         ],\n         "unverified": [\n            null,\n            "לא מאומתת"\n         ],\n         "verified": [\n            null,\n            "מאומתת"\n         ],\n         "finished": [\n            null,\n            "מוגמרת"\n         ],\n         "This contact is busy": [\n            null,\n            "איש קשר זה עסוק"\n         ],\n         "This contact is online": [\n            null,\n            "איש קשר זה מקוון"\n         ],\n         "This contact is offline": [\n            null,\n            "איש קשר זה אינו מקוון"\n         ],\n         "This contact is unavailable": [\n            null,\n            "איש קשר זה לא זמין"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "איש קשר זה נעדר למשך זמן ממושך"\n         ],\n         "This contact is away": [\n            null,\n            "איש קשר זה הינו נעדר"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "לחץ כדי להסתיר את אנשי קשר אלה"\n         ],\n         "My contacts": [\n            null,\n            "האנשי קשר שלי"\n         ],\n         "Pending contacts": [\n            null,\n            "אנשי קשר ממתינים"\n         ],\n         "Contact requests": [\n            null,\n            "בקשות איש קשר"\n         ],\n         "Ungrouped": [\n            null,\n            "ללא קבוצה"\n         ],\n         "Contacts": [\n            null,\n            "אנשי קשר"\n         ],\n         "Groups": [\n            null,\n            "קבוצות"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            "מנסה להתחבר בעוד 5 שניות"\n         ],\n         "Error": [\n            null,\n            "שגיאה"\n         ],\n         "Connecting": [\n            null,\n            "כעת מתחבר"\n         ],\n         "Authenticating": [\n            null,\n            "כעת מאמת"\n         ],\n         "Authentication Failed": [\n            null,\n            "אימות נכשל"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "בסס מחדש ישיבה מוצפנת"\n         ],\n         "Generating private key.": [\n            null,\n            "כעת מפיק מפתח פרטי."\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "הדפדפן שלך עשוי שלא להגיב."\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            "בקשת אימות מאת %1$s\\n\\nהאיש קשר שלך מנסה לאמת את הזהות שלך, בעזרת שאילת השאלה שלהלן.\\n\\n%2$s"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "לא היתה אפשרות לאמת את זהות משתמש זה."\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            "מחליף מפתח פרטי עם איש קשר."\n         ],\n         "Personal message": [\n            null,\n            "הודעה אישית"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך חדר זה?"\n         ],\n         "me": [\n            null,\n            "אני"\n         ],\n         "is typing": [\n            null,\n            "מקליד(ה) כעת"\n         ],\n         "has stopped typing": [\n            null,\n            "חדל(ה) להקליד"\n         ],\n         "has gone away": [\n            null,\n            "נעדר(ת)"\n         ],\n         "Show this menu": [\n            null,\n            "הצג את תפריט זה"\n         ],\n         "Write in the third person": [\n            null,\n            "כתוב בגוף השלישי"\n         ],\n         "Remove messages": [\n            null,\n            "הסר הודעות"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך תיבת שיחה זה?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "ההודעה שלך לא היתה יכולה להישלח"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "אנחנו קיבלנו הודעה לא מוצפנת"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "אנחנו קיבלנו הודעה מוצפנת לא קריאה"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "הרי טביעות האצבע, אנא אמת אותן עם %1$s, מחוץ לשיחה זו.\\n\\nטביעת אצבע עבורך, %2$s: %3$s\\n\\nטביעת אצבע עבור %1$s: %4$s\\n\\nהיה ואימתת כי טביעות האצבע תואמות, לחץ אישור (OK), אחרת לחץ ביטול (Cancel)."\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            "אתה תתבקש לספק שאלת אבטחה ולאחריה תשובה לשאלה הזו.\\n\\nהאיש קשר יתבקש עובר זאת לאותה שאלת אבטחה ואם אלו יקלידו את אותה התשובה במדויק (case sensitive), זהותם תאומת."\n         ],\n         "What is your security question?": [\n            null,\n            "מהי שאלת האבטחה שלך?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "מהי התשובה לשאלת האבטחה?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "סופקה סכימת אימות שגויה"\n         ],\n         "has gone offline": [\n            null,\n            "כבר לא מקוון"\n         ],\n         "is busy": [\n            null,\n            "עסוק(ה) כעת"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "ההודעות שלך אינן מוצפנות עוד"\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            "ההודעות שלך מוצפנות כעת אך זהות האיש קשר שלך טרם אומתה."\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            "זהות האיש קשר שלך אומתה."\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            "האיש קשר סיים הצפנה בקצה שלהם, עליך לעשות זאת גם כן."\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "ההודעות שלך אינן מוצפנות. לחץ כאן כדי לאפשר OTR."\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            "ההודעות שלך מוצפנות כעת, אך האיש קשר שלך טרם אומת."\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            "ההודעות שלך מוצפנות כעת והאיש קשר שלך אומת."\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            "האיש קשר סגר את קצה ישיבה פרטית שלהם, עליך לעשות זאת גם כן"\n         ],\n         "Clear all messages": [\n            null,\n            "טהר את כל ההודעות"\n         ],\n         "End encrypted conversation": [\n            null,\n            "סיים ישיבה מוצפנת"\n         ],\n         "Insert a smiley": [\n            null,\n            "הכנס סמיילי"\n         ],\n         "Hide the list of participants": [\n            null,\n            "הסתר רשימת משתתפים"\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "רענן ישיבה מוצפנת"\n         ],\n         "Start a call": [\n            null,\n            "התחל שיחה"\n         ],\n         "Start encrypted conversation": [\n            null,\n            "התחל ישיבה מוצפנת"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "אמת בעזרת טביעות אצבע"\n         ],\n         "Verify with SMP": [\n            null,\n            "אמת בעזרת SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "מה זה?"\n         ],\n         "Online": [\n            null,\n            "מקוון"\n         ],\n         "Busy": [\n            null,\n            "עסוק"\n         ],\n         "Away": [\n            null,\n            "נעדר"\n         ],\n         "Offline": [\n            null,\n            "לא מקוון"\n         ],\n         "Log out": [\n            null,\n            "התנתקות"\n         ],\n         "Contact name": [\n            null,\n            "שם איש קשר"\n         ],\n         "Search": [\n            null,\n            "חיפוש"\n         ],\n         "e.g. user@example.com": [\n            null,\n            "למשל user@example.com"\n         ],\n         "Add": [\n            null,\n            "הוסף"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "לחץ כדי להוסיף אנשי קשר שיחה חדשים"\n         ],\n         "Add a contact": [\n            null,\n            "הוסף איש קשר"\n         ],\n         "No users found": [\n            null,\n            "לא נמצאו משתמשים"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "לחץ כדי להוסיף בתור איש קשר שיחה"\n         ],\n         "Room name": [\n            null,\n            "שם חדר"\n         ],\n         "Nickname": [\n            null,\n            "שם כינוי"\n         ],\n         "Server": [\n            null,\n            "שרת"\n         ],\n         "Join Room": [\n            null,\n            "הצטרף לחדר"\n         ],\n         "Show rooms": [\n            null,\n            "הצג חדרים"\n         ],\n         "Rooms": [\n            null,\n            "חדרים"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "אין חדרים על %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "חדרים על %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "לחץ כדי לפתוח את חדר זה"\n         ],\n         "Show more information on this room": [\n            null,\n            "הצג עוד מידע אודות חדר זה"\n         ],\n         "Description:": [\n            null,\n            "תיאור:"\n         ],\n         "Occupants:": [\n            null,\n            "נוכחים:"\n         ],\n         "Features:": [\n            null,\n            "תכונות:"\n         ],\n         "Requires authentication": [\n            null,\n            "מצריך אישור"\n         ],\n         "Hidden": [\n            null,\n            "נסתר"\n         ],\n         "Requires an invitation": [\n            null,\n            "מצריך הזמנה"\n         ],\n         "Moderated": [\n            null,\n            "מבוקר"\n         ],\n         "Non-anonymous": [\n            null,\n            "לא-אנונימי"\n         ],\n         "Open room": [\n            null,\n            "חדר פתוח"\n         ],\n         "Permanent room": [\n            null,\n            "חדר צמיתה"\n         ],\n         "Public": [\n            null,\n            "פומבי"\n         ],\n         "Semi-anonymous": [\n            null,\n            "אנונימי-למחצה"\n         ],\n         "Temporary room": [\n            null,\n            "חדר זמני"\n         ],\n         "Unmoderated": [\n            null,\n            "לא מבוקר"\n         ],\n         "This user is a moderator": [\n            null,\n            "משתמש זה הינו אחראי"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "משתמש זה מסוגל לשלוח הודעות בתוך חדר זה"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "משתמש זה ﬥﬡ מסוגל לשלוח הודעות בתוך חדר זה"\n         ],\n         "Invite...": [\n            null,\n            "הזמנה..."\n         ],\n         "Occupants": [\n            null,\n            "נוכחים"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            "אתה עומד להזמין את %1$s לחדר שיחה \\"%2$s\\". "\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            "באפשרותך להכליל הודעה, אשר  מסבירה את הסיבה להזמנה."\n         ],\n         "Message": [\n            null,\n            "הודעה"\n         ],\n         "Error: could not execute the command": [\n            null,\n            "שגיאה: לא היתה אפשרות לבצע פקודה"\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            "שנה סינוף משתמש למנהל"\n         ],\n         "Ban user from room": [\n            null,\n            "אסור משתמש מתוך חדר"\n         ],\n         "Change user role to participant": [\n            null,\n            "שנה תפקיד משתמש למשתתף"\n         ],\n         "Kick user from room": [\n            null,\n            "בעט משתמש מתוך חדר"\n         ],\n         "Write in 3rd person": [\n            null,\n            "כתוב בגוף שלישי"\n         ],\n         "Grant membership to a user": [\n            null,\n            "הענק חברות למשתמש"\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            "הסר יכולת משתמש לפרסם הודעות"\n         ],\n         "Change your nickname": [\n            null,\n            "שנה את השם כינוי שלך"\n         ],\n         "Grant moderator role to user": [\n            null,\n            "הענק תפקיד אחראי למשתמש"\n         ],\n         "Grant ownership of this room": [\n            null,\n            "הענק בעלות על חדר זה"\n         ],\n         "Revoke user\'s membership": [\n            null,\n            "שלול חברות משתמש"\n         ],\n         "Set room topic": [\n            null,\n            "קבע נושא חדר"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            "התר למשתמש מושתק לפרסם הודעות"\n         ],\n         "Save": [\n            null,\n            "שמור"\n         ],\n         "Cancel": [\n            null,\n            "ביטול"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "אירעה שגיאה במהלך ניסיון שמירת הטופס."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "חדר שיחה זה מצריך סיסמה"\n         ],\n         "Password: ": [\n            null,\n            "סיסמה: "\n         ],\n         "Submit": [\n            null,\n            "שלח"\n         ],\n         "This room is not anonymous": [\n            null,\n            "חדר זה אינו אנונימי"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "חדר זה כעת מציג חברים לא זמינים"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "חדר זה לא מציג חברים לא זמינים"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "תצורת חדר אשר לא-קשורה-בפרטיות שונתה"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "יומן חדר הינו מופעל כעת"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "יומן חדר הינו מנוטרל כעת"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "חדר זה אינו אנונימי כעת"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "חדר זה הינו אנונימי-למחצה כעת"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "חדר זה הינו אנונימי-לחלוטין כעת"\n         ],\n         "A new room has been created": [\n            null,\n            "חדר חדש נוצר"\n         ],\n         "You have been banned from this room": [\n            null,\n            "נאסרת מתוך חדר זה"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "נבעטת מתוך חדר זה"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "הוסרת מתוך חדר זה משום שינוי שיוך"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "הוסרת מתוך חדר זה משום שהחדר שונה לחברים-בלבד ואינך במעמד של חבר"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "הוסרת מתוך חדר זה משום ששירות שמ״מ (שיחה מרובת משתמשים) זה כעת מצוי בהליכי סגירה."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> נאסר(ה)"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "השם כינוי של<strong>%1$s</strong> השתנה"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> נבעט(ה)"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> הוסרה(ה) משום שינוי שיוך"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> הוסר(ה) משום אי הימצאות במסגרת מעמד של חבר"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "השם כינוי שלך שונה אוטומטית בשם: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "השם כינוי שלך שונה בשם: <strong>%1$s</strong>"\n         ],\n         "The reason given is: \\"": [\n            null,\n            "הסיבה שניתנה היא: \\""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "אינך ברשימת החברים של חדר זה"\n         ],\n         "No nickname was specified": [\n            null,\n            "לא צוין שום שם כינוי"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "אין לך רשות ליצור חדרים חדשים"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "השם כינוי שלך לא תואם את המדינויות של חדר זה"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "השם כינוי שלך הינו תפוס"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "חדר זה (עדיין) לא קיים"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "חדר זה הגיע לסף הנוכחים המרבי שלו"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "נושא חדר זה נקבע על ידי %1$s אל: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s הזמינך להצטרף לחדר שיחה: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s הזמינך להצטרף לחדר שיחה: %2$s, והשאיר את הסיבה הבאה: \\"%3$s\\""\n         ],\n         "Click to restore this chat": [\n            null,\n            "לחץ כדי לשחזר את שיחה זו"\n         ],\n         "Minimized": [\n            null,\n            "ממוזער"\n         ],\n         "Click to remove this contact": [\n            null,\n            "לחץ כדי להסיר את איש קשר זה"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "לחץ כדי לקבל את בקשת איש קשר זה"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "לחץ כדי לסרב את בקשת איש קשר זה"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "לחץ כדי לשוחח עם איש קשר זה"\n         ],\n         "Name": [\n            null,\n            "שם"\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "האם אתה בטוח כי ברצונך להסיר את איש קשר זה?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            "מצטערים, היתה שגיאה במהלך ניסיון להסיר את "\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "האם אתה בטוח כי ברצונך לסרב את בקשת איש קשר זה?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            "מצטערים, היתה שגיאה במהלך ניסיון הוספת "\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            "לקוח זה לא מתיר הרשמות נוכחות"\n         ],\n         "Type to filter": [\n            null,\n            "הקלד כדי לסנן"\n         ],\n         "I am %1$s": [\n            null,\n            "מצבי כעת הינו %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "לחץ כאן כדי לכתוב הודעת מצב מותאמת"\n         ],\n         "Click to change your chat status": [\n            null,\n            "לחץ כדי לשנות את הודעת השיחה שלך"\n         ],\n         "Custom status": [\n            null,\n            "מצב מותאם"\n         ],\n         "online": [\n            null,\n            "מקוון"\n         ],\n         "busy": [\n            null,\n            "עסוק"\n         ],\n         "away for long": [\n            null,\n            "נעדר לזמן מה"\n         ],\n         "away": [\n            null,\n            "נעדר"\n         ],\n         "offline": [\n            null,\n            "לא מקוון"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            "שם מתחם של ספק XMPP שלך:"\n         ],\n         "Fetch registration form": [\n            null,\n            "משוך טופס הרשמה"\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            "טיפ: רשימה פומבית של ספקי XMPP הינה זמינה"\n         ],\n         "here": [\n            null,\n            "כאן"\n         ],\n         "Register": [\n            null,\n            "הירשם"\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            "מצטערים, הספק שניתן לא תומך ברישום חשבונות in band. אנא נסה עם ספק אחר."\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            "כעת מבקש טופס הרשמה מתוך שרת XMPP"\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            "משהו השתבש במהלך ביסוס חיבור עם \\"%1$s\\". האם אתה בטוח כי זה קיים?"\n         ],\n         "Now logging you in": [\n            null,\n            "כעת מחבר אותך פנימה"\n         ],\n         "Registered successfully": [\n            null,\n            "נרשם בהצלחה"\n         ],\n         "Return": [\n            null,\n            "חזור"\n         ],\n         "XMPP Username:": [\n            null,\n            "שם משתמש XMPP:"\n         ],\n         "Password:": [\n            null,\n            "סיסמה:"\n         ],\n         "Click here to log in anonymously": [\n            null,\n            "לחץ כאן כדי להתחבר באופן אנונימי"\n         ],\n         "Log In": [\n            null,\n            "כניסה"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "password": [\n            null,\n            "סיסמה"\n         ],\n         "Sign in": [\n            null,\n            "התחברות"\n         ],\n         "Toggle chat": [\n            null,\n            "הפעל שיח"\n         ]\n      }\n   }\n}'}),define("text!hu",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "lang": "hu"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "titkosítatlan"\n         ],\n         "unverified": [\n            null,\n            "nem hitelesített"\n         ],\n         "verified": [\n            null,\n            "hitelesített"\n         ],\n         "finished": [\n            null,\n            "befejezett"\n         ],\n         "This contact is busy": [\n            null,\n            "Elfoglalt"\n         ],\n         "This contact is online": [\n            null,\n            "Elérhető"\n         ],\n         "This contact is offline": [\n            null,\n            "Nincs bejelentkezve"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Elérhetetlen"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Hosszabb ideje távol"\n         ],\n         "This contact is away": [\n            null,\n            "Távol"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "A csevegő partnerek elrejtése"\n         ],\n         "My contacts": [\n            null,\n            "Kapcsolataim"\n         ],\n         "Pending contacts": [\n            null,\n            "Függőben levő kapcsolatok"\n         ],\n         "Contact requests": [\n            null,\n            "Kapcsolatnak jelölés"\n         ],\n         "Ungrouped": [\n            null,\n            "Nincs csoportosítva"\n         ],\n         "Contacts": [\n            null,\n            "Kapcsolatok"\n         ],\n         "Groups": [\n            null,\n            "Csoportok"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Hiba"\n         ],\n         "Connecting": [\n            null,\n            "Kapcsolódás"\n         ],\n         "Authenticating": [\n            null,\n            "Azonosítás"\n         ],\n         "Authentication Failed": [\n            null,\n            "Azonosítási hiba"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Titkosított kapcsolat újraépítése"\n         ],\n         "Generating private key.": [\n            null,\n            "Privát kulcs generálása"\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "Előfordulhat, hogy a böngésző futása megáll."\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            "Azonosítási kérés érkezett: %1$s\\n\\nA csevegő partnere hitelesítést kér a következő kérdés megválaszolásával:\\n\\n%2$s"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "A felhasználó ellenőrzése sikertelen."\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            "Privát kulcs cseréje..."\n         ],\n         "Personal message": [\n            null,\n            "Személyes üzenet"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "Törölni szeretné az üzeneteket ebből a szobából?"\n         ],\n         "me": [\n            null,\n            "Én"\n         ],\n         "is typing": [\n            null,\n            "gépel..."\n         ],\n         "has stopped typing": [\n            null,\n            "már nem gépel"\n         ],\n         "Show this menu": [\n            null,\n            "Mutasd a menüt"\n         ],\n         "Write in the third person": [\n            null,\n            "Írjon egyes szám harmadik személyben"\n         ],\n         "Remove messages": [\n            null,\n            "Üzenetek törlése"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "Törölni szeretné az eddigi üzeneteket?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "Az üzenet elküldése nem sikerült"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Titkosítatlan üzenet érkezett"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Visszafejthetetlen titkosított üzenet érkezett"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Újjlenyomatok megerősítése.\\n\\nAz Ön újjlenyomata,  %2$s: %3$s\\n\\nA csevegő partnere újjlenyomata, %1$s: %4$s\\n\\nAmennyiben az újjlenyomatok biztosan egyeznek, klikkeljen az OK, ellenkező esetben a Mégsem gombra."\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            "Elsőként egy biztonsági kérdést kell majd feltennie és megválaszolnia.\\n\\nMajd a csevegő partnerének is megjelenik ez a kérdés. Végül ha a válaszok azonosak lesznek (kis- nagybetű érzékeny), a partner hitelesítetté válik."\n         ],\n         "What is your security question?": [\n            null,\n            "Mi legyen a biztonsági kérdés?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Mi a válasz a biztonsági kérdésre?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Érvénytelen hitelesítési séma."\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Az üzenetek mostantól már nem titkosítottak"\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            "Az üzenetek titikosítva vannak, de a csevegő partnerét még nem hitelesítette."\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            "A csevegő partnere hitelesítve lett."\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            "A csevegő partnere kikapcsolta a titkosítást, így Önnek is ezt kellene tennie."\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Az üzenetek titkosítatlanok. OTR titkosítás aktiválása."\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            "Az üzenetek titikosítottak, de a csevegő partnere még nem hitelesített."\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            "Az üzenetek titikosítottak és a csevegő partnere hitelesített."\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            "A csevegő partnere lezárta a magán beszélgetést"\n         ],\n         "Clear all messages": [\n            null,\n            "Üzenetek törlése"\n         ],\n         "End encrypted conversation": [\n            null,\n            "Titkosított kapcsolat vége"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            "A jelenlevők listájának elrejtése"\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "A titkosított kapcsolat frissítése"\n         ],\n         "Start a call": [\n            null,\n            "Hívás indítása"\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Titkosított beszélgetés indítása"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Ellenőrzés újjlenyomattal"\n         ],\n         "Verify with SMP": [\n            null,\n            "Ellenőrzés SMP-vel"\n         ],\n         "What\'s this?": [\n            null,\n            "Mi ez?"\n         ],\n         "Online": [\n            null,\n            "Elérhető"\n         ],\n         "Busy": [\n            null,\n            "Foglalt"\n         ],\n         "Away": [\n            null,\n            "Távol"\n         ],\n         "Offline": [\n            null,\n            "Nem elérhető"\n         ],\n         "Log out": [\n            null,\n            "Kilépés"\n         ],\n         "Contact name": [\n            null,\n            "Partner neve"\n         ],\n         "Search": [\n            null,\n            "Keresés"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Hozzáad"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Új csevegő partner hozzáadása"\n         ],\n         "Add a contact": [\n            null,\n            "Új partner felvétele"\n         ],\n         "No users found": [\n            null,\n            "Nincs felhasználó"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Felvétel a csevegő partnerek közé"\n         ],\n         "Room name": [\n            null,\n            "Szoba neve"\n         ],\n         "Nickname": [\n            null,\n            "Becenév"\n         ],\n         "Server": [\n            null,\n            "Szerver"\n         ],\n         "Show rooms": [\n            null,\n            "Létező szobák"\n         ],\n         "Rooms": [\n            null,\n            "Szobák"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Nincs csevegő szoba a(z) %1$s szerveren"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Csevegő szobák a(z) %1$s szerveren:"\n         ],\n         "Click to open this room": [\n            null,\n            "Belépés a csevegő szobába"\n         ],\n         "Show more information on this room": [\n            null,\n            "További információk a csevegő szobáról"\n         ],\n         "Description:": [\n            null,\n            "Leírás:"\n         ],\n         "Occupants:": [\n            null,\n            "Jelenlevők:"\n         ],\n         "Features:": [\n            null,\n            "Tulajdonságok:"\n         ],\n         "Requires authentication": [\n            null,\n            "Azonosítás szükséges"\n         ],\n         "Hidden": [\n            null,\n            "Rejtett"\n         ],\n         "Requires an invitation": [\n            null,\n            "Meghívás szükséges"\n         ],\n         "Moderated": [\n            null,\n            "Moderált"\n         ],\n         "Non-anonymous": [\n            null,\n            "NEM névtelen"\n         ],\n         "Open room": [\n            null,\n            "Nyitott szoba"\n         ],\n         "Permanent room": [\n            null,\n            "Állandó szoba"\n         ],\n         "Public": [\n            null,\n            "Nyílvános"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Félig névtelen"\n         ],\n         "Temporary room": [\n            null,\n            "Ideiglenes szoba"\n         ],\n         "Unmoderated": [\n            null,\n            "Moderálatlan"\n         ],\n         "This user is a moderator": [\n            null,\n            "Ez a felhasználó egy moderátor"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Ez a felhasználó küldhet üzenetet ebbe a szobába"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Ez a felhasználó NEM küldhet üzenetet ebbe a szobába"\n         ],\n         "Invite...": [\n            null,\n            "Meghívás..."\n         ],\n         "Occupants": [\n            null,\n            "Jelenlevők"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            "%1$s meghívott a \\"%2$s\\" csevegő szobába. "\n         ],\n         "Message": [\n            null,\n            "Üzenet"\n         ],\n         "Error: could not execute the command": [\n            null,\n            "Hiba: A parancs nem értelmezett"\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Ban user from room": [\n            null,\n            "Felhasználó kitíltása a csevegő szobából"\n         ],\n         "Kick user from room": [\n            null,\n            "Felhasználó kiléptetése a csevegő szobából"\n         ],\n         "Write in 3rd person": [\n            null,\n            "Írjon egyes szám harmadik személyben"\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            "A felhasználó nem küldhet üzeneteket"\n         ],\n         "Change your nickname": [\n            null,\n            "Becenév módosítása"\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Set room topic": [\n            null,\n            "Csevegőszoba téma beállítás"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            "Elnémított felhasználók is küldhetnek üzeneteket"\n         ],\n         "Save": [\n            null,\n            "Ment"\n         ],\n         "Cancel": [\n            null,\n            "Mégsem"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Hiba történt az adatok mentése közben."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "A csevegő szoba belépéshez jelszó szükséges"\n         ],\n         "Password: ": [\n            null,\n            "Jelszó: "\n         ],\n         "Submit": [\n            null,\n            "Küldés"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Ez a szoba NEM névtelen"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Ez a szoba mutatja az elérhetetlen tagokat"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Ez a szoba nem mutatja az elérhetetlen tagokat"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "A szoba általános konfigurációja módosult"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "A szobába a belépés lehetséges"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "A szobába a belépés szünetel"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Ez a szoba most NEM névtelen"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Ez a szoba most félig névtelen"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Ez a szoba most teljesen névtelen"\n         ],\n         "A new room has been created": [\n            null,\n            "Létrejött egy új csevegő szoba"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Ki lettél tíltva ebből a szobából"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Ki lettél dobva ebből a szobából"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Taglista módosítás miatt kiléptettünk a csevegő szobából"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Kiléptettünk a csevegő szobából, mert mostantól csak a taglistán szereplők lehetnek jelen"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Kiléptettünk a csevegő szobából, mert a MUC (Multi-User Chat) szolgáltatás leállításra került."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "A szobából kitíltva: <strong>%1$s</strong>"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "<strong>%1$s</strong> beceneve módosult"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "A szobából kidobva: <strong>%1$s</strong>"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "Taglista módosítás miatt a szobából kiléptetve: <strong>%1$s</strong>"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "A taglistán nem szerepel így a szobából kiléptetve: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "A beceneved módosításra került a következőre: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "A beceneved a következőre módosult: <strong>%1$s</strong>"\n         ],\n         "The reason given is: \\"": [\n            null,\n            "Az indok: \\""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Nem szerepelsz a csevegő szoba taglistáján"\n         ],\n         "No nickname was specified": [\n            null,\n            "Nem lett megadva becenév"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Nem lehet új csevegő szobát létrehozni"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "A beceneved ütközik a csevegő szoba szabályzataival"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "A becenevedet már valaki használja"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Ez a szoba (még) nem létezik"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Ez a csevegő szoba elérte a maximális jelenlévők számát"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "A következő témát állította be %1$s: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s meghívott a(z) %2$s csevegő szobába"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s meghívott a(z) %2$s csevegő szobába. Indok: \\"%3$s\\""\n         ],\n         "Click to restore this chat": [\n            null,\n            "A csevegés visszaállítása"\n         ],\n         "Minimized": [\n            null,\n            "Lezárva"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Partner törlése"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "Elogadása a partnerlistába történő felvételnek"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "Megtagadása a partnerlistába történő felvételnek"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Csevegés indítása ezzel a partnerünkkel"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "Valóban törölni szeretné a csevegő partnerét?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "Valóban elutasítja ezt a kapcsolat felvételi kérést?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            "Írjon be pár betűt"\n         ],\n         "I am %1$s": [\n            null,\n            "%1$s vagyok"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Egyedi státusz üzenet írása"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Saját státusz beállítása"\n         ],\n         "Custom status": [\n            null,\n            "Egyedi státusz"\n         ],\n         "online": [\n            null,\n            "Elérhető"\n         ],\n         "busy": [\n            null,\n            "Elfoglalt"\n         ],\n         "away for long": [\n            null,\n            "Hosszú ideje távol"\n         ],\n         "away": [\n            null,\n            "Távol"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            "Az XMPP szolgáltató domain neve:"\n         ],\n         "Fetch registration form": [\n            null,\n            "Regisztrációs űrlap"\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            "Tipp: A nyílvános XMPP szolgáltatókról egy lista elérhető"\n         ],\n         "here": [\n            null,\n            "itt"\n         ],\n         "Register": [\n            null,\n            "Regisztráció"\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            "A megadott szolgáltató nem támogatja a csevegőn keresztüli regisztrációt. Próbáljon meg egy másikat."\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            "Regisztrációs űrlap lekérése az XMPP szervertől"\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            "Hiba történt a(z) \\"%1$s\\" kapcsolódásakor. Biztos benne, hogy ez létező kiszolgáló?"\n         ],\n         "Now logging you in": [\n            null,\n            "Belépés..."\n         ],\n         "Registered successfully": [\n            null,\n            "Sikeres regisztráció"\n         ],\n         "Return": [\n            null,\n            "Visza"\n         ],\n         "XMPP Username:": [\n            null,\n            "XMPP/Jabber azonosító:"\n         ],\n         "Password:": [\n            null,\n            "Jelszó:"\n         ],\n         "Log In": [\n            null,\n            "Belépés"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Belépés"\n         ],\n         "Toggle chat": [\n            null,\n            "Csevegő ablak"\n         ]\n      }\n   }\n}'}),define("text!id",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "lang": "id"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "tak dienkripsi"\n         ],\n         "unverified": [\n            null,\n            "tak diverifikasi"\n         ],\n         "verified": [\n            null,\n            "diverifikasi"\n         ],\n         "finished": [\n            null,\n            "selesai"\n         ],\n         "This contact is busy": [\n            null,\n            "Teman ini sedang sibuk"\n         ],\n         "This contact is online": [\n            null,\n            "Teman ini terhubung"\n         ],\n         "This contact is offline": [\n            null,\n            "Teman ini tidak terhubung"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Teman ini tidak tersedia"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Teman ini tidak di tempat untuk waktu yang lama"\n         ],\n         "This contact is away": [\n            null,\n            "Teman ini tidak di tempat"\n         ],\n         "My contacts": [\n            null,\n            "Teman saya"\n         ],\n         "Pending contacts": [\n            null,\n            "Teman yang menunggu"\n         ],\n         "Contact requests": [\n            null,\n            "Permintaan pertemanan"\n         ],\n         "Ungrouped": [\n            null,\n            ""\n         ],\n         "Contacts": [\n            null,\n            "Teman"\n         ],\n         "Groups": [\n            null,\n            ""\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Kesalahan"\n         ],\n         "Connecting": [\n            null,\n            "Menyambung"\n         ],\n         "Authenticating": [\n            null,\n            "Melakukan otentikasi"\n         ],\n         "Authentication Failed": [\n            null,\n            "Otentikasi gagal"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Menyambung kembali sesi terenkripsi"\n         ],\n         "Generating private key.": [\n            null,\n            ""\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            ""\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "Tak dapat melakukan verifikasi identitas pengguna ini."\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            ""\n         ],\n         "Personal message": [\n            null,\n            "Pesan pribadi"\n         ],\n         "me": [\n            null,\n            "saya"\n         ],\n         "is typing": [\n            null,\n            ""\n         ],\n         "has stopped typing": [\n            null,\n            ""\n         ],\n         "Show this menu": [\n            null,\n            "Tampilkan menu ini"\n         ],\n         "Write in the third person": [\n            null,\n            "Tulis ini menggunakan bahasa pihak ketiga"\n         ],\n         "Remove messages": [\n            null,\n            "Hapus pesan"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            ""\n         ],\n         "Your message could not be sent": [\n            null,\n            "Pesan anda tak dapat dikirim"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Kami menerima pesan terenkripsi"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Kami menerima pesan terenkripsi yang gagal dibaca"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Ini adalah sidik jari anda, konfirmasikan bersama mereka dengan %1$s, di luar percakapan ini.\\n\\nSidik jari untuk anda, %2$s: %3$s\\n\\nSidik jari untuk %1$s: %4$s\\n\\nJika anda bisa mengkonfirmasi sidik jadi cocok, klik Lanjutkan, jika tidak klik Batal."\n         ],\n         "What is your security question?": [\n            null,\n            "Apakah pertanyaan keamanan anda?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Apa jawaban dari pertanyaan keamanan tersebut?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Skema otentikasi salah"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Pesan anda tidak lagi terenkripsi"\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Pesan anda tak terenkripsi. Klik di sini untuk menyalakan enkripsi OTR."\n         ],\n         "End encrypted conversation": [\n            null,\n            "Sudahi percakapan terenkripsi"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Setel ulang percakapan terenkripsi"\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Mulai sesi terenkripsi"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Verifikasi menggunakan sidik jari"\n         ],\n         "Verify with SMP": [\n            null,\n            "Verifikasi menggunakan SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "Apakah ini?"\n         ],\n         "Online": [\n            null,\n            "Terhubung"\n         ],\n         "Busy": [\n            null,\n            "Sibuk"\n         ],\n         "Away": [\n            null,\n            "Pergi"\n         ],\n         "Offline": [\n            null,\n            "Tak Terhubung"\n         ],\n         "Contact name": [\n            null,\n            "Nama teman"\n         ],\n         "Search": [\n            null,\n            "Cari"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Tambah"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Klik untuk menambahkan teman baru"\n         ],\n         "Add a contact": [\n            null,\n            "Tambah teman"\n         ],\n         "No users found": [\n            null,\n            "Pengguna tak ditemukan"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Klik untuk menambahkan sebagai teman"\n         ],\n         "Room name": [\n            null,\n            "Nama ruangan"\n         ],\n         "Nickname": [\n            null,\n            "Nama panggilan"\n         ],\n         "Server": [\n            null,\n            "Server"\n         ],\n         "Show rooms": [\n            null,\n            "Perlihatkan ruangan"\n         ],\n         "Rooms": [\n            null,\n            "Ruangan"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Tak ada ruangan di %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Ruangan di %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Klik untuk membuka ruangan ini"\n         ],\n         "Show more information on this room": [\n            null,\n            "Tampilkan informasi ruangan ini"\n         ],\n         "Description:": [\n            null,\n            "Keterangan:"\n         ],\n         "Occupants:": [\n            null,\n            "Penghuni:"\n         ],\n         "Features:": [\n            null,\n            "Fitur:"\n         ],\n         "Requires authentication": [\n            null,\n            "Membutuhkan otentikasi"\n         ],\n         "Hidden": [\n            null,\n            "Tersembunyi"\n         ],\n         "Requires an invitation": [\n            null,\n            "Membutuhkan undangan"\n         ],\n         "Moderated": [\n            null,\n            "Dimoderasi"\n         ],\n         "Non-anonymous": [\n            null,\n            "Tidak anonim"\n         ],\n         "Open room": [\n            null,\n            "Ruangan terbuka"\n         ],\n         "Permanent room": [\n            null,\n            "Ruangan permanen"\n         ],\n         "Public": [\n            null,\n            "Umum"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Semi-anonim"\n         ],\n         "Temporary room": [\n            null,\n            "Ruangan sementara"\n         ],\n         "Unmoderated": [\n            null,\n            "Tak dimoderasi"\n         ],\n         "This user is a moderator": [\n            null,\n            "Pengguna ini adalah moderator"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Pengguna ini dapat mengirim pesan di ruangan ini"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Pengguna ini tak dapat mengirim pesan di ruangan ini"\n         ],\n         "Invite...": [\n            null,\n            ""\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "Pesan"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "Simpan"\n         ],\n         "Cancel": [\n            null,\n            "Batal"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Kesalahan terjadi saat menyimpan formulir ini."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Ruangan ini membutuhkan kata sandi"\n         ],\n         "Password: ": [\n            null,\n            "Kata sandi: "\n         ],\n         "Submit": [\n            null,\n            "Kirim"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Ruangan ini tidak anonim"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Ruangan ini menampilkan anggota yang tak tersedia"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Ruangan ini tidak menampilkan anggota yang tak tersedia"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Konfigurasi ruangan yang tak berhubungan dengan privasi telah diubah"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "Pencatatan di ruangan ini sekarang dinyalakan"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "Pencatatan di ruangan ini sekarang dimatikan"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Ruangan ini sekarang tak-anonim"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Ruangan ini sekarang semi-anonim"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Ruangan ini sekarang anonim"\n         ],\n         "A new room has been created": [\n            null,\n            "Ruangan baru telah dibuat"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Anda telah dicekal dari ruangan ini"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Anda telah ditendang dari ruangan ini"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Anda telah dihapus dari ruangan ini karena perubahan afiliasi"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Anda telah dihapus dari ruangan ini karena ruangan ini hanya terbuka untuk anggota dan anda bukan anggota"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Anda telah dihapus dari ruangan ini karena layanan MUC (Multi-user chat) telah dimatikan."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> telah dicekal"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> telah ditendang keluar"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> telah dihapus karena perubahan afiliasi"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> telah dihapus karena bukan anggota"\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Anda bukan anggota dari ruangan ini"\n         ],\n         "No nickname was specified": [\n            null,\n            "Nama panggilan belum ditentukan"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Anda tak diizinkan untuk membuat ruangan baru"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Nama panggilan anda tidak sesuai aturan ruangan ini"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Nama panggilan anda telah digunakan orang lain"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Ruangan ini belum dibuat"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Ruangan ini telah mencapai jumlah penghuni maksimum"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Topik diganti oleh %1$s menjadi: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            ""\n         ],\n         "Minimized": [\n            null,\n            ""\n         ],\n         "Click to remove this contact": [\n            null,\n            "Klik untuk menghapus teman ini"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Klik untuk mulai perbinjangan dengan teman ini"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "Saya %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Klik untuk menulis status kustom"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Klik untuk mengganti status"\n         ],\n         "Custom status": [\n            null,\n            "Status kustom"\n         ],\n         "online": [\n            null,\n            "terhubung"\n         ],\n         "busy": [\n            null,\n            "sibuk"\n         ],\n         "away for long": [\n            null,\n            "lama tak di tempat"\n         ],\n         "away": [\n            null,\n            "tak di tempat"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "Password:": [\n            null,\n            "Kata sandi:"\n         ],\n         "Log In": [\n            null,\n            "Masuk"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Masuk"\n         ],\n         "Toggle chat": [\n            null,\n            ""\n         ]\n      }\n   }\n}'}),define("text!it",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n != 1);",\n            "lang": "it"\n         },\n         " e.g. conversejs.org": [\n            null,\n            "es. conversejs.org"\n         ],\n         "unencrypted": [\n            null,\n            "non criptato"\n         ],\n         "unverified": [\n            null,\n            "non verificato"\n         ],\n         "verified": [\n            null,\n            "verificato"\n         ],\n         "finished": [\n            null,\n            "finito"\n         ],\n         "This contact is busy": [\n            null,\n            "Questo contatto è occupato"\n         ],\n         "This contact is online": [\n            null,\n            "Questo contatto è online"\n         ],\n         "This contact is offline": [\n            null,\n            "Questo contatto è offline"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Questo contatto non è disponibile"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Il contatto è away da un lungo periodo"\n         ],\n         "This contact is away": [\n            null,\n            "Questo contatto è away"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "Clicca per nascondere questi contatti"\n         ],\n         "My contacts": [\n            null,\n            "I miei contatti"\n         ],\n         "Pending contacts": [\n            null,\n            "Contatti in attesa"\n         ],\n         "Contact requests": [\n            null,\n            "Richieste dei contatti"\n         ],\n         "Ungrouped": [\n            null,\n            "Senza Gruppo"\n         ],\n         "Contacts": [\n            null,\n            "Contatti"\n         ],\n         "Groups": [\n            null,\n            "Gruppi"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            "Attendi riconversione in 5 secondi"\n         ],\n         "Error": [\n            null,\n            "Errore"\n         ],\n         "Connecting": [\n            null,\n            "Connessione in corso"\n         ],\n         "Authenticating": [\n            null,\n            "Autenticazione in corso"\n         ],\n         "Authentication Failed": [\n            null,\n            "Autenticazione fallita"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            ""\n         ],\n         "Generating private key.": [\n            null,\n            ""\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            ""\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            ""\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            ""\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            ""\n         ],\n         "Personal message": [\n            null,\n            "Messaggio personale"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "Sei sicuro di voler pulire i messaggi da questa stanza?"\n         ],\n         "me": [\n            null,\n            "me"\n         ],\n         "is typing": [\n            null,\n            "sta scrivendo"\n         ],\n         "has stopped typing": [\n            null,\n            "ha smesso di scrivere"\n         ],\n         "has gone away": [\n            null,\n            ""\n         ],\n         "Show this menu": [\n            null,\n            "Mostra questo menu"\n         ],\n         "Write in the third person": [\n            null,\n            "Scrivi in terza persona"\n         ],\n         "Remove messages": [\n            null,\n            "Rimuovi messaggi"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            ""\n         ],\n         "Your message could not be sent": [\n            null,\n            ""\n         ],\n         "We received an unencrypted message": [\n            null,\n            ""\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            ""\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            ""\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            ""\n         ],\n         "What is your security question?": [\n            null,\n            ""\n         ],\n         "What is the answer to the security question?": [\n            null,\n            ""\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            ""\n         ],\n         "has gone offline": [\n            null,\n            ""\n         ],\n         "is busy": [\n            null,\n            "è occupato"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            ""\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            ""\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            ""\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            ""\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            ""\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            ""\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            ""\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            ""\n         ],\n         "Clear all messages": [\n            null,\n            "Pulisci tutti i messaggi"\n         ],\n         "End encrypted conversation": [\n            null,\n            ""\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            ""\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            ""\n         ],\n         "Verify with fingerprints": [\n            null,\n            ""\n         ],\n         "Verify with SMP": [\n            null,\n            ""\n         ],\n         "What\'s this?": [\n            null,\n            ""\n         ],\n         "Online": [\n            null,\n            "In linea"\n         ],\n         "Busy": [\n            null,\n            "Occupato"\n         ],\n         "Away": [\n            null,\n            "Assente"\n         ],\n         "Offline": [\n            null,\n            "Non in linea"\n         ],\n         "Log out": [\n            null,\n            "Logo out"\n         ],\n         "Contact name": [\n            null,\n            "Nome del contatto"\n         ],\n         "Search": [\n            null,\n            "Cerca"\n         ],\n         "e.g. user@example.com": [\n            null,\n            "es. user@example.com"\n         ],\n         "Add": [\n            null,\n            "Aggiungi"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Clicca per aggiungere nuovi contatti alla chat"\n         ],\n         "Add a contact": [\n            null,\n            "Aggiungi contatti"\n         ],\n         "No users found": [\n            null,\n            "Nessun utente trovato"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Clicca per aggiungere il contatto alla chat"\n         ],\n         "Room name": [\n            null,\n            "Nome stanza"\n         ],\n         "Nickname": [\n            null,\n            "Soprannome"\n         ],\n         "Server": [\n            null,\n            "Server"\n         ],\n         "Join Room": [\n            null,\n            "Entra nella Stanza"\n         ],\n         "Show rooms": [\n            null,\n            "Mostra stanze"\n         ],\n         "Rooms": [\n            null,\n            "Stanze"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Nessuna stanza su %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Stanze su %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Clicca per aprire questa stanza"\n         ],\n         "Show more information on this room": [\n            null,\n            "Mostra più informazioni su questa stanza"\n         ],\n         "Description:": [\n            null,\n            "Descrizione:"\n         ],\n         "Occupants:": [\n            null,\n            "Utenti presenti:"\n         ],\n         "Features:": [\n            null,\n            "Funzionalità:"\n         ],\n         "Requires authentication": [\n            null,\n            "Richiede autenticazione"\n         ],\n         "Hidden": [\n            null,\n            "Nascosta"\n         ],\n         "Requires an invitation": [\n            null,\n            "Richiede un invito"\n         ],\n         "Moderated": [\n            null,\n            "Moderata"\n         ],\n         "Non-anonymous": [\n            null,\n            "Non-anonima"\n         ],\n         "Open room": [\n            null,\n            "Stanza aperta"\n         ],\n         "Permanent room": [\n            null,\n            "Stanza permanente"\n         ],\n         "Public": [\n            null,\n            "Pubblica"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Semi-anonima"\n         ],\n         "Temporary room": [\n            null,\n            "Stanza temporanea"\n         ],\n         "Unmoderated": [\n            null,\n            "Non moderata"\n         ],\n         "This user is a moderator": [\n            null,\n            "Questo utente è un moderatore"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Questo utente può inviare messaggi in questa stanza"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Questo utente NON può inviare messaggi in questa stanza"\n         ],\n         "Invite...": [\n            null,\n            "Invita…"\n         ],\n         "Occupants": [\n            null,\n            "Occupanti"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "Messaggio"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Ban user from room": [\n            null,\n            "Bandisci utente dalla stanza"\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Kick user from room": [\n            null,\n            "Espelli utente dalla stanza"\n         ],\n         "Write in 3rd person": [\n            null,\n            "Scrivi in terza persona"\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Set room topic": [\n            null,\n            "Cambia oggetto della stanza"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "Salva"\n         ],\n         "Cancel": [\n            null,\n            "Annulla"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Errore durante il salvataggio del modulo"\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Questa stanza richiede una password"\n         ],\n         "Password: ": [\n            null,\n            "Password: "\n         ],\n         "Submit": [\n            null,\n            "Invia"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Questa stanza non è anonima"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Questa stanza mostra i membri non disponibili al momento"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Questa stanza non mostra i membri non disponibili"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Una configurazione della stanza non legata alla privacy è stata modificata"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "La registrazione è abilitata nella stanza"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "La registrazione è disabilitata nella stanza"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Questa stanza è non-anonima"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Questa stanza è semi-anonima"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Questa stanza è completamente-anonima"\n         ],\n         "A new room has been created": [\n            null,\n            "Una nuova stanza è stata creata"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Sei stato bandito da questa stanza"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Sei stato espulso da questa stanza"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Sei stato rimosso da questa stanza a causa di un cambio di affiliazione"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi utente) è in fase di spegnimento"\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> è stato bandito"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "<strong>%1$s</strong> nickname è cambiato"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> è stato espulso"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> è stato rimosso in quanto non membro"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "Il tuo nickname è stato cambiato automaticamente in: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "Il tuo nickname è stato cambiato: <strong>%1$s</strong>"\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Non sei nella lista dei membri di questa stanza"\n         ],\n         "No nickname was specified": [\n            null,\n            "Nessun soprannome specificato"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Non ti è permesso creare nuove stanze"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Il tuo soprannome non è conforme alle regole di questa stanza"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Il tuo soprannome è già utilizzato"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Questa stanza non esiste (per ora)"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Questa stanza ha raggiunto il limite massimo di utenti"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Topic impostato da %1$s a: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s ti ha invitato a partecipare a una chat room: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s ti ha invitato a partecipare a una chat room: %2$s, e ha lasciato il seguente motivo: “%3$s”"\n         ],\n         "Click to restore this chat": [\n            null,\n            "Clicca per ripristinare questa chat"\n         ],\n         "Minimized": [\n            null,\n            "Ridotto"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Clicca per rimuovere questo contatto"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "Clicca per accettare questa richiesta di contatto"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "Clicca per rifiutare questa richiesta di contatto"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Clicca per parlare con questo contatto"\n         ],\n         "Name": [\n            null,\n            "Nome"\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "Sei sicuro di voler rimuovere questo contatto?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            "Si è verificato un errore durante il tentativo di rimozione"\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "Sei sicuro dirifiutare questa richiesta di contatto?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            "Si è verificato un errore durante il tentativo di aggiunta"\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            "Questo client non consente sottoscrizioni di presenza"\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "Sono %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Clicca qui per scrivere un messaggio di stato personalizzato"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Clicca per cambiare il tuo stato"\n         ],\n         "Custom status": [\n            null,\n            "Stato personalizzato"\n         ],\n         "online": [\n            null,\n            "in linea"\n         ],\n         "busy": [\n            null,\n            "occupato"\n         ],\n         "away for long": [\n            null,\n            "assente da molto"\n         ],\n         "away": [\n            null,\n            "assente"\n         ],\n         "offline": [\n            null,\n            "offline"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            "Nome del dominio del provider XMPP:"\n         ],\n         "Fetch registration form": [\n            null,\n            "Recupero il modulo di registrazione"\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            "Suggerimento: È disponibile un elenco di provider XMPP pubblici"\n         ],\n         "here": [\n            null,\n            "qui"\n         ],\n         "Register": [\n            null,\n            "Registra"\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            "Siamo spiacenti, il provider specificato non supporta la registrazione di account. Si prega di provare con un altro provider."\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            "Sto richiedendo un modulo di registrazione al server XMPP"\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            "Qualcosa è andato storto durante la connessione con “%1$s”. Sei sicuro che esiste?"\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            "Registrazione riuscita"\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "XMPP Username:": [\n            null,\n            "XMPP Username:"\n         ],\n         "Password:": [\n            null,\n            "Password:"\n         ],\n         "Click here to log in anonymously": [\n            null,\n            "Clicca per entrare anonimo"\n         ],\n         "Log In": [\n            null,\n            "Entra"\n         ],\n         "user@server": [\n            null,\n            "user@server"\n         ],\n         "password": [\n            null,\n            "Password"\n         ],\n         "Sign in": [\n            null,\n            "Accesso"\n         ],\n         "Toggle chat": [\n            null,\n            "Attiva/disattiva chat"\n         ]\n      }\n   }\n}'}),define("text!ja",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=1; plural=0;",\n            "lang": "JA"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "暗号化されていません"\n         ],\n         "unverified": [\n            null,\n            "検証されていません"\n         ],\n         "verified": [\n            null,\n            "検証されました"\n         ],\n         "finished": [\n            null,\n            "完了"\n         ],\n         "This contact is busy": [\n            null,\n            "この相手先は取り込み中です"\n         ],\n         "This contact is online": [\n            null,\n            "この相手先は在席しています"\n         ],\n         "This contact is offline": [\n            null,\n            "この相手先はオフラインです"\n         ],\n         "This contact is unavailable": [\n            null,\n            "この相手先は不通です"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "この相手先は不在です"\n         ],\n         "This contact is away": [\n            null,\n            "この相手先は離席中です"\n         ],\n         "My contacts": [\n            null,\n            "相手先一覧"\n         ],\n         "Pending contacts": [\n            null,\n            "保留中の相手先"\n         ],\n         "Contact requests": [\n            null,\n            "会話に呼び出し"\n         ],\n         "Ungrouped": [\n            null,\n            ""\n         ],\n         "Contacts": [\n            null,\n            "相手先"\n         ],\n         "Groups": [\n            null,\n            ""\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "エラー"\n         ],\n         "Connecting": [\n            null,\n            "接続中です"\n         ],\n         "Authenticating": [\n            null,\n            "認証中"\n         ],\n         "Authentication Failed": [\n            null,\n            "認証に失敗"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "暗号化セッションの再接続"\n         ],\n         "Generating private key.": [\n            null,\n            ""\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            ""\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "このユーザーの本人性を検証できませんでした。"\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            ""\n         ],\n         "Personal message": [\n            null,\n            "私信"\n         ],\n         "me": [\n            null,\n            "私"\n         ],\n         "is typing": [\n            null,\n            ""\n         ],\n         "has stopped typing": [\n            null,\n            ""\n         ],\n         "Show this menu": [\n            null,\n            "このメニューを表示"\n         ],\n         "Write in the third person": [\n            null,\n            "第三者に書く"\n         ],\n         "Remove messages": [\n            null,\n            "メッセージを削除"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            ""\n         ],\n         "Your message could not be sent": [\n            null,\n            "メッセージを送信できませんでした"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "暗号化されていないメッセージを受信しました"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "読めない暗号化メッセージを受信しました"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "これは鍵指紋です。チャット以外の方法でこれらを %1$s と確認してください。\\n\\nあなた %2$s の鍵指紋: %3$s\\n\\n%1$s の鍵指紋: %4$s\\n\\n確認して、鍵指紋が正しければ「OK」を、正しくなければ「キャンセル」をクリックしてください。"\n         ],\n         "What is your security question?": [\n            null,\n            "秘密の質問はなんですか?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "秘密の質問の答はなんですか?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "認証の方式が正しくありません"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "メッセージはもう暗号化されません"\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "メッセージは暗号化されません。OTR 暗号化を有効にするにはここをクリックしてください。"\n         ],\n         "End encrypted conversation": [\n            null,\n            "暗号化された会話を終了"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "暗号化された会話をリフレッシュ"\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            "暗号化された会話を開始"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "鍵指紋で検証"\n         ],\n         "Verify with SMP": [\n            null,\n            "SMP で検証"\n         ],\n         "What\'s this?": [\n            null,\n            "これは何ですか?"\n         ],\n         "Online": [\n            null,\n            "オンライン"\n         ],\n         "Busy": [\n            null,\n            "取り込み中"\n         ],\n         "Away": [\n            null,\n            "離席中"\n         ],\n         "Offline": [\n            null,\n            "オフライン"\n         ],\n         "Contact name": [\n            null,\n            "名前"\n         ],\n         "Search": [\n            null,\n            "検索"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "追加"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "クリックして新しいチャットの相手先を追加"\n         ],\n         "Add a contact": [\n            null,\n            "相手先を追加"\n         ],\n         "No users found": [\n            null,\n            "ユーザーが見つかりません"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "クリックしてチャットの相手先として追加"\n         ],\n         "Room name": [\n            null,\n            "談話室の名前"\n         ],\n         "Nickname": [\n            null,\n            "ニックネーム"\n         ],\n         "Server": [\n            null,\n            "サーバー"\n         ],\n         "Show rooms": [\n            null,\n            "談話室一覧を見る"\n         ],\n         "Rooms": [\n            null,\n            "談話室"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "%1$s に談話室はありません"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "%1$s の談話室一覧"\n         ],\n         "Click to open this room": [\n            null,\n            "クリックしてこの談話室を開く"\n         ],\n         "Show more information on this room": [\n            null,\n            "この談話室についての詳細を見る"\n         ],\n         "Description:": [\n            null,\n            "説明: "\n         ],\n         "Occupants:": [\n            null,\n            "入室者:"\n         ],\n         "Features:": [\n            null,\n            "特徴:"\n         ],\n         "Requires authentication": [\n            null,\n            "認証の要求"\n         ],\n         "Hidden": [\n            null,\n            "非表示"\n         ],\n         "Requires an invitation": [\n            null,\n            "招待の要求"\n         ],\n         "Moderated": [\n            null,\n            "発言制限"\n         ],\n         "Non-anonymous": [\n            null,\n            "非匿名"\n         ],\n         "Open room": [\n            null,\n            "開放談話室"\n         ],\n         "Permanent room": [\n            null,\n            "常設談話室"\n         ],\n         "Public": [\n            null,\n            "公開談話室"\n         ],\n         "Semi-anonymous": [\n            null,\n            "半匿名"\n         ],\n         "Temporary room": [\n            null,\n            "臨時談話室"\n         ],\n         "Unmoderated": [\n            null,\n            "発言制限なし"\n         ],\n         "This user is a moderator": [\n            null,\n            "このユーザーは司会者です"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "このユーザーはこの談話室で発言できます"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "このユーザーはこの談話室で発言できません"\n         ],\n         "Invite...": [\n            null,\n            ""\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "メッセージ"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "保存"\n         ],\n         "Cancel": [\n            null,\n            "キャンセル"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "フォームを保存する際にエラーが発生しました。"\n         ],\n         "This chatroom requires a password": [\n            null,\n            "この談話室にはパスワードが必要です"\n         ],\n         "Password: ": [\n            null,\n            "パスワード:"\n         ],\n         "Submit": [\n            null,\n            "送信"\n         ],\n         "This room is not anonymous": [\n            null,\n            "この談話室は非匿名です"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "この談話室はメンバー以外にも見えます"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "この談話室はメンバー以外には見えません"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "談話室の設定(プライバシーに無関係)が変更されました"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "談話室の記録を取りはじめます"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "談話室の記録を止めます"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "この談話室はただいま非匿名です"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "この談話室はただいま半匿名です"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "この談話室はただいま匿名です"\n         ],\n         "A new room has been created": [\n            null,\n            "新しい談話室が作成されました"\n         ],\n         "You have been banned from this room": [\n            null,\n            "この談話室から締め出されました"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "この談話室から蹴り出されました"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "分掌の変更のため、この談話室から削除されました"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "談話室がメンバー制に変更されました。メンバーではないため、この談話室から削除されました"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "MUC(グループチャット)のサービスが停止したため、この談話室から削除されました。"\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> を締め出しました"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> を蹴り出しました"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "分掌の変更のため、<strong>%1$s</strong> を削除しました"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "メンバーでなくなったため、<strong>%1$s</strong> を削除しました"\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "この談話室のメンバー一覧にいません"\n         ],\n         "No nickname was specified": [\n            null,\n            "ニックネームがありません"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "新しい談話室を作成する権限がありません"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "ニックネームがこの談話室のポリシーに従っていません"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "ニックネームは既に使われています"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "この談話室は存在しません"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "この談話室は入室者数の上限に達しています"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "%1$s が話題を設定しました: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            ""\n         ],\n         "Minimized": [\n            null,\n            ""\n         ],\n         "Click to remove this contact": [\n            null,\n            "クリックしてこの相手先を削除"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "クリックしてこの相手先とチャット"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "私はいま %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "状況メッセージを入力するには、ここをクリック"\n         ],\n         "Click to change your chat status": [\n            null,\n            "クリックして、在席状況を変更"\n         ],\n         "Custom status": [\n            null,\n            "独自の在席状況"\n         ],\n         "online": [\n            null,\n            "在席"\n         ],\n         "busy": [\n            null,\n            "取り込み中"\n         ],\n         "away for long": [\n            null,\n            "不在"\n         ],\n         "away": [\n            null,\n            "離席中"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "Password:": [\n            null,\n            "パスワード:"\n         ],\n         "Log In": [\n            null,\n            "ログイン"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "サインイン"\n         ],\n         "Toggle chat": [\n            null,\n            ""\n         ]\n      }\n   }\n}'}),define("text!nb",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n != 1);",\n            "lang": "nb"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "ukryptertß"\n         ],\n         "unverified": [\n            null,\n            "uverifisert"\n         ],\n         "verified": [\n            null,\n            "verifisert"\n         ],\n         "finished": [\n            null,\n            "ferdig"\n         ],\n         "This contact is busy": [\n            null,\n            "Denne kontakten er opptatt"\n         ],\n         "This contact is online": [\n            null,\n            "Kontakten er pålogget"\n         ],\n         "This contact is offline": [\n            null,\n            "Kontakten er avlogget"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Kontakten er utilgjengelig"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Kontakten er borte for en lengre periode"\n         ],\n         "This contact is away": [\n            null,\n            "Kontakten er borte"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "Klikk for å skjule disse kontaktene"\n         ],\n         "My contacts": [\n            null,\n            "Mine Kontakter"\n         ],\n         "Pending contacts": [\n            null,\n            "Kontakter som venter på godkjenning"\n         ],\n         "Contact requests": [\n            null,\n            "Kontaktforespørsler"\n         ],\n         "Ungrouped": [\n            null,\n            "Ugrupperte"\n         ],\n         "Contacts": [\n            null,\n            "Kontakter"\n         ],\n         "Groups": [\n            null,\n            "Grupper"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Feil"\n         ],\n         "Connecting": [\n            null,\n            "Kobler til"\n         ],\n         "Authenticating": [\n            null,\n            "Godkjenner"\n         ],\n         "Authentication Failed": [\n            null,\n            "Godkjenning mislyktes"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Gjenopptar kryptert økt"\n         ],\n         "Generating private key.": [\n            null,\n            "Genererer privat nøkkel"\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "Din nettleser kan bli uresponsiv"\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            "Godkjenningsforespørsel fra %1$s\\n\\nDin nettpratkontakt forsøker å bekrefte din identitet, ved å spørre deg spørsmålet under.\\n\\n%2$s"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "Kunne ikke bekrefte denne brukerens identitet"\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            "Bytter private nøkler med kontakt"\n         ],\n         "Personal message": [\n            null,\n            "Personlig melding"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "Er du sikker på at du vil fjerne meldingene fra dette rommet?"\n         ],\n         "me": [\n            null,\n            "meg"\n         ],\n         "is typing": [\n            null,\n            "skriver"\n         ],\n         "has stopped typing": [\n            null,\n            "har stoppet å skrive"\n         ],\n         "Show this menu": [\n            null,\n            "Viser denne menyen"\n         ],\n         "Write in the third person": [\n            null,\n            "Skriv i tredjeperson"\n         ],\n         "Remove messages": [\n            null,\n            "Fjern meldinger"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "Er du sikker på at du vil fjerne meldingene fra denne meldingsboksen?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "Beskjeden din kunne ikke sendes"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Vi mottok en ukryptert beskjed"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Vi mottok en uleselig melding"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nOm du har bekreftet at avtrykkene matcher, klikk OK. I motsatt fall, trykk Avbryt."\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            "Du vil bli spurt etter å tilby et sikkerhetsspørsmål og siden svare på dette.\\n\\nDin kontakt vil så bli spurt om det samme spørsmålet, og om de svarer det nøyaktig samme svaret (det er forskjell på små og store bokstaver), vil identiteten verifiseres."\n         ],\n         "What is your security question?": [\n            null,\n            "Hva er ditt Sikkerhetsspørsmål?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Hva er svaret på ditt Sikkerhetsspørsmål?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Du har vedlagt en ugyldig godkjenningsplan."\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Dine meldinger er ikke kryptert lenger."\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            "Dine meldinger er nå krypterte, men identiteten til din kontakt har ikke blitt verifisert."\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            "Din kontakts identitet har blitt verifisert."\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            "Din kontakt har avsluttet kryptering i sin ende, dette burde du også gjøre."\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Dine meldinger er ikke krypterte. Klikk her for å aktivere OTR-kryptering."\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            "Dine meldinger er krypterte, men din kontakt har ikke blitt verifisert."\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            "Dine meldinger er krypterte og din kontakt er verifisert."\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            "Din kontakt har avsluttet økten i sin ende, dette burde du også gjøre."\n         ],\n         "Clear all messages": [\n            null,\n            "Fjern alle meldinger"\n         ],\n         "End encrypted conversation": [\n            null,\n            "Avslutt kryptert økt"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            "Skjul deltakerlisten"\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Last inn kryptert samtale på nytt"\n         ],\n         "Start a call": [\n            null,\n            "Start en samtale"\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Start en kryptert samtale"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Verifiser med Avtrykk"\n         ],\n         "Verify with SMP": [\n            null,\n            "Verifiser med SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "Hva er dette?"\n         ],\n         "Online": [\n            null,\n            "Pålogget"\n         ],\n         "Busy": [\n            null,\n            "Opptatt"\n         ],\n         "Away": [\n            null,\n            "Borte"\n         ],\n         "Offline": [\n            null,\n            "Avlogget"\n         ],\n         "Log out": [\n            null,\n            "Logg Av"\n         ],\n         "Contact name": [\n            null,\n            "Kontaktnavn"\n         ],\n         "Search": [\n            null,\n            "Søk"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Legg Til"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Klikk for å legge til nye meldingskontakter"\n         ],\n         "Add a contact": [\n            null,\n            "Legg til en Kontakt"\n         ],\n         "No users found": [\n            null,\n            "Ingen brukere funnet"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Klikk for å legge til som meldingskontakt"\n         ],\n         "Room name": [\n            null,\n            "Romnavn"\n         ],\n         "Nickname": [\n            null,\n            "Kallenavn"\n         ],\n         "Server": [\n            null,\n            "Server"\n         ],\n         "Show rooms": [\n            null,\n            "Vis Rom"\n         ],\n         "Rooms": [\n            null,\n            "Rom"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Ingen rom på %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Rom på %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Klikk for å åpne dette rommet"\n         ],\n         "Show more information on this room": [\n            null,\n            "Vis mer informasjon om dette rommet"\n         ],\n         "Description:": [\n            null,\n            "Beskrivelse:"\n         ],\n         "Occupants:": [\n            null,\n            "Brukere her:"\n         ],\n         "Features:": [\n            null,\n            "Egenskaper:"\n         ],\n         "Requires authentication": [\n            null,\n            "Krever Godkjenning"\n         ],\n         "Hidden": [\n            null,\n            "Skjult"\n         ],\n         "Requires an invitation": [\n            null,\n            "Krever en invitasjon"\n         ],\n         "Moderated": [\n            null,\n            "Moderert"\n         ],\n         "Non-anonymous": [\n            null,\n            "Ikke-Anonym"\n         ],\n         "Open room": [\n            null,\n            "Åpent Rom"\n         ],\n         "Permanent room": [\n            null,\n            "Permanent Rom"\n         ],\n         "Public": [\n            null,\n            "Alle"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Semi-anonymt"\n         ],\n         "Temporary room": [\n            null,\n            "Midlertidig Rom"\n         ],\n         "Unmoderated": [\n            null,\n            "Umoderert"\n         ],\n         "This user is a moderator": [\n            null,\n            "Denne brukeren er moderator"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Denne brukeren kan skrive meldinger i dette rommet"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Denne brukeren kan IKKE sende meldinger i dette rommet"\n         ],\n         "Invite...": [\n            null,\n            "Invitér..."\n         ],\n         "Occupants": [\n            null,\n            "Brukere her:"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            "Du er i ferd med å invitere %1$s til samtalerommet \\"%2$s\\". "\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            "Du kan eventuelt inkludere en melding og forklare årsaken til invitasjonen."\n         ],\n         "Message": [\n            null,\n            "Melding"\n         ],\n         "Error: could not execute the command": [\n            null,\n            "Feil: kunne ikke utføre kommandoen"\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Ban user from room": [\n            null,\n            "Utesteng bruker fra rommet"\n         ],\n         "Kick user from room": [\n            null,\n            "Kast ut bruker fra rommet"\n         ],\n         "Write in 3rd person": [\n            null,\n            "Skriv i tredjeperson"\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            "Fjern brukerens muligheter til å skrive meldinger"\n         ],\n         "Change your nickname": [\n            null,\n            "Endre ditt kallenavn"\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Set room topic": [\n            null,\n            "Endre rommets emne"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            "Tillat stumme brukere å skrive meldinger"\n         ],\n         "Save": [\n            null,\n            "Lagre"\n         ],\n         "Cancel": [\n            null,\n            "Avbryt"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "En feil skjedde under lagring av skjemaet."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Dette rommet krever et passord"\n         ],\n         "Password: ": [\n            null,\n            "Passord:"\n         ],\n         "Submit": [\n            null,\n            "Send"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Dette rommet er ikke anonymt"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Dette rommet viser nå utilgjengelige medlemmer"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Dette rommet viser ikke utilgjengelige medlemmer"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Ikke-personvernsrelatert romkonfigurasjon har blitt endret"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "Romlogging er nå aktivert"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "Romlogging er nå deaktivert"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Dette rommet er nå ikke-anonymt"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Dette rommet er nå semi-anonymt"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Dette rommet er nå totalt anonymt"\n         ],\n         "A new room has been created": [\n            null,\n            "Et nytt rom har blitt opprettet"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Du har blitt utestengt fra dette rommet"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Du ble kastet ut av dette rommet"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Du har blitt fjernet fra dette rommet på grunn av en holdningsendring"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Du har blitt fjernet fra dette rommet fordi rommet nå kun tillater medlemmer, noe du ikke er."\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Du har blitt fjernet fra dette rommet fordi MBC (Multi-Bruker-Chat)-tjenesten er stengt ned."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong>  har blitt utestengt"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "<strong>%1$s</strong> sitt kallenavn er endret"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong>  ble kastet ut"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> har blitt fjernet på grunn av en holdningsendring"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> har blitt fjernet på grunn av at han/hun ikke er medlem"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "Ditt kallenavn har blitt automatisk endret til <strong>%1$s</strong> "\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "Ditt kallenavn har blitt endret til <strong>%1$s</strong> "\n         ],\n         "The reason given is: \\"": [\n            null,\n            "Årsaken som er oppgitt er: \\""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Du er ikke på medlemslisten til dette rommet"\n         ],\n         "No nickname was specified": [\n            null,\n            "Ingen kallenavn var spesifisert"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Du har ikke tillatelse til å opprette nye rom"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Ditt kallenavn er ikke i samsvar med rommets regler"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Kallenavnet er allerede tatt"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Dette rommet eksisterer ikke (enda)"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Dette rommet har nådd maksimalt antall brukere"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Emnet ble endret den %1$s til: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s har invitert deg til å bli med i chatterommet: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s har invitert deg til å bli med i chatterommet: %2$s, og forlot selv av følgende grunn:  \\"%3$s\\""\n         ],\n         "Click to restore this chat": [\n            null,\n            "Klikk for å gjenopprette denne samtalen"\n         ],\n         "Minimized": [\n            null,\n            "Minimert"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Klikk for å fjerne denne kontakten"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "Klikk for å Godta denne kontaktforespørselen"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "Klikk for å avslå denne kontaktforespørselen"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Klikk for å chatte med denne kontakten"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "Er du sikker på at du vil fjerne denne kontakten?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "Er du sikker på at du vil avslå denne kontaktforespørselen?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            "Skriv til filter"\n         ],\n         "I am %1$s": [\n            null,\n            "Jeg er %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Klikk her for å skrive en personlig statusmelding"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Klikk for å endre din meldingsstatus"\n         ],\n         "Custom status": [\n            null,\n            "Personlig status"\n         ],\n         "online": [\n            null,\n            "pålogget"\n         ],\n         "busy": [\n            null,\n            "opptatt"\n         ],\n         "away for long": [\n            null,\n            "borte lenge"\n         ],\n         "away": [\n            null,\n            "borte"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            "Din XMPP-tilbyders domenenavn:"\n         ],\n         "Fetch registration form": [\n            null,\n            "Hent registreringsskjema"\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            "Tips: En liste med offentlige XMPP-tilbydere er tilgjengelig"\n         ],\n         "here": [\n            null,\n            "her"\n         ],\n         "Register": [\n            null,\n            "Registrér deg"\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            "Beklager, den valgte tilbyderen støtter ikke in band kontoregistrering. Vennligst prøv igjen med en annen tilbyder. "\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            "Spør etter registreringsskjema fra XMPP-tjeneren"\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            "Noe gikk galt under etablering av forbindelse med \\"%1$s\\". Er du sikker på at denne eksisterer?"\n         ],\n         "Now logging you in": [\n            null,\n            "Logger deg inn"\n         ],\n         "Registered successfully": [\n            null,\n            "Registrering var vellykket"\n         ],\n         "Return": [\n            null,\n            "Tilbake"\n         ],\n         "XMPP Username:": [\n            null,\n            "XMPP Brukernavn:"\n         ],\n         "Password:": [\n            null,\n            "Passord:"\n         ],\n         "Log In": [\n            null,\n            "Logg inn"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Innlogging"\n         ],\n         "Toggle chat": [\n            null,\n            "Endre chatten"\n         ]\n      }\n   }\n}'}),define("text!nl",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n != 1);",\n            "lang": "nl"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "ongecodeerde"\n         ],\n         "unverified": [\n            null,\n            "niet geverifieerd"\n         ],\n         "verified": [\n            null,\n            "geverifieerd"\n         ],\n         "finished": [\n            null,\n            "klaar"\n         ],\n         "This contact is busy": [\n            null,\n            "Contact is bezet"\n         ],\n         "This contact is online": [\n            null,\n            "Contact is online"\n         ],\n         "This contact is offline": [\n            null,\n            "Contact is offline"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Contact is niet beschikbaar"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Contact is afwezig voor lange periode"\n         ],\n         "This contact is away": [\n            null,\n            "Conact is afwezig"\n         ],\n         "My contacts": [\n            null,\n            "Mijn contacts"\n         ],\n         "Pending contacts": [\n            null,\n            "Conacten in afwachting van"\n         ],\n         "Contact requests": [\n            null,\n            "Contact uitnodiging"\n         ],\n         "Ungrouped": [\n            null,\n            ""\n         ],\n         "Contacts": [\n            null,\n            "Contacten"\n         ],\n         "Groups": [\n            null,\n            ""\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Error"\n         ],\n         "Connecting": [\n            null,\n            "Verbinden"\n         ],\n         "Authenticating": [\n            null,\n            "Authenticeren"\n         ],\n         "Authentication Failed": [\n            null,\n            "Authenticeren mislukt"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Bezig versleutelde sessie te herstellen"\n         ],\n         "Generating private key.": [\n            null,\n            ""\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            ""\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            ""\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "Niet kon de identiteit van deze gebruiker niet identificeren."\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            ""\n         ],\n         "Personal message": [\n            null,\n            "Persoonlijk bericht"\n         ],\n         "me": [\n            null,\n            "ikzelf"\n         ],\n         "Show this menu": [\n            null,\n            "Toon dit menu"\n         ],\n         "Write in the third person": [\n            null,\n            "Schrijf in de 3de persoon"\n         ],\n         "Remove messages": [\n            null,\n            "Verwijder bericht"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            ""\n         ],\n         "Your message could not be sent": [\n            null,\n            "Je bericht kon niet worden verzonden"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "We ontvingen een unencrypted bericht "\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "We ontvangen een onleesbaar unencrypted bericht"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            ""\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            ""\n         ],\n         "What is your security question?": [\n            null,\n            "Wat is jou sericury vraag?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Wat is het antwoord op de security vraag?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            ""\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Je berichten zijn niet meer encrypted"\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Jou bericht is niet encrypted. KLik hier om ORC encrytion aan te zetten."\n         ],\n         "End encrypted conversation": [\n            null,\n            "Beeindig encrypted gesprek"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Ververs encrypted gesprek"\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Start encrypted gesprek"\n         ],\n         "Verify with fingerprints": [\n            null,\n            ""\n         ],\n         "Verify with SMP": [\n            null,\n            ""\n         ],\n         "What\'s this?": [\n            null,\n            "Wat is dit?"\n         ],\n         "Online": [\n            null,\n            "Online"\n         ],\n         "Busy": [\n            null,\n            "Bezet"\n         ],\n         "Away": [\n            null,\n            "Afwezig"\n         ],\n         "Offline": [\n            null,\n            ""\n         ],\n         "Contact name": [\n            null,\n            "Contact naam"\n         ],\n         "Search": [\n            null,\n            "Zoeken"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Toevoegen"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Klik om nieuwe contacten toe te voegen"\n         ],\n         "Add a contact": [\n            null,\n            "Voeg contact toe"\n         ],\n         "No users found": [\n            null,\n            "Geen gebruikers gevonden"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Klik om contact toe te voegen"\n         ],\n         "Room name": [\n            null,\n            "Room naam"\n         ],\n         "Nickname": [\n            null,\n            "Nickname"\n         ],\n         "Server": [\n            null,\n            "Server"\n         ],\n         "Show rooms": [\n            null,\n            "Toon rooms"\n         ],\n         "Rooms": [\n            null,\n            "Rooms"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Geen room op %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Room op %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Klik om room te openen"\n         ],\n         "Show more information on this room": [\n            null,\n            "Toon meer informatie over deze room"\n         ],\n         "Description:": [\n            null,\n            "Beschrijving"\n         ],\n         "Occupants:": [\n            null,\n            "Deelnemers:"\n         ],\n         "Features:": [\n            null,\n            "Functies:"\n         ],\n         "Requires authentication": [\n            null,\n            "Verificatie vereist"\n         ],\n         "Hidden": [\n            null,\n            "Verborgen"\n         ],\n         "Requires an invitation": [\n            null,\n            "Veriest een uitnodiging"\n         ],\n         "Moderated": [\n            null,\n            "Gemodereerd"\n         ],\n         "Non-anonymous": [\n            null,\n            "Niet annoniem"\n         ],\n         "Open room": [\n            null,\n            "Open room"\n         ],\n         "Permanent room": [\n            null,\n            "Blijvend room"\n         ],\n         "Public": [\n            null,\n            "Publiek"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Semi annoniem"\n         ],\n         "Temporary room": [\n            null,\n            "Tijdelijke room"\n         ],\n         "Unmoderated": [\n            null,\n            "Niet gemodereerd"\n         ],\n         "This user is a moderator": [\n            null,\n            "Dit is een moderator"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Deze gebruiker kan berichten sturen in deze room"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Deze gebruiker kan NIET een bericht sturen in deze room"\n         ],\n         "Invite...": [\n            null,\n            ""\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "Bericht"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "Opslaan"\n         ],\n         "Cancel": [\n            null,\n            "Annuleren"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Een error tijdens het opslaan van het formulier."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Chatroom heeft een wachtwoord"\n         ],\n         "Password: ": [\n            null,\n            "Wachtwoord: "\n         ],\n         "Submit": [\n            null,\n            "Indienen"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Deze room is niet annoniem"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            ""\n         ],\n         "This room does not show unavailable members": [\n            null,\n            ""\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            ""\n         ],\n         "Room logging is now enabled": [\n            null,\n            ""\n         ],\n         "Room logging is now disabled": [\n            null,\n            ""\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Deze room is nu niet annoniem"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Deze room is nu semie annoniem"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Deze room is nu volledig annoniem"\n         ],\n         "A new room has been created": [\n            null,\n            "Een nieuwe room is gemaakt"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Je bent verbannen uit deze room"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Je bent uit de room gegooid"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            ""\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            ""\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            ""\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> is verbannen"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> has been kicked out"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            ""\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            ""\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Je bent niet een gebruiker van deze room"\n         ],\n         "No nickname was specified": [\n            null,\n            "Geen nickname ingegeven"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Je bent niet toegestaan nieuwe rooms te maken"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Je nickname is niet conform policy"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Je nickname bestaat al"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Deze room bestaat niet"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Deze room heeft het maximale aantal gebruikers"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            ""\n         ],\n         "Minimized": [\n            null,\n            ""\n         ],\n         "Click to remove this contact": [\n            null,\n            "Klik om contact te verwijderen"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Klik om te chatten met contact"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "Ik ben %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Klik hier om custom status bericht te maken"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Klik hier om status te wijzigen"\n         ],\n         "Custom status": [\n            null,\n            ""\n         ],\n         "online": [\n            null,\n            "online"\n         ],\n         "busy": [\n            null,\n            "bezet"\n         ],\n         "away for long": [\n            null,\n            "afwezig lange tijd"\n         ],\n         "away": [\n            null,\n            "afwezig"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "Password:": [\n            null,\n            "Wachtwoord:"\n         ],\n         "Log In": [\n            null,\n            "Aanmelden"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Aanmelden"\n         ],\n         "Toggle chat": [\n            null,\n            ""\n         ]\n      }\n   }\n}'}),define("text!pl",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);",\n            "lang": "pl"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "nieszyfrowane"\n         ],\n         "unverified": [\n            null,\n            "niezweryfikowane"\n         ],\n         "verified": [\n            null,\n            "zweryfikowane"\n         ],\n         "finished": [\n            null,\n            "zakończone"\n         ],\n         "This contact is busy": [\n            null,\n            "Kontakt jest zajęty"\n         ],\n         "This contact is online": [\n            null,\n            "Kontakt jest połączony"\n         ],\n         "This contact is offline": [\n            null,\n            "Kontakt jest niepołączony"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Kontakt jest niedostępny"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Kontakt jest nieobecny przez dłuższą chwilę"\n         ],\n         "This contact is away": [\n            null,\n            "Kontakt jest nieobecny"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "Kliknij aby schować te kontakty"\n         ],\n         "My contacts": [\n            null,\n            "Moje kontakty"\n         ],\n         "Pending contacts": [\n            null,\n            "Kontakty oczekujące"\n         ],\n         "Contact requests": [\n            null,\n            "Zaproszenia do kontaktu"\n         ],\n         "Ungrouped": [\n            null,\n            "Niezgrupowane"\n         ],\n         "Contacts": [\n            null,\n            "Kontakty"\n         ],\n         "Groups": [\n            null,\n            "Grupy"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Błąd"\n         ],\n         "Connecting": [\n            null,\n            "Łączę się"\n         ],\n         "Authenticating": [\n            null,\n            "Autoryzacja"\n         ],\n         "Authentication Failed": [\n            null,\n            "Autoryzacja nie powiodła się"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Przywrócenie sesji szyfrowanej"\n         ],\n         "Generating private key.": [\n            null,\n            "Generuję klucz prywatny."\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "Twoja przeglądarka może nieco zwolnić."\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            "Prośba o autoryzację od %1$s\\n\\nKontakt próbuje zweryfikować twoją tożsamość, zadając ci pytanie poniżej.\\n\\n%2$s"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "Nie jestem w stanie zweryfikować tożsamości kontaktu."\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            "Wymieniam klucze szyfrujące z kontaktem."\n         ],\n         "Personal message": [\n            null,\n            "Wiadomość osobista"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "Potwierdź czy rzeczywiście chcesz wyczyścić wiadomości z tego pokoju?"\n         ],\n         "me": [\n            null,\n            "ja"\n         ],\n         "is typing": [\n            null,\n            "pisze"\n         ],\n         "has stopped typing": [\n            null,\n            "przestał pisać"\n         ],\n         "Show this menu": [\n            null,\n            "Pokaż menu"\n         ],\n         "Write in the third person": [\n            null,\n            "Pisz w trzeciej osobie"\n         ],\n         "Remove messages": [\n            null,\n            "Usuń wiadomość"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "Potwierdź czy rzeczywiście chcesz wyczyścić wiadomości z okienka rozmowy?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "Twoja wiadomość nie została wysłana"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Otrzymaliśmy niezaszyfrowaną wiadomość"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Otrzymaliśmy nieczytelną zaszyfrowaną wiadomość"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Oto odciski palców, potwiedź je proszę z %1$s używając innego sposobuwymiany informacji niż ta rozmowa.\\n\\nOdcisk palca dla ciebie, %2$s: %3$s\\n\\nOdcisk palca dla %1$s: %4$s\\n\\nJeśli odciski palców zostały potwierdzone, kliknij OK, w inny wypadku kliknij Anuluj."\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            "Poprosimy cię o podanie pytania sprawdzającego i odpowiedzi na nie.\\n\\nTwój kontakt zostanie poproszony później o odpowiedź na to samo pytanie i jeśli udzieli tej samej odpowiedzi (ważna jest wielkość liter), tożsamość zostanie zwerfikowana."\n         ],\n         "What is your security question?": [\n            null,\n            "Jakie jest pytanie bezpieczeństwa?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Jaka jest odpowiedź na pytanie bezpieczeństwa?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Niewłaściwy schemat autoryzacji"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Twoje wiadomości nie są już szyfrowane"\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            "Wiadomości są teraz szyfrowane, ale tożsamość kontaktu nie została zweryfikowana."\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            "Tożsamość kontaktu została zweryfikowana"\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            "Kontakt zakończył sesję szyfrowaną, powinieneś zrobić to samo."\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Twoje wiadomości nie są szyfrowane. Kliknij, aby uruchomić szyfrowanie OTR"\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            "Wiadomości są szyfrowane, ale tożsamość kontaktu nie została zweryfikowana."\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            "Wiadomości są szyfrowane i tożsamość kontaktu została zweryfikowana."\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            "Kontakt zakończył prywatną rozmowę i ty zrób to samo"\n         ],\n         "Clear all messages": [\n            null,\n            "Wyczyść wszystkie wiadomości"\n         ],\n         "End encrypted conversation": [\n            null,\n            "Zakończ szyfrowaną rozmowę"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            "Ukryj listę rozmówców"\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Odśwież szyfrowaną rozmowę"\n         ],\n         "Start a call": [\n            null,\n            "Zadzwoń"\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Rozpocznij szyfrowaną rozmowę"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Zweryfikuj za pomocą odcisków palców"\n         ],\n         "Verify with SMP": [\n            null,\n            "Zweryfikuj za pomocą SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "Co to jest?"\n         ],\n         "Online": [\n            null,\n            "Dostępny"\n         ],\n         "Busy": [\n            null,\n            "Zajęty"\n         ],\n         "Away": [\n            null,\n            "Nieobecny"\n         ],\n         "Offline": [\n            null,\n            "Rozłączony"\n         ],\n         "Log out": [\n            null,\n            "Wyloguj"\n         ],\n         "Contact name": [\n            null,\n            "Nazwa kontaktu"\n         ],\n         "Search": [\n            null,\n            "Szukaj"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Dodaj"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Kliknij aby dodać nowe kontakty"\n         ],\n         "Add a contact": [\n            null,\n            "Dodaj kontakt"\n         ],\n         "No users found": [\n            null,\n            "Nie znaleziono użytkowników"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Kliknij aby dodać jako kontakt"\n         ],\n         "Room name": [\n            null,\n            "Nazwa pokoju"\n         ],\n         "Nickname": [\n            null,\n            "Ksywka"\n         ],\n         "Server": [\n            null,\n            "Serwer"\n         ],\n         "Show rooms": [\n            null,\n            "Pokaż pokoje"\n         ],\n         "Rooms": [\n            null,\n            "Pokoje"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Brak jest pokojów na %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Pokoje na %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Kliknij aby wejść do pokoju"\n         ],\n         "Show more information on this room": [\n            null,\n            "Pokaż więcej informacji o pokoju"\n         ],\n         "Description:": [\n            null,\n            "Opis:"\n         ],\n         "Occupants:": [\n            null,\n            "Uczestnicy:"\n         ],\n         "Features:": [\n            null,\n            "Możliwości:"\n         ],\n         "Requires authentication": [\n            null,\n            "Wymaga autoryzacji"\n         ],\n         "Hidden": [\n            null,\n            "Ukryty"\n         ],\n         "Requires an invitation": [\n            null,\n            "Wymaga zaproszenia"\n         ],\n         "Moderated": [\n            null,\n            "Moderowany"\n         ],\n         "Non-anonymous": [\n            null,\n            "Nieanonimowy"\n         ],\n         "Open room": [\n            null,\n            "Otwarty pokój"\n         ],\n         "Permanent room": [\n            null,\n            "Stały pokój"\n         ],\n         "Public": [\n            null,\n            "Publiczny"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Półanonimowy"\n         ],\n         "Temporary room": [\n            null,\n            "Pokój tymczasowy"\n         ],\n         "Unmoderated": [\n            null,\n            "Niemoderowany"\n         ],\n         "This user is a moderator": [\n            null,\n            "Ten człowiek jest moderatorem"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Ten człowiek może rozmawiać w niejszym pokoju"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Ten człowiek nie może rozmawiać w niniejszym pokoju"\n         ],\n         "Invite...": [\n            null,\n            "Zaproś..."\n         ],\n         "Occupants": [\n            null,\n            "Uczestników"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            "Zamierzasz zaprosić %1$s do pokoju rozmów \\"%2$s\\". "\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            "Masz opcjonalną możliwość dołączenia wiadomości, która wyjaśni przyczynę zaproszenia."\n         ],\n         "Message": [\n            null,\n            "Wiadomość:"\n         ],\n         "Error: could not execute the command": [\n            null,\n            "Błąd: nie potrafię uruchomić polecenia"\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Ban user from room": [\n            null,\n            "Zablokuj dostępu do pokoju"\n         ],\n         "Kick user from room": [\n            null,\n            "Wykop z pokoju"\n         ],\n         "Write in 3rd person": [\n            null,\n            "Pisz w trzeciej osobie"\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            "Zablokuj człowiekowi możliwość rozmowy"\n         ],\n         "Change your nickname": [\n            null,\n            "Zmień ksywkę"\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Set room topic": [\n            null,\n            "Ustaw temat pokoju"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            "Pozwól uciszonemu człowiekowi na rozmowę"\n         ],\n         "Save": [\n            null,\n            "Zachowaj"\n         ],\n         "Cancel": [\n            null,\n            "Anuluj"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Wystąpił błąd w czasie próby zachowania formularza."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Pokój rozmów wymaga podania hasła"\n         ],\n         "Password: ": [\n            null,\n            "Hasło:"\n         ],\n         "Submit": [\n            null,\n            "Wyślij"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Pokój nie jest anonimowy"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Pokój pokazuje niedostępnych rozmówców"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Ten pokój nie wyświetla niedostępnych członków"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Ustawienia pokoju nie związane z prywatnością zostały zmienione"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "Zostało włączone zapisywanie rozmów w pokoju"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "Zostało wyłączone zapisywanie rozmów w pokoju"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Pokój stał się nieanonimowy"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Pokój stał się półanonimowy"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Pokój jest teraz w pełni anonimowy"\n         ],\n         "A new room has been created": [\n            null,\n            "Został utworzony nowy pokój"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Jesteś niemile widziany w tym pokoju"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Zostałeś wykopany z pokoju"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Zostałeś usunięty z pokoju ze względu na zmianę przynależności"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Zostałeś usunięty z pokoju ze względu na to, że pokój zmienił się na wymagający członkowstwa, a ty nie jesteś członkiem"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Zostałeś usunięty z pokoju ze względu na to, że serwis MUC(Multi-user chat) został wyłączony."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> został zbanowany"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "<strong>%1$s</strong> zmienił ksywkę"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> został wykopany"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> został usunięty z powodu zmiany przynależności"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> został usunięty ze względu na to, że nie jest członkiem"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "Twoja ksywka została automatycznie zmieniona na: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "Twoja ksywka została zmieniona na: <strong>%1$s</strong>"\n         ],\n         "The reason given is: \\"": [\n            null,\n            "Podana przyczyna to: \\""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Nie jesteś członkiem tego pokoju rozmów"\n         ],\n         "No nickname was specified": [\n            null,\n            "Nie podałeś ksywki"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Nie masz uprawnień do tworzenia nowych pokojów rozmów"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Twoja ksywka nie jest zgodna z regulaminem pokoju"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Twoja ksywka jest już w użyciu"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Ten pokój (jeszcze) nie istnieje"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Pokój przekroczył dozwoloną ilość rozmówców"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Temat ustawiony przez %1$s na: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s zaprosił(a) cię do wejścia do pokoju rozmów %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s zaprosił cię do pokoju: %2$s, podając następujący powód: \\"%3$s\\""\n         ],\n         "Click to restore this chat": [\n            null,\n            "Kliknij aby powrócić do rozmowy"\n         ],\n         "Minimized": [\n            null,\n            "Zminimalizowany"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Kliknij aby usunąć kontakt"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "Klknij aby zaakceptować życzenie nawiązania kontaktu"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "Kliknij aby odrzucić życzenie nawiązania kontaktu"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Kliknij aby porozmawiać z kontaktem"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "Czy potwierdzasz zamiar usnunięcia tego kontaktu?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "Czy potwierdzasz odrzucenie chęci nawiązania kontaktu?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            "Zacznij pisać, aby odfiltrować"\n         ],\n         "I am %1$s": [\n            null,\n            "Jestem %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Kliknij aby wpisać nowy status"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Kliknij aby zmienić status rozmowy"\n         ],\n         "Custom status": [\n            null,\n            "Własny status"\n         ],\n         "online": [\n            null,\n            "dostępny"\n         ],\n         "busy": [\n            null,\n            "zajęty"\n         ],\n         "away for long": [\n            null,\n            "dłużej nieobecny"\n         ],\n         "away": [\n            null,\n            "nieobecny"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            "Domena twojego dostawcy XMPP:"\n         ],\n         "Fetch registration form": [\n            null,\n            "Pobierz formularz rejestracyjny"\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            "Wskazówka: dostępna jest lista publicznych dostawców XMPP"\n         ],\n         "here": [\n            null,\n            "tutaj"\n         ],\n         "Register": [\n            null,\n            "Zarejestruj"\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            "Przepraszamy, ale podany dostawca nie obsługuje rejestracji. Spróbuj wskazać innego dostawcę."\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            "Pobieranie formularza rejestracyjnego z serwera XMPP"\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            "Coś nie zadziałało przy próbie połączenia z \\"%1$s\\". Jesteś pewien że istnieje?"\n         ],\n         "Now logging you in": [\n            null,\n            "Teraz jesteś logowany"\n         ],\n         "Registered successfully": [\n            null,\n            "Szczęśliwie zarejestrowany"\n         ],\n         "Return": [\n            null,\n            "Powrót"\n         ],\n         "XMPP Username:": [\n            null,\n            "Nazwa użytkownika XMPP:"\n         ],\n         "Password:": [\n            null,\n            "Hasło:"\n         ],\n         "Log In": [\n            null,\n            "Zaloguj się"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Zarejestruj się"\n         ],\n         "Toggle chat": [\n            null,\n            "Przełącz rozmowę"\n         ]\n      }\n   }\n}'}),define("text!pt_BR",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=2; plural=(n > 1);",\n            "lang": "pt_BR"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "não-criptografado"\n         ],\n         "unverified": [\n            null,\n            "não-verificado"\n         ],\n         "verified": [\n            null,\n            "verificado"\n         ],\n         "finished": [\n            null,\n            "finalizado"\n         ],\n         "This contact is busy": [\n            null,\n            "Este contato está ocupado"\n         ],\n         "This contact is online": [\n            null,\n            "Este contato está online"\n         ],\n         "This contact is offline": [\n            null,\n            "Este contato está offline"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Este contato está indisponível"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Este contato está ausente por um longo período"\n         ],\n         "This contact is away": [\n            null,\n            "Este contato está ausente"\n         ],\n         "My contacts": [\n            null,\n            "Meus contatos"\n         ],\n         "Pending contacts": [\n            null,\n            "Contados pendentes"\n         ],\n         "Contact requests": [\n            null,\n            "Solicitação de contatos"\n         ],\n         "Ungrouped": [\n            null,\n            ""\n         ],\n         "Contacts": [\n            null,\n            "Contatos"\n         ],\n         "Groups": [\n            null,\n            ""\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Erro"\n         ],\n         "Connecting": [\n            null,\n            "Conectando"\n         ],\n         "Authenticating": [\n            null,\n            "Autenticando"\n         ],\n         "Authentication Failed": [\n            null,\n            "Falha de autenticação"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Reestabelecendo sessão criptografada"\n         ],\n         "Generating private key.": [\n            null,\n            "Gerando chave-privada."\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "Seu navegador pode parar de responder."\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "Não foi possível verificar a identidade deste usuário."\n         ],\n         "Personal message": [\n            null,\n            "Mensagem pessoal"\n         ],\n         "me": [\n            null,\n            "eu"\n         ],\n         "Show this menu": [\n            null,\n            "Mostrar o menu"\n         ],\n         "Write in the third person": [\n            null,\n            "Escrever em terceira pessoa"\n         ],\n         "Remove messages": [\n            null,\n            "Remover mensagens"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "Tem certeza que deseja limpar as mensagens dessa caixa?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "Sua mensagem não pode ser enviada"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Recebemos uma mensagem não-criptografada"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Recebemos uma mensagem não-criptografada ilegível"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Aqui estão as assinaturas digitais, por favor confirme elas com %1$s, fora deste chat.\\n\\nAssinatura para você, %2$s: %3$s\\n\\nAssinatura para %1$s: %4$s\\n\\nSe você tiver confirmado que as assinaturas conferem, clique OK, caso contrário, clique Cancelar."\n         ],\n         "What is your security question?": [\n            null,\n            "Qual é a sua pergunta de segurança?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Qual é a resposta para a pergunta de segurança?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Schema de autenticação fornecido é inválido"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Suas mensagens não estão mais criptografadas"\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Suas mensagens não estão criptografadas. Clique aqui para habilitar criptografia OTR."\n         ],\n         "End encrypted conversation": [\n            null,\n            "Finalizar conversa criptografada"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Atualizar conversa criptografada"\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Iniciar conversa criptografada"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Verificar com assinatura digital"\n         ],\n         "Verify with SMP": [\n            null,\n            "Verificar com SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "O que é isso?"\n         ],\n         "Online": [\n            null,\n            "Online"\n         ],\n         "Busy": [\n            null,\n            "Ocupado"\n         ],\n         "Away": [\n            null,\n            "Ausente"\n         ],\n         "Offline": [\n            null,\n            "Offline"\n         ],\n         "Contact name": [\n            null,\n            "Nome do contato"\n         ],\n         "Search": [\n            null,\n            "Procurar"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Adicionar"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Clique para adicionar novos contatos ao chat"\n         ],\n         "Add a contact": [\n            null,\n            "Adicionar contato"\n         ],\n         "No users found": [\n            null,\n            "Não foram encontrados usuários"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Clique para adicionar como um contato do chat"\n         ],\n         "Room name": [\n            null,\n            "Nome da sala"\n         ],\n         "Nickname": [\n            null,\n            "Apelido"\n         ],\n         "Server": [\n            null,\n            "Server"\n         ],\n         "Show rooms": [\n            null,\n            "Mostar salas"\n         ],\n         "Rooms": [\n            null,\n            "Salas"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Sem salas em %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Salas em %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "CLique para abrir a sala"\n         ],\n         "Show more information on this room": [\n            null,\n            "Mostrar mais informações nessa sala"\n         ],\n         "Description:": [\n            null,\n            "Descrição:"\n         ],\n         "Occupants:": [\n            null,\n            "Ocupantes:"\n         ],\n         "Features:": [\n            null,\n            "Recursos:"\n         ],\n         "Requires authentication": [\n            null,\n            "Requer autenticação"\n         ],\n         "Hidden": [\n            null,\n            "Escondido"\n         ],\n         "Requires an invitation": [\n            null,\n            "Requer um convite"\n         ],\n         "Moderated": [\n            null,\n            "Moderado"\n         ],\n         "Non-anonymous": [\n            null,\n            "Não anônimo"\n         ],\n         "Open room": [\n            null,\n            "Sala aberta"\n         ],\n         "Permanent room": [\n            null,\n            "Sala permanente"\n         ],\n         "Public": [\n            null,\n            "Público"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Semi anônimo"\n         ],\n         "Temporary room": [\n            null,\n            "Sala temporária"\n         ],\n         "Unmoderated": [\n            null,\n            "Sem moderação"\n         ],\n         "This user is a moderator": [\n            null,\n            "Esse usuário é o moderador"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Esse usuário pode enviar mensagens nessa sala"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Esse usuário NÃO pode enviar mensagens nessa sala"\n         ],\n         "Invite...": [\n            null,\n            ""\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "Mensagem"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "Salvar"\n         ],\n         "Cancel": [\n            null,\n            "Cancelar"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Ocorreu um erro enquanto tentava salvar o formulário"\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Esse chat precisa de senha"\n         ],\n         "Password: ": [\n            null,\n            "Senha: "\n         ],\n         "Submit": [\n            null,\n            "Enviar"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Essa sala não é anônima"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Agora esta sala mostra membros indisponíveis"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Essa sala não mostra membros indisponíveis"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Configuraçõs não relacionadas à privacidade mudaram"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "O log da sala está ativado"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "O log da sala está desativado"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Esse sala é não anônima"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Essa sala agora é semi anônima"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Essa sala agora é totalmente anônima"\n         ],\n         "A new room has been created": [\n            null,\n            "Uma nova sala foi criada"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Você foi banido dessa sala"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Você foi expulso dessa sala"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Você foi removido da sala devido a uma mudança de associação"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Você foi removido da sala porque ela foi mudada para somente membrose você não é um membro"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Você foi removido da sala devido a MUC (Multi-user chat)o serviço está sendo desligado"\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> foi banido"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> foi expulso"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<srtong>%1$s</strong> foi removido por causa de troca de associação"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> foi removido por não ser um membro"\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Você não é membro dessa sala"\n         ],\n         "No nickname was specified": [\n            null,\n            "Você não escolheu um apelido "\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Você não tem permitição de criar novas salas"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Seu apelido não está de acordo com as regras da sala"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Seu apelido já foi escolhido"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "A sala não existe (ainda)"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "A sala atingiu o número máximo de ocupantes"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Topico definido por %1$s para: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            ""\n         ],\n         "Minimized": [\n            null,\n            "Minimizado"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Clique para remover o contato"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Clique para conversar com o contato"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "Estou %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Clique aqui para customizar a mensagem de status"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Clique para mudar seu status no chat"\n         ],\n         "Custom status": [\n            null,\n            "Status customizado"\n         ],\n         "online": [\n            null,\n            "online"\n         ],\n         "busy": [\n            null,\n            "ocupado"\n         ],\n         "away for long": [\n            null,\n            "ausente a bastante tempo"\n         ],\n         "away": [\n            null,\n            "ausente"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "Password:": [\n            null,\n            "Senha:"\n         ],\n         "Log In": [\n            null,\n            "Entrar"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Conectar-se"\n         ],\n         "Toggle chat": [\n            null,\n            "Alternar bate-papo"\n         ]\n      }\n   }\n}'}),define("text!ru",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "lang": "ru"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "не зашифровано"\n         ],\n         "unverified": [\n            null,\n            "непроверено"\n         ],\n         "verified": [\n            null,\n            "проверено"\n         ],\n         "finished": [\n            null,\n            "закончено"\n         ],\n         "This contact is busy": [\n            null,\n            "Занят"\n         ],\n         "This contact is online": [\n            null,\n            "В сети"\n         ],\n         "This contact is offline": [\n            null,\n            "Не в сети"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Не доступен"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "На долго отошёл"\n         ],\n         "This contact is away": [\n            null,\n            "Отошёл"\n         ],\n         "My contacts": [\n            null,\n            "Контакты"\n         ],\n         "Pending contacts": [\n            null,\n            "Собеседники ожидающие авторизации"\n         ],\n         "Contact requests": [\n            null,\n            "Запросы на авторизацию"\n         ],\n         "Ungrouped": [\n            null,\n            ""\n         ],\n         "Contacts": [\n            null,\n            "Контакты"\n         ],\n         "Groups": [\n            null,\n            ""\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Ошибка"\n         ],\n         "Connecting": [\n            null,\n            "Соединение"\n         ],\n         "Authenticating": [\n            null,\n            "Авторизация"\n         ],\n         "Authentication Failed": [\n            null,\n            "Не удалось авторизоваться"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            ""\n         ],\n         "Generating private key.": [\n            null,\n            ""\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            ""\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            ""\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            ""\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            ""\n         ],\n         "Personal message": [\n            null,\n            "Введите сообщение"\n         ],\n         "me": [\n            null,\n            "Я"\n         ],\n         "is typing": [\n            null,\n            ""\n         ],\n         "has stopped typing": [\n            null,\n            ""\n         ],\n         "Show this menu": [\n            null,\n            "Показать это меню"\n         ],\n         "Write in the third person": [\n            null,\n            ""\n         ],\n         "Remove messages": [\n            null,\n            "Удалить сообщения"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            ""\n         ],\n         "Your message could not be sent": [\n            null,\n            "Ваше сообщение не послано"\n         ],\n         "We received an unencrypted message": [\n            null,\n            ""\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            ""\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            ""\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            ""\n         ],\n         "What is your security question?": [\n            null,\n            ""\n         ],\n         "What is the answer to the security question?": [\n            null,\n            ""\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            ""\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Ваши сообщения больше не шифруются"\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            ""\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Ваши сообщения не шифруются. Нажмите здесь чтобы настроить шифрование."\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            ""\n         ],\n         "End encrypted conversation": [\n            null,\n            ""\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            ""\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            ""\n         ],\n         "Verify with fingerprints": [\n            null,\n            ""\n         ],\n         "Verify with SMP": [\n            null,\n            ""\n         ],\n         "What\'s this?": [\n            null,\n            "Что это?"\n         ],\n         "Online": [\n            null,\n            "В сети"\n         ],\n         "Busy": [\n            null,\n            "Занят"\n         ],\n         "Away": [\n            null,\n            "Отошёл"\n         ],\n         "Offline": [\n            null,\n            "Не в сети"\n         ],\n         "Contact name": [\n            null,\n            "Имя контакта"\n         ],\n         "Search": [\n            null,\n            "Поиск"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Добавить"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Добавить новую конференцию"\n         ],\n         "Add a contact": [\n            null,\n            "Добавть контакт"\n         ],\n         "No users found": [\n            null,\n            "Пользователи не найдены"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Добавить контакт"\n         ],\n         "Room name": [\n            null,\n            "Имя конференции"\n         ],\n         "Nickname": [\n            null,\n            "Псевдоним"\n         ],\n         "Server": [\n            null,\n            "Сервер"\n         ],\n         "Show rooms": [\n            null,\n            "Обновить"\n         ],\n         "Rooms": [\n            null,\n            "Конфер."\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Нет доступных конференций %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Конференции %1$s:"\n         ],\n         "Click to open this room": [\n            null,\n            "Зайти в конференцию"\n         ],\n         "Show more information on this room": [\n            null,\n            "Показать больше информации об этой конференции"\n         ],\n         "Description:": [\n            null,\n            "Описание:"\n         ],\n         "Occupants:": [\n            null,\n            "Участники:"\n         ],\n         "Features:": [\n            null,\n            "Свойства:"\n         ],\n         "Requires authentication": [\n            null,\n            "Требуется авторизация"\n         ],\n         "Hidden": [\n            null,\n            "Скрыто"\n         ],\n         "Requires an invitation": [\n            null,\n            "Требуется приглашение"\n         ],\n         "Moderated": [\n            null,\n            "Модерируемая"\n         ],\n         "Non-anonymous": [\n            null,\n            "Не анонимная"\n         ],\n         "Open room": [\n            null,\n            "Открыть конференцию"\n         ],\n         "Permanent room": [\n            null,\n            "Перманентная конференция"\n         ],\n         "Public": [\n            null,\n            "Публичный"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Частично анонимная"\n         ],\n         "Temporary room": [\n            null,\n            "Временная конференция"\n         ],\n         "Unmoderated": [\n            null,\n            "Немодерируемая"\n         ],\n         "This user is a moderator": [\n            null,\n            "Модератор"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Собеседник"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Пользователь не может посылать сообщения в эту комнату"\n         ],\n         "Invite...": [\n            null,\n            ""\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "Сообщение"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Write in 3rd person": [\n            null,\n            ""\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "Сохранить"\n         ],\n         "Cancel": [\n            null,\n            "Отменить"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "При сохранение формы произошла ошибка."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Для доступа в конфер. необходим пароль."\n         ],\n         "Password: ": [\n            null,\n            "Пароль: "\n         ],\n         "Submit": [\n            null,\n            "Отправить"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Эта комната не анонимная"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Эта комната показывает доступных собеседников"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Эта комната не показывает недоступных собеседников"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            ""\n         ],\n         "Room logging is now enabled": [\n            null,\n            ""\n         ],\n         "Room logging is now disabled": [\n            null,\n            ""\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Эта комната не анонимная"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Эта комната частично анонимная"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Эта комната стала полностью анонимной"\n         ],\n         "A new room has been created": [\n            null,\n            "Новая комната была создана"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Вам запрещено подключатся к этой конференции"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Вам запрещено подключатся к этой конференции"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> удалён потому что изменились права"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Вы отключены от этой конференции потому что режим изменился: только-участники"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Вы отключены от этой конференции потому что сервись конференций выключен."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> забанен"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> выдворен"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> has been removed because of an affiliation change"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> удалён потому что не участник"\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Вас нет в списке этой конференции"\n         ],\n         "No nickname was specified": [\n            null,\n            "Вы не указали псевдоним"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Вы не имеете права создавать конфер."\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Псевдоним не согласуется с правилами конфер."\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Ваш ник уже используется другим пользователем"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Эта комната не существует"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Конференция достигла максимального количества участников"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Тема %2$s устатновлена %1$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            ""\n         ],\n         "Minimized": [\n            null,\n            ""\n         ],\n         "Click to remove this contact": [\n            null,\n            "Удалить контакт"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Начать общение"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "%1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Редактировать произвольный статус"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Изменить ваш статус"\n         ],\n         "Custom status": [\n            null,\n            "Произвольный статус"\n         ],\n         "online": [\n            null,\n            "на связи"\n         ],\n         "busy": [\n            null,\n            "занят"\n         ],\n         "away for long": [\n            null,\n            "отошёл на долго"\n         ],\n         "away": [\n            null,\n            "отошёл"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "Password:": [\n            null,\n            "Пароль:"\n         ],\n         "Log In": [\n            null,\n            "Войти"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Подписать"\n         ],\n         "Toggle chat": [\n            null,\n            ""\n         ]\n      }\n   }\n}'}),define("text!uk",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "plural_forms": "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);",\n            "lang": "uk"\n         },\n         " e.g. conversejs.org": [\n            null,\n            " напр. conversejs.org"\n         ],\n         "unencrypted": [\n            null,\n            "некриптовано"\n         ],\n         "unverified": [\n            null,\n            "неперевірено"\n         ],\n         "verified": [\n            null,\n            "перевірено"\n         ],\n         "finished": [\n            null,\n            "завершено"\n         ],\n         "This contact is busy": [\n            null,\n            "Цей контакт зайнятий"\n         ],\n         "This contact is online": [\n            null,\n            "Цей контакт на зв\'язку"\n         ],\n         "This contact is offline": [\n            null,\n            "Цей контакт поза мережею"\n         ],\n         "This contact is unavailable": [\n            null,\n            "Цей контакт недоступний"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "Цей контакт відсутній тривалий час"\n         ],\n         "This contact is away": [\n            null,\n            "Цей контакт відсутній"\n         ],\n         "Click to hide these contacts": [\n            null,\n            "Клацніть, щоб приховати ці контакти"\n         ],\n         "My contacts": [\n            null,\n            "Мої контакти"\n         ],\n         "Pending contacts": [\n            null,\n            "Контакти в очікуванні"\n         ],\n         "Contact requests": [\n            null,\n            "Запити контакту"\n         ],\n         "Ungrouped": [\n            null,\n            "Негруповані"\n         ],\n         "Contacts": [\n            null,\n            "Контакти"\n         ],\n         "Groups": [\n            null,\n            "Групи"\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "Помилка"\n         ],\n         "Connecting": [\n            null,\n            "Під\'єднуюсь"\n         ],\n         "Authenticating": [\n            null,\n            "Автентикуюсь"\n         ],\n         "Authentication Failed": [\n            null,\n            "Автентикація невдала"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "Перевстановлюю криптований сеанс"\n         ],\n         "Generating private key.": [\n            null,\n            "Генерація приватного ключа."\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "Ваш браузер може підвиснути."\n         ],\n         "Authentication request from %1$s\\n\\nYour chat contact is attempting to verify your identity, by asking you the question below.\\n\\n%2$s": [\n            null,\n            "Запит автентикації від %1$s\\n\\nВаш контакт в чаті намагається встановити Вашу особу і просить відповісти на питання нижче.\\n\\n%2$s"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "Не можу перевірити автентичність цього користувача."\n         ],\n         "Exchanging private key with contact.": [\n            null,\n            "Обмін приватним ключем з контактом."\n         ],\n         "Personal message": [\n            null,\n            "Персональна вісточка"\n         ],\n         "Are you sure you want to clear the messages from this room?": [\n            null,\n            "Ви впевнені, що хочете очистити повідомлення з цієї кімнати?"\n         ],\n         "me": [\n            null,\n            "я"\n         ],\n         "is typing": [\n            null,\n            "друкує"\n         ],\n         "has stopped typing": [\n            null,\n            "припинив друкувати"\n         ],\n         "has gone away": [\n            null,\n            "пішов геть"\n         ],\n         "Show this menu": [\n            null,\n            "Показати це меню"\n         ],\n         "Write in the third person": [\n            null,\n            "Писати від третьої особи"\n         ],\n         "Remove messages": [\n            null,\n            "Видалити повідомлення"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "Ви впевнені, що хочете очистити повідомлення з цього вікна чату?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "Ваше повідомлення не може бути надіслане"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "Ми отримали некриптоване повідомлення"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "Ми отримали нечитабельне криптоване повідомлення"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "Ось відбитки, будь-ласка, підтвердіть їх з %1$s, за межами цього чату.\\n\\nВідбиток для Вас, %2$s: %3$s\\n\\nВідбиток для %1$s: %4$s\\n\\nЯкщо Ви підтверджуєте відповідність відбитка, клацніть Гаразд, інакше клацніть Відміна."\n         ],\n         "You will be prompted to provide a security question and then an answer to that question.\\n\\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [\n            null,\n            "Вас запитають таємне питання і відповідь на нього.\\n\\nПотім Вашого контакта запитають те саме питання, і якщо вони введуть ту саму відповідь (враховуючи регістр), їх особи будуть перевірені."\n         ],\n         "What is your security question?": [\n            null,\n            "Яке Ваше таємне питання?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "Яка відповідь на таємне питання?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "Надана некоректна схема автентикації"\n         ],\n         "has gone offline": [\n            null,\n            "тепер поза мережею"\n         ],\n         "is busy": [\n            null,\n            "зайнятий"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "Ваші повідомлення більше не криптуються"\n         ],\n         "Your messages are now encrypted but your contact\'s identity has not been verified.": [\n            null,\n            "Ваші повідомлення вже криптуються, але особа Вашого контакту не перевірена."\n         ],\n         "Your contact\'s identify has been verified.": [\n            null,\n            "Особу Вашого контакту перевірено."\n         ],\n         "Your contact has ended encryption on their end, you should do the same.": [\n            null,\n            "Ваш контакт припинив криптування зі свого боку, Вам слід зробити те саме."\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "Ваші повідомлення не криптуються. Клацніть тут, щоб увімкнути OTR-криптування."\n         ],\n         "Your messages are encrypted, but your contact has not been verified.": [\n            null,\n            "Ваші повідомлення криптуються, але Ваш контакт не був перевірений."\n         ],\n         "Your messages are encrypted and your contact verified.": [\n            null,\n            "Ваші повідомлення криптуються і Ваш контакт перевірено."\n         ],\n         "Your contact has closed their end of the private session, you should do the same": [\n            null,\n            "Ваш контакт закрив зі свого боку приватну сесію, Вам слід зробити те ж саме"\n         ],\n         "Clear all messages": [\n            null,\n            "Очистити всі повідомлення"\n         ],\n         "End encrypted conversation": [\n            null,\n            "Завершити криптовану розмову"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            "Сховати список учасників"\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "Оновити криптовану розмову"\n         ],\n         "Start a call": [\n            null,\n            "Почати виклик"\n         ],\n         "Start encrypted conversation": [\n            null,\n            "Почати криптовану розмову"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "Перевірити за відбитками"\n         ],\n         "Verify with SMP": [\n            null,\n            "Перевірити за SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "Що це?"\n         ],\n         "Online": [\n            null,\n            "На зв\'язку"\n         ],\n         "Busy": [\n            null,\n            "Зайнятий"\n         ],\n         "Away": [\n            null,\n            "Далеко"\n         ],\n         "Offline": [\n            null,\n            "Поза мережею"\n         ],\n         "Log out": [\n            null,\n            "Вийти"\n         ],\n         "Contact name": [\n            null,\n            "Назва контакту"\n         ],\n         "Search": [\n            null,\n            "Пошук"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "Додати"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "Клацніть, щоб додати нові контакти до чату"\n         ],\n         "Add a contact": [\n            null,\n            "Додати контакт"\n         ],\n         "No users found": [\n            null,\n            "Жодного користувача не знайдено"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "Клацніть, щоб додати як чат-контакт"\n         ],\n         "Room name": [\n            null,\n            "Назва кімнати"\n         ],\n         "Nickname": [\n            null,\n            "Прізвисько"\n         ],\n         "Server": [\n            null,\n            "Сервер"\n         ],\n         "Join Room": [\n            null,\n            "Приєднатися до кімнати"\n         ],\n         "Show rooms": [\n            null,\n            "Показати кімнати"\n         ],\n         "Rooms": [\n            null,\n            "Кімнати"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "Жодної кімнати на %1$s"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "Кімнати на %1$s"\n         ],\n         "Click to open this room": [\n            null,\n            "Клацніть, щоб увійти в цю кімнату"\n         ],\n         "Show more information on this room": [\n            null,\n            "Показати більше інформації про цю кімату"\n         ],\n         "Description:": [\n            null,\n            "Опис:"\n         ],\n         "Occupants:": [\n            null,\n            "Присутні:"\n         ],\n         "Features:": [\n            null,\n            "Особливості:"\n         ],\n         "Requires authentication": [\n            null,\n            "Вимагає автентикації"\n         ],\n         "Hidden": [\n            null,\n            "Прихована"\n         ],\n         "Requires an invitation": [\n            null,\n            "Вимагає запрошення"\n         ],\n         "Moderated": [\n            null,\n            "Модерована"\n         ],\n         "Non-anonymous": [\n            null,\n            "Не-анонімні"\n         ],\n         "Open room": [\n            null,\n            "Увійти в кімнату"\n         ],\n         "Permanent room": [\n            null,\n            "Постійна кімната"\n         ],\n         "Public": [\n            null,\n            "Публічна"\n         ],\n         "Semi-anonymous": [\n            null,\n            "Напів-анонімна"\n         ],\n         "Temporary room": [\n            null,\n            "Тимчасова кімната"\n         ],\n         "Unmoderated": [\n            null,\n            "Немодерована"\n         ],\n         "This user is a moderator": [\n            null,\n            "Цей користувач є модератором"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "Цей користувач може слати повідомлення в цій кімнаті"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "Цей користувач НЕ МОЖЕ слати повідомлення в цій кімнаті"\n         ],\n         "Invite...": [\n            null,\n            "Запросіть..."\n         ],\n         "Occupants": [\n            null,\n            "Учасники"\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            "Ви запрошуєте %1$s до чату \\"%2$s\\". "\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            "Ви можете опціонально додати повідомлення, щоб пояснити причину запрошення."\n         ],\n         "Message": [\n            null,\n            "Повідомлення"\n         ],\n         "Error: could not execute the command": [\n            null,\n            "Помилка: Не можу виконати команду"\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            "Призначити користувача адміністратором"\n         ],\n         "Ban user from room": [\n            null,\n            "Заблокувати і викинути з кімнати"\n         ],\n         "Change user role to participant": [\n            null,\n            "Зробити користувача учасником"\n         ],\n         "Kick user from room": [\n            null,\n            "Викинути з кімнати"\n         ],\n         "Write in 3rd person": [\n            null,\n            "Писати в 3-й особі"\n         ],\n         "Grant membership to a user": [\n            null,\n            "Надати членство користувачу"\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            "Забрати можливість слати повідомлення"\n         ],\n         "Change your nickname": [\n            null,\n            "Змінити Ваше прізвисько"\n         ],\n         "Grant moderator role to user": [\n            null,\n            "Надати права модератора"\n         ],\n         "Grant ownership of this room": [\n            null,\n            "Передати у власність цю кімнату"\n         ],\n         "Revoke user\'s membership": [\n            null,\n            "Забрати членство в користувача"\n         ],\n         "Set room topic": [\n            null,\n            "Встановити тему кімнати"\n         ],\n         "Allow muted user to post messages": [\n            null,\n            "Дозволити безголосому користувачу слати повідомлення"\n         ],\n         "Save": [\n            null,\n            "Зберегти"\n         ],\n         "Cancel": [\n            null,\n            "Відміна"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "Трапилася помилка при спробі зберегти форму."\n         ],\n         "This chatroom requires a password": [\n            null,\n            "Ця кімната вимагає пароль"\n         ],\n         "Password: ": [\n            null,\n            "Пароль:"\n         ],\n         "Submit": [\n            null,\n            "Надіслати"\n         ],\n         "This room is not anonymous": [\n            null,\n            "Ця кімната не є анонімною"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "Ця кімната вже показує недоступних учасників"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "Ця кімната не показує недоступних учасників"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "Змінено конфігурацію кімнати, не повязану з приватністю"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "Журналювання кімнати тепер ввімкнено"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "Журналювання кімнати тепер вимкнено"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "Ця кімната тепер не-анонімна"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "Ця кімната тепер напів-анонімна"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "Ця кімната тепер повністю анонімна"\n         ],\n         "A new room has been created": [\n            null,\n            "Створено нову кімнату"\n         ],\n         "You have been banned from this room": [\n            null,\n            "Вам заблокували доступ до цієї кімнати"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "Вас викинули з цієї кімнати"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "Вас видалено з кімнати у зв\'язку зі змінами власності кімнати"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "Вас видалено з цієї кімнати, оскільки вона тепер вимагає членства, а Ви ним не є її членом"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "Вас видалено з цієї кімнати, тому що MUC (Чат-сервіс) припиняє роботу."\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> заблоковано"\n         ],\n         "<strong>%1$s</strong>\'s nickname has changed": [\n            null,\n            "Прізвисько <strong>%1$s</strong> змінено"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> було викинуто звідси"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "<strong>%1$s</strong> було видалено через зміни власності кімнати"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "<strong>%1$s</strong> було виделано через відсутність членства"\n         ],\n         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [\n            null,\n            "Ваше прізвисько було автоматично змінене на: <strong>%1$s</strong>"\n         ],\n         "Your nickname has been changed to: <strong>%1$s</strong>": [\n            null,\n            "Ваше прізвисько було змінене на: <strong>%1$s</strong>"\n         ],\n         "The reason given is: \\"": [\n            null,\n            "Причиною вказано: \\""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "Ви не є у списку членів цієї кімнати"\n         ],\n         "No nickname was specified": [\n            null,\n            "Не вказане прізвисько"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "Вам не дозволено створювати нові кімнати"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "Ваше прізвисько не відповідає політиці кімнати"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "Таке прізвисько вже зайняте"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "Такої кімнати (поки) не існує"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "Ця кімната досягнула максимуму учасників"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "Тема встановлена %1$s: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            "%1$s запрошує вас приєднатись до чату: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            "%1$s запрошує Вас приєднатись до чату: %2$s, аргументує ось як: \\"%3$s\\""\n         ],\n         "Click to restore this chat": [\n            null,\n            "Клацніть, щоб відновити цей чат"\n         ],\n         "Minimized": [\n            null,\n            "Мінімізовано"\n         ],\n         "Click to remove this contact": [\n            null,\n            "Клацніть, щоб видалити цей контакт"\n         ],\n         "Click to accept this contact request": [\n            null,\n            "Клацніть, щоб прийняти цей запит контакту"\n         ],\n         "Click to decline this contact request": [\n            null,\n            "Клацніть, щоб відхилити цей запит контакту"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "Клацніть, щоб почати розмову з цим контактом"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Are you sure you want to remove this contact?": [\n            null,\n            "Ви впевнені, що хочете видалити цей контакт?"\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Are you sure you want to decline this contact request?": [\n            null,\n            "Ви впевнені, що хочете відхилити цей запит контакту?"\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            "Друкуйте для фільтру"\n         ],\n         "I am %1$s": [\n            null,\n            "Я %1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "Клацніть тут, щоб створити власний статус"\n         ],\n         "Click to change your chat status": [\n            null,\n            "Клацніть, щоб змінити статус в чаті"\n         ],\n         "Custom status": [\n            null,\n            "Власний статус"\n         ],\n         "online": [\n            null,\n            "на зв\'язку"\n         ],\n         "busy": [\n            null,\n            "зайнятий"\n         ],\n         "away for long": [\n            null,\n            "давно відсутній"\n         ],\n         "away": [\n            null,\n            "відсутній"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            "Домен Вашого провайдера XMPP:"\n         ],\n         "Fetch registration form": [\n            null,\n            "Отримати форму реєстрації"\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            "Порада: доступний перелік публічних XMPP-провайдерів"\n         ],\n         "here": [\n            null,\n            "тут"\n         ],\n         "Register": [\n            null,\n            "Реєстрація"\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            "Вибачте, вказаний провайдер не підтримує реєстрації онлайн. Спробуйте іншого провайдера."\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            "Запитую форму реєстрації з XMPP сервера"\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            "Щось пішло не так при встановленні зв\'язку з \\"%1$s\\". Ви впевнені, що такий існує?"\n         ],\n         "Now logging you in": [\n            null,\n            "Входимо"\n         ],\n         "Registered successfully": [\n            null,\n            "Успішно зареєстровано"\n         ],\n         "Return": [\n            null,\n            "Вернутися"\n         ],\n         "XMPP Username:": [\n            null,\n            "XMPP адреса:"\n         ],\n         "Password:": [\n            null,\n            "Пароль:"\n         ],\n         "Log In": [\n            null,\n            "Ввійти"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "Вступити"\n         ],\n         "Toggle chat": [\n            null,\n            "Включити чат"\n         ]\n      }\n   }\n}'}),define("text!zh",[],function(){return'{\n   "domain": "converse",\n   "locale_data": {\n      "converse": {\n         "": {\n            "domain": "converse",\n            "lang": "zh"\n         },\n         " e.g. conversejs.org": [\n            null,\n            ""\n         ],\n         "unencrypted": [\n            null,\n            "未加密"\n         ],\n         "unverified": [\n            null,\n            "未验证"\n         ],\n         "verified": [\n            null,\n            "已验证"\n         ],\n         "finished": [\n            null,\n            "结束了"\n         ],\n         "This contact is busy": [\n            null,\n            "对方忙碌中"\n         ],\n         "This contact is online": [\n            null,\n            "对方在线中"\n         ],\n         "This contact is offline": [\n            null,\n            "对方已下线"\n         ],\n         "This contact is unavailable": [\n            null,\n            "对方免打扰"\n         ],\n         "This contact is away for an extended period": [\n            null,\n            "对方暂时离开"\n         ],\n         "This contact is away": [\n            null,\n            "对方离开"\n         ],\n         "My contacts": [\n            null,\n            "我的好友列表"\n         ],\n         "Pending contacts": [\n            null,\n            "保留中的联系人"\n         ],\n         "Contact requests": [\n            null,\n            "来自好友的请求"\n         ],\n         "Ungrouped": [\n            null,\n            ""\n         ],\n         "Contacts": [\n            null,\n            "联系人"\n         ],\n         "Groups": [\n            null,\n            ""\n         ],\n         "Attempting to reconnect in 5 seconds": [\n            null,\n            ""\n         ],\n         "Error": [\n            null,\n            "错误"\n         ],\n         "Connecting": [\n            null,\n            "连接中"\n         ],\n         "Authenticating": [\n            null,\n            "验证中"\n         ],\n         "Authentication Failed": [\n            null,\n            "验证失败"\n         ],\n         "Re-establishing encrypted session": [\n            null,\n            "重新建立加密会话"\n         ],\n         "Generating private key.": [\n            null,\n            "正在生成私钥"\n         ],\n         "Your browser might become unresponsive.": [\n            null,\n            "您的浏览器可能会暂时无响应"\n         ],\n         "Could not verify this user\'s identify.": [\n            null,\n            "无法验证对方信息。"\n         ],\n         "Personal message": [\n            null,\n            "私信"\n         ],\n         "me": [\n            null,\n            "我"\n         ],\n         "is typing": [\n            null,\n            ""\n         ],\n         "has stopped typing": [\n            null,\n            ""\n         ],\n         "Show this menu": [\n            null,\n            "显示此项菜单"\n         ],\n         "Write in the third person": [\n            null,\n            "以第三者身份写"\n         ],\n         "Remove messages": [\n            null,\n            "移除消息"\n         ],\n         "Are you sure you want to clear the messages from this chat box?": [\n            null,\n            "你确定清除此次的聊天记录吗?"\n         ],\n         "Your message could not be sent": [\n            null,\n            "您的消息无法送出"\n         ],\n         "We received an unencrypted message": [\n            null,\n            "我们收到了一条未加密的信息"\n         ],\n         "We received an unreadable encrypted message": [\n            null,\n            "我们收到一条无法读取的信息"\n         ],\n         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\\n\\nFingerprint for you, %2$s: %3$s\\n\\nFingerprint for %1$s: %4$s\\n\\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [\n            null,\n            "这里是指纹。请与 %1$s 确认。\\n\\n您的 %2$s 指纹: %3$s\\n\\n%1$s 的指纹: %4$s\\n\\n如果确认符合,请点击OK,否则点击取消"\n         ],\n         "What is your security question?": [\n            null,\n            "您的安全问题是?"\n         ],\n         "What is the answer to the security question?": [\n            null,\n            "此安全问题的答案是?"\n         ],\n         "Invalid authentication scheme provided": [\n            null,\n            "非法的认证方式"\n         ],\n         "Your messages are not encrypted anymore": [\n            null,\n            "您的消息将不再被加密"\n         ],\n         "Your messages are not encrypted. Click here to enable OTR encryption.": [\n            null,\n            "您的消息未加密。点击这里来启用OTR加密"\n         ],\n         "End encrypted conversation": [\n            null,\n            "结束加密的会话"\n         ],\n         "Insert a smiley": [\n            null,\n            ""\n         ],\n         "Hide the list of participants": [\n            null,\n            ""\n         ],\n         "Refresh encrypted conversation": [\n            null,\n            "刷新加密的会话"\n         ],\n         "Start a call": [\n            null,\n            ""\n         ],\n         "Start encrypted conversation": [\n            null,\n            "开始加密的会话"\n         ],\n         "Verify with fingerprints": [\n            null,\n            "验证指纹"\n         ],\n         "Verify with SMP": [\n            null,\n            "验证SMP"\n         ],\n         "What\'s this?": [\n            null,\n            "这是什么?"\n         ],\n         "Online": [\n            null,\n            "在线"\n         ],\n         "Busy": [\n            null,\n            "忙碌中"\n         ],\n         "Away": [\n            null,\n            "离开"\n         ],\n         "Offline": [\n            null,\n            "离线"\n         ],\n         "Contact name": [\n            null,\n            "联系人名称"\n         ],\n         "Search": [\n            null,\n            "搜索"\n         ],\n         "e.g. user@example.com": [\n            null,\n            ""\n         ],\n         "Add": [\n            null,\n            "添加"\n         ],\n         "Click to add new chat contacts": [\n            null,\n            "点击添加新联系人"\n         ],\n         "Add a contact": [\n            null,\n            "添加联系人"\n         ],\n         "No users found": [\n            null,\n            "未找到用户"\n         ],\n         "Click to add as a chat contact": [\n            null,\n            "点击添加为好友"\n         ],\n         "Room name": [\n            null,\n            "聊天室名称"\n         ],\n         "Nickname": [\n            null,\n            "昵称"\n         ],\n         "Server": [\n            null,\n            "服务器"\n         ],\n         "Show rooms": [\n            null,\n            "显示所有聊天室"\n         ],\n         "Rooms": [\n            null,\n            "聊天室"\n         ],\n         "No rooms on %1$s": [\n            null,\n            "%1$s 上没有聊天室"\n         ],\n         "Rooms on %1$s": [\n            null,\n            "%1$s 上的聊天室"\n         ],\n         "Click to open this room": [\n            null,\n            "打开聊天室"\n         ],\n         "Show more information on this room": [\n            null,\n            "显示次聊天室的更多信息"\n         ],\n         "Description:": [\n            null,\n            "描述: "\n         ],\n         "Occupants:": [\n            null,\n            "成员:"\n         ],\n         "Features:": [\n            null,\n            "特性:"\n         ],\n         "Requires authentication": [\n            null,\n            "需要验证"\n         ],\n         "Hidden": [\n            null,\n            "隐藏的"\n         ],\n         "Requires an invitation": [\n            null,\n            "需要被邀请"\n         ],\n         "Moderated": [\n            null,\n            "发言受限"\n         ],\n         "Non-anonymous": [\n            null,\n            "非匿名"\n         ],\n         "Open room": [\n            null,\n            "打开聊天室"\n         ],\n         "Permanent room": [\n            null,\n            "永久聊天室"\n         ],\n         "Public": [\n            null,\n            "公开的"\n         ],\n         "Semi-anonymous": [\n            null,\n            "半匿名"\n         ],\n         "Temporary room": [\n            null,\n            "临时聊天室"\n         ],\n         "Unmoderated": [\n            null,\n            "无发言限制"\n         ],\n         "This user is a moderator": [\n            null,\n            "此用户是主持人"\n         ],\n         "This user can send messages in this room": [\n            null,\n            "此用户在这房间里可发消息"\n         ],\n         "This user can NOT send messages in this room": [\n            null,\n            "此用户不可在此房间发消息"\n         ],\n         "Invite...": [\n            null,\n            ""\n         ],\n         "You are about to invite %1$s to the chat room \\"%2$s\\". ": [\n            null,\n            ""\n         ],\n         "You may optionally include a message, explaining the reason for the invitation.": [\n            null,\n            ""\n         ],\n         "Message": [\n            null,\n            "信息"\n         ],\n         "Error: could not execute the command": [\n            null,\n            ""\n         ],\n         "Error: the \\"": [\n            null,\n            ""\n         ],\n         "Change user\'s affiliation to admin": [\n            null,\n            ""\n         ],\n         "Change user role to participant": [\n            null,\n            ""\n         ],\n         "Grant membership to a user": [\n            null,\n            ""\n         ],\n         "Remove user\'s ability to post messages": [\n            null,\n            ""\n         ],\n         "Change your nickname": [\n            null,\n            ""\n         ],\n         "Grant moderator role to user": [\n            null,\n            ""\n         ],\n         "Revoke user\'s membership": [\n            null,\n            ""\n         ],\n         "Allow muted user to post messages": [\n            null,\n            ""\n         ],\n         "Save": [\n            null,\n            "保存"\n         ],\n         "Cancel": [\n            null,\n            "取消"\n         ],\n         "An error occurred while trying to save the form.": [\n            null,\n            "保存表单是出错。"\n         ],\n         "This chatroom requires a password": [\n            null,\n            "此聊天室需要密码"\n         ],\n         "Password: ": [\n            null,\n            "密码:"\n         ],\n         "Submit": [\n            null,\n            "发送"\n         ],\n         "This room is not anonymous": [\n            null,\n            "此为非匿名聊天室"\n         ],\n         "This room now shows unavailable members": [\n            null,\n            "此聊天室显示不可用用户"\n         ],\n         "This room does not show unavailable members": [\n            null,\n            "此聊天室不显示不可用用户"\n         ],\n         "Non-privacy-related room configuration has changed": [\n            null,\n            "此聊天室设置(非私密性)已改变"\n         ],\n         "Room logging is now enabled": [\n            null,\n            "聊天室聊天记录已启用"\n         ],\n         "Room logging is now disabled": [\n            null,\n            "聊天室聊天记录已禁用"\n         ],\n         "This room is now non-anonymous": [\n            null,\n            "此聊天室非匿名"\n         ],\n         "This room is now semi-anonymous": [\n            null,\n            "此聊天室半匿名"\n         ],\n         "This room is now fully-anonymous": [\n            null,\n            "此聊天室完全匿名"\n         ],\n         "A new room has been created": [\n            null,\n            "新聊天室已创建"\n         ],\n         "You have been banned from this room": [\n            null,\n            "您已被此聊天室禁止入内"\n         ],\n         "You have been kicked from this room": [\n            null,\n            "您已被踢出次房间"\n         ],\n         "You have been removed from this room because of an affiliation change": [\n            null,\n            "由于关系变化,您已被移除此房间"\n         ],\n         "You have been removed from this room because the room has changed to members-only and you\'re not a member": [\n            null,\n            "您已被移除此房间因为此房间更改为只允许成员加入,而您非成员"\n         ],\n         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [\n            null,\n            "由于服务不可用,您已被移除此房间。"\n         ],\n         "<strong>%1$s</strong> has been banned": [\n            null,\n            "<strong>%1$s</strong> 已被禁止"\n         ],\n         "<strong>%1$s</strong> has been kicked out": [\n            null,\n            "<strong>%1$s</strong> 已被踢出"\n         ],\n         "<strong>%1$s</strong> has been removed because of an affiliation change": [\n            null,\n            "由于关系解除、<strong>%1$s</strong> 已被移除"\n         ],\n         "<strong>%1$s</strong> has been removed for not being a member": [\n            null,\n            "由于不是成员、<strong>%1$s</strong> 已被移除"\n         ],\n         "The reason given is: \\"": [\n            null,\n            ""\n         ],\n         "You are not on the member list of this room": [\n            null,\n            "您并非此房间成员"\n         ],\n         "No nickname was specified": [\n            null,\n            "未指定昵称"\n         ],\n         "You are not allowed to create new rooms": [\n            null,\n            "您可此创建新房间了"\n         ],\n         "Your nickname doesn\'t conform to this room\'s policies": [\n            null,\n            "您的昵称不符合此房间标准"\n         ],\n         "Your nickname is already taken": [\n            null,\n            "您的昵称已被占用"\n         ],\n         "This room does not (yet) exist": [\n            null,\n            "此房间不存在"\n         ],\n         "This room has reached it\'s maximum number of occupants": [\n            null,\n            "此房间人数已达上线"\n         ],\n         "Topic set by %1$s to: %2$s": [\n            null,\n            "%1$s 设置话题为: %2$s"\n         ],\n         "%1$s has invited you to join a chat room: %2$s": [\n            null,\n            ""\n         ],\n         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \\"%3$s\\"": [\n            null,\n            ""\n         ],\n         "Minimized": [\n            null,\n            "最小化的"\n         ],\n         "Click to remove this contact": [\n            null,\n            "点击移除联系人"\n         ],\n         "Click to chat with this contact": [\n            null,\n            "点击与对方交谈"\n         ],\n         "Name": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to remove ": [\n            null,\n            ""\n         ],\n         "Sorry, there was an error while trying to add ": [\n            null,\n            ""\n         ],\n         "This client does not allow presence subscriptions": [\n            null,\n            ""\n         ],\n         "Type to filter": [\n            null,\n            ""\n         ],\n         "I am %1$s": [\n            null,\n            "我现在%1$s"\n         ],\n         "Click here to write a custom status message": [\n            null,\n            "点击这里,填写状态信息"\n         ],\n         "Click to change your chat status": [\n            null,\n            "点击这里改变聊天状态"\n         ],\n         "Custom status": [\n            null,\n            "DIY状态"\n         ],\n         "online": [\n            null,\n            "在线"\n         ],\n         "busy": [\n            null,\n            "忙碌"\n         ],\n         "away for long": [\n            null,\n            "长时间离开"\n         ],\n         "away": [\n            null,\n            "离开"\n         ],\n         "Your XMPP provider\'s domain name:": [\n            null,\n            ""\n         ],\n         "Fetch registration form": [\n            null,\n            ""\n         ],\n         "Tip: A list of public XMPP providers is available": [\n            null,\n            ""\n         ],\n         "here": [\n            null,\n            ""\n         ],\n         "Register": [\n            null,\n            ""\n         ],\n         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [\n            null,\n            ""\n         ],\n         "Requesting a registration form from the XMPP server": [\n            null,\n            ""\n         ],\n         "Something went wrong while establishing a connection with \\"%1$s\\". Are you sure it exists?": [\n            null,\n            ""\n         ],\n         "Now logging you in": [\n            null,\n            ""\n         ],\n         "Registered successfully": [\n            null,\n            ""\n         ],\n         "Return": [\n            null,\n            ""\n         ],\n         "The provider rejected your registration attempt. Please check the values you entered for correctness.": [\n            null,\n            ""\n         ],\n         "Password:": [\n            null,\n            "密码:"\n         ],\n         "Log In": [\n            null,\n            "登录"\n         ],\n         "user@server": [\n            null,\n            ""\n         ],\n         "Sign in": [\n            null,\n            "登录"\n         ],\n         "Toggle chat": [\n            null,\n            "折叠聊天窗口"\n         ]\n      }\n   }\n}'}),function(e,t){define("locales",["jquery","jed","text!af","text!de","text!en","text!es","text!fr","text!he","text!hu","text!id","text!it","text!ja","text!nb","text!nl","text!pl","text!pt_BR","text!ru","text!uk","text!zh"],function(t,n){return e.locales={af:arguments[2],de:arguments[3],en:arguments[4],es:arguments[5],fr:arguments[6],he:arguments[7],hu:arguments[8],id:arguments[9],it:arguments[10],ja:arguments[11],nb:arguments[12],nl:arguments[13],pl:arguments[14],"pt-br":arguments[15],ru:arguments[16],uk:arguments[17],zh:arguments[18]},e.locales})}(this),function(e,t){typeof define=="function"&&define.amd?define("utils",["jquery","converse-templates","locales"],t):e.utils=t(jQuery,templates)}(this,function(e,t,n){"use strict";var r={"text-private":"password","text-single":"textline",fixed:"label","boolean":"checkbox",hidden:"hidden","jid-multi":"textarea","list-single":"dropdown","list-multi":"dropdown"};e.expr[":"].emptyVal=function(e){return e.value===""},e.fn.hasScrollBar=function(){return e.contains(document,this.get(0))?this.parent().height()<this.get(0).scrollHeight?!0:!1:!1},e.fn.addHyperlinks=function(){return this.length>0&&this.each(function(t,n){var r=e(n).html(),i=r.match(/\b(https?:\/\/|www\.|https?:\/\/www\.)[^\s<]{2,200}\b/g);if(i)for(t=0;t<i.length;t++){var s=i[t].indexOf("http://")===0||i[t].indexOf("https://")===0?"":"http://",o=encodeURI(decodeURI(i[t])).replace(/[!'()]/g,escape).replace(/\*/g,"%2A");r=r.replace(i[t],"<a target='_blank' href='"+s+o+"'>"+i[t]+"</a>")}e(n).html(r)}),this},e.fn.addEmoticons=function(t){return t&&this.length>0&&this.each(function(t,n){var r=e(n).html();r=r.replace(/&gt;:\)/g,'<span class="emoticon icon-evil"></span>'),r=r.replace(/:\)/g,'<span class="emoticon icon-smiley"></span>'),r=r.replace(/:\-\)/g,'<span class="emoticon icon-smiley"></span>'),r=r.replace(/;\)/g,'<span class="emoticon icon-wink"></span>'),r=r.replace(/;\-\)/g,'<span class="emoticon icon-wink"></span>'),r=r.replace(/:D/g,'<span class="emoticon icon-grin"></span>'),r=r.replace(/:\-D/g,'<span class="emoticon icon-grin"></span>'),r=r.replace(/:P/g,'<span class="emoticon icon-tongue"></span>'),r=r.replace(/:\-P/g,'<span class="emoticon icon-tongue"></span>'),r=r.replace(/:p/g,'<span class="emoticon icon-tongue"></span>'),r=r.replace(/:\-p/g,'<span class="emoticon icon-tongue"></span>'),r=r.replace(/8\)/g,'<span class="emoticon icon-cool"></span>'),r=r.replace(/:S/g,'<span class="emoticon icon-confused"></span>'),r=r.replace(/:\\/g,'<span class="emoticon icon-wondering"></span>'),r=r.replace(/:\/ /g,'<span class="emoticon icon-wondering"></span>'),r=r.replace(/&gt;:\(/g,'<span class="emoticon icon-angry"></span>'),r=r.replace(/:\(/g,'<span class="emoticon icon-sad"></span>'),r=r.replace(/:\-\(/g,'<span class="emoticon icon-sad"></span>'),r=r.replace(/:O/g,'<span class="emoticon icon-shocked"></span>'),r=r.replace(/:\-O/g,'<span class="emoticon icon-shocked"></span>'),r=r.replace(/\=\-O/g,'<span class="emoticon icon-shocked"></span>'),r=r.replace(/\(\^.\^\)b/g,'<span class="emoticon icon-thumbs-up"></span>'),r=r.replace(/&lt;3/g,'<span class="emoticon icon-heart"></span>'),e(n).html(r)}),this};var i={__:function(t){typeof this.i18n=="undefined"&&(this.i18n=n.en),typeof this.i18n=="string"&&(this.i18n=e.parseJSON(this.i18n)),typeof this.jed=="undefined"&&(this.jed=new Jed(this.i18n));var r=this.jed.translate(t);return arguments.length>1?r.fetch.apply(r,[].slice.call(arguments,1)):r.fetch()},___:function(e){return e},webForm2xForm:function(n){var r=e(n),i;if(r.is("[type=checkbox]"))i=r.is(":checked")&&1||0;else if(r.is("textarea")){i=[];var s=r.val().split("\n");for(var o=0;o<s.length;o++){var u=e.trim(s[o]);if(u==="")continue;i.push(u)}}else i=r.val();return e(t.field({name:r.attr("name"),value:i}))[0]},xForm2webForm:function(n,i){var s=[],o,u,a,f,l;if(n.attr("type")=="list-single"||n.attr("type")=="list-multi"){l=[],a=n.children("value");for(o=0;o<a.length;o++)l.push(e(a[o]).text());u=n.children("option");for(o=0;o<u.length;o++)f=e(u[o]).find("value").text(),s.push(t.select_option({value:f,label:e(u[o]).attr("label"),selected:l.indexOf(f)>=0,required:n.find("required").length}));return t.form_select({name:n.attr("var"),label:n.attr("label"),options:s.join(""),multiple:n.attr("type")=="list-multi",required:n.find("required").length})}if(n.attr("type")=="fixed")return e('<p class="form-help">').text(n.find("value").text());if(n.attr("type")=="jid-multi")return t.form_textarea({name:n.attr("var"),label:n.attr("label")||"",value:n.find("value").text(),required:n.find("required").length});if(n.attr("type")=="boolean")return t.form_checkbox({name:n.attr("var"),type:r[n.attr("type")],label:n.attr("label")||"",checked:n.find("value").text()==="1"&&'checked="1"'||"",required:n.find("required").length});if(n.attr("type")&&n.attr("var")==="username")return t.form_username({domain:" @"+this.domain,name:n.attr("var"),type:r[n.attr("type")],label:n.attr("label")||"",value:n.find("value").text(),required:n.find("required").length});if(n.attr("type"))return t.form_input({name:n.attr("var"),type:r[n.attr("type")],label:n.attr("label")||"",value:n.find("value").text(),required:n.find("required").length});if(n.attr("var")==="ocr")return _.reduce(_.map(n.find("uri"),e.proxy(function(e){return t.form_captcha({label:this.$field.attr("label"),name:this.$field.attr("var"),data:this.$stanza.find('data[cid="'+e.textContent.replace(/^cid:/,"")+'"]').text(),type:e.getAttribute("type"),required:this.$field.find("required").length})},{$stanza:i,$field:n})),function(e,t){return e+t},"")}};return i}),function(e){typeof define=="function"&&define.amd?define("jquery.browser",["jquery"],function(t){return e(t)}):typeof module=="object"&&typeof module.exports=="object"?module.exports=e(require("jquery")):e(window.jQuery)}(function(e){"use strict";function t(e){e===undefined&&(e=window.navigator.userAgent),e=e.toLowerCase();var t=/(edge)\/([\w.]+)/.exec(e)||/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[],n=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(silk)/.exec(e)||/(android)/.exec(e)||/(windows phone)/.exec(e)||/(win)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||/(playbook)/.exec(e)||/(bb)/.exec(e)||/(blackberry)/.exec(e)||[],r={},i={browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",versionNumber:t[4]||t[2]||"0",platform:n[0]||""};i.browser&&(r[i.browser]=!0,r.version=i.version,r.versionNumber=parseInt(i.versionNumber,10)),i.platform&&(r[i.platform]=!0);if(r.android||r.bb||r.blackberry||r.ipad||r.iphone||r.ipod||r.kindle||r.playbook||r.silk||r["windows phone"])r.mobile=!0;if(r.cros||r.mac||r.linux||r.win)r.desktop=!0;if(r.chrome||r.opr||r.safari)r.webkit=!0;if(r.rv||r.edge){var s="msie";i.browser=s,r[s]=!0}if(r.safari&&r.blackberry){var o="blackberry";i.browser=o,r[o]=!0}if(r.safari&&r.playbook){var u="playbook";i.browser=u,r[u]=!0}if(r.bb){var a="blackberry";i.browser=a,r[a]=!0}if(r.opr){var f="opera";i.browser=f,r[f]=!0}if(r.safari&&r.android){var l="android";i.browser=l,r[l]=!0}if(r.safari&&r.kindle){var c="kindle";i.browser=c,r[c]=!0}if(r.safari&&r.silk){var h="silk";i.browser=h,r[h]=!0}return r.name=i.browser,r.platform=i.platform,r}return window.jQBrowser=t(window.navigator.userAgent),window.jQBrowser.uaMatch=t,e&&(e.browser=window.jQBrowser),window.jQBrowser});var CryptoJS=CryptoJS||function(e,t){var n={},r=n.lib={},i=r.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var n=new e;return t&&n.mixIn(t),n.hasOwnProperty("init")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=r.WordArray=i.extend({init:function(e,n){e=this.words=e||[],n!=t?this.sigBytes=n:this.sigBytes=e.length*4},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;this.clamp();if(r%4)for(var s=0;s<i;s++){var o=n[s>>>2]>>>24-s%4*8&255;t[r+s>>>2]|=o<<24-(r+s)%4*8}else if(n.length>65535)for(var s=0;s<i;s+=4)t[r+s>>>2]=n[s>>>2];else t.push.apply(t,n);return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=i.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){var n=[];for(var r=0;r<t;r+=4)n.push(e.random()*4294967296|0);return new s.init(n,t)}}),o=n.enc={},u=o.Hex={stringify:function(e){var t=e.words,n=e.sigBytes,r=[];for(var i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((s&15).toString(16))}return r.join("")},parse:function(e){var t=e.length,n=[];for(var r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new s.init(n,t/2)}},a=o.Latin1={stringify:function(e){var t=e.words,n=e.sigBytes,r=[];for(var i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(s))}return r.join("")},parse:function(e){var t=e.length,n=[];for(var r=0;r<t;r++)n[r>>>2]|=(e.charCodeAt(r)&255)<<24-r%4*8;return new s.init(n,t)}},f=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(a.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return a.parse(unescape(encodeURIComponent(e)))}},l=r.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(e){typeof e=="string"&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,r=n.words,i=n.sigBytes,o=this.blockSize,u=o*4,a=i/u;t?a=e.ceil(a):a=e.max((a|0)-this._minBufferSize,0);var f=a*o,l=e.min(f*4,i);if(f){for(var c=0;c<f;c+=o)this._doProcessBlock(r,c);var h=r.splice(0,f);n.sigBytes-=l}return new s.init(h,l)},clone:function(){var e=i.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),c=r.Hasher=l.extend({cfg:i.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},blockSize:16,_createHelper:function(e){return function(t,n){return(new e.init(n)).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return(new h.HMAC.init(e,n)).finalize(t)}}}),h=n.algo={};return n}(Math);define("crypto.core",function(){}),function(){var e=CryptoJS,t=e.lib,n=t.WordArray,r=e.enc,i=r.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();var i=[];for(var s=0;s<n;s+=3){var o=t[s>>>2]>>>24-s%4*8&255,u=t[s+1>>>2]>>>24-(s+1)%4*8&255,a=t[s+2>>>2]>>>24-(s+2)%4*8&255,f=o<<16|u<<8|a;for(var l=0;l<4&&s+l*.75<n;l++)i.push(r.charAt(f>>>6*(3-l)&63))}var c=r.charAt(64);if(c)while(i.length%4)i.push(c);return i.join("")},parse:function(e){var t=e.length,r=this._map,i=r.charAt(64);if(i){var s=e.indexOf(i);s!=-1&&(t=s)}var o=[],u=0;for(var a=0;a<t;a++)if(a%4){var f=r.indexOf(e.charAt(a-1))<<a%4*2,l=r.indexOf(e.charAt(a))>>>6-a%4*2;o[u>>>2]|=(f|l)<<24-u%4*8,u++}return n.create(o,u)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),define("crypto.enc-base64",["crypto.core"],function(){}),function(e){function a(e,t,n,r,i,s,o){var u=e+(t&n|~t&r)+i+o;return(u<<s|u>>>32-s)+t}function f(e,t,n,r,i,s,o){var u=e+(t&r|n&~r)+i+o;return(u<<s|u>>>32-s)+t}function l(e,t,n,r,i,s,o){var u=e+(t^n^r)+i+o;return(u<<s|u>>>32-s)+t}function c(e,t,n,r,i,s,o){var u=e+(n^(t|~r))+i+o;return(u<<s|u>>>32-s)+t}var t=CryptoJS,n=t.lib,r=n.WordArray,i=n.Hasher,s=t.algo,o=[];(function(){for(var t=0;t<64;t++)o[t]=e.abs(e.sin(t+1))*4294967296|0})();var u=s.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=(i<<8|i>>>24)&16711935|(i<<24|i>>>8)&4278255360}var s=this._hash.words,u=e[t+0],h=e[t+1],p=e[t+2],d=e[t+3],v=e[t+4],m=e[t+5],g=e[t+6],y=e[t+7],b=e[t+8],w=e[t+9],E=e[t+10],S=e[t+11],x=e[t+12],N=e[t+13],C=e[t+14],k=e[t+15],L=s[0],A=s[1],O=s[2],M=s[3];L=a(L,A,O,M,u,7,o[0]),M=a(M,L,A,O,h,12,o[1]),O=a(O,M,L,A,p,17,o[2]),A=a(A,O,M,L,d,22,o[3]),L=a(L,A,O,M,v,7,o[4]),M=a(M,L,A,O,m,12,o[5]),O=a(O,M,L,A,g,17,o[6]),A=a(A,O,M,L,y,22,o[7]),L=a(L,A,O,M,b,7,o[8]),M=a(M,L,A,O,w,12,o[9]),O=a(O,M,L,A,E,17,o[10]),A=a(A,O,M,L,S,22,o[11]),L=a(L,A,O,M,x,7,o[12]),M=a(M,L,A,O,N,12,o[13]),O=a(O,M,L,A,C,17,o[14]),A=a(A,O,M,L,k,22,o[15]),L=f(L,A,O,M,h,5,o[16]),M=f(M,L,A,O,g,9,o[17]),O=f(O,M,L,A,S,14,o[18]),A=f(A,O,M,L,u,20,o[19]),L=f(L,A,O,M,m,5,o[20]),M=f(M,L,A,O,E,9,o[21]),O=f(O,M,L,A,k,14,o[22]),A=f(A,O,M,L,v,20,o[23]),L=f(L,A,O,M,w,5,o[24]),M=f(M,L,A,O,C,9,o[25]),O=f(O,M,L,A,d,14,o[26]),A=f(A,O,M,L,b,20,o[27]),L=f(L,A,O,M,N,5,o[28]),M=f(M,L,A,O,p,9,o[29]),O=f(O,M,L,A,y,14,o[30]),A=f(A,O,M,L,x,20,o[31]),L=l(L,A,O,M,m,4,o[32]),M=l(M,L,A,O,b,11,o[33]),O=l(O,M,L,A,S,16,o[34]),A=l(A,O,M,L,C,23,o[35]),L=l(L,A,O,M,h,4,o[36]),M=l(M,L,A,O,v,11,o[37]),O=l(O,M,L,A,y,16,o[38]),A=l(A,O,M,L,E,23,o[39]),L=l(L,A,O,M,N,4,o[40]),M=l(M,L,A,O,u,11,o[41]),O=l(O,M,L,A,d,16,o[42]),A=l(A,O,M,L,g,23,o[43]),L=l(L,A,O,M,w,4,o[44]),M=l(M,L,A,O,x,11,o[45]),O=l(O,M,L,A,k,16,o[46]),A=l(A,O,M,L,p,23,o[47]),L=c(L,A,O,M,u,6,o[48]),M=c(M,L,A,O,y,10,o[49]),O=c(O,M,L,A,C,15,o[50]),A=c(A,O,M,L,m,21,o[51]),L=c(L,A,O,M,x,6,o[52]),M=c(M,L,A,O,d,10,o[53]),O=c(O,M,L,A,E,15,o[54]),A=c(A,O,M,L,h,21,o[55]),L=c(L,A,O,M,b,6,o[56]),M=c(M,L,A,O,k,10,o[57]),O=c(O,M,L,A,g,15,o[58]),A=c(A,O,M,L,N,21,o[59]),L=c(L,A,O,M,v,6,o[60]),M=c(M,L,A,O,S,10,o[61]),O=c(O,M,L,A,p,15,o[62]),A=c(A,O,M,L,w,21,o[63]),s[0]=s[0]+L|0,s[1]=s[1]+A|0,s[2]=s[2]+O|0,s[3]=s[3]+M|0},_doFinalize:function(){var t=this._data,n=t.words,r=this._nDataBytes*8,i=t.sigBytes*8;n[i>>>5]|=128<<24-i%32;var s=e.floor(r/4294967296),o=r;n[(i+64>>>9<<4)+15]=(s<<8|s>>>24)&16711935|(s<<24|s>>>8)&4278255360,n[(i+64>>>9<<4)+14]=(o<<8|o>>>24)&16711935|(o<<24|o>>>8)&4278255360,t.sigBytes=(n.length+1)*4,this._process();var u=this._hash,a=u.words;for(var f=0;f<4;f++){var l=a[f];a[f]=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360}return u},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});t.MD5=i._createHelper(u),t.HmacMD5=i._createHmacHelper(u)}(Math),define("crypto.md5",["crypto.core"],function(){}),function(){var e=CryptoJS,t=e.lib,n=t.Base,r=t.WordArray,i=e.algo,s=i.MD5,o=i.EvpKDF=n.extend({cfg:n.extend({keySize:4,hasher:s,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){var n=this.cfg,i=n.hasher.create(),s=r.create(),o=s.words,u=n.keySize,a=n.iterations;while(o.length<u){f&&i.update(f);var f=i.update(e).finalize(t);i.reset();for(var l=1;l<a;l++)f=i.finalize(f),i.reset();s.concat(f)}return s.sigBytes=u*4,s}});e.EvpKDF=function(e,t,n){return o.create(n).compute(e,t)}}(),define("crypto.evpkdf",["crypto.md5"],function(){}),CryptoJS.lib.Cipher||function(e){var t=CryptoJS,n=t.lib,r=n.Base,i=n.WordArray,s=n.BufferedBlockAlgorithm,o=t.enc,u=o.Utf8,a=o.Base64,f=t.algo,l=f.EvpKDF,c=n.Cipher=s.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return typeof e=="string"?N:S}return function(t){return{encrypt:function(n,r,i){return e(r).encrypt(t,n,r,i)},decrypt:function(n,r,i){return e(r).decrypt(t,n,r,i)}}}}()}),h=n.StreamCipher=c.extend({_doFinalize:function(){var e=this._process(!0);return e},blockSize:1}),p=t.mode={},d=n.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),v=p.CBC=function(){function n(t,n,r){var i=this._iv;if(i){var s=i;this._iv=e}else var s=this._prevBlock;for(var o=0;o<r;o++)t[n+o]^=s[o]}var t=d.extend();return t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;n.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,s=e.slice(t,t+i);r.decryptBlock(e,t),n.call(this,e,t,i),this._prevBlock=s}}),t}(),m=t.pad={},g=m.Pkcs7={pad:function(e,t){var n=t*4,r=n-e.sigBytes%n,s=r<<24|r<<16|r<<8|r,o=[];for(var u=0;u<r;u+=4)o.push(s);var a=i.create(o,r);e.concat(a)},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},y=n.BlockCipher=c.extend({cfg:c.cfg.extend({mode:v,padding:g}),reset:function(){c.reset.call(this);var e=this.cfg,t=e.iv,n=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var r=n.createEncryptor;else{var r=n.createDecryptor;this._minBufferSize=1}this._mode=r.call(n,this,t&&t.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),b=n.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),w=t.format={},E=w.OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;if(n)var r=i.create([1398893684,1701076831]).concat(n).concat(t);else var r=t;return r.toString(a)},parse:function(e){var t=a.parse(e),n=t.words;if(n[0]==1398893684&&n[1]==1701076831){var r=i.create(n.slice(2,4));n.splice(0,4),t.sigBytes-=16}return b.create({ciphertext:t,salt:r})}},S=n.SerializableCipher=r.extend({cfg:r.extend({format:E}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),s=i.finalize(t),o=i.cfg;return b.create({ciphertext:s,key:n,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=e.createDecryptor(n,r).finalize(t.ciphertext);return i},_parse:function(e,t){return typeof e=="string"?t.parse(e,this):e}}),x=t.kdf={},T=x.OpenSSL={execute:function(e,t,n,r){r||(r=i.random(8));var s=l.create({keySize:t+n}).compute(e,r),o=i.create(s.words.slice(t),n*4);return s.sigBytes=t*4,b.create({key:s,iv:o,salt:r})}},N=n.PasswordBasedCipher=S.extend({cfg:S.cfg.extend({kdf:T}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=r.kdf.execute(n,e.keySize,e.ivSize);r.iv=i.iv;var s=S.encrypt.call(this,e,t,i.key,r);return s.mixIn(i),s},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=r.kdf.execute(n,e.keySize,e.ivSize,t.salt);r.iv=i.iv;var s=S.decrypt.call(this,e,t,i.key,r);return s}})}(),define("crypto.cipher-core",["crypto.enc-base64","crypto.evpkdf"],function(){}),function(){var e=CryptoJS,t=e.lib,n=t.BlockCipher,r=e.algo,i=[],s=[],o=[],u=[],a=[],f=[],l=[],c=[],h=[],p=[];(function(){var e=[];for(var t=0;t<256;t++)t<128?e[t]=t<<1:e[t]=t<<1^283;var n=0,r=0;for(var t=0;t<256;t++){var d=r^r<<1^r<<2^r<<3^r<<4;d=d>>>8^d&255^99,i[n]=d,s[d]=n;var v=e[n],m=e[v],g=e[m],y=e[d]*257^d*16843008;o[n]=y<<24|y>>>8,u[n]=y<<16|y>>>16,a[n]=y<<8|y>>>24,f[n]=y;var y=g*16843009^m*65537^v*257^n*16843008;l[d]=y<<24|y>>>8,c[d]=y<<16|y>>>16,h[d]=y<<8|y>>>24,p[d]=y,n?(n=v^e[e[e[g^v]]],r^=e[e[r]]):n=r=1}})();var d=[0,1,2,4,8,16,32,64,128,27,54],v=r.AES=n.extend({_doReset:function(){var e=this._key,t=e.words,n=e.sigBytes/4,r=this._nRounds=n+6,s=(r+1)*4,o=this._keySchedule=[];for(var u=0;u<s;u++)if(u<n)o[u]=t[u];else{var a=o[u-1];u%n?n>6&&u%n==4&&(a=i[a>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[a&255]):(a=a<<8|a>>>24,a=i[a>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[a&255],a^=d[u/n|0]<<24),o[u]=o[u-n]^a}var f=this._invKeySchedule=[];for(var v=0;v<s;v++){var u=s-v;if(v%4)var a=o[u];else var a=o[u-4];v<4||u<=4?f[v]=a:f[v]=l[i[a>>>24]]^c[i[a>>>16&255]]^h[i[a>>>8&255]]^p[i[a&255]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,u,a,f,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,c,h,p,s);var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,s,o,u){var a=this._nRounds,f=e[t]^n[0],l=e[t+1]^n[1],c=e[t+2]^n[2],h=e[t+3]^n[3],p=4;for(var d=1;d<a;d++){var v=r[f>>>24]^i[l>>>16&255]^s[c>>>8&255]^o[h&255]^n[p++],m=r[l>>>24]^i[c>>>16&255]^s[h>>>8&255]^o[f&255]^n[p++],g=r[c>>>24]^i[h>>>16&255]^s[f>>>8&255]^o[l&255]^n[p++],y=r[h>>>24]^i[f>>>16&255]^s[l>>>8&255]^o[c&255]^n[p++];f=v,l=m,c=g,h=y}var v=(u[f>>>24]<<24|u[l>>>16&255]<<16|u[c>>>8&255]<<8|u[h&255])^n[p++],m=(u[l>>>24]<<24|u[c>>>16&255]<<16|u[h>>>8&255]<<8|u[f&255])^n[p++],g=(u[c>>>24]<<24|u[h>>>16&255]<<16|u[f>>>8&255]<<8|u[l&255])^n[p++],y=(u[h>>>24]<<24|u[f>>>16&255]<<16|u[l>>>8&255]<<8|u[c&255])^n[p++];e[t]=v,e[t+1]=m,e[t+2]=g,e[t+3]=y},keySize:8});e.AES=n._createHelper(v)}(),define("crypto.aes",["crypto.cipher-core"],function(){}),function(){var e=CryptoJS,t=e.lib,n=t.WordArray,r=t.Hasher,i=e.algo,s=[],o=i.SHA1=r.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){var n=this._hash.words,r=n[0],i=n[1],o=n[2],u=n[3],a=n[4];for(var f=0;f<80;f++){if(f<16)s[f]=e[t+f]|0;else{var l=s[f-3]^s[f-8]^s[f-14]^s[f-16];s[f]=l<<1|l>>>31}var c=(r<<5|r>>>27)+a+s[f];f<20?c+=(i&o|~i&u)+1518500249:f<40?c+=(i^o^u)+1859775393:f<60?c+=(i&o|i&u|o&u)-1894007588:c+=(i^o^u)-899497514,a=u,u=o,o=i<<30|i>>>2,i=r,r=c}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+u|0,n[4]=n[4]+a|0},_doFinalize:function(){var e=this._data,t=e.words,n=this._nDataBytes*8,r=e.sigBytes*8;return t[r>>>5]|=128<<24-r%32,t[(r+64>>>9<<4)+14]=Math.floor(n/4294967296),t[(r+64>>>9<<4)+15]=n,e.sigBytes=t.length*4,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA1=r._createHelper(o),e.HmacSHA1=r._createHmacHelper(o)}(),define("crypto.sha1",["crypto.core"],function(){}),function(e){var t=CryptoJS,n=t.lib,r=n.WordArray,i=n.Hasher,s=t.algo,o=[],u=[];(function(){function t(t){var n=e.sqrt(t);for(var r=2;r<=n;r++)if(!(t%r))return!1;return!0}function n(e){return(e-(e|0))*4294967296|0}var r=2,i=0;while(i<64)t(r)&&(i<8&&(o[i]=n(e.pow(r,.5))),u[i]=n(e.pow(r,1/3)),i++),r++})();var a=[],f=s.SHA256=i.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(e,t){var n=this._hash.words,r=n[0],i=n[1],s=n[2],o=n[3],f=n[4],l=n[5],c=n[6],h=n[7];for(var p=0;p<64;p++){if(p<16)a[p]=e[t+p]|0;else{var d=a[p-15],v=(d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3,m=a[p-2],g=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;a[p]=v+a[p-7]+g+a[p-16]}var y=f&l^~f&c,b=r&i^r&s^i&s,w=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),E=(f<<26|f>>>6)^(f<<21|f>>>11)^(f<<7|f>>>25),S=h+E+y+u[p]+a[p],x=w+b;h=c,c=l,l=f,f=o+S|0,o=s,s=i,i=r,r=S+x|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+s|0,n[3]=n[3]+o|0,n[4]=n[4]+f|0,n[5]=n[5]+l|0,n[6]=n[6]+c|0,n[7]=n[7]+h|0},_doFinalize:function(){var t=this._data,n=t.words,r=this._nDataBytes*8,i=t.sigBytes*8;return n[i>>>5]|=128<<24-i%32,n[(i+64>>>9<<4)+14]=e.floor(r/4294967296),n[(i+64>>>9<<4)+15]=r,t.sigBytes=n.length*4,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=i._createHelper(f),t.HmacSHA256=i._createHmacHelper(f)}(Math),define("crypto.sha256",["crypto.core"],function(){}),function(){var e=CryptoJS,t=e.lib,n=t.Base,r=e.enc,i=r.Utf8,s=e.algo,o=s.HMAC=n.extend({init:function(e,t){e=this._hasher=new e.init,typeof t=="string"&&(t=i.parse(t));var n=e.blockSize,r=n*4;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();var s=this._oKey=t.clone(),o=this._iKey=t.clone(),u=s.words,a=o.words;for(var f=0;f<n;f++)u[f]^=1549556828,a[f]^=909522486;s.sigBytes=o.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);t.reset();var r=t.finalize(this._oKey.clone().concat(n));return r}})}(),define("crypto.hmac",["crypto.core"],function(){}),CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}},define("crypto.pad-nopadding",["crypto.cipher-core"],function(){}),CryptoJS.mode.CTR=function(){var e=CryptoJS.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=this._iv,s=this._counter;i&&(s=this._counter=i.slice(0),this._iv=undefined);var o=s.slice(0);n.encryptBlock(o,0),s[r-1]=s[r-1]+1|0;for(var u=0;u<r;u++)e[t+u]^=o[u]}});return e.Decryptor=t,e}(),define("crypto.mode-ctr",["crypto.cipher-core"],function(){}),function(e,t){typeof define=="function"&&define.amd?define("crypto",["crypto.core","crypto.enc-base64","crypto.md5","crypto.evpkdf","crypto.cipher-core","crypto.aes","crypto.sha1","crypto.sha256","crypto.hmac","crypto.pad-nopadding","crypto.mode-ctr"],function(){return CryptoJS}):e.CryptoJS=t()}(this),function(e,t){typeof define=="function"&&define.amd?define("bigint",[],t.bind(e,e.crypto||e.msCrypto)):typeof module!="undefined"&&module.exports?module.exports=t(require("crypto")):e.BigInt=t(e.crypto||e.msCrypto)}(this,function(e){function G(e){var t,n,r,i;n=new Array(e);for(t=0;t<e;t++)n[t]=0;n[0]=2,r=0;for(;n[r]<e;){for(t=n[r]*n[r];t<e;t+=n[r])n[t]=1;r++,n[r]=n[r-1]+1;for(;n[r]<e&&n[n[r]];n[r]++);}i=new Array(r);for(t=0;t<r;t++)i[t]=n[t];return i}function Y(e,t){return y.length!=e.length&&(y=Pt(e),b=Pt(e),w=Pt(e)),Bt(w,t),Z(e,w)}function Z(e,n){var r,i,s,o;y.length!=e.length&&(y=Pt(e),b=Pt(e),w=Pt(e)),Ht(w,n),Ht(b,e),Ht(y,e),jt(b,-1),jt(y,-1);if(_t(b))return 0;for(s=0;b[s]==0;s++);for(r=1,i=2;b[s]%i==0;i*=2,r++);o=s*t+r-1,o&&Ft(b,o),en(w,b,e);if(!Ot(w,1)&&!Mt(w,y)){i=1;while(i<=o-1&&!Mt(w,y)){Yt(w,e);if(Ot(w,1))return 0;i++}if(!Mt(w,y))return 0}return 1}function et(e){var n,r,i;for(n=e.length-1;e[n]==0&&n>0;n--);for(r=0,i=e[n];i;i>>=1,r++);return r+=t*n,r}function tt(e,n){var r=Lt(0,(e.length>n?e.length:n)*t,0);return Ht(r,e),r}function nt(e){var t=Lt(0,e,0);return pt(t,e),Zt(t,1)}function rt(e){return e>=600?it(e,2):e>=550?it(e,4):e>=500?it(e,5):e>=400?it(e,6):e>=350?it(e,7):e>=300?it(e,9):e>=250?it(e,12):e>=200?it(e,15):e>=150?it(e,18):e>=100?it(e,27):it(e,40)}function it(e,t){var n,r,i,s;s=3e4,n=Lt(0,e,0),P.length==0&&(P=G(3e4)),Q.length!=n.length&&(Q=Pt(n));for(;;){vt(n,e,0),n[0]|=1,i=0;for(r=0;r<P.length&&P[r]<=s;r++)if(kt(n,P[r])==0&&!Ot(n,P[r])){i=1;break}for(r=0;r<t&&!i;r++){vt(Q,e,0);while(!Tt(n,Q))vt(Q,e,0);Z(n,Q)||(i=1)}if(!i)return n}}function st(e,t){var n=Pt(e);return Qt(n,t),Zt(n,1)}function ot(e,t){var n=tt(e,e.length+1);return jt(n,t),Zt(n,1)}function ut(e,t){var n=tt(e,e.length+t.length);return Kt(n,t),Zt(n,1)}function at(e,t,n){var r=tt(e,n.length);return en(r,Zt(t,2),Zt(n,2),0),Zt(r,1)}function ft(e,t){var n=tt(e,e.length>t.length?e.length+1:t.length+1);return $t(n,t),Zt(n,1)}function lt(e,t){var n=tt(e,e.length>t.length?e.length+1:t.length+1);return Jt(n,t),Zt(n,1)}function ct(e,t){var n=tt(e,t.length),r;return r=yt(n,t),r?Zt(n,1):null}function ht(e,t,n){var r=tt(e,n.length);return Gt(r,t,n),Zt(r,1)}function pt(e,n){var r,i,s,o,u,a,f,l,c,h,p,d,v;P.length==0&&(P=G(3e4));if(H.length==0){H=new Array(512);for(a=0;a<512;a++)H[a]=Math.pow(2,a/511-1)}r=.1,s=20,v=20,j.length!=e.length&&(j=Pt(e),F=Pt(e),R=Pt(e),z=Pt(e),V=Pt(e),$=Pt(e),J=Pt(e),X=Pt(e),W=Pt(e),B=Pt(e),I=Pt(e),q=Pt(e),U=Pt(e),K=Pt(e));if(n<=v){o=(1<<(n+2>>1))-1,Bt(e,0);for(u=1;u;){u=0,e[0]=1|1<<n-1|hn(n);for(a=1;a<P.length&&(P[a]&o)==P[a];a++)if(0==e[0]%P[a]){u=1;break}}Ct(e);return}l=r*n*n;if(n>2*s)for(f=1;n-n*f<=s;)f=H[hn(9)];else f=.5;d=Math.floor(f*n)+1,pt(q,d),Bt(j,0),j[Math.floor((n-2)/t)]|=1<<(n-2)%t,Nt(j,q,B,I),h=et(B);for(;;){for(;;){vt(F,h,0);if(Tt(B,F))break}jt(F,1),Jt(F,B),Ht(W,q),Kt(W,F),Rt(W,2),jt(W,1),Ht(z,F),Rt(z,2);for(c=0,a=0;a<P.length&&P[a]<l;a++)if(kt(W,P[a])==0&&!Ot(W,P[a])){c=1;break}c||Y(W,2)||(c=1);if(!c){jt(W,-3);for(a=W.length-1;W[a]==0&&a>0;a--);for(p=0,i=W[a];i;i>>=1,p++);p+=t*a;for(;;){vt(U,p,0);if(Tt(W,U))break}jt(W,3),jt(U,2),Ht(X,U),Ht(R,W),jt(R,-1),en(X,R,W),jt(X,-1);if(_t(X)){Ht(X,U),en(X,z,W),jt(X,-1),Ht(K,W),Ht(V,X),gt(V,W);if(Ot(V,1)){Ht(e,K);return}}}}}function dt(e,n){var r,i;return r=Math.floor((e-1)/t)+2,i=Lt(0,0,r),vt(i,e,n),i}function vt(e,n,r){var i,s;for(i=0;i<e.length;i++)e[i]=0;s=Math.floor((n-1)/t)+1;for(i=0;i<s;i++)e[i]=hn(t);e[s-1]&=(2<<(n-1)%t)-1,r==1&&(e[s-1]|=1<<(n-1)%t)}function mt(e,t){var n,r;return n=Pt(e),r=Pt(t),gt(n,r),n}function gt(e,t){var n,r,i,s,u,a,f,l,c,h;m.length!=e.length&&(m=Pt(e)),c=1;while(c){c=0;for(n=1;n<t.length;n++)if(t[n]){c=1;break}if(!c)break;for(n=e.length;!e[n]&&n>=0;n--);r=e[n],i=t[n],s=1,u=0,a=0,f=1;while(i+a&&i+f){l=Math.floor((r+s)/(i+a)),h=Math.floor((r+u)/(i+f));if(l!=h)break;o=s-l*a,s=a,a=o,o=u-l*f,u=f,f=o,o=r-l*i,r=i,i=o}u?(Ht(m,e),zt(e,t,s,u),zt(t,m,f,a)):(Qt(e,t),Ht(m,e),Ht(e,t),Ht(t,m))}if(t[0]==0)return;o=kt(e,t[0]),Bt(e,t[0]),t[0]=o;while(t[0])e[0]%=t[0],o=e[0],e[0]=t[0],t[0]=o}function yt(e,t){var n=1+2*Math.max(e.length,t.length);if(!(e[0]&1)&&!(t[0]&1))return Bt(e,0),0;S.length!=n&&(S=new Array(n),E=new Array(n),x=new Array(n),T=new Array(n),N=new Array(n),C=new Array(n)),Ht(S,e),Ht(E,t),Bt(x,1),Bt(T,0),Bt(N,0),Bt(C,1);for(;;){while(!(S[0]&1))It(S),!(x[0]&1)&&!(T[0]&1)?(It(x),It(T)):(Jt(x,t),It(x),$t(T,e),It(T));while(!(E[0]&1))It(E),!(N[0]&1)&&!(C[0]&1)?(It(N),It(C)):(Jt(N,t),It(N),$t(C,e),It(C));Tt(E,S)?($t(E,S),$t(N,x),$t(C,T)):($t(S,E),$t(x,N),$t(T,C));if(Ot(S,0)){while(St(N))Jt(N,t);return Ht(e,N),Ot(E,1)?1:(Bt(e,0),0)}}}function bt(e,t){var n=1,r=0,i;for(;;){if(e==1)return n;if(e==0)return 0;r-=n*Math.floor(t/e),t%=e;if(t==1)return r;if(t==0)return 0;n-=r*Math.floor(e/t),e%=t}}function wt(e,t){return bt(e,t)}function Et(e,t,n,r,i){var s=0,o=Math.max(e.length,t.length);S.length!=o&&(S=new Array(o),x=new Array(o),T=new Array(o),N=new Array(o),C=new Array(o));while(!(e[0]&1)&&!(t[0]&1))It(e),It(t),s++;Ht(S,e),Ht(n,t),Bt(x,1),Bt(T,0),Bt(N,0),Bt(C,1);for(;;){while(!(S[0]&1))It(S),!(x[0]&1)&&!(T[0]&1)?(It(x),It(T)):(Jt(x,t),It(x),$t(T,e),It(T));while(!(n[0]&1))It(n),!(N[0]&1)&&!(C[0]&1)?(It(N),It(C)):(Jt(N,t),It(N),$t(C,e),It(C));Tt(n,S)?($t(n,S),$t(N,x),$t(C,T)):($t(S,n),$t(x,N),$t(T,C));if(Ot(S,0)){while(St(N))Jt(N,t),$t(C,e);Rt(C,-1),Ht(r,N),Ht(i,C),qt(n,s);return}}}function St(e){return e[e.length-1]>>t-1&1}function xt(e,t,n){var r,i=e.length,s=t.length,o=i+n<s?i+n:s;for(r=s-1-n;r<i&&r>=0;r++)if(e[r]>0)return 1;for(r=i-1+n;r<s;r++)if(t[r]>0)return 0;for(r=o-1;r>=n;r--){if(e[r-n]>t[r])return 1;if(e[r-n]<t[r])return 0}return 0}function Tt(e,t){var n,r=e.length<t.length?e.length:t.length;for(n=e.length;n<t.length;n++)if(t[n])return 0;for(n=t.length;n<e.length;n++)if(e[n])return 1;for(n=r-1;n>=0;n--){if(e[n]>t[n])return 1;if(e[n]<t[n])return 0}return 0}function Nt(e,i,s,o){var u,a,f,l,c,h,p,d,v;Ht(o,e);for(a=i.length;i[a-1]==0;a--);v=i[a-1];for(d=0;v;d++)v>>=1;d=t-d,qt(i,d),qt(o,d);for(u=o.length;o[u-1]==0&&u>a;u--);Bt(s,0);while(!xt(i,o,u-a))Vt(o,i,u-a),s[u-a]++;for(f=u-1;f>=a;f--){o[f]==i[a-1]?s[f-a]=r:s[f-a]=Math.floor((o[f]*n+o[f-1])/i[a-1]);for(;;){h=(a>1?i[a-2]:0)*s[f-a],p=h,h&=r,p=(p-h)/n,c=p+s[f-a]*i[a-1],p=c,c&=r,p=(p-c)/n;if(!(p==o[f]?c==o[f-1]?h>(f>1?o[f-2]:0):c>o[f-1]:p>o[f]))break;s[f-a]--}Wt(o,i,-s[f-a],f-a),St(o)&&(Xt(o,i,f-a),s[f-a]--)}Ft(i,d),Ft(o,d)}function Ct(e){var t,i,s,o;i=e.length,s=0;for(t=0;t<i;t++)s+=e[t],o=0,s<0&&(o=s&r,o=-((s-o)/n),s+=o*n),e[t]=s&r,s=(s-e[t])/n-o}function kt(e,t){var r,i=0;for(r=e.length-1;r>=0;r--)i=(i*n+e[r])%t;return i}function Lt(e,n,r){var i,s,o;return s=Math.ceil(n/t)+1,s=r>s?r:s,o=new Array(s),Bt(o,e),o}function At(e,t,n){var r,s,o,u,a,f,l=e.length;if(t==-1){u=new Array(0);for(;;){a=new Array(u.length+1);for(s=0;s<u.length;s++)a[s+1]=u[s];a[0]=parseInt(e,10),u=a,r=e.indexOf(",",0);if(r<1)break;e=e.substring(r+1);if(e.length==0)break}return u.length<n?(a=new Array(n),Ht(a,u),a):u}var c=t,h=0,p=t==1?l:0;while(c>1)c&1&&(h=1),p+=l,c>>=1;p+=h*l,u=Lt(0,p,0);for(s=0;s<l;s++){r=i.indexOf(e.substring(s,s+1),0),t<=36&&r>=36&&(r-=26);if(r>=t||r<0)break;Rt(u,t),jt(u,r)}for(l=u.length;l>0&&!u[l-1];l--);l=n>l+1?n:l+1,a=new Array(l),f=l<u.length?l:u.length;for(s=0;s<f;s++)a[s]=u[s];for(;s<l;s++)a[s]=0;return a}function Ot(e,t){var n;if(e[0]!=t)return 0;for(n=1;n<e.length;n++)if(e[n])return 0;return 1}function Mt(e,t){var n,r=e.length<t.length?e.length:t.length;for(n=0;n<r;n++)if(e[n]!=t[n])return 0;if(e.length>t.length){for(;n<e.length;n++)if(e[n])return 0}else for(;n<t.length;n++)if(t[n])return 0;return 1}function _t(e){var t;for(t=0;t<e.length;t++)if(e[t])return 0;return 1}function Dt(e,t){var n,r,s="";d.length!=e.length?d=Pt(e):Ht(d,e);if(t==-1){for(n=e.length-1;n>0;n--)s+=e[n]+",";s+=e[0]}else while(!_t(d))r=Ut(d,t),s=i.substring(r,r+1)+s;return s.length==0&&(s="0"),s}function Pt(e){var t,n;return n=new Array(e.length),Ht(n,e),n}function Ht(e,t){var n,r=e.length<t.length?e.length:t.length;for(n=0;n<r;n++)e[n]=t[n];for(n=r;n<e.length;n++)e[n]=0}function Bt(e,n){var i,s;for(s=n,i=0;i<e.length;i++)e[i]=s&r,s>>=t}function jt(e,t){var i,s,o,u;e[0]+=t,s=e.length,o=0;for(i=0;i<s;i++){o+=e[i],u=0,o<0&&(u=o&r,u=-((o-u)/n),o+=u*n),e[i]=o&r,o=(o-e[i])/n-u;if(!o)return}}function Ft(e,n){var i,s=Math.floor(n/t);if(s){for(i=0;i<e.length-s;i++)e[i]=e[i+s];for(;i<e.length;i++)e[i]=0;n%=t}for(i=0;i<e.length-1;i++)e[i]=r&(e[i+1]<<t-n|e[i]>>n);e[i]>>=n}function It(e){var i;for(i=0;i<e.length-1;i++)e[i]=r&(e[i+1]<<t-1|e[i]>>1);e[i]=e[i]>>1|e[i]&n>>1}function qt(e,n){var i,s=Math.floor(n/t);if(s){for(i=e.length;i>=s;i--)e[i]=e[i-s];for(;i>=0;i--)e[i]=0;n%=t}if(!n)return;for(i=e.length-1;i>0;i--)e[i]=r&(e[i]<<n|e[i-1]>>t-n);e[i]=r&e[i]<<n}function Rt(e,t){var i,s,o,u;if(!t)return;s=e.length,o=0;for(i=0;i<s;i++)o+=e[i]*t,u=0,o<0&&(u=o&r,u=-((o-u)/n),o+=u*n),e[i]=o&r,o=(o-e[i])/n-u}function Ut(e,t){var r,i=0,s;for(r=e.length-1;r>=0;r--)s=i*n+e[r],e[r]=Math.floor(s/t),i=s%t;return i}function zt(e,t,i,s){var o,u,a,f;a=e.length<t.length?e.length:t.length,f=e.length;for(u=0,o=0;o<a;o++)u+=i*e[o]+s*t[o],e[o]=u&r,u=(u-e[o])/n;for(o=a;o<f;o++)u+=i*e[o],e[o]=u&r,u=(u-e[o])/n}function Wt(e,t,i,s){var o,u,a,f;a=e.length<s+t.length?e.length:s+t.length,f=e.length;for(u=0,o=s;o<a;o++)u+=e[o]+i*t[o-s],e[o]=u&r,u=(u-e[o])/n;for(o=a;u&&o<f;o++)u+=e[o],e[o]=u&r,u=(u-e[o])/n}function Xt(e,t,i){var s,o,u,a;u=e.length<i+t.length?e.length:i+t.length,a=e.length;for(o=0,s=i;s<u;s++)o+=e[s]+t[s-i],e[s]=o&r,o=(o-e[s])/n;for(s=u;o&&s<a;s++)o+=e[s],e[s]=o&r,o=(o-e[s])/n}function Vt(e,t,i){var s,o,u,a;u=e.length<i+t.length?e.length:i+t.length,a=e.length;for(o=0,s=i;s<u;s++)o+=e[s]-t[s-i],e[s]=o&r,o=(o-e[s])/n;for(s=u;o&&s<a;s++)o+=e[s],e[s]=o&r,o=(o-e[s])/n}function $t(e,t){var i,s,o,u;o=e.length<t.length?e.length:t.length;for(s=0,i=0;i<o;i++)s+=e[i]-t[i],e[i]=s&r,s=(s-e[i])/n;for(i=o;s&&i<e.length;i++)s+=e[i],e[i]=s&r,s=(s-e[i])/n}function Jt(e,t){var i,s,o,u;o=e.length<t.length?e.length:t.length;for(s=0,i=0;i<o;i++)s+=e[i]+t[i],e[i]=s&r,s=(s-e[i])/n;for(i=o;s&&i<e.length;i++)s+=e[i],e[i]=s&r,s=(s-e[i])/n}function Kt(e,t){var n;u.length!=2*e.length&&(u=new Array(2*e.length)),Bt(u,0);for(n=0;n<t.length;n++)t[n]&&Wt(u,e,t[n],n);Ht(e,u)}function Qt(e,t){h.length!=e.length?h=Pt(e):Ht(h,e),p.length!=e.length&&(p=Pt(e)),Nt(h,t,p,e)}function Gt(e,t,n){var r;a.length!=2*e.length&&(a=new Array(2*e.length)),Bt(a,0);for(r=0;r<t.length;r++)t[r]&&Wt(a,e,t[r],r);Qt(a,n),Ht(e,a)}function Yt(e,t){var i,s,o,u,f,l,c;for(f=e.length;f>0&&!e[f-1];f--);c=f>t.length?2*f:2*t.length,a.length!=c&&(a=new Array(c)),Bt(a,0);for(i=0;i<f;i++){u=a[2*i]+e[i]*e[i],a[2*i]=u&r,u=(u-a[2*i])/n;for(s=i+1;s<f;s++)u=a[i+s]+2*e[i]*e[s]+u,a[i+s]=u&r,u=(u-a[i+s])/n;a[i+f]=u}Qt(a,t),Ht(e,a)}function Zt(e,t){var n,r;for(n=e.length;n>0&&!e[n-1];n--);return r=new Array(n+t),Ht(r,e),r}function en(e,r,i){var o,u,a,f;v.length!=i.length&&(v=Pt(i));if((i[0]&1)==0){Ht(v,e),Bt(e,1);while(!Ot(r,0))r[0]&1&&Gt(e,v,i),Ut(r,2),Yt(v,i);return}Bt(v,0);for(a=i.length;a>0&&!i[a-1];a--);f=n-bt(kt(i,n),n),v[a]=1,Gt(e,v,i),c.length!=e.length?c=Pt(e):Ht(c,e);for(o=r.length-1;o>0&!r[o];o--);if(r[o]==0){Bt(e,1);return}for(u=1<<t-1;u&&!(r[o]&u);u>>=1);for(;;){if(!(u>>=1)){o--;if(o<0){tn(e,s,i,f);return}u=1<<t-1}tn(e,e,i,f),u&r[o]&&tn(e,c,i,f)}}function tn(e,t,i,s){var o,u,a,f,l,c,h,p=i.length,d=t.length;g.length!=p&&(g=new Array(p)),Bt(g,0);for(;p>0&&i[p-1]==0;p--);for(;d>0&&t[d-1]==0;d--);h=g.length-1;for(o=0;o<p;o++){l=g[0]+e[o]*t[0],f=(l&r)*s&r,a=l+f*i[0],a=(a-(a&r))/n,l=e[o],u=1;for(;u<d-4;)a+=g[u]+f*i[u]+l*t[u],c=g[u-1]=a&r,a=(a-c)/n,u++,a+=g[u]+f*i[u]+l*t[u],c=g[u-1]=a&r,a=(a-c)/n,u++,a+=g[u]+f*i[u]+l*t[u],c=g[u-1]=a&r,a=(a-c)/n,u++,a+=g[u]+f*i[u]+l*t[u],c=g[u-1]=a&r,a=(a-c)/n,u++,a+=g[u]+f*i[u]+l*t[u],c=g[u-1]=a&r,a=(a-c)/n,u++;for(;u<d;)a+=g[u]+f*i[u]+l*t[u],c=g[u-1]=a&r,a=(a-c)/n,u++;for(;u<p-4;)a+=g[u]+f*i[u],c=g[u-1]=a&r,a=(a-c)/n,u++,a+=g[u]+f*i[u],c=g[u-1]=a&r,a=(a-c)/n,u++,a+=g[u]+f*i[u],c=g[u-1]=a&r,a=(a-c)/n,u++,a+=g[u]+f*i[u],c=g[u-1]=a&r,a=(a-c)/n,u++,a+=g[u]+f*i[u],c=g[u-1]=a&r,a=(a-c)/n,u++;for(;u<p;)a+=g[u]+f*i[u],c=g[u-1]=a&r,a=(a-c)/n,u++;for(;u<h;)a+=g[u],c=g[u-1]=a&r,a=(a-c)/n,u++;g[u-1]=a&r}Tt(i,g)||$t(g,i),Ht(e,g)}function nn(e,t,n){return ht(e,ct(t,n),n)}function rn(e,t,n){return e=st(e,n),t=st(t,n),Tt(t,e)&&(e=lt(e,n)),ft(e,t)}function sn(e){var n=Math.floor(e/t)+2,r=new Array(n);for(var i=0;i<n;i++)r[i]=0;return r[n-2]=1<<e%t,r}function un(e,t){t||(t=0),e=Pt(e);var n="";while(!_t(e))n=on[e[0]&255]+n,Ft(e,8);while(n.length<t)n="\0"+n;return n}function an(e){var t=At("0",10,e.length);return e.forEach(function(e,n){n&&qt(t,8),t[0]|=e}),t}function ln(){return fn(40)}function cn(){return fn(1)[0]}function hn(e){if(e>31)throw new Error("Too many bits.");var t=0,n=0,r=Math.floor(e/8),i=(1<<e%8)-1;i&&(n=cn()&i);for(;t<r;t++)n=256*n+cn();return n}var t=26,n=1<<t,r=n-1,i="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-",s=Lt(1,1,1),o=new Array(0),u=o,a=o,f=o,l=o,c=o,h=o,p=o,d=o,v=o,m=o,g=o,y=o,b=o,w=o,E=o,S=o,x=o,T=o,N=o,C=o,k=o,L=o,A=o,O=o,M=o,_=o,D=o,P=o,H=o,B=o,j=o,F=o,I=o,q=o,R=o,U=o,z=o,W=o,X=o,V=o,$=o,J=o,K=o,Q=o,on=function(){var e=0,t={};for(;e<256;++e)t[e]=String.fromCharCode(e);return t}(),fn=function(){if(typeof e!="undefined"&&typeof e.randomBytes=="function")return function(t){try{var n=e.randomBytes(t)}catch(r){throw r}return Array.prototype.slice.call(n,0)};if(typeof e!="undefined"&&typeof e.getRandomValues=="function")return function(t){var n=new Uint8Array(t);return e.getRandomValues(n),Array.prototype.slice.call(n,0)};console.log("Keys should not be generated without CSPRNG.");return}();return{str2bigInt:At,bigInt2str:Dt,int2bigInt:Lt,multMod:ht,powMod:at,inverseMod:ct,randBigInt:dt,randBigInt_:vt,equals:Mt,equalsInt:Ot,sub:ft,mod:st,modInt:kt,mult:ut,divInt_:Ut,rightShift_:Ft,dup:Pt,greater:Tt,add:lt,isZero:_t,bitSize:et,millerRabin:Z,divide_:Nt,trim:Zt,primes:P,findPrimes:G,getSeed:ln,divMod:nn,subMod:rn,twoToThe:sn,bigInt2bits:un,ba2bigInt:an}}),function(){"use strict";function e(){}function n(e,t){var n=e.length;while(n--)if(e[n].listener===t)return n;return-1}function r(e){return function(){return this[e].apply(this,arguments)}}var t=e.prototype;t.getListeners=function(t){var n=this._getEvents(),r,i;if(typeof t=="object"){r={};for(i in n)n.hasOwnProperty(i)&&t.test(i)&&(r[i]=n[i])}else r=n[t]||(n[t]=[]);return r},t.flattenListeners=function(t){var n=[],r;for(r=0;r<t.length;r+=1)n.push(t[r].listener);return n},t.getListenersAsObject=function(t){var n=this.getListeners(t),r;return n instanceof Array&&(r={},r[t]=n),r||n},t.addListener=function(t,r){var i=this.getListenersAsObject(t),s=typeof r=="object",o;for(o in i)i.hasOwnProperty(o)&&n(i[o],r)===-1&&i[o].push(s?r:{listener:r,once:!1});return this},t.on=r("addListener"),t.addOnceListener=function(t,n){return this.addListener(t,{listener:n,once:!0})},t.once=r("addOnceListener"),t.defineEvent=function(t){return this.getListeners(t),this},t.defineEvents=function(t){for(var n=0;n<t.length;n+=1)this.defineEvent(t[n]);return this},t.removeListener=function(t,r){var i=this.getListenersAsObject(t),s,o;for(o in i)i.hasOwnProperty(o)&&(s=n(i[o],r),s!==-1&&i[o].splice(s,1));return this},t.off=r("removeListener"),t.addListeners=function(t,n){return this.manipulateListeners(!1,t,n)},t.removeListeners=function(t,n){return this.manipulateListeners(!0,t,n)},t.manipulateListeners=function(t,n,r){var i,s,o=t?this.removeListener:this.addListener,u=t?this.removeListeners:this.addListeners;if(typeof n!="object"||n instanceof RegExp){i=r.length;while(i--)o.call(this,n,r[i])}else for(i in n)n.hasOwnProperty(i)&&(s=n[i])&&(typeof s=="function"?o.call(this,i,s):u.call(this,i,s));return this},t.removeEvent=function(t){var n=typeof t,r=this._getEvents(),i;if(n==="string")delete r[t];else if(n==="object")for(i in r)r.hasOwnProperty(i)&&t.test(i)&&delete r[i];else delete this._events;return this},t.emitEvent=function(t,n){var r=this.getListenersAsObject(t),i,s,o,u;for(o in r)if(r.hasOwnProperty(o)){s=r[o].length;while(s--)i=r[o][s],i.once===!0&&this.removeListener(t,i.listener),u=i.listener.apply(this,n||[]),u===this._getOnceReturnValue()&&this.removeListener(t,i.listener)}return this},t.trigger=r("emitEvent"),t.emit=function(t){var n=Array.prototype.slice.call(arguments,1);return this.emitEvent(t,n)},t.setOnceReturnValue=function(t){return this._onceReturnValue=t,this},t._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},t._getEvents=function(){return this._events||(this._events={})},typeof define=="function"&&define.amd?define("eventemitter",[],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:this.EventEmitter=e}.call(this),function(e,t){typeof define=="function"&&define.amd?define("otr",["jquery","jquery.browser","bigint","crypto","eventemitter"],function(e,n,r,i,s){if(e.browser.msie)return undefined;var o={BigInt:r,CryptoJS:i,EventEmitter:s,OTR:{},DSA:{}};return t.call(o)}):(e.OTR={},e.DSA={},t.call(e))}(this,function(){return function(){"use strict";var e=this,t={N:"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF",G:"2",MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2,AUTHSTATE_NONE:0,AUTHSTATE_AWAITING_DHKEY:1,AUTHSTATE_AWAITING_REVEALSIG:2,AUTHSTATE_AWAITING_SIG:3,WHITESPACE_TAG:"                                                              ",WHITESPACE_TAG_V2:"                          ",WHITESPACE_TAG_V3:"                                  ",OTR_TAG:"?OTR",OTR_VERSION_1:"\0\ 1",OTR_VERSION_2:"\0\ 2",OTR_VERSION_3:"\0\ 3",SMPSTATE_EXPECT0:0,SMPSTATE_EXPECT1:1,SMPSTATE_EXPECT2:2,SMPSTATE_EXPECT3:3,SMPSTATE_EXPECT4:4,STATUS_SEND_QUERY:0,STATUS_AKE_INIT:1,STATUS_AKE_SUCCESS:2,STATUS_END_OTR:3};typeof module!="undefined"&&module.exports?module.exports=t:e.OTR.CONST=t}.call(this),function(){"use strict";var e=this,t={},n,r;typeof module!="undefined"&&module.exports?(module.exports=t={},n=require("../vendor/crypto.js"),r=require("../vendor/bigint.js")):(e.OTR&&(e.OTR.HLP=t),e.DSA&&(e.DSA.HLP=t),n=e.CryptoJS,r=e.BigInt);var i={BYTE:1,SHORT:2,INT:4,CTR:8,MAC:20,SIG:40},s="?OTR",o=".",u=r.str2bigInt("2",10);t.debug=function(e){this.debug&&typeof this.debug!="function"&&typeof console!="undefined"&&console.log(e)},t.extend=function(e,t){function r(){this.constructor=e}for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype},t.compare=function(e,t){if(e.length!==t.length)return!1;var n=0,r=0;for(;n<e.length;n++)r|=e[n].charCodeAt(0)^t[n].charCodeAt(0);return r===0},t.randomExponent=function(){return r.randBigInt(1536)},t.smpHash=function(e,r,s){var o=n.algo.SHA256.create();o.update(n.enc.Latin1.parse(t.packBytes(e,i.BYTE))),o.update(n.enc.Latin1.parse(t.packMPI(r))),s&&o.update(n.enc.Latin1.parse(t.packMPI(s)));var u=o.finalize();return t.bits2bigInt(u.toString(n.enc.Latin1))},t.makeMac=function(e,r){var i=n.enc.Latin1.parse(r),s=n.HmacSHA256(n.enc.Latin1.parse(e),i);return t.mask(s.toString(n.enc.Latin1),0,160)},t.make1Mac=function(e,t){var r=n.enc.Latin1.parse(t),i=n.HmacSHA1(n.enc.Latin1.parse(e),r);return i.toString(n.enc.Latin1)},t.encryptAes=function(e,t,r){var i={mode:n.mode.CTR,iv:n.enc.Latin1.parse(r),padding:n.pad.NoPadding},s=n.AES.encrypt(e,n.enc.Latin1.parse(t),i),o=n.enc.Base64.parse(s.toString());return n.enc.Latin1.stringify(o)},t.decryptAes=function(e,t,r){e=n.enc.Latin1.parse(e);var i={mode:n.mode.CTR,iv:n.enc.Latin1.parse(r),padding:n.pad.NoPadding};return n.AES.decrypt(n.enc.Base64.stringify(e),n.enc.Latin1.parse(t),i)},t.multPowMod=function(e,t,n,i,s){return r.multMod(r.powMod(e,t,s),r.powMod(n,i,s),s)},t.ZKP=function(e,n,i,s){return r.equals(n,t.smpHash(e,i,s))},t.GTOE=function(e,t){return r.equals(e,t)||r.greater(e,t)},t.between=function(e,t,n){return r.greater(e,t)&&r.greater(n,e)},t.checkGroup=function(e,n){return t.GTOE(e,u)&&t.GTOE(n,e)},t.h1=function(e,t){var r=n.algo.SHA1.create();return r.update(n.enc.Latin1.parse(e)),r.update(n.enc.Latin1.parse(t)),r.finalize().toString(n.enc.Latin1)},t.h2=function(e,t){var r=n.algo.SHA256.create();return r.update(n.enc.Latin1.parse(e)),r.update(n.enc.Latin1.parse(t)),r.finalize().toString(n.enc.Latin1)},t.mask=function(e,t,n){return e.substr(t/8,n/8)};var a=String.fromCharCode;t.packBytes=function(e,t){e=e.toString(16);var n,r="";for(;t>0;t--)n=e.length?e.substr(-2,2):"0",e=e.substr(0,e.length-2),r=a(parseInt(n,16))+r;return r},t.packINT=function(e){return t.packBytes(e,i.INT)},t.packCtr=function(e){return t.padCtr(t.packBytes(e,i.CTR))},t.padCtr=function(e){return e+"\0\0\0\0\0\0\0\0"},t.unpackCtr=function(e){return e=t.toByteArray(e.substring(0,8)),t.unpack(e)},t.unpack=function(e){var t=0,n=0,r=e.length;for(;n<r;n++)t=t*256+e[n];return t},t.packData=function(e){return t.packINT(e.length)+e},t.bits2bigInt=function(e){return e=t.toByteArray(e),r.ba2bigInt(e)},t.packMPI=function(e){return t.packData(r.bigInt2bits(r.trim(e,0)))},t.packSHORT=function(e){return t.packBytes(e,i.SHORT)},t.unpackSHORT=function(e){return e=t.toByteArray(e),t.unpack(e)},t.packTLV=function(e,n){return t.packSHORT(e)+t.packSHORT(n.length)+n},t.readLen=function(e){return e=t.toByteArray(e.substring(0,4)),t.unpack(e)},t.readData=function(e){var n=t.unpack(e.splice(0,4));return[n,e]},t.readMPI=function(e){return e=t.toByteArray(e),e=t.readData(e),r.ba2bigInt(e[1])},t.packMPIs=function(e){return e.reduce(function(e,n){return e+t.packMPI(n)},"")},t.unpackMPIs=function(e,n){var r=0,i=[];for(;r<e;r++)i.push("MPI");return t.splitype(i,n).map(function(e){return t.readMPI(e)})},t.wrapMsg=function(e,r,i,u,a){e=n.enc.Base64.stringify(n.enc.Latin1.parse(e)),e=s+":"+e+o;var f;i&&(f="|",f+=t.readLen(u).toString(16),f+="|",f+=t.readLen(a).toString(16));if(!r)return[null,e];var l=Math.ceil(e.length/r);if(l>65535)return["Too many fragments"];if(l==1)return[null,e];var c,h,p,d,v,m=[];for(c=1;c<=l;c++)h=(c-1)*r,p=c*r,d=e.slice(h,p),v=s,i&&(v+=f),v+=","+c+",",v+=l+",",v+=d+",",m.push(v);return[null,m]},t.splitype=function l(e,n){var r=[];return e.forEach(function(e){var s;switch(e){case"PUBKEY":s=l(["SHORT","MPI","MPI","MPI","MPI"],n).join("");break;case"DATA":case"MPI":s=n.substring(0,t.readLen(n)+4);break;default:s=n.substring(0,i[e])}r.push(s),n=n.substring(s.length)}),r};var f=function(){var e=0,t={};for(;e<256;++e)t[String.fromCharCode(e)]=e;for(e=128;e<256;++e)t[String.fromCharCode(63232+e)]=e;return t}();t.toByteArray=function(e){var t=[],n=e.split(""),r=-1,i=n.length,s=i%8;while(s--)++r,t[r]=f[n[r]];s=i>>3;while(s--)t.push(f[n[++r]],f[n[++r]],f[n[++r]],f[n[++r]],f[n[++r]],f[n[++r]],f[n[++r]],f[n[++r]]);return t}}.call(this),function(){"use strict";function c(){var e=(new Date).getTime();return function(t){if(!l||typeof console=="undefined")return;var n=(new Date).getTime();console.log(t+": "+(n-e)),e=n}}function h(e,t){var r=n.randBigInt(n.bitSize(t));return s.between(r,e,t)?r:h(e,t)}function d(e,t){var r,i=3e4,s=n.bitSize(e),o=n.primes;o.length===0&&(o=n.findPrimes(i)),p.length!=e.length&&(p=n.dup(e));for(r=0;r<o.length&&o[r]<=i;r++)if(n.modInt(e,o[r])===0&&!n.equalsInt(e,o[r]))return 0;for(r=0;r<t;r++){n.randBigInt_(p,s,0);while(!n.greater(e,p))n.randBigInt_(p,s,0);if(!n.millerRabin(e,p))return 0}return 1}function g(e){var t=c(),r=v[e].repeat,i=v[e].N,s=n.twoToThe(e-1),o=4*e,f=!1,l,h,p,g;for(;;){l=n.randBigInt(i,1),l[0]|=1;if(!d(l,r))continue;t("q");for(g=0;g<o;g++){h=n.randBigInt(e,1),h[0]|=1,p=n.mod(h,l),p=n.sub(p,u),h=n.sub(h,p);if(n.greater(s,h))continue;if(!d(h,r))continue;t("p"),m[e]={p:h,q:l},f=!0;break}if(f)break}var y=n.dup(a),b=n.sub(h,u),w=n.multMod(b,n.inverseMod(l,h),h),E;for(;;){E=n.powMod(y,w,h);if(n.equals(E,u)){y=n.add(y,u);continue}m[e].g=E,t("g");return}throw new Error("Unreachable!")}function y(e,t){if(!(this instanceof y))return new y(e,t);t=t||{};if(e){var r=this;["p","q","g","y","x"].forEach(function(t){r[t]=e[t]}),this.type=e.type||f;return}var i=parseInt(t.bit_length?t.bit_length:1024,10);if(!v[i])throw new Error("Unsupported bit length.");m[i]||g(i),this.p=m[i].p,this.q=m[i].q,this.g=m[i].g,this.type=f,this.x=h(o,this.q),this.y=n.powMod(this.g,this.x,this.p),t.nocache&&(m[i]=null)}function b(e){var t,n;t=e.indexOf("("),n=e.lastIndexOf(")");if(t<0||n<0)throw new Error("Malformed S-Expression");e=e.substring(t+1,n);var r=e.search(/\s/),i={type:e.substring(0,r),val:[]};e=e.substring(r+1,n),t=e.indexOf("(");if(t<0)i.val.push(e);else{var s,o,u,a;while(t>-1){s=t+1,o=e.length;for(u=1,a=0;s<o&&a<u;s++)e[s]==="("&&u++,e[s]===")"&&a++;i.val.push(b(e.substring(t,++s))),e=e.substring(++s),t=e.indexOf("(")}}return i}function w(e){if(!e.type)throw new Error("Parse error.");var t,r;return e.type==="privkeys"?(t=[],e.val.forEach(function(e){t.push(w(e))}),t):(t={},e.val.forEach(function(e){r=e.val[0],typeof r=="string"?r.indexOf("#")===0&&(r=r.substring(1,r.lastIndexOf("#")),r=n.str2bigInt(r,16)):r=w(e),t[e.type]=r}),t)}var e=this,t,n,r,i,s;typeof module!="undefined"&&module.exports?(module.exports=y,t=require("../vendor/crypto.js"),n=require("../vendor/bigint.js"),i=require("path").join(__dirname,"/dsa-webworker.js"),s=require("./helpers.js")):(Object.keys(e.DSA).forEach(function(t){y[t]=e.DSA[t]}),e.DSA=y,t=e.CryptoJS,n=e.BigInt,r=e.Worker,i="dsa-webworker.js",s=y.HLP);var o=n.str2bigInt("0",10),u=n.str2bigInt("1",10),a=n.str2bigInt("2",10),f="\0\0",l=!1,p=[],v={1024:{N:160,repeat:40},2048:{N:224,repeat:56}},m={};y.prototype={constructor:y,packPublic:function(){var e=this.type;return e+=s.packMPI(this.p),e+=s.packMPI(this.q),e+=s.packMPI(this.g),e+=s.packMPI(this.y),e},packPrivate:function(){var e=this.packPublic()+s.packMPI(this.x);return e=t.enc.Latin1.parse(e),e.toString(t.enc.Base64)},generateNonce:function(e){var r=n.bigInt2bits(n.trim(this.x,0)),i=n.bigInt2bits(n.randBigInt(256)),u=t.algo.SHA256.create();u.update(t.enc.Latin1.parse(r)),u.update(e),u.update(t.enc.Latin1.parse(i));var a=u.finalize();return a=s.bits2bigInt(a.toString(t.enc.Latin1)),n.rightShift_(a,256-n.bitSize(this.q)),s.between(a,o,this.q)?a:this.generateNonce(e)},sign:function(e){e=t.enc.Latin1.parse(e);var r=n.str2bigInt(e.toString(t.enc.Hex),16),i,s=o,u=o;while(n.isZero(u)||n.isZero(s)){i=this.generateNonce(e),s=n.mod(n.powMod(this.g,i,this.p),this.q);if(n.isZero(s))continue;u=n.inverseMod(i,this.q),u=n.mult(u,n.add(r,n.mult(this.x,s))),u=n.mod(u,this.q)}return[s,u]},fingerprint:function(){var e=this.packPublic();return this.type===f&&(e=e.substring(2)),e=t.enc.Latin1.parse(e),t.SHA1(e).toString(t.enc.Hex)}},y.parsePublic=function(e,t){var n=["SHORT","MPI","MPI","MPI","MPI"];t&&n.push("MPI"),e=s.splitype(n,e);var r={type:e[0],p:s.readMPI(e[1]),q:s.readMPI(e[2]),g:s.readMPI(e[3]),y:s.readMPI(e[4])};return t&&(r.x=s.readMPI(e[5])),new y(r)},y.parsePrivate=function(e,n){return n?w(b(e))[0]["private-key"].dsa:(e=t.enc.Base64.parse(e),e=e.toString(t.enc.Latin1),y.parsePublic(e,!0))},y.verify=function(e,r,i,u){if(!s.between(i,o,e.q)||!s.between(u,o,e.q))return!1;var a=t.enc.Latin1.parse(r);a=n.str2bigInt(a.toString(t.enc.Hex),16);var f=n.inverseMod(u,e.q),l=n.multMod(a,f,e.q),c=n.multMod(i,f,e.q);l=n.powMod(e.g,l,e.p),c=n.powMod(e.y,c,e.p);var h=n.mod(n.multMod(l,c,e.p),e.q);return n.equals(h,i)},y.createInWebWorker=function(e,t){var s={path:i,seed:n.getSeed};e&&typeof e=="object"&&Object.keys(e).forEach(function(t){s[t]=e[t]}),typeof module!="undefined"&&module.exports&&(r=require("webworker-threads").Worker);var o=new r(s.path);o.onmessage=function(e){var n=e.data;switch(n.type){case"debug":if(!l||typeof console=="undefined")return;console.log(n.val);break;case"data":o.terminate(),t(y.parsePrivate(n.val));break;default:throw new Error("Unrecognized type.")}},o.postMessage({seed:s.seed(),imports:s.imports,debug:l})}}.call(this),function(){"use strict";var e=this,t={},n,r,i;typeof module!="undefined"&&module.exports?(module.exports=t,n=require("../vendor/crypto.js"),r=require("./const.js"),i=require("./helpers.js")):(e.OTR.Parse=t,n=e.CryptoJS,r=e.OTR.CONST,i=e.OTR.HLP);var s={};s[r.WHITESPACE_TAG_V2]=r.OTR_VERSION_2,s[r.WHITESPACE_TAG_V3]=r.OTR_VERSION_3,t.parseMsg=function(e,t){var o=[],u=t.indexOf(r.OTR_TAG);if(!~u){this.initFragment(e),l=t.indexOf(r.WHITESPACE_TAG);if(~l){t=t.split(""),t.splice(l,16);var a,f=t.length;for(;l<f;){a=t.slice(l,l+8).join("");if(Object.hasOwnProperty.call(s,a)){t.splice(l,8),o.push(s[a]);continue}l+=8}t=t.join("")}return{msg:t,ver:o}}var l=u+r.OTR_TAG.length,c=t[l];if(c===","||c==="|")return this.msgFragment(e,t.substring(l+1),c==="|");this.initFragment(e);if(~["?","v"].indexOf(c)){t[l]==="?"&&(o.push(r.OTR_VERSION_1),l+=1);var h={2:r.OTR_VERSION_2,3:r.OTR_VERSION_3},p=t.substring(l+1),d=p.indexOf("?");return d>=1&&(p=p.substring(0,d).split(""),t[l]==="v"&&p.forEach(function(e){Object.hasOwnProperty.call(h,e)&&o.push(h[e])})),{cls:"query",ver:o}}if(c===":"){l+=1;var v=t.substring(l,l+4);if(v.length<4)return{msg:t};v=n.enc.Base64.parse(v).toString(n.enc.Latin1);var m=v.substring(0,2),g=v.substring(2);if(!e["ALLOW_V"+i.unpackSHORT(m)])return{msg:t};l+=4;var y=t.substring(l).indexOf(".");if(!~y)return{msg:t};t=n.enc.Base64.parse(t.substring(l,l+y)),t=n.enc.Latin1.stringify(t);var b;m===r.OTR_VERSION_3&&(b=t.substring(0,8),t=t.substring(8));var w;return~["\ 2","\n","\11","\12"].indexOf(g)?w="ake":g==="\ 3"&&(w="data"),{version:m,type:g,msg:t,cls:w,instance_tags:b}}return t.substring(l,l+7)===" Error:"?(e.ERROR_START_AKE&&e.sendQueryMsg(),{msg:t.substring(l+7),cls:"error"}):{msg:t}},t.initFragment=function(e){e.fragment={s:"",j:0,k:0}},t.msgFragment=function(e,t,n){t=t.split(",");if(n){var r=t.shift().split("|"),s=i.packINT(parseInt(r[0],16)),o=i.packINT(parseInt(r[1],16));if(e.checkInstanceTags(s+o))return}if(t.length<4||isNaN(parseInt(t[0],10))||isNaN(parseInt(t[1],10)))return;var u=parseInt(t[0],10),a=parseInt(t[1],10);t=t[2];if(a<u||a===0||u===0){this.initFragment(e);return}u===1?(this.initFragment(e),e.fragment={k:1,n:a,s:t}):a===e.fragment.n&&u===e.fragment.k+1?(e.fragment.s+=t,e.fragment.k+=1):this.initFragment(e);if(a===u)return t=e.fragment.s,this.initFragment(e),this.parseMsg(e,t);return}}.call(this),function(){"use strict";function a(e,n,r,s,o){var u=t.enc.Latin1.parse(o),a=t.algo.HMAC.create(t.algo.SHA256,u);return a.update(t.enc.Latin1.parse(i.packMPI(e))),a.update(t.enc.Latin1.parse(i.packMPI(n))),a.update(t.enc.Latin1.parse(r)),a.update(t.enc.Latin1.parse(s)),a.finalize().toString(t.enc.Latin1)}function f(e){if(!(this instanceof f))return new f(e);this.otr=e,this.our_dh=e.our_old_dh,this.our_keyid=e.our_keyid-1,this.their_y=null,this.their_keyid=null,this.their_priv_pk=null,this.ssid=null,this.transmittedRS=!1,this.r=null;var t=this;["sendMsg"].forEach(function(e){t[e]=t[e].bind(t)})}var e=this,t,n,r,i,s;typeof module!="undefined"&&module.exports?(module.exports=f,t=require("../vendor/crypto.js"),n=require("../vendor/bigint.js"),r=require("./const.js"),i=require("./helpers.js"),s=require("./dsa.js")):(e.OTR.AKE=f,t=e.CryptoJS,n=e.BigInt,r=e.OTR.CONST,i=e.OTR.HLP,s=e.DSA);var o=n.str2bigInt(r.N,16),u=n.sub(o,n.str2bigInt("2",10));f.prototype={constructor:f,createKeys:function(e){var t=n.powMod(e,this.our_dh.privateKey,o),r=i.packMPI(t);this.ssid=i.mask(i.h2("\0",r),0,64);var s=i.h2("\ 1",r);this.c=i.mask(s,0,128),this.c_prime=i.mask(s,128,128),this.m1=i.h2("\ 2",r),this.m2=i.h2("\ 3",r),this.m1_prime=i.h2("\ 4",r),this.m2_prime=i.h2("\ 5",r)},verifySignMac:function(e,n,r,o,u,f,l,c){var h=i.makeMac(n,r);if(!i.compare(e,h))return["MACs do not match."];var p=i.decryptAes(n.substring(4),o,c);p=i.splitype(["PUBKEY","INT","SIG"],p.toString(t.enc.Latin1));var d=a(u,f,p[0],p[1],l),v=s.parsePublic(p[0]),m=i.bits2bigInt(p[2].substring(0,20)),g=i.bits2bigInt(p[2].substring(20));return s.verify(v,d,m,g)?[null,i.readLen(p[1]),v]:["Cannot verify signature of m."]},makeM:function(e,r,s,o){var u=this.otr.priv.packPublic(),f=i.packINT(this.our_keyid),l=a(this.our_dh.publicKey,e,u,f,r);l=this.otr.priv.sign(l);var c=u+f;c+=n.bigInt2bits(l[0],20),c+=n.bigInt2bits(l[1],20),c=t.enc.Latin1.parse(c);var h=i.packData(i.encryptAes(c,s,i.packCtr(0))),p=i.makeMac(h,o);return h+p},akeSuccess:function(e){i.debug.call(this.otr,"success");if(n.equals(this.their_y,this.our_dh.publicKey))return this.otr.error("equal keys - we have a problem.",!0);this.otr.our_old_dh=this.our_dh,this.otr.their_priv_pk=this.their_priv_pk,this.their_keyid===this.otr.their_keyid&&n.equals(this.their_y,this.otr.their_y)||this.their_keyid===this.otr.their_keyid-1&&n.equals(this.their_y,this.otr.their_old_y)||(this.otr.their_y=this.their_y,this.otr.their_old_y=null,this.otr.their_keyid=this.their_keyid,this.otr.sessKeys[0]=[new this.otr.DHSession(this.otr.our_dh,this.otr.their_y),null],this.otr.sessKeys[1]=[new this.otr.DHSession(this.otr.our_old_dh,this.otr.their_y),null]),this.otr.ssid=this.ssid,this.otr.transmittedRS=this.transmittedRS,this.otr_version=e,this.otr.authstate=r.AUTHSTATE_NONE,this.otr.msgstate=r.MSGSTATE_ENCRYPTED,this.r=null,this.myhashed=null,this.dhcommit=null,this.encrypted=null,this.hashed=null,this.otr.trigger("status",[r.STATUS_AKE_SUCCESS]),this.otr.sendStored()},handleAKE:function(e){var s,o,a,f=e.version;switch(e.type){case"\ 2":i.debug.call(this.otr,"d-h key message"),e=i.splitype(["DATA","DATA"],e.msg);if(this.otr.authstate===r.AUTHSTATE_AWAITING_DHKEY){var l=i.readMPI(this.myhashed),c=i.readMPI(e[1]);if(n.greater(l,c)){a="\ 2",s=this.dhcommit;break}this.our_dh=this.otr.dh(),this.otr.authstate=r.AUTHSTATE_NONE,this.r=null,this.myhashed=null}else this.otr.authstate===r.AUTHSTATE_AWAITING_SIG&&(this.our_dh=this.otr.dh());this.otr.authstate=r.AUTHSTATE_AWAITING_REVEALSIG,this.encrypted=e[0].substring(4),this.hashed=e[1].substring(4),a="\n",s=i.packMPI(this.our_dh.publicKey);break;case"\n":i.debug.call(this.otr,"reveal signature message"),e=i.splitype(["MPI"],e.msg);if(this.otr.authstate!==r.AUTHSTATE_AWAITING_DHKEY){if(this.otr.authstate!==r.AUTHSTATE_AWAITING_SIG)return;if(!n.equals(this.their_y,i.readMPI(e[0])))return}this.otr.authstate=r.AUTHSTATE_AWAITING_SIG,this.their_y=i.readMPI(e[0]);if(!i.checkGroup(this.their_y,u))return this.otr.error("Illegal g^y.",!0);this.createKeys(this.their_y),a="\11",s=i.packMPI(this.r),s+=this.makeM(this.their_y,this.m1,this.c,this.m2),this.m1=null,this.m2=null,this.c=null;break;case"\11":i.debug.call(this.otr,"signature message");if(this.otr.authstate!==r.AUTHSTATE_AWAITING_REVEALSIG)return;e=i.splitype(["DATA","DATA","MAC"],e.msg),this.r=i.readMPI(e[0]);var h=t.enc.Hex.parse(n.bigInt2str(this.r,16));h=t.enc.Latin1.stringify(h);var p=i.decryptAes(this.encrypted,h,i.packCtr(0));p=p.toString(t.enc.Latin1),this.their_y=i.readMPI(p);var d=t.SHA256(t.enc.Latin1.parse(p));if(!i.compare(this.hashed,d.toString(t.enc.Latin1)))return this.otr.error("Hashed g^x does not match.",!0);if(!i.checkGroup(this.their_y,u))return this.otr.error("Illegal g^x.",!0);this.createKeys(this.their_y),o=this.verifySignMac(e[2],e[1],this.m2,this.c,this.their_y,this.our_dh.publicKey,this.m1,i.packCtr(0));if(o[0])return this.otr.error(o[0],!0);this.their_keyid=o[1],this.their_priv_pk=o[2],s=this.makeM(this.their_y,this.m1_prime,this.c_prime,this.m2_prime),this.m1=null,this.m2=null,this.m1_prime=null,this.m2_prime=null,this.c=null,this.c_prime=null,this.sendMsg(f,"\12",s),this.akeSuccess(f);return;case"\12":i.debug.call(this.otr,"data message");if(this.otr.authstate!==r.AUTHSTATE_AWAITING_SIG)return;e=i.splitype(["DATA","MAC"],e.msg),o=this.verifySignMac(e[1],e[0],this.m2_prime,this.c_prime,this.their_y,this.our_dh.publicKey,this.m1_prime,i.packCtr(0));if(o[0])return this.otr.error(o[0],!0);this.their_keyid=o[1],this.their_priv_pk=o[2],this.m1_prime=null,this.m2_prime=null,this.c_prime=null,this.transmittedRS=!0,this.akeSuccess(f);return;default:return}this.sendMsg(f,a,s)},sendMsg:function(e,t,n){var s=e+t,o=e===r.OTR_VERSION_3;o&&(i.debug.call(this.otr,"instance tags"),s+=this.otr.our_instance_tag,s+=this.otr.their_instance_tag),s+=n,s=i.wrapMsg(s,this.otr.fragment_size,o,this.otr.our_instance_tag,this.otr.their_instance_tag);if(s[0])return this.otr.error(s[0]);this.otr.io(s[1])},initiateAKE:function(e){i.debug.call(this.otr,"d-h commit message"),this.otr.trigger("status",[r.STATUS_AKE_INIT]),this.otr.authstate=r.AUTHSTATE_AWAITING_DHKEY;var s=i.packMPI(this.our_dh.publicKey);s=t.enc.Latin1.parse(s),this.r=n.randBigInt(128);var o=t.enc.Hex.parse(n.bigInt2str(this.r,16));o=t.enc.Latin1.stringify(o),this.myhashed=t.SHA256(s),this.myhashed=i.packData(this.myhashed.toString(t.enc.Latin1)),this.dhcommit=i.packData(i.encryptAes(s,o,i.packCtr(0))),this.dhcommit+=this.myhashed,this.sendMsg(e,"\ 2",this.dhcommit)}}}.call(this),function(){"use strict";function l(e){if(!(this instanceof l))return new l(e);this.version=1,this.our_fp=e.our_fp,this.their_fp=e.their_fp,this.ssid=e.ssid,this.debug=!!e.debug,this.init()}var e=this,t,n,r,i,s;typeof module!="undefined"&&module.exports?(module.exports=l,t=require("../vendor/crypto.js"),n=require("../vendor/bigint.js"),r=require("../vendor/eventemitter.js"),i=require("./const.js"),s=require("./helpers.js")):(e.OTR.SM=l,t=e.CryptoJS,n=e.BigInt,r=e.EventEmitter,i=e.OTR.CONST,s=e.OTR.HLP);var o=n.str2bigInt(i.G,10),u=n.str2bigInt(i.N,16),a=n.sub(u,n.str2bigInt("2",10)),f=n.sub(u,n.str2bigInt("1",10));n.divInt_(f,2),s.extend(l,r),l.prototype.init=function(){this.smpstate=i.SMPSTATE_EXPECT1,this.secret=null},l.prototype.makeSecret=function(e,n){var r=t.algo.SHA256.create();r.update(t.enc.Latin1.parse(s.packBytes(this.version,1))),r.update(t.enc.Hex.parse(e?this.our_fp:this.their_fp)),r.update(t.enc.Hex.parse(e?this.their_fp:this.our_fp)),r.update(t.enc.Latin1.parse(this.ssid)),r.update(t.enc.Latin1.parse(n));var i=r.finalize();this.secret=s.bits2bigInt(i.toString(t.enc.Latin1))},l.prototype.makeG2s=function(){this.a2=s.randomExponent(),this.a3=s.randomExponent(),this.g2a=n.powMod(o,this.a2,u),this.g3a=n.powMod(o,this.a3,u),(!s.checkGroup(this.g2a,a)||!s.checkGroup(this.g3a,a))&&this.makeG2s()},l.prototype.computeGs=function(e,t){this.g2=n.powMod(e,this.a2,u),this.g3=n.powMod(t,this.a3,u)},l.prototype.computePQ=function(e){this.p=n.powMod(this.g3,e,u),this.q=s.multPowMod(o,e,this.g2,this.secret,u)},l.prototype.computeR=function(){this.r=n.powMod(this.QoQ,this.a3,u)},l.prototype.computeRab=function(e){return n.powMod(e,this.a3,u)},l.prototype.computeC=function(e,t){return s.smpHash(e,n.powMod(o,t,u))},l.prototype.computeD=function(e,t,r){return n.subMod(e,n.multMod(t,r,f),f)},l.prototype.handleSM=function(e){var r,f,l,c,h,p,d,v,m,g,y,b,w,E,S={2:i.SMPSTATE_EXPECT1,3:i.SMPSTATE_EXPECT2,4:i.SMPSTATE_EXPECT3,5:i.SMPSTATE_EXPECT4,7:i.SMPSTATE_EXPECT1};if(e.type===6){this.init(),this.trigger("abort");return}if(this.smpstate!==S[e.type])return this.abort();switch(this.smpstate){case i.SMPSTATE_EXPECT1:s.debug.call(this,"smp tlv 2");var x,T;e.type===7&&(x=e.msg.indexOf("\0"),T=e.msg.substring(0,x),e.msg=e.msg.substring(x+1)),w=s.readLen(e.msg.substr(0,4));if(w!==6)return this.abort();e=s.unpackMPIs(6,e.msg.substring(4));if(!s.checkGroup(e[0],a)||!s.checkGroup(e[3],a))return this.abort();if(!s.ZKP(1,e[1],s.multPowMod(o,e[2],e[0],e[1],u)))return this.abort();if(!s.ZKP(2,e[4],s.multPowMod(o,e[5],e[3],e[4],u)))return this.abort();this.g3ao=e[3],this.makeG2s(),f=s.randomExponent(),l=s.randomExponent(),this.c2=this.computeC(3,f),this.c3=this.computeC(4,l),this.d2=this.computeD(f,this.a2,this.c2),this.d3=this.computeD(l,this.a3,this.c3),this.computeGs(e[0],e[3]),this.smpstate=i.SMPSTATE_EXPECT0,T=t.enc.Latin1.parse(T).toString(t.enc.Utf8),this.trigger("question",[T]);return;case i.SMPSTATE_EXPECT2:s.debug.call(this,"smp tlv 3"),w=s.readLen(e.msg.substr(0,4));if(w!==11)return this.abort();e=s.unpackMPIs(11,e.msg.substring(4));if(!s.checkGroup(e[0],a)||!s.checkGroup(e[3],a)||!s.checkGroup(e[6],a)||!s.checkGroup(e[7],a))return this.abort();if(!s.ZKP(3,e[1],s.multPowMod(o,e[2],e[0],e[1],u)))return this.abort();if(!s.ZKP(4,e[4],s.multPowMod(o,e[5],e[3],e[4],u)))return this.abort();this.g3ao=e[3],this.computeGs(e[0],e[3]),h=s.multPowMod(this.g3,e[9],e[6],e[8],u),p=s.multPowMod(o,e[9],this.g2,e[10],u),p=n.multMod(p,n.powMod(e[7],e[8],u),u);if(!s.ZKP(5,e[8],h,p))return this.abort();var C=s.randomExponent();this.computePQ(C);var k=s.randomExponent(),L=s.randomExponent(),A=s.multPowMod(o,k,this.g2,L,u),O=s.smpHash(6,n.powMod(this.g3,k,u),A),M=this.computeD(k,C,O),_=this.computeD(L,this.secret,O);this.QoQ=n.divMod(this.q,e[7],u),this.PoP=n.divMod(this.p,e[6],u),this.computeR(),c=s.randomExponent(),g=n.powMod(this.QoQ,c,u),y=s.smpHash(7,n.powMod(o,c,u),g),b=this.computeD(c,this.a3,y),this.smpstate=i.SMPSTATE_EXPECT4,r=s.packINT(8)+s.packMPIs([this.p,this.q,O,M,_,this.r,y,b]),r=s.packTLV(4,r);break;case i.SMPSTATE_EXPECT3:s.debug.call(this,"smp tlv 4"),w=s.readLen(e.msg.substr(0,4));if(w!==8)return this.abort();e=s.unpackMPIs(8,e.msg.substring(4));if(!s.checkGroup(e[0],a)||!s.checkGroup(e[1],a)||!s.checkGroup(e[5],a))return this.abort();h=s.multPowMod(this.g3,e[3],e[0],e[2],u),p=s.multPowMod(o,e[3],this.g2,e[4],u),p=n.multMod(p,n.powMod(e[1],e[2],u),u);if(!s.ZKP(6,e[2],h,p))return this.abort();d=s.multPowMod(o,e[7],this.g3ao,e[6],u),this.QoQ=n.divMod(e[1],this.q,u),v=s.multPowMod(this.QoQ,e[7],e[5],e[6],u);if(!s.ZKP(7,e[6],d,v))return this.abort();this.computeR(),c=s.randomExponent(),g=n.powMod(this.QoQ,c,u),y=s.smpHash(8,n.powMod(o,c,u),g),b=this.computeD(c,this.a3,y),r=s.packINT(3)+s.packMPIs([this.r,y,b]),r=s.packTLV(5,r),m=this.computeRab(e[5]),E=!!n.equals(m,n.divMod(e[0],this.p,u)),this.trigger("trust",[E,"answered"]),this.init();break;case i.SMPSTATE_EXPECT4:s.debug.call(this,"smp tlv 5"),w=s.readLen(e.msg.substr(0,4));if(w!==3)return this.abort();e=s.unpackMPIs(3,e.msg.substring(4));if(!s.checkGroup(e[0],a))return this.abort();d=s.multPowMod(o,e[2],this.g3ao,e[1],u),v=s.multPowMod(this.QoQ,e[2],e[0],e[1],u);if(!s.ZKP(8,e[1],d,v))return this.abort();m=this.computeRab(e[0]),E=!!n.equals(m,this.PoP),this.trigger("trust",[E,"asked"]),this.init();return}this.sendMsg(r)},l.prototype.sendMsg=function(e){this.trigger("send",[this.ssid,"\0"+e])},l.prototype.rcvSecret=function(e,t){s.debug.call(this,"receive secret");var n,r=!1;this.smpstate===i.SMPSTATE_EXPECT0?n=this.answer:(n=this.initiate,r=!0),this.makeSecret(r,e),n.call(this,t)},l.prototype.answer=function(){s.debug.call(this,"smp answer");var e=s.randomExponent();this.computePQ(e);var t=s.randomExponent(),r=s.randomExponent(),a=s.multPowMod(o,t,this.g2,r,u),f=s.smpHash(5,n.powMod(this.g3,t,u),a),l=this.computeD(t,e,f),c=this.computeD(r,this.secret,f);this.smpstate=i.SMPSTATE_EXPECT3;var h=s.packINT(11)+s.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3,this.p,this.q,f,l,c]);this.sendMsg(s.packTLV(3,h))},l.prototype.initiate=function(e){s.debug.call(this,"smp initiate"),this.smpstate!==i.SMPSTATE_EXPECT1&&this.abort(),this.makeG2s();var t=s.randomExponent(),n=s.randomExponent();this.c2=this.computeC(1,t),this.c3=this.computeC(2,n),this.d2=this.computeD(t,this.a2,this.c2),this.d3=this.computeD(n,this.a3,this.c3),this.smpstate=i.SMPSTATE_EXPECT2;var r="",o=2;e&&(r+=e,r+="\0",o=7),r+=s.packINT(6)+s.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3]),this.sendMsg(s.packTLV(o,r))},l.prototype.abort=function(){this.init(),this.sendMsg(s.packTLV(6,"")),this.trigger("abort")}}.call(this),function(){"use strict";function m(e){if(!(this instanceof m))return new m(e);e=e||{};if(!(!e.priv||e.priv instanceof c))throw new Error("Requires long-lived DSA key.");this.priv=e.priv?e.priv:new c,this.fragment_size=e.fragment_size||0;if(this.fragment_size<0)throw new Error("Fragment size must be a positive integer.");this.send_interval=e.send_interval||0;if(this.send_interval<0)throw new Error("Send interval must be a positive integer.");this.outgoing=[],this.our_instance_tag=e.instance_tag||m.makeInstanceTag(),this.debug=!!e.debug,this.smw=e.smw,this.init();var t=this;["sendMsg","receiveMsg"].forEach(function(e){t[e]=t[e].bind(t)}),r.call(this)}var e=this,t,n,r,i,s,o,u,a,f,l,c;typeof module!="undefined"&&module.exports?(module.exports=m,t=require("../vendor/crypto.js"),n=require("../vendor/bigint.js"),r=require("../vendor/eventemitter.js"),s=require("path").join(__dirname,"/sm-webworker.js"),o=require("./const.js"),u=require("./helpers.js"),a=require("./parse.js"),f=require("./ake.js"),l=require("./sm.js"),c=require("./dsa.js"),m.CONST=o):(Object.keys(e.OTR).forEach(function(t){m[t]=e.OTR[t]}),e.OTR=m,t=e.CryptoJS,n=e.BigInt,r=e.EventEmitter,i=e.Worker,s="sm-webworker.js",o=m.CONST,u=m.HLP,a=m.Parse,f=m.AKE,l=m.SM,c=e.DSA);var h=n.str2bigInt(o.G,10),p=n.str2bigInt(o.N,16),d=Math.pow(2,53)-1,v=Math.pow(2,31)-1;u.extend(m,r),m.prototype.init=function(){this.msgstate=o.MSGSTATE_PLAINTEXT,this.authstate=o.AUTHSTATE_NONE,this.ALLOW_V2=!0,this.ALLOW_V3=!0,this.REQUIRE_ENCRYPTION=!1,this.SEND_WHITESPACE_TAG=!1,this.WHITESPACE_START_AKE=!1,this.ERROR_START_AKE=!1,a.initFragment(this),this.their_y=null,this.their_old_y=null,this.their_keyid=0,this.their_priv_pk=null,this.their_instance_tag="\0\0\0\0",this.our_dh=this.dh(),this.our_old_dh=this.dh(),this.our_keyid=2,this.sessKeys=[new Array(2),new Array(2)],this.storedMgs=[],this.oldMacKeys=[],this.sm=null,this._akeInit(),this.receivedPlaintext=!1},m.prototype._akeInit=function(){this.ake=new f(this),this.transmittedRS=!1,this.ssid=null},m.prototype._SMW=function(e,t){this.otr=e;var r={path:s,seed:n.getSeed};typeof e.smw=="object"&&Object.keys(e.smw).forEach(function(t){r[t]=e.smw[t]}),typeof module!="undefined"&&module.exports&&(i=require("webworker-threads").Worker),this.worker=new i(r.path);var o=this;this.worker.onmessage=function(e){var t=e.data;if(!t)return;o.trigger(t.method,t.args)},this.worker.postMessage({type:"seed",seed:r.seed(),imports:r.imports}),this.worker.postMessage({type:"init",reqs:t})},u.extend(m.prototype._SMW,r),["handleSM","rcvSecret","abort"].forEach(function(e){m.prototype._SMW.prototype[e]=function(){this.worker.postMessage({type:"method",method:e,args:Array.prototype.slice.call(arguments,0)})}}),m.prototype._smInit=function(){var e={ssid:this.ssid,our_fp:this.priv.fingerprint(),their_fp:this.their_priv_pk.fingerprint(),debug:this.debug};this.smw?(this.sm&&this.sm.worker.terminate(),this.sm=new this._SMW(this,e)):this.sm=new l(e);var t=this;["trust","abort","question"].forEach(function(e){t.sm.on(e,function(){t.trigger("smp",[e].concat(Array.prototype.slice.call(arguments)))})}),this.sm.on("send",function(e,n){t.ssid===e&&(n=t.prepareMsg(n),t.io(n))})},m.prototype.io=function(e,t){e=[].concat(e).map(function(e){return{msg:e,meta:t}}),this.outgoing=this.outgoing.concat(e);var n=this;(function r(e){if(!e){if(!n.outgoing.length)return;var t=n.outgoing.shift();n.trigger("io",[t.msg,t.meta])}setTimeout(r,e?0:n.send_interval)})(!0)},m.prototype.dh=function(){var t={privateKey:n.randBigInt(320)};return t.publicKey=n.powMod(h,t.privateKey,p),t},m.prototype.DHSession=function g(e,r){if(!(this instanceof g))return new g(e,r);var i=n.powMod(r,e.privateKey,p),s=u.packMPI(i);this.id=u.mask(u.h2("\0",s),0,64);var o=n.greater(e.publicKey,r),a=o?"\ 1":"\ 2",f=o?"\ 2":"\ 1";this.sendenc=u.mask(u.h1(a,s),0,128),this.sendmac=t.SHA1(t.enc.Latin1.parse(this.sendenc)),this.sendmac=this.sendmac.toString(t.enc.Latin1),this.rcvenc=u.mask(u.h1(f,s),0,128),this.rcvmac=t.SHA1(t.enc.Latin1.parse(this.rcvenc)),this.rcvmac=this.rcvmac.toString(t.enc.Latin1),this.rcvmacused=!1,this.extra_symkey=u.h2("ÿ",s),this.send_counter=0,this.rcv_counter=0},m.prototype.rotateOurKeys=function(){var e=this;this.sessKeys[1].forEach(function(t){t&&t.rcvmacused&&e.oldMacKeys.push(t.rcvmac)}),this.our_old_dh=this.our_dh,this.our_dh=this.dh(),this.our_keyid+=1,this.sessKeys[1][0]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[0][1],this.sessKeys[0]=[this.their_y?new this.DHSession(this.our_dh,this.their_y):null,this.their_old_y?new this.DHSession(this.our_dh,this.their_old_y):null]},m.prototype.rotateTheirKeys=function(e){this.their_keyid+=1;var t=this;this.sessKeys.forEach(function(e){e[1]&&e[1].rcvmacused&&t.oldMacKeys.push(e[1].rcvmac)}),this.their_old_y=this.their_y,this.sessKeys[0][1]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[1][0],this.their_y=e,this.sessKeys[0][0]=new this.DHSession(this.our_dh,this.their_y),this.sessKeys[1][0]=new this.DHSession(this.our_old_dh,this.their_y)},m.prototype.prepareMsg=function(e,n){if(this.msgstate!==o.MSGSTATE_ENCRYPTED||this.their_keyid===0)return this.error("Not ready to encrypt.");var r=this.sessKeys[1][0];if(r.send_counter>=d)return this.error("Should have rekeyed by now.");r.send_counter+=1;var i=u.packCtr(r.send_counter),s=this.ake.otr_version+"\ 3",a=this.ake.otr_version===o.OTR_VERSION_3;a&&(s+=this.our_instance_tag,s+=this.their_instance_tag),s+="\0",s+=u.packINT(this.our_keyid-1),s+=u.packINT(this.their_keyid),s+=u.packMPI(this.our_dh.publicKey),s+=i.substring(0,8);if(Math.ceil(e.length/8)>=v)return this.error("Message is too long.");var f=u.encryptAes(t.enc.Latin1.parse(e),r.sendenc,i);return s+=u.packData(f),s+=u.make1Mac(s,r.sendmac),s+=u.packData(this.oldMacKeys.splice(0).join("")),s=u.wrapMsg(s,this.fragment_size,a,this.our_instance_tag,this.their_instance_tag),s[0]?this.error(s[0]):(n&&this.trigger("file",["send",r.extra_symkey,n]),s[1])},m.prototype.handleDataMsg=function(e){var n=e.version+e.type;this.ake.otr_version===o.OTR_VERSION_3&&(n+=e.instance_tags);var r=["BYTE","INT","INT","MPI","CTR","DATA","MAC","DATA"];e=u.splitype(r,e.msg);var i=e[0]==="\ 1";if(this.msgstate!==o.MSGSTATE_ENCRYPTED||e.length!==8){i||this.error("Received an unreadable encrypted message.",!0);return}var s=this.our_keyid-u.readLen(e[2]),a=this.their_keyid-u.readLen(e[1]);if(s<0||s>1){i||this.error("Not of our latest keys.",!0);return}if(a<0||a>1){i||this.error("Not of your latest keys.",!0);return}var f=a?this.their_old_y:this.their_y;if(a===1&&!f){i||this.error("Do not have that key.");return}var l=this.sessKeys[s][a],c=u.unpackCtr(e[4]);if(c<=l.rcv_counter){i||this.error("Counter in message is not larger.");return}l.rcv_counter=c,n+=e.slice(0,6).join("");var h=u.make1Mac(n,l.rcvmac);if(!u.compare(e[6],h)){i||this.error("MACs do not match.");return}l.rcvmacused=!0;var p=u.decryptAes(e[5].substring(4),l.rcvenc,u.padCtr(e[4]));p=p.toString(t.enc.Latin1),s||this.rotateOurKeys(),a||this.rotateTheirKeys(u.readMPI(e[3]));var d=p.indexOf("\0");return~d&&(this.handleTLVs(p.substring(d+1),l),p=p.substring(0,d)),p=t.enc.Latin1.parse(p),p.toString(t.enc.Utf8)},m.prototype.handleTLVs=function(e,n){var r,i,s;for(;e.length;){r=u.unpackSHORT(e.substr(0,2)),i=u.unpackSHORT(e.substr(2,2)),s=e.substr(4,i);if(s.length<i)break;switch(r){case 1:this.msgstate=o.MSGSTATE_FINISHED,this.trigger("status",[o.STATUS_END_OTR]);break;case 2:case 3:case 4:case 5:case 6:case 7:if(this.msgstate!==o.MSGSTATE_ENCRYPTED){this.sm&&this.sm.abort();return}this.sm||this._smInit(),this.sm.handleSM({msg:s,type:r});break;case 8:s=s.substring(4),s=t.enc.Latin1.parse(s),s=s.toString(t.enc.Utf8),this.trigger("file",["receive",n.extra_symkey,s])}e=e.substring(4+i)}},m.prototype.smpSecret=function(e,n){if(this.msgstate!==o.MSGSTATE_ENCRYPTED)return this.error("Must be encrypted for SMP.");if(typeof e!="string"||e.length<1)return this.error("Secret is required.");this.sm||this._smInit(),e=t.enc.Utf8.parse(e).toString(t.enc.Latin1),n=t.enc.Utf8.parse(n).toString(t.enc.Latin1),this.sm.rcvSecret(e,n)},m.prototype.sendQueryMsg=function(){var e={},t=o.OTR_TAG;this.ALLOW_V2&&(e[2]=!0),this.ALLOW_V3&&(e[3]=!0);var n=Object.keys(e);n.length&&(t+="v",n.forEach(function(e){e!=="1"&&(t+=e)}),t+="?"),this.io(t),this.trigger("status",[o.STATUS_SEND_QUERY])},m.prototype.sendMsg=function(e,n){if(this.REQUIRE_ENCRYPTION||this.msgstate!==o.MSGSTATE_PLAINTEXT)e=t.enc.Utf8.parse(e),e=e.toString(t.enc.Latin1);switch(this.msgstate){case o.MSGSTATE_PLAINTEXT:if(this.REQUIRE_ENCRYPTION){this.storedMgs.push({msg:e,meta:n}),this.sendQueryMsg();return}this.SEND_WHITESPACE_TAG&&!this.receivedPlaintext&&(e+=o.WHITESPACE_TAG,this.ALLOW_V3&&(e+=o.WHITESPACE_TAG_V3),this.ALLOW_V2&&(e+=o.WHITESPACE_TAG_V2));break;case o.MSGSTATE_FINISHED:this.storedMgs.push({msg:e,meta:n}),this.error("Message cannot be sent at this time.");return;case o.MSGSTATE_ENCRYPTED:e=this.prepareMsg(e);break;default:throw new Error("Unknown message state.")}e&&this.io(e,n)},m.prototype.receiveMsg=function(e){e=a.parseMsg(this,e);if(!e)return;switch(e.cls){case"error":this.error(e.msg);return;case"ake":if(e.version===o.OTR_VERSION_3&&this.checkInstanceTags(e.instance_tags))return;this.ake.handleAKE(e);return;case"data":if(e.version===o.OTR_VERSION_3&&this.checkInstanceTags(e.instance_tags))return;e.msg=this.handleDataMsg(e),e.encrypted=!0;break;case"query":this.msgstate===o.MSGSTATE_ENCRYPTED&&this._akeInit(),this.doAKE(e);break;default:(this.REQUIRE_ENCRYPTION||this.msgstate!==o.MSGSTATE_PLAINTEXT)&&this.error("Received an unencrypted message."),this.receivedPlaintext=!0,this.WHITESPACE_START_AKE&&e.ver.length>0&&this.doAKE(e)}e.msg&&this.trigger("ui",[e.msg,!!e.encrypted])},m.prototype.checkInstanceTags=function(e){var t=u.readLen(e.substr(0,4)),n=u.readLen(e.substr(4,4));if(n&&n!==u.readLen(this.our_instance_tag))return!0;if(u.readLen(this.their_instance_tag)){if(u.readLen(this.their_instance_tag)!==t)return!0}else{if(t<100)return!0;this.their_instance_tag=u.packINT(t)}},m.prototype.doAKE=function(e){this.ALLOW_V3&&~e.ver.indexOf(o.OTR_VERSION_3)?this.ake.initiateAKE(o.OTR_VERSION_3):this.ALLOW_V2&&~e.ver.indexOf(o.OTR_VERSION_2)?this.ake.initiateAKE(o.OTR_VERSION_2):this.error("OTR conversation requested, but no compatible protocol version found.")},m.prototype.error=function(e,t){if(t){this.debug||(e="An OTR error has occurred."),e="?OTR Error:"+e,this.io(e);return}this.trigger("error",[e])},m.prototype.sendStored=function(){var e=this;this.storedMgs.splice(0).forEach(function(t){var n=e.prepareMsg(t.msg);e.io(n,t.meta)})},m.prototype.sendFile=function(e){if(this.msgstate!==o.MSGSTATE_ENCRYPTED)return this.error("Not ready to encrypt.");if(this.ake.otr_version!==o.OTR_VERSION_3)return this.error("Protocol v3 required.");if(!e)return this.error("Please specify a filename.");var n=t.enc.Utf8.parse(e);n=n.toString(t.enc.Latin1);if(n.length>=65532)return this.error("filename is too long.");var r="\0";r+="\0\b",r+=u.packSHORT(4+n.length),r+="\0\0\0\ 1",r+=n,r=this.prepareMsg(r,e),this.io(r)},m.prototype.endOtr=function(){this.msgstate===o.MSGSTATE_ENCRYPTED&&(this.sendMsg("\0\0\ 1\0\0"),this.sm&&(this.smw&&this.sm.worker.terminate(),this.sm=null)),this.msgstate=o.MSGSTATE_PLAINTEXT,this.receivedPlaintext=!1,this.trigger("status",[o.STATUS_END_OTR])},m.makeInstanceTag=function(){var e=n.randBigInt(32);return n.greater(n.str2bigInt("100",16),e)?m.makeInstanceTag():u.packINT(parseInt(n.bigInt2str(e,10),10))}}.call(this),{OTR:this.OTR,DSA:this.DSA}}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?module.exports=t():typeof define=="function"&&define.amd?define("moment",t):e.moment=t()}(this,function(){"use strict";function t(){return e.apply(null,arguments)}function n(t){e=t}function r(e){return Object.prototype.toString.call(e)==="[object Array]"}function i(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function s(e,t){var n=[],r;for(r=0;r<e.length;++r)n.push(t(e[r],r));return n}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e,t){for(var n in t)o(t,n)&&(e[n]=t[n]);return o(t,"toString")&&(e.toString=t.toString),o(t,"valueOf")&&(e.valueOf=t.valueOf),e}function a(e,t,n,r){return gn(e,t,n,r,!0).utc()}function f(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function l(e){return e._pf==null&&(e._pf=f()),e._pf}function c(e){if(e._isValid==null){var t=l(e);e._isValid=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated,e._strict&&(e._isValid=e._isValid&&t.charsLeftOver===0&&t.unusedTokens.length===0&&t.bigHour===undefined)}return e._isValid}function h(e){var t=a(NaN);return e!=null?u(l(t),e):l(t).userInvalidated=!0,t}function d(e,t){var n,r,i;typeof t._isAMomentObject!="undefined"&&(e._isAMomentObject=t._isAMomentObject),typeof t._i!="undefined"&&(e._i=t._i),typeof t._f!="undefined"&&(e._f=t._f),typeof t._l!="undefined"&&(e._l=t._l),typeof t._strict!="undefined"&&(e._strict=t._strict),typeof t._tzm!="undefined"&&(e._tzm=t._tzm),typeof t._isUTC!="undefined"&&(e._isUTC=t._isUTC),typeof t._offset!="undefined"&&(e._offset=t._offset),typeof t._pf!="undefined"&&(e._pf=l(t)),typeof t._locale!="undefined"&&(e._locale=t._locale);if(p.length>0)for(n in p)r=p[n],i=t[r],typeof i!="undefined"&&(e[r]=i);return e}function m(e){d(this,e),this._d=new Date(e._d!=null?e._d.getTime():NaN),v===!1&&(v=!0,t.updateOffset(this),v=!1)}function g(e){return e instanceof m||e!=null&&e._isAMomentObject!=null}function y(e){return e<0?Math.ceil(e):Math.floor(e)}function b(e){var t=+e,n=0;return t!==0&&isFinite(t)&&(n=y(t)),n}function w(e,t,n){var r=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),s=0,o;for(o=0;o<r;o++)(n&&e[o]!==t[o]||!n&&b(e[o])!==b(t[o]))&&s++;return s+i}function E(){}function T(e){return e?e.toLowerCase().replace("_","-"):e}function N(e){var t=0,n,r,i,s;while(t<e.length){s=T(e[t]).split("-"),n=s.length,r=T(e[t+1]),r=r?r.split("-"):null;while(n>0){i=C(s.slice(0,n).join("-"));if(i)return i;if(r&&r.length>=n&&w(s,r,!0)>=n-1)break;n--}t++}return null}function C(e){var t=null;if(!S[e]&&typeof module!="undefined"&&module&&module.exports)try{t=x._abbr,require("./locale/"+e),k(t)}catch(n){}return S[e]}function k(e,t){var n;return e&&(typeof t=="undefined"?n=A(e):n=L(e,t),n&&(x=n)),x._abbr}function L(e,t){return t!==null?(t.abbr=e,S[e]=S[e]||new E,S[e].set(t),k(e),S[e]):(delete S[e],null)}function A(e){var t;e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr);if(!e)return x;if(!r(e)){t=C(e);if(t)return t;e=[e]}return N(e)}function M(e,t){var n=e.toLowerCase();O[n]=O[n+"s"]=O[t]=e}function _(e){return typeof e=="string"?O[e]||O[e.toLowerCase()]:undefined}function D(e){var t={},n,r;for(r in e)o(e,r)&&(n=_(r),n&&(t[n]=e[r]));return t}function P(e,n){return function(r){return r!=null?(B(this,e,r),t.updateOffset(this,n),this):H(this,e)}}function H(e,t){return e._d["get"+(e._isUTC?"UTC":"")+t]()}function B(e,t,n){return e._d["set"+(e._isUTC?"UTC":"")+t](n)}function j(e,t){var n;if(typeof e=="object")for(n in e)this.set(n,e[n]);else{e=_(e);if(typeof this[e]=="function")return this[e](t)}return this}function F(e,t,n){var r=""+Math.abs(e),i=t-r.length,s=e>=0;return(s?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}function z(e,t,n,r){var i=r;typeof r=="string"&&(i=function(){return this[r]()}),e&&(U[e]=i),t&&(U[t[0]]=function(){return F(i.apply(this,arguments),t[1],t[2])}),n&&(U[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function W(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function X(e){var t=e.match(I),n,r;for(n=0,r=t.length;n<r;n++)U[t[n]]?t[n]=U[t[n]]:t[n]=W(t[n]);return function(i){var s="";for(n=0;n<r;n++)s+=t[n]instanceof Function?t[n].call(i,e):t[n];return s}}function V(e,t){return e.isValid()?(t=$(t,e.localeData()),R[t]=R[t]||X(t),R[t](e)):e.localeData().invalidDate()}function $(e,t){function r(e){return t.longDateFormat(e)||e}var n=5;q.lastIndex=0;while(n>=0&&q.test(e))e=e.replace(q,r),q.lastIndex=0,n-=1;return e}function ft(e){return typeof e=="function"&&Object.prototype.toString.call(e)==="[object Function]"}function lt(e,t,n){at[e]=ft(t)?t:function(e){return e&&n?n:t}}function ct(e,t){return o(at,e)?at[e](t._strict,t._locale):new RegExp(ht(e))}function ht(e){return e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,r,i){return t||n||r||i}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function dt(e,t){var n,r=t;typeof e=="string"&&(e=[e]),typeof t=="number"&&(r=function(e,n){n[t]=b(e)});for(n=0;n<e.length;n++)pt[e[n]]=r}function vt(e,t){dt(e,function(e,n,r,i){r._w=r._w||{},t(e,r._w,r,i)})}function mt(e,t,n){t!=null&&o(pt,e)&&pt[e](t,n._a,n,e)}function Tt(e,t){return(new Date(Date.UTC(e,t+1,0))).getUTCDate()}function Ct(e){return this._months[e.month()]}function Lt(e){return this._monthsShort[e.month()]}function At(e,t,n){var r,i,s;this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]);for(r=0;r<12;r++){i=a([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),!n&&!this._monthsParse[r]&&(s="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[r]=new RegExp(s.replace(".",""),"i"));if(n&&t==="MMMM"&&this._longMonthsParse[r].test(e))return r;if(n&&t==="MMM"&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}}function Ot(e,t){var n;if(typeof t=="string"){t=e.localeData().monthsParse(t);if(typeof t!="number")return e}return n=Math.min(e.date(),Tt(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Mt(e){return e!=null?(Ot(this,e),t.updateOffset(this,!0),this):H(this,"Month")}function _t(){return Tt(this.year(),this.month())}function Dt(e){var t,n=e._a;return n&&l(e).overflow===-2&&(t=n[yt]<0||n[yt]>11?yt:n[bt]<1||n[bt]>Tt(n[gt],n[yt])?bt:n[wt]<0||n[wt]>24||n[wt]===24&&(n[Et]!==0||n[St]!==0||n[xt]!==0)?wt:n[Et]<0||n[Et]>59?Et:n[St]<0||n[St]>59?St:n[xt]<0||n[xt]>999?xt:-1,l(e)._overflowDayOfYear&&(t<gt||t>bt)&&(t=bt),l(e).overflow=t),e}function Pt(e){t.suppressDeprecationWarnings===!1&&typeof console!="undefined"&&console.warn&&console.warn("Deprecation warning: "+e)}function Ht(e,t){var n=!0;return u(function(){return n&&(Pt(e+"\n"+(new Error).stack),n=!1),t.apply(this,arguments)},t)}function jt(e,t){Bt[e]||(Pt(t),Bt[e]=!0)}function Ut(e){var t,n,r=e._i,i=Ft.exec(r);if(i){l(e).iso=!0;for(t=0,n=It.length;t<n;t++)if(It[t][1].exec(r)){e._f=It[t][0];break}for(t=0,n=qt.length;t<n;t++)if(qt[t][1].exec(r)){e._f+=(i[6]||" ")+qt[t][0];break}r.match(st)&&(e._f+="Z"),ln(e)}else e._isValid=!1}function zt(e){var n=Rt.exec(e._i);if(n!==null){e._d=new Date(+n[1]);return}Ut(e),e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e))}function Wt(e,t,n,r,i,s,o){var u=new Date(e,t,n,r,i,s,o);return e<1970&&u.setFullYear(e),u}function Xt(e){var t=new Date(Date.UTC.apply(null,arguments));return e<1970&&t.setUTCFullYear(e),t}function Vt(e){return $t(e)?366:365}function $t(e){return e%4===0&&e%100!==0||e%400===0}function Kt(){return $t(this.year())}function Qt(e,t,n){var r=n-t,i=n-e.day(),s;return i>r&&(i-=7),i<r-7&&(i+=7),s=yn(e).add(i,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function Gt(e){return Qt(e,this._week.dow,this._week.doy).week}function Zt(){return this._week.dow}function en(){return this._week.doy}function tn(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function nn(e){var t=Qt(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}function rn(e,t,n,r,i){var s=6+i-r,o=Xt(e,0,1+s),u=o.getUTCDay(),a;return u<i&&(u+=7),n=n!=null?1*n:i,a=1+s+7*(t-1)-u+n,{year:a>0?e:e-1,dayOfYear:a>0?a:Vt(e-1)+a}}function sn(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}function on(e,t,n){return e!=null?e:t!=null?t:n}function un(e){var t=new Date;return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function an(e){var t,n,r=[],i,s;if(e._d)return;i=un(e),e._w&&e._a[bt]==null&&e._a[yt]==null&&fn(e),e._dayOfYear&&(s=on(e._a[gt],i[gt]),e._dayOfYear>Vt(s)&&(l(e)._overflowDayOfYear=!0),n=Xt(s,0,e._dayOfYear),e._a[yt]=n.getUTCMonth(),e._a[bt]=n.getUTCDate());for(t=0;t<3&&e._a[t]==null;++t)e._a[t]=r[t]=i[t];for(;t<7;t++)e._a[t]=r[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[wt]===24&&e._a[Et]===0&&e._a[St]===0&&e._a[xt]===0&&(e._nextDay=!0,e._a[wt]=0),e._d=(e._useUTC?Xt:Wt).apply(null,r),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[wt]=24)}function fn(e){var t,n,r,i,s,o,u;t=e._w,t.GG!=null||t.W!=null||t.E!=null?(s=1,o=4,n=on(t.GG,e._a[gt],Qt(yn(),1,4).year),r=on(t.W,1),i=on(t.E,1)):(s=e._locale._week.dow,o=e._locale._week.doy,n=on(t.gg,e._a[gt],Qt(yn(),s,o).year),r=on(t.w,1),t.d!=null?(i=t.d,i<s&&++r):t.e!=null?i=t.e+s:i=s),u=rn(n,r,i,o,s),e._a[gt]=u.year,e._dayOfYear=u.dayOfYear}function ln(e){if(e._f===t.ISO_8601){Ut(e);return}e._a=[],l(e).empty=!0;var n=""+e._i,r,i,s,o,u,a=n.length,f=0;s=$(e._f,e._locale).match(I)||[];for(r=0;r<s.length;r++)o=s[r],i=(n.match(ct(o,e))||[])[0],i&&(u=n.substr(0,n.indexOf(i)),u.length>0&&l(e).unusedInput.push(u),n=n.slice(n.indexOf(i)+i.length),f+=i.length),U[o]?(i?l(e).empty=!1:l(e).unusedTokens.push(o),mt(o,i,e)):e._strict&&!i&&l(e).unusedTokens.push(o);l(e).charsLeftOver=a-f,n.length>0&&l(e).unusedInput.push(n),l(e).bigHour===!0&&e._a[wt]<=12&&e._a[wt]>0&&(l(e).bigHour=undefined),e._a[wt]=cn(e._locale,e._a[wt],e._meridiem),an(e),Dt(e)}function cn(e,t,n){var r;return n==null?t:e.meridiemHour!=null?e.meridiemHour(t,n):e.isPM!=null?(r=e.isPM(n),r&&t<12&&(t+=12),!r&&t===12&&(t=0),t):t}function hn(e){var t,n,r,i,s;if(e._f.length===0){l(e).invalidFormat=!0,e._d=new Date(NaN);return}for(i=0;i<e._f.length;i++){s=0,t=d({},e),e._useUTC!=null&&(t._useUTC=e._useUTC),t._f=e._f[i],ln(t);if(!c(t))continue;s+=l(t).charsLeftOver,s+=l(t).unusedTokens.length*10,l(t).score=s;if(r==null||s<r)r=s,n=t}u(e,n||t)}function pn(e){if(e._d)return;var t=D(e._i);e._a=[t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],an(e)}function dn(e){var t=new m(Dt(vn(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=undefined),t}function vn(e){var t=e._i,n=e._f;return e._locale=e._locale||A(e._l),t===null||n===undefined&&t===""?h({nullInput:!0}):(typeof t=="string"&&(e._i=t=e._locale.preparse(t)),g(t)?new m(Dt(t)):(r(n)?hn(e):n?ln(e):i(t)?e._d=t:mn(e),e))}function mn(e){var n=e._i;n===undefined?e._d=new Date:i(n)?e._d=new Date(+n):typeof n=="string"?zt(e):r(n)?(e._a=s(n.slice(0),function(e){return parseInt(e,10)}),an(e)):typeof n=="object"?pn(e):typeof n=="number"?e._d=new Date(n):t.createFromInputFallback(e)}function gn(e,t,n,r,i){var s={};return typeof n=="boolean"&&(r=n,n=undefined),s._isAMomentObject=!0,s._useUTC=s._isUTC=i,s._l=n,s._i=e,s._f=t,s._strict=r,dn(s)}function yn(e,t,n,r){return gn(e,t,n,r,!1)}function En(e,t){var n,i;t.length===1&&r(t[0])&&(t=t[0]);if(!t.length)return yn();n=t[0];for(i=1;i<t.length;++i)if(!t[i].isValid()||t[i][e](n))n=t[i];return n}function Sn(){var e=[].slice.call(arguments,0);return En("isBefore",e)}function xn(){var e=[].slice.call(arguments,0);return En("isAfter",e)}function Tn(e){var t=D(e),n=t.year||0,r=t.quarter||0,i=t.month||0,s=t.week||0,o=t.day||0,u=t.hour||0,a=t.minute||0,f=t.second||0,l=t.millisecond||0;this._milliseconds=+l+f*1e3+a*6e4+u*36e5,this._days=+o+s*7,this._months=+i+r*3+n*12,this._data={},this._locale=A(),this._bubble()}function Nn(e){return e instanceof Tn}function Cn(e,t){z(e,0,0,function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+F(~~(e/60),2)+t+F(~~e%60,2)})}function Ln(e){var t=(e||"").match(st)||[],n=t[t.length-1]||[],r=(n+"").match(kn)||["-",0,0],i=+(r[1]*60)+b(r[2]);return r[0]==="+"?i:-i}function An(e,n){var r,s;return n._isUTC?(r=n.clone(),s=(g(e)||i(e)?+e:+yn(e))- +r,r._d.setTime(+r._d+s),t.updateOffset(r,!1),r):yn(e).local()}function On(e){return-Math.round(e._d.getTimezoneOffset()/15)*15}function Mn(e,n){var r=this._offset||0,i;return e!=null?(typeof e=="string"&&(e=Ln(e)),Math.abs(e)<16&&(e*=60),!this._isUTC&&n&&(i=On(this)),this._offset=e,this._isUTC=!0,i!=null&&this.add(i,"m"),r!==e&&(!n||this._changeInProgress?Kn(this,Wn(e-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?r:On(this)}function _n(e,t){return e!=null?(typeof e!="string"&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function Dn(e){return this.utcOffset(0,e)}function Pn(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(On(this),"m")),this}function Hn(){return this._tzm?this.utcOffset(this._tzm):typeof this._i=="string"&&this.utcOffset(Ln(this._i)),this}function Bn(e){return e=e?yn(e).utcOffset():0,(this.utcOffset()-e)%60===0}function jn(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Fn(){if(typeof this._isDSTShifted!="undefined")return this._isDSTShifted;var e={};d(e,this),e=vn(e);if(e._a){var t=e._isUTC?a(e._a):yn(e._a);this._isDSTShifted=this.isValid()&&w(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function In(){return!this._isUTC}function qn(){return this._isUTC}function Rn(){return this._isUTC&&this._offset===0}function Wn(e,t){var n=e,r=null,i,s,u;return Nn(e)?n={ms:e._milliseconds,d:e._days,M:e._months}:typeof e=="number"?(n={},t?n[t]=e:n.milliseconds=e):(r=Un.exec(e))?(i=r[1]==="-"?-1:1,n={y:0,d:b(r[bt])*i,h:b(r[wt])*i,m:b(r[Et])*i,s:b(r[St])*i,ms:b(r[xt])*i}):(r=zn.exec(e))?(i=r[1]==="-"?-1:1,n={y:Xn(r[2],i),M:Xn(r[3],i),d:Xn(r[4],i),h:Xn(r[5],i),m:Xn(r[6],i),s:Xn(r[7],i),w:Xn(r[8],i)}):n==null?n={}:typeof n=="object"&&("from"in n||"to"in n)&&(u=$n(yn(n.from),yn(n.to)),n={},n.ms=u.milliseconds,n.M=u.months),s=new Tn(n),Nn(e)&&o(e,"_locale")&&(s._locale=e._locale),s}function Xn(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Vn(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t- +e.clone().add(n.months,"M"),n}function $n(e,t){var n;return t=An(t,e),e.isBefore(t)?n=Vn(e,t):(n=Vn(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n}function Jn(e,t){return function(n,r){var i,s;return r!==null&&!isNaN(+r)&&(jt(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period)."),s=n,n=r,r=s),n=typeof n=="string"?+n:n,i=Wn(n,r),Kn(this,i,e),this}}function Kn(e,n,r,i){var s=n._milliseconds,o=n._days,u=n._months;i=i==null?!0:i,s&&e._d.setTime(+e._d+s*r),o&&B(e,"Date",H(e,"Date")+o*r),u&&Ot(e,H(e,"Month")+u*r),i&&t.updateOffset(e,o||u)}function Yn(e,t){var n=e||yn(),r=An(n,this).startOf("day"),i=this.diff(r,"days",!0),s=i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse";return this.format(t&&t[s]||this.localeData().calendar(s,this,yn(n)))}function Zn(){return new m(this)}function er(e,t){var n;return t=_(typeof t!="undefined"?t:"millisecond"),t==="millisecond"?(e=g(e)?e:yn(e),+this>+e):(n=g(e)?+e:+yn(e),n<+this.clone().startOf(t))}function tr(e,t){var n;return t=_(typeof t!="undefined"?t:"millisecond"),t==="millisecond"?(e=g(e)?e:yn(e),+this<+e):(n=g(e)?+e:+yn(e),+this.clone().endOf(t)<n)}function nr(e,t,n){return this.isAfter(e,n)&&this.isBefore(t,n)}function rr(e,t){var n;return t=_(t||"millisecond"),t==="millisecond"?(e=g(e)?e:yn(e),+this===+e):(n=+yn(e),+this.clone().startOf(t)<=n&&n<=+this.clone().endOf(t))}function ir(e,t,n){var r=An(e,this),i=(r.utcOffset()-this.utcOffset())*6e4,s,o;return t=_(t),t==="year"||t==="month"||t==="quarter"?(o=sr(this,r),t==="quarter"?o/=3:t==="year"&&(o/=12)):(s=this-r,o=t==="second"?s/1e3:t==="minute"?s/6e4:t==="hour"?s/36e5:t==="day"?(s-i)/864e5:t==="week"?(s-i)/6048e5:s),n?o:y(o)}function sr(e,t){var n=(t.year()-e.year())*12+(t.month()-e.month()),r=e.clone().add(n,"months"),i,s;return t-r<0?(i=e.clone().add(n-1,"months"),s=(t-r)/(r-i)):(i=e.clone().add(n+1,"months"),s=(t-r)/(i-r)),-(n+s)}function or(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function ur(){var e=this.clone().utc();return 0<e.year()&&e.year()<=9999?"function"==typeof Date.prototype.toISOString?this.toDate().toISOString():V(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):V(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function ar(e){var n=V(this,e||t.defaultFormat);return this.localeData().postformat(n)}function fr(e,t){return this.isValid()?Wn({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function lr(e){return this.from(yn(),e)}function cr(e,t){return this.isValid()?Wn({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function hr(e){return this.to(yn(),e)}function pr(e){var t;return e===undefined?this._locale._abbr:(t=A(e),t!=null&&(this._locale=t),this)}function vr(){return this._locale}function mr(e){e=_(e);switch(e){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return e==="week"&&this.weekday(0),e==="isoWeek"&&this.isoWeekday(1),e==="quarter"&&this.month(Math.floor(this.month()/3)*3),this}function gr(e){return e=_(e),e===undefined||e==="millisecond"?this:this.startOf(e).add(1,e==="isoWeek"?"week":e).subtract(1,"ms")}function yr(){return+this._d-(this._offset||0)*6e4}function br(){return Math.floor(+this/1e3)}function wr(){return this._offset?new Date(+this):this._d}function Er(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Sr(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function xr(){return c(this)}function Tr(){return u({},l(this))}function Nr(){return l(this).overflow}function Cr(e,t){z(0,[e,e.length],0,t)}function kr(e,t,n){return Qt(yn([e,11,31+t-n]),t,n).week}function Lr(e){var t=Qt(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return e==null?t:this.add(e-t,"y")}function Ar(e){var t=Qt(this,1,4).year;return e==null?t:this.add(e-t,"y")}function Or(){return kr(this.year(),1,4)}function Mr(){var e=this.localeData()._week;return kr(this.year(),e.dow,e.doy)}function _r(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}function Pr(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function Br(e){return this._weekdays[e.day()]}function Fr(e){return this._weekdaysShort[e.day()]}function qr(e){return this._weekdaysMin[e.day()]}function Rr(e){var t,n,r;this._weekdaysParse=this._weekdaysParse||[];for(t=0;t<7;t++){this._weekdaysParse[t]||(n=yn([2e3,1]).day(t),r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[t]=new RegExp(r.replace(".",""),"i"));if(this._weekdaysParse[t].test(e))return t}}function Ur(e){var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return e!=null?(e=Pr(e,this.localeData()),this.add(e-t,"d")):t}function zr(e){var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function Wr(e){return e==null?this.day()||7:this.day(this.day()%7?e:e-7)}function Xr(e,t){z(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Vr(e,t){return t._meridiemParse}function $r(e){return(e+"").toLowerCase().charAt(0)==="p"}function Kr(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function ei(e,t){t[xt]=b(("0."+e)*1e3)}function ni(){return this._isUTC?"UTC":""}function ri(){return this._isUTC?"Coordinated Universal Time":""}function oi(e){return yn(e*1e3)}function ui(){return yn.apply(null,arguments).parseZone()}function fi(e,t,n){var r=this._calendar[e];return typeof r=="function"?r.call(t,n):r}function ci(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])}function pi(){return this._invalidDate}function mi(e){return this._ordinal.replace("%d",e)}function gi(e){return e}function bi(e,t,n,r){var i=this._relativeTime[n];return typeof i=="function"?i(e,t,n,r):i.replace(/%d/i,e)}function wi(e,t){var n=this._relativeTime[e>0?"future":"past"];return typeof n=="function"?n(t):n.replace(/%s/i,t)}function Ei(e){var t,n;for(n in e)t=e[n],typeof t=="function"?this[n]=t:this["_"+n]=t;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function xi(e,t,n,r){var i=A(),s=a().set(r,t);return i[n](s,e)}function Ti(e,t,n,r,i){typeof e=="number"&&(t=e,e=undefined),e=e||"";if(t!=null)return xi(e,t,n,i);var s,o=[];for(s=0;s<r;s++)o[s]=xi(e,s,n,i);return o}function Ni(e,t){return Ti(e,t,"months",12,"month")}function Ci(e,t){return Ti(e,t,"monthsShort",12,"month")}function ki(e,t){return Ti(e,t,"weekdays",7,"day")}function Li(e,t){return Ti(e,t,"weekdaysShort",7,"day")}function Ai(e,t){return Ti(e,t,"weekdaysMin",7,"day")}function Mi(){var e=this._data;return this._milliseconds=Oi(this._milliseconds),this._days=Oi(this._days),this._months=Oi(this._months),e.milliseconds=Oi(e.milliseconds),e.seconds=Oi(e.seconds),e.minutes=Oi(e.minutes),e.hours=Oi(e.hours),e.months=Oi(e.months),e.years=Oi(e.years),this}function _i(e,t,n,r){var i=Wn(t,n);return e._milliseconds+=r*i._milliseconds,e._days+=r*i._days,e._months+=r*i._months,e._bubble()}function Di(e,t){return _i(this,e,t,1)}function Pi(e,t){return _i(this,e,t,-1)}function Hi(e){return e<0?Math.floor(e):Math.ceil(e)}function Bi(){var e=this._milliseconds,t=this._days,n=this._months,r=this._data,i,s,o,u,a;return e>=0&&t>=0&&n>=0||e<=0&&t<=0&&n<=0||(e+=Hi(Fi(n)+t)*864e5,t=0,n=0),r.milliseconds=e%1e3,i=y(e/1e3),r.seconds=i%60,s=y(i/60),r.minutes=s%60,o=y(s/60),r.hours=o%24,t+=y(o/24),a=y(ji(t)),n+=a,t-=Hi(Fi(a)),u=y(n/12),n%=12,r.days=t,r.months=n,r.years=u,this}function ji(e){return e*4800/146097}function Fi(e){return e*146097/4800}function Ii(e){var t,n,r=this._milliseconds;e=_(e);if(e==="month"||e==="year")return t=this._days+r/864e5,n=this._months+ji(t),e==="month"?n:n/12;t=this._days+Math.round(Fi(this._months));switch(e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return t*24+r/36e5;case"minute":return t*1440+r/6e4;case"second":return t*86400+r/1e3;case"millisecond":return Math.floor(t*864e5)+r;default:throw new Error("Unknown unit "+e)}}function qi(){return this._milliseconds+this._days*864e5+this._months%12*2592e6+b(this._months/12)*31536e6}function Ri(e){return function(){return this.as(e)}}function Qi(e){return e=_(e),this[e+"s"]()}function Gi(e){return function(){return this._data[e]}}function ss(){return y(this.days()/7)}function as(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function fs(e,t,n){var r=Wn(e).abs(),i=os(r.as("s")),s=os(r.as("m")),o=os(r.as("h")),u=os(r.as("d")),a=os(r.as("M")),f=os(r.as("y")),l=i<us.s&&["s",i]||s===1&&["m"]||s<us.m&&["mm",s]||o===1&&["h"]||o<us.h&&["hh",o]||u===1&&["d"]||u<us.d&&["dd",u]||a===1&&["M"]||a<us.M&&["MM",a]||f===1&&["y"]||["yy",f];return l[2]=t,l[3]=+e>0,l[4]=n,as.apply(null,l)}function ls(e,t){return us[e]===undefined?!1:t===undefined?us[e]:(us[e]=t,!0)}function cs(e){var t=this.localeData(),n=fs(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function ps(){var e=hs(this._milliseconds)/1e3,t=hs(this._days),n=hs(this._months),r,i,s;r=y(e/60),i=y(r/60),e%=60,r%=60,s=y(n/12),n%=12;var o=s,u=n,a=t,f=i,l=r,c=e,h=this.asSeconds();return h?(h<0?"-":"")+"P"+(o?o+"Y":"")+(u?u+"M":"")+(a?a+"D":"")+(f||l||c?"T":"")+(f?f+"H":"")+(l?l+"M":"")+(c?c+"S":""):"P0D"}var e,p=t.momentProperties=[],v=!1,S={},x,O={},I=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,q=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,R={},U={},J=/\d/,K=/\d\d/,Q=/\d{3}/,G=/\d{4}/,Y=/[+-]?\d{6}/,Z=/\d\d?/,et=/\d{1,3}/,tt=/\d{1,4}/,nt=/[+-]?\d{1,6}/,rt=/\d+/,it=/[+-]?\d+/,st=/Z|[+-]\d\d:?\d\d/gi,ot=/[+-]?\d+(\.\d{1,3})?/,ut=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,at={},pt={},gt=0,yt=1,bt=2,wt=3,Et=4,St=5,xt=6;z("M",["MM",2],"Mo",function(){return this.month()+1}),z("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),z("MMMM",0,0,function(e){return this.localeData().months(this,e)}),M("month","M"),lt("M",Z),lt("MM",Z,K),lt("MMM",ut),lt("MMMM",ut),dt(["M","MM"],function(e,t){t[yt]=b(e)-1}),dt(["MMM","MMMM"],function(e,t,n,r){var i=n._locale.monthsParse(e,r,n._strict);i!=null?t[yt]=i:l(n).invalidMonth=e});var Nt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),kt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Bt={};t.suppressDeprecationWarnings=!1;var Ft=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,It=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],qt=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],Rt=/^\/?Date\((\-?\d+)/i;t.createFromInputFallback=Ht("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),z(0,["YY",2],0,function(){return this.year()%100}),z(0,["YYYY",4],0,"year"),z(0,["YYYYY",5],0,"year"),z(0,["YYYYYY",6,!0],0,"year"),M("year","y"),lt("Y",it),lt("YY",Z,K),lt("YYYY",tt,G),lt("YYYYY",nt,Y),lt("YYYYYY",nt,Y),dt(["YYYYY","YYYYYY"],gt),dt("YYYY",function(e,n){n[gt]=e.length===2?t.parseTwoDigitYear(e):b(e)}),dt("YY",function(e,n){n[gt]=t.parseTwoDigitYear(e)}),t.parseTwoDigitYear=function(e){return b(e)+(b(e)>68?1900:2e3)};var Jt=P("FullYear",!1);z("w",["ww",2],"wo","week"),z("W",["WW",2],"Wo","isoWeek"),M("week","w"),M("isoWeek","W"),lt("w",Z),lt("ww",Z,K),lt("W",Z),lt("WW",Z,K),vt(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=b(e)});var Yt={dow:0,doy:6};z("DDD",["DDDD",3],"DDDo","dayOfYear"),M("dayOfYear","DDD"),lt("DDD",et),lt("DDDD",Q),dt(["DDD","DDDD"],function(e,t,n){n._dayOfYear=b(e)}),t.ISO_8601=function(){};var bn=Ht("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var e=yn.apply(null,arguments);return e<this?this:e}),wn=Ht("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var e=yn.apply(null,arguments);return e>this?this:e});Cn("Z",":"),Cn("ZZ",""),lt("Z",st),lt("ZZ",st),dt(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Ln(e)});var kn=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var Un=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,zn=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Wn.fn=Tn.prototype;var Qn=Jn(1,"add"),Gn=Jn(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var dr=Ht("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===undefined?this.localeData():this.locale(e)});z(0,["gg",2],0,function(){return this.weekYear()%100}),z(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Cr("gggg","weekYear"),Cr("ggggg","weekYear"),Cr("GGGG","isoWeekYear"),Cr("GGGGG","isoWeekYear"),M("weekYear","gg"),M("isoWeekYear","GG"),lt("G",it),lt("g",it),lt("GG",Z,K),lt("gg",Z,K),lt("GGGG",tt,G),lt("gggg",tt,G),lt("GGGGG",nt,Y),lt("ggggg",nt,Y),vt(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=b(e)}),vt(["gg","GG"],function(e,n,r,i){n[i]=t.parseTwoDigitYear(e)}),z("Q",0,0,"quarter"),M("quarter","Q"),lt("Q",J),dt("Q",function(e,t){t[yt]=(b(e)-1)*3}),z("D",["DD",2],"Do","date"),M("date","D"),lt("D",Z),lt("DD",Z,K),lt("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),dt(["D","DD"],bt),dt("Do",function(e,t){t[bt]=b(e.match(Z)[0],10)});var Dr=P("Date",!0);z("d",0,"do","day"),z("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),z("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),z("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),z("e",0,0,"weekday"),z("E",0,0,"isoWeekday"),M("day","d"),M("weekday","e"),M("isoWeekday","E"),lt("d",Z),lt("e",Z),lt("E",Z),lt("dd",ut),lt("ddd",ut),lt("dddd",ut),vt(["dd","ddd","dddd"],function(e,t,n){var r=n._locale.weekdaysParse(e);r!=null?t.d=r:l(n).invalidWeekday=e}),vt(["d","e","E"],function(e,t,n,r){t[r]=b(e)});var Hr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),jr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ir="Su_Mo_Tu_We_Th_Fr_Sa".split("_");z("H",["HH",2],0,"hour"),z("h",["hh",2],0,function(){return this.hours()%12||12}),Xr("a",!0),Xr("A",!1),M("hour","h"),lt("a",Vr),lt("A",Vr),lt("H",Z),lt("h",Z),lt("HH",Z,K),lt("hh",Z,K),dt(["H","HH"],wt),dt(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),dt(["h","hh"],function(e,t,n){t[wt]=b(e),l(n).bigHour=!0});var Jr=/[ap]\.?m?\.?/i,Qr=P("Hours",!0);z("m",["mm",2],0,"minute"),M("minute","m"),lt("m",Z),lt("mm",Z,K),dt(["m","mm"],Et);var Gr=P("Minutes",!1);z("s",["ss",2],0,"second"),M("second","s"),lt("s",Z),lt("ss",Z,K),dt(["s","ss"],St);var Yr=P("Seconds",!1);z("S",0,0,function(){return~~(this.millisecond()/100)}),z(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),z(0,["SSS",3],0,"millisecond"),z(0,["SSSS",4],0,function(){return this.millisecond()*10}),z(0,["SSSSS",5],0,function(){return this.millisecond()*100}),z(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),z(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),z(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),z(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),M("millisecond","ms"),lt("S",et,J),lt("SS",et,K),lt("SSS",et,Q);var Zr;for(Zr="SSSS";Zr.length<=9;Zr+="S")lt(Zr,rt);for(Zr="S";Zr.length<=9;Zr+="S")dt(Zr,ei);var ti=P("Milliseconds",!1);z("z",0,0,"zoneAbbr"),z("zz",0,0,"zoneName");var ii=m.prototype;ii.add=Qn,ii.calendar=Yn,ii.clone=Zn,ii.diff=ir,ii.endOf=gr,ii.format=ar,ii.from=fr,ii.fromNow=lr,ii.to=cr,ii.toNow=hr,ii.get=j,ii.invalidAt=Nr,ii.isAfter=er,ii.isBefore=tr,ii.isBetween=nr,ii.isSame=rr,ii.isValid=xr,ii.lang=dr,ii.locale=pr,ii.localeData=vr,ii.max=wn,ii.min=bn,ii.parsingFlags=Tr,ii.set=j,ii.startOf=mr,ii.subtract=Gn,ii.toArray=Er,ii.toObject=Sr,ii.toDate=wr,ii.toISOString=ur,ii.toJSON=ur,ii.toString=or,ii.unix=br,ii.valueOf=yr,ii.year=Jt,ii.isLeapYear=Kt,ii.weekYear=Lr,ii.isoWeekYear=Ar,ii.quarter=ii.quarters=_r,ii.month=Mt,ii.daysInMonth=_t,ii.week=ii.weeks=tn,ii.isoWeek=ii.isoWeeks=nn,ii.weeksInYear=Mr,ii.isoWeeksInYear=Or,ii.date=Dr,ii.day=ii.days=Ur,ii.weekday=zr,ii.isoWeekday=Wr,ii.dayOfYear=sn,ii.hour=ii.hours=Qr,ii.minute=ii.minutes=Gr,ii.second=ii.seconds=Yr,ii.millisecond=ii.milliseconds=ti,ii.utcOffset=Mn,ii.utc=Dn,ii.local=Pn,ii.parseZone=Hn,ii.hasAlignedHourOffset=Bn,ii.isDST=jn,ii.isDSTShifted=Fn,ii.isLocal=In,ii.isUtcOffset=qn,ii.isUtc=Rn,ii.isUTC=Rn,ii.zoneAbbr=ni,ii.zoneName=ri,ii.dates=Ht("dates accessor is deprecated. Use date instead.",Dr),ii.months=Ht("months accessor is deprecated. Use month instead",Mt),ii.years=Ht("years accessor is deprecated. Use year instead",Jt),ii.zone=Ht("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",_n);var si=ii,ai={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},li={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},hi="Invalid date",di="%d",vi=/\d{1,2}/,yi={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Si=E.prototype;Si._calendar=ai,Si.calendar=fi,Si._longDateFormat=li,Si.longDateFormat=ci,Si._invalidDate=hi,Si.invalidDate=pi,Si._ordinal=di,Si.ordinal=mi,Si._ordinalParse=vi,Si.preparse=gi,Si.postformat=gi,Si._relativeTime=yi,Si.relativeTime=bi,Si.pastFuture=wi,Si.set=Ei,Si.months=Ct,Si._months=Nt,Si.monthsShort=Lt,Si._monthsShort=kt,Si.monthsParse=At,Si.week=Gt,Si._week=Yt,Si.firstDayOfYear=en,Si.firstDayOfWeek=Zt,Si.weekdays=Br,Si._weekdays=Hr,Si.weekdaysMin=qr,Si._weekdaysMin=Ir,Si.weekdaysShort=Fr,Si._weekdaysShort=jr,Si.weekdaysParse=Rr,Si.isPM=$r,Si._meridiemParse=Jr,Si.meridiem=Kr,k("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=b(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+n}}),t.lang=Ht("moment.lang is deprecated. Use moment.locale instead.",k),t.langData=Ht("moment.langData is deprecated. Use moment.localeData instead.",A);var Oi=Math.abs,Ui=Ri("ms"),zi=Ri("s"),Wi=Ri("m"),Xi=Ri("h"),Vi=Ri("d"),$i=Ri("w"),Ji=Ri("M"),Ki=Ri("y"),Yi=Gi("milliseconds"),Zi=Gi("seconds"),es=Gi("minutes"),ts=Gi("hours"),ns=Gi("days"),rs=Gi("months"),is=Gi("years"),os=Math.round,us={s:45,m:45,h:22,d:26,M:11},hs=Math.abs,ds=Tn.prototype;ds.abs=Mi,ds.add=Di,ds.subtract=Pi,ds.as=Ii,ds.asMilliseconds=Ui,ds.asSeconds=zi,ds.asMinutes=Wi,ds.asHours=Xi,ds.asDays=Vi,ds.asWeeks=$i,ds.asMonths=Ji,ds.asYears=Ki,ds.valueOf=qi,ds._bubble=Bi,ds.get=Qi,ds.milliseconds=Yi,ds.seconds=Zi,ds.minutes=es,ds.hours=ts,ds.days=ns,ds.weeks=ss,ds.months=rs,ds.years=is,ds.humanize=cs,ds.toISOString=ps,ds.toString=ps,ds.toJSON=ps,ds.locale=pr,ds.localeData=vr,ds.toIsoString=Ht("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ps),ds.lang=dr,z("X",0,0,"unix"),z("x",0,0,"valueOf"),lt("x",it),lt("X",ot),dt("X",function(e,t,n){n._d=new Date(parseFloat(e,10)*1e3)}),dt("x",function(e,t,n){n._d=new Date(b(e))}),t.version="2.10.6",n(yn),t.fn=si,t.min=Sn,t.max=xn,t.utc=a,t.unix=oi,t.months=Ni,t.isDate=i,t.locale=k,t.invalid=h,t.duration=Wn,t.isMoment=g,t.weekdays=ki,t.parseZone=ui,t.localeData=A,t.isDuration=Nn,t.monthsShort=Ci,t.weekdaysMin=Ai,t.defineLocale=L,t.weekdaysShort=Li,t.normalizeUnits=_,t.relativeTimeThreshold=ls;var vs=t;return vs}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_af",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(e===1||e===8||e>=20?"ste":"de")},week:{dow:1,doy:4}});return t}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_de",["moment"],t):t(e.moment)}(this,function(e){"use strict";function t(e,t,n,r){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?i[n][0]:i[n][1]}var n=e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[Heute um] LT [Uhr]",sameElse:"L",nextDay:"[Morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[Gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_es",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t="Ene._Feb._Mar._Abr._May._Jun._Jul._Ago._Sep._Oct._Nov._Dic.".split("_"),n="Ene_Feb_Mar_Abr_May_Jun_Jul_Ago_Sep_Oct_Nov_Dic".split("_"),r=e.defineLocale("es",{months:"Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre".split("_"),monthsShort:function(e,r){return/-MMM-/.test(r)?n[e.month()]:t[e.month()]},weekdays:"Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mié._Jue._Vie._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(this.hours()!==1?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(this.hours()!==1?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(this.hours()!==1?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(this.hours()!==1?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(this.hours()!==1?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return r}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_fr",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(e){return e+(e===1?"er":"")},week:{dow:1,doy:4}});return t}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_he",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return e===2?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return e===2?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return e===2?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return e===2?"שנתיים":e%10===0&&e!==10?e+" שנה":e+" שנים"}}});return t}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_hu",["moment"],t):t(e.moment)}(this,function(e){"use strict";function n(e,t,n,r){var i=e,s;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return i+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return i+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return i+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return i+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return i+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" "),i=e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return e.charAt(1).toLowerCase()==="u"},meridiem:function(e,t,n){return e<12?n===!0?"de":"DE":n===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return i}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_id",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){e===12&&(e=0);if(t==="pagi")return e;if(t==="siang")return e>=11?e:e+12;if(t==="sore"||t==="malam")return e+12},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return t}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_it",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_ja",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"Ah時m分s秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah時m分",LLLL:"YYYY年M月D日Ah時m分 dddd"},meridiemParse:/午前|午後/i,isPM:function(e){return e==="午後"},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}});return t}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_nb",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tirs_ons_tors_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"H.mm",LTS:"H.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H.mm",LLLL:"dddd D. MMMM YYYY [kl.] H.mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_nl",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return/-MMM-/.test(r)?n[e.month()]:t[e.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(e===1||e===8||e>=20?"ste":"de")},week:{dow:1,doy:4}});return r}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_pl",["moment"],t):t(e.moment)}(this,function(e){"use strict";function r(e){return e%10<5&&e%10>1&&~~(e/10)%10!==1}function i(e,t,n){var i=e+" ";switch(n){case"m":return t?"minuta":"minutę";case"mm":return i+(r(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return i+(r(e)?"godziny":"godzin");case"MM":return i+(r(e)?"miesiące":"miesięcy");case"yy":return i+(r(e)?"lata":"lat")}}var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),s=e.defineLocale("pl",{months:function(e,r){return r===""?"("+n[e.month()]+"|"+t[e.month()]+")":/D MMMM/.test(r)?n[e.month()]:t[e.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:i,mm:i,h:i,hh:i,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:i,y:"rok",yy:i},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_pt-br",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return this.day()===0||this.day()===6?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"});return t}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_ru",["moment"],t):t(e.moment)}(this,function(e){"use strict";function t(e,t){var n=e.split("_");return t%10===1&&t%100!==11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){var i={mm:n?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return r==="m"?n?"минута":"минуту":e+" "+t(i[r],+e)}function r(e,t){var n={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},r=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(t)?"accusative":"nominative";return n[r][e.month()]}function i(e,t){var n={nominative:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},r=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(t)?"accusative":"nominative";return n[r][e.month()]}function s(e,t){var n={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},r=/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/.test(t)?"accusative":"nominative";return n[r][e.day()]}var o=e.defineLocale("ru",{months:r,monthsShort:i,weekdays:s,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return this.day()===2?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(e){if(e.week()===this.week())return this.day()===2?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:n,mm:n,h:"час",hh:n,d:"день",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:7}});return o}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_uk",["moment"],t):t(e.moment)}(this,function(e){"use strict";function t(e,t){var n=e.split("_");return t%10===1&&t%100!==11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){var i={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return r==="m"?n?"хвилина":"хвилину":r==="h"?n?"година":"годину":e+" "+t(i[r],+e)}function r(e,t){var n={nominative:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),accusative:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_")},r=/D[oD]? *MMMM?/.test(t)?"accusative":"nominative";return n[r][e.month()]}function i(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},r=/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative";return n[r][e.day()]}function s(e){return function(){return e+"о"+(this.hours()===11?"б":"")+"] LT"}}var o=e.defineLocale("uk",{months:r,monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:i,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:s("[Сьогодні "),nextDay:s("[Завтра "),lastDay:s("[Вчора "),nextWeek:s("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return s("[Минулої] dddd [").call(this);case 1:case 2:case 4:return s("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}});return o}),function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(require("../moment")):typeof define=="function"&&define.amd?define("moment_zh",["moment"],t):t(e.moment)}(this,function(e){"use strict";var t=e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm分",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日Ah点mm分",llll:"YYYY年MMMD日ddddAh点mm分"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return e===12&&(e=0),t==="凌晨"||t==="早上"||t==="上午"?e:t==="下午"||t==="晚上"?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=e*100+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:function(){return this.minutes()===0?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return this.minutes()===0?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return this.minutes()===0?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var t,n;return t=e().startOf("week"),n=this.unix()-t.unix()>=604800?"[下]":"[本]",this.minutes()===0?n+"dddAh点整":n+"dddAh点mm"},lastWeek:function(){var t,n;return t=e().startOf("week"),n=this.unix()<t.unix()?"[上]":"[本]",this.minutes()===0?n+"dddAh点整":n+"dddAh点mm"},sameElse:"LL"},ordinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}});return t}),function(e,t){define("moment_with_locales",["moment","moment_af","moment_de","moment_es","moment_fr","moment_he","moment_hu","moment_id","moment_it","moment_ja","moment_nb","moment_nl","moment_pl","moment_pt-br","moment_ru","moment_uk","moment_zh"],function(e){return e})}(this),function(e,t){typeof define=="function"&&define.amd?define("strophe-sha1",[],function(){return t()}):e.SHA1=t()}(this,function(){function e(e,r){e[r>>5]|=128<<24-r%32,e[(r+64>>9<<4)+15]=r;var o=new Array(80),u=1732584193,a=-271733879,f=-1732584194,l=271733878,c=-1009589776,h,p,d,v,m,g,y,b;for(h=0;h<e.length;h+=16){v=u,m=a,g=f,y=l,b=c;for(p=0;p<80;p++)p<16?o[p]=e[h+p]:o[p]=s(o[p-3]^o[p-8]^o[p-14]^o[p-16],1),d=i(i(s(u,5),t(p,a,f,l)),i(i(c,o[p]),n(p))),c=l,l=f,f=s(a,30),a=u,u=d;u=i(u,v),a=i(a,m),f=i(f,g),l=i(l,y),c=i(c,b)}return[u,a,f,l,c]}function t(e,t,n,r){return e<20?t&n|~t&r:e<40?t^n^r:e<60?t&n|t&r|n&r:t^n^r}function n(e){return e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514}function r(t,n){var r=o(t);r.length>16&&(r=e(r,t.length*8));var i=new Array(16),s=new Array(16);for(var u=0;u<16;u++)i[u]=r[u]^909522486,s[u]=r[u]^1549556828;var a=e(i.concat(o(n)),512+n.length*8);return e(s.concat(a),672)}function i(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535}function s(e,t){return e<<t|e>>>32-t}function o(e){var t=[],n=255;for(var r=0;r<e.length*8;r+=8)t[r>>5]|=(e.charCodeAt(r/8)&n)<<24-r%32;return t}function u(e){var t="",n=255;for(var r=0;r<e.length*32;r+=8)t+=String.fromCharCode(e[r>>5]>>>24-r%32&n);return t}function a(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n="",r,i;for(var s=0;s<e.length*4;s+=3){r=(e[s>>2]>>8*(3-s%4)&255)<<16|(e[s+1>>2]>>8*(3-(s+1)%4)&255)<<8|e[s+2>>2]>>8*(3-(s+2)%4)&255;for(i=0;i<4;i++)s*8+i*6>e.length*32?n+="=":n+=t.charAt(r>>6*(3-i)&63)}return n}return{b64_hmac_sha1:function(e,t){return a(r(e,t))},b64_sha1:function(t){return a(e(o(t),t.length*8))},binb2str:u,core_hmac_sha1:r,str_hmac_sha1:function(e,t){return u(r(e,t))},str_sha1:function(t){return u(e(o(t),t.length*8))}}}),function(e,t){typeof define=="function"&&define.amd?define("strophe-base64",[],function(){return t()}):e.Base64=t()}(this,function(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t={encode:function(t){var n="",r,i,s,o,u,a,f,l=0;do r=t.charCodeAt(l++),i=t.charCodeAt(l++),s=t.charCodeAt(l++),o=r>>2,u=(r&3)<<4|i>>4,a=(i&15)<<2|s>>6,f=s&63,isNaN(i)?(u=(r&3)<<4,a=f=64):isNaN(s)&&(f=64),n=n+e.charAt(o)+e.charAt(u)+e.charAt(a)+e.charAt(f);while(l<t.length);return n},decode:function(t){var n="",r,i,s,o,u,a,f,l=0;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");do o=e.indexOf(t.charAt(l++)),u=e.indexOf(t.charAt(l++)),a=e.indexOf(t.charAt(l++)),f=e.indexOf(t.charAt(l++)),r=o<<2|u>>4,i=(u&15)<<4|a>>2,s=(a&3)<<6|f,n+=String.fromCharCode(r),a!=64&&(n+=String.fromCharCode(i)),f!=64&&(n+=String.fromCharCode(s));while(l<t.length);return n}};return t}),function(e,t){typeof define=="function"&&define.amd?define("strophe-md5",[],function(){return t()}):e.MD5=t()}(this,function(e){var t=function(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535},n=function(e,t){return e<<t|e>>>32-t},r=function(e){var t=[];for(var n=0;n<e.length*8;n+=8)t[n>>5]|=(e.charCodeAt(n/8)&255)<<n%32;return t},i=function(e){var t="";for(var n=0;n<e.length*32;n+=8)t+=String.fromCharCode(e[n>>5]>>>n%32&255);return t},s=function(e){var t="0123456789abcdef",n="";for(var r=0;r<e.length*4;r++)n+=t.charAt(e[r>>2]>>r%4*8+4&15)+t.charAt(e[r>>2]>>r%4*8&15);return n},o=function(e,r,i,s,o,u){return t(n(t(t(r,e),t(s,u)),o),i)},u=function(e,t,n,r,i,s,u){return o(t&n|~t&r,e,t,i,s,u)},a=function(e,t,n,r,i,s,u){return o(t&r|n&~r,e,t,i,s,u)},f=function(e,t,n,r,i,s,u){return o(t^n^r,e,t,i,s,u)},l=function(e,t,n,r,i,s,u){return o(n^(t|~r),e,t,i,s,u)},c=function(e,n){e[n>>5]|=128<<n%32,e[(n+64>>>9<<4)+14]=n;var r=1732584193,i=-271733879,s=-1732584194,o=271733878,c,h,p,d;for(var v=0;v<e.length;v+=16)c=r,h=i,p=s,d=o,r=u(r,i,s,o,e[v+0],7,-680876936),o=u(o,r,i,s,e[v+1],12,-389564586),s=u(s,o,r,i,e[v+2],17,606105819),i=u(i,s,o,r,e[v+3],22,-1044525330),r=u(r,i,s,o,e[v+4],7,-176418897),o=u(o,r,i,s,e[v+5],12,1200080426),s=u(s,o,r,i,e[v+6],17,-1473231341),i=u(i,s,o,r,e[v+7],22,-45705983),r=u(r,i,s,o,e[v+8],7,1770035416),o=u(o,r,i,s,e[v+9],12,-1958414417),s=u(s,o,r,i,e[v+10],17,-42063),i=u(i,s,o,r,e[v+11],22,-1990404162),r=u(r,i,s,o,e[v+12],7,1804603682),o=u(o,r,i,s,e[v+13],12,-40341101),s=u(s,o,r,i,e[v+14],17,-1502002290),i=u(i,s,o,r,e[v+15],22,1236535329),r=a(r,i,s,o,e[v+1],5,-165796510),o=a(o,r,i,s,e[v+6],9,-1069501632),s=a(s,o,r,i,e[v+11],14,643717713),i=a(i,s,o,r,e[v+0],20,-373897302),r=a(r,i,s,o,e[v+5],5,-701558691),o=a(o,r,i,s,e[v+10],9,38016083),s=a(s,o,r,i,e[v+15],14,-660478335),i=a(i,s,o,r,e[v+4],20,-405537848),r=a(r,i,s,o,e[v+9],5,568446438),o=a(o,r,i,s,e[v+14],9,-1019803690),s=a(s,o,r,i,e[v+3],14,-187363961),i=a(i,s,o,r,e[v+8],20,1163531501),r=a(r,i,s,o,e[v+13],5,-1444681467),o=a(o,r,i,s,e[v+2],9,-51403784),s=a(s,o,r,i,e[v+7],14,1735328473),i=a(i,s,o,r,e[v+12],20,-1926607734),r=f(r,i,s,o,e[v+5],4,-378558),o=f(o,r,i,s,e[v+8],11,-2022574463),s=f(s,o,r,i,e[v+11],16,1839030562),i=f(i,s,o,r,e[v+14],23,-35309556),r=f(r,i,s,o,e[v+1],4,-1530992060),o=f(o,r,i,s,e[v+4],11,1272893353),s=f(s,o,r,i,e[v+7],16,-155497632),i=f(i,s,o,r,e[v+10],23,-1094730640),r=f(r,i,s,o,e[v+13],4,681279174),o=f(o,r,i,s,e[v+0],11,-358537222),s=f(s,o,r,i,e[v+3],16,-722521979),i=f(i,s,o,r,e[v+6],23,76029189),r=f(r,i,s,o,e[v+9],4,-640364487),o=f(o,r,i,s,e[v+12],11,-421815835),s=f(s,o,r,i,e[v+15],16,530742520),i=f(i,s,o,r,e[v+2],23,-995338651),r=l(r,i,s,o,e[v+0],6,-198630844),o=l(o,r,i,s,e[v+7],10,1126891415),s=l(s,o,r,i,e[v+14],15,-1416354905),i=l(i,s,o,r,e[v+5],21,-57434055),r=l(r,i,s,o,e[v+12],6,1700485571),o=l(o,r,i,s,e[v+3],10,-1894986606),s=l(s,o,r,i,e[v+10],15,-1051523),i=l(i,s,o,r,e[v+1],21,-2054922799),r=l(r,i,s,o,e[v+8],6,1873313359),o=l(o,r,i,s,e[v+15],10,-30611744),s=l(s,o,r,i,e[v+6],15,-1560198380),i=l(i,s,o,r,e[v+13],21,1309151649),r=l(r,i,s,o,e[v+4],6,-145523070),o=l(o,r,i,s,e[v+11],10,-1120210379),s=l(s,o,r,i,e[v+2],15,718787259),i=l(i,s,o,r,e[v+9],21,-343485551),r=t(r,c),i=t(i,h),s=t(s,p),o=t(o,d);return[r,i,s,o]},h={hexdigest:function(e){return s(c(r(e),e.length*8))},hash:function(e){return i(c(r(e),e.length*8))}};return h}),Function.prototype.bind||(Function.prototype.bind=function(e){var t=this,n=Array.prototype.slice,r=Array.prototype.concat,i=n.call(arguments,1);return function(){return t.apply(e?e:this,r.call(i,n.call(arguments,0)))}}),Array.isArray||(Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e){var t=this.length,n=Number(arguments[1])||0;n=n<0?Math.ceil(n):Math.floor(n),n<0&&(n+=t);for(;n<t;n++)if(n in this&&this[n]===e)return n;return-1}),define("strophe-polyfill",function(){}),function(e,t){if(typeof define=="function"&&define.amd)define("strophe-core",["strophe-sha1","strophe-base64","strophe-md5","strophe-polyfill"],function(){return t.apply(this,arguments)});else{var n=t(e.SHA1,e.Base64,e.MD5);window.Strophe=n.Strophe,window.$build=n.$build,window.$iq=n.$iq,window.$msg=n.$msg,window.$pres=n.$pres,window.SHA1=n.SHA1,window.Base64=n.Base64,window.MD5=n.MD5,window.b64_hmac_sha1=n.SHA1.b64_hmac_sha1,window.b64_sha1=n.SHA1.b64_sha1,window.str_hmac_sha1=n.SHA1.str_hmac_sha1,window.str_sha1=n.SHA1.str_sha1}}(this,function(e,t,n){function i(e,t){return new r.Builder(e,t)}function s(e){return new r.Builder("message",e)}function o(e){return new r.Builder("iq",e)}function u(e){return new r.Builder("presence",e)}var r;return r={VERSION:"@VERSION@",NS:{HTTPBIND:"http://jabber.org/protocol/httpbind",BOSH:"urn:xmpp:xbosh",CLIENT:"jabber:client",AUTH:"jabber:iq:auth",ROSTER:"jabber:iq:roster",PROFILE:"jabber:iq:profile",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",MUC:"http://jabber.org/protocol/muc",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",STREAM:"http://etherx.jabber.org/streams",FRAMING:"urn:ietf:params:xml:ns:xmpp-framing",BIND:"urn:ietf:params:xml:ns:xmpp-bind",SESSION:"urn:ietf:params:xml:ns:xmpp-session",VERSION:"jabber:iq:version",STANZAS:"urn:ietf:params:xml:ns:xmpp-stanzas",XHTML_IM:"http://jabber.org/protocol/xhtml-im",XHTML:"http://www.w3.org/1999/xhtml"},XHTML:{tags:["a","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body"],attributes:{a:["href"],blockquote:["style"],br:[],cite:["style"],em:[],img:["src","alt","style","height","width"],li:["style"],ol:["style"],p:["style"],span:["style"],strong:[],ul:["style"],body:[]},css:["background-color","color","font-family","font-size","font-style","font-weight","margin-left","margin-right","text-align","text-decoration"],validTag:function(e){for(var t=0;t<r.XHTML.tags.length;t++)if(e==r.XHTML.tags[t])return!0;return!1},validAttribute:function(e,t){if(typeof r.XHTML.attributes[e]!="undefined"&&r.XHTML.attributes[e].length>0)for(var n=0;n<r.XHTML.attributes[e].length;n++)if(t==r.XHTML.attributes[e][n])return!0;return!1},validCSS:function(e){for(var t=0;t<r.XHTML.css.length;t++)if(e==r.XHTML.css[t])return!0;return!1}},Status:{ERROR:0,CONNECTING:1,CONNFAIL:2,AUTHENTICATING:3,AUTHFAIL:4,CONNECTED:5,DISCONNECTED:6,DISCONNECTING:7,ATTACHED:8,REDIRECT:9},LogLevel:{DEBUG:0,INFO:1,WARN:2,ERROR:3,FATAL:4},ElementType:{NORMAL:1,TEXT:3,CDATA:4,FRAGMENT:11},TIMEOUT:1.1,SECONDARY_TIMEOUT:.1,addNamespace:function(e,t){r.NS[e]=t},forEachChild:function(e,t,n){var i,s;for(i=0;i<e.childNodes.length;i++)s=e.childNodes[i],s.nodeType==r.ElementType.NORMAL&&(!t||this.isTagEqual(s,t))&&n(s)},isTagEqual:function(e,t){return e.tagName==t},_xmlGenerator:null,_makeGenerator:function(){var e;return document.implementation.createDocument===undefined||document.implementation.createDocument&&document.documentMode&&document.documentMode<10?(e=this._getIEXmlDom(),e.appendChild(e.createElement("strophe"))):e=document.implementation.createDocument("jabber:client","strophe",null),e},xmlGenerator:function(){return r._xmlGenerator||(r._xmlGenerator=r._makeGenerator()),r._xmlGenerator},_getIEXmlDom:function(){var e=null,t=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"];for(var n=0;n<t.length;n++){if(e!==null)break;try{e=new ActiveXObject(t[n])}catch(r){e=null}}return e},xmlElement:function(e){if(!e)return null;var t=r.xmlGenerator().createElement(e),n,i,s;for(n=1;n<arguments.length;n++){var o=arguments[n];if(!o)continue;if(typeof o=="string"||typeof o=="number")t.appendChild(r.xmlTextNode(o));else if(typeof o=="object"&&typeof o.sort=="function")for(i=0;i<o.length;i++){var u=o[i];typeof u=="object"&&typeof u.sort=="function"&&u[1]!==undefined&&u[1]!==null&&t.setAttribute(u[0],u[1])}else if(typeof o=="object")for(s in o)o.hasOwnProperty(s)&&o[s]!==undefined&&o[s]!==null&&t.setAttribute(s,o[s])}return t},xmlescape:function(e){return e=e.replace(/\&/g,"&amp;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),e=e.replace(/'/g,"&apos;"),e=e.replace(/"/g,"&quot;"),e},xmlunescape:function(e){return e=e.replace(/\&amp;/g,"&"),e=e.replace(/&lt;/g,"<"),e=e.replace(/&gt;/g,">"),e=e.replace(/&apos;/g,"'"),e=e.replace(/&quot;/g,'"'),e},xmlTextNode:function(e){return r.xmlGenerator().createTextNode(e)},xmlHtmlNode:function(e){var t;if(window.DOMParser){var n=new DOMParser;t=n.parseFromString(e,"text/xml")}else t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e);return t},getText:function(e){if(!e)return null;var t="";e.childNodes.length===0&&e.nodeType==r.ElementType.TEXT&&(t+=e.nodeValue);for(var n=0;n<e.childNodes.length;n++)e.childNodes[n].nodeType==r.ElementType.TEXT&&(t+=e.childNodes[n].nodeValue);return r.xmlescape(t)},copyElement:function(e){var t,n;if(e.nodeType==r.ElementType.NORMAL){n=r.xmlElement(e.tagName);for(t=0;t<e.attributes.length;t++)n.setAttribute(e.attributes[t].nodeName,e.attributes[t].value);for(t=0;t<e.childNodes.length;t++)n.appendChild(r.copyElement(e.childNodes[t]))}else e.nodeType==r.ElementType.TEXT&&(n=r.xmlGenerator().createTextNode(e.nodeValue));return n},createHtml:function(e){var t,n,i,s,o,u,a,f,l,c,h;if(e.nodeType==r.ElementType.NORMAL){s=e.nodeName.toLowerCase();if(r.XHTML.validTag(s))try{n=r.xmlElement(s);for(t=0;t<r.XHTML.attributes[s].length;t++){o=r.XHTML.attributes[s][t],u=e.getAttribute(o);if(typeof u=="undefined"||u===null||u===""||u===!1||u===0)continue;o=="style"&&typeof u=="object"&&typeof u.cssText!="undefined"&&(u=u.cssText);if(o=="style"){a=[],f=u.split(";");for(i=0;i<f.length;i++)l=f[i].split(":"),c=l[0].replace(/^\s*/,"").replace(/\s*$/,"").toLowerCase(),r.XHTML.validCSS(c)&&(h=l[1].replace(/^\s*/,"").replace(/\s*$/,""),a.push(c+": "+h));a.length>0&&(u=a.join("; "),n.setAttribute(o,u))}else n.setAttribute(o,u)}for(t=0;t<e.childNodes.length;t++)n.appendChild(r.createHtml(e.childNodes[t]))}catch(p){n=r.xmlTextNode("")}else{n=r.xmlGenerator().createDocumentFragment();for(t=0;t<e.childNodes.length;t++)n.appendChild(r.createHtml(e.childNodes[t]))}}else if(e.nodeType==r.ElementType.FRAGMENT){n=r.xmlGenerator().createDocumentFragment();for(t=0;t<e.childNodes.length;t++)n.appendChild(r.createHtml(e.childNodes[t]))}else e.nodeType==r.ElementType.TEXT&&(n=r.xmlTextNode(e.nodeValue));return n},escapeNode:function(e){return typeof e!="string"?e:e.replace(/^\s+|\s+$/g,"").replace(/\\/g,"\\5c").replace(/ /g,"\\20").replace(/\"/g,"\\22").replace(/\&/g,"\\26").replace(/\'/g,"\\27").replace(/\//g,"\\2f").replace(/:/g,"\\3a").replace(/</g,"\\3c").replace(/>/g,"\\3e").replace(/@/g,"\\40")},unescapeNode:function(e){return typeof e!="string"?e:e.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},getNodeFromJid:function(e){return e.indexOf("@")<0?null:e.split("@")[0]},getDomainFromJid:function(e){var t=r.getBareJidFromJid(e);if(t.indexOf("@")<0)return t;var n=t.split("@");return n.splice(0,1),n.join("@")},getResourceFromJid:function(e){var t=e.split("/");return t.length<2?null:(t.splice(0,1),t.join("/"))},getBareJidFromJid:function(e){return e?e.split("/")[0]:null},log:function(e,t){return},debug:function(e){this.log(this.LogLevel.DEBUG,e)},info:function(e){this.log(this.LogLevel.INFO,e)},warn:function(e){this.log(this.LogLevel.WARN,e)},error:function(e){this.log(this.LogLevel.ERROR,e)},fatal:function(e){this.log(this.LogLevel.FATAL,e)},serialize:function(e){var t;if(!e)return null;typeof e.tree=="function"&&(e=e.tree());var n=e.nodeName,i,s;e.getAttribute("_realname")&&(n=e.getAttribute("_realname")),t="<"+n;for(i=0;i<e.attributes.length;i++)e.attributes[i].nodeName!="_realname"&&(t+=" "+e.attributes[i].nodeName+"='"+e.attributes[i].value.replace(/&/g,"&amp;").replace(/\'/g,"&apos;").replace(/>/g,"&gt;").replace(/</g,"&lt;")+"'");if(e.childNodes.length>0){t+=">";for(i=0;i<e.childNodes.length;i++){s=e.childNodes[i];switch(s.nodeType){case r.ElementType.NORMAL:t+=r.serialize(s);break;case r.ElementType.TEXT:t+=r.xmlescape(s.nodeValue);break;case r.ElementType.CDATA:t+="<![CDATA["+s.nodeValue+"]]>"}}t+="</"+n+">"}else t+="/>";return t},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(e,t){r._connectionPlugins[e]=t}},r.Builder=function(e,t){if(e=="presence"||e=="message"||e=="iq")t&&!t.xmlns?t.xmlns=r.NS.CLIENT:t||(t={xmlns:r.NS.CLIENT});this.nodeTree=r.xmlElement(e,t),this.node=this.nodeTree},r.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return r.serialize(this.nodeTree)},up:function(){return this.node=this.node.parentNode,this},attrs:function(e){for(var t in e)e.hasOwnProperty(t)&&(e[t]===undefined?this.node.removeAttribute(t):this.node.setAttribute(t,e[t]));return this},c:function(e,t,n){var i=r.xmlElement(e,t,n);return this.node.appendChild(i),typeof n!="string"&&(this.node=i),this},cnode:function(e){var t,n=r.xmlGenerator();try{t=n.importNode!==undefined}catch(i){t=!1}var s=t?n.importNode(e,!0):r.copyElement(e);return this.node.appendChild(s),this.node=s,this},t:function(e){var t=r.xmlTextNode(e);return this.node.appendChild(t),this},h:function(e){var t=document.createElement("body");t.innerHTML=e;var n=r.createHtml(t);while(n.childNodes.length>0)this.node.appendChild(n.childNodes[0]);return this}},r.Handler=function(e,t,n,i,s,o,u){this.handler=e,this.ns=t,this.name=n,this.type=i,this.id=s,this.options=u||{matchBare:!1},this.options.matchBare||(this.options.matchBare=!1),this.options.matchBare?this.from=o?r.getBareJidFromJid(o):null:this.from=o,this.user=!0},r.Handler.prototype={isMatch:function(e){var t,n=null;this.options.matchBare?n=r.getBareJidFromJid(e.getAttribute("from")):n=e.getAttribute("from"),t=!1;if(!this.ns)t=!0;else{var i=this;r.forEachChild(e,null,function(e){e.getAttribute("xmlns")==i.ns&&(t=!0)}),t=t||e.getAttribute("xmlns")==this.ns}var s=e.getAttribute("type");return!t||!!this.name&&!r.isTagEqual(e,this.name)||!!this.type&&(Array.isArray(this.type)?this.type.indexOf(s)==-1:s!=this.type)||!!this.id&&e.getAttribute("id")!=this.id||!!this.from&&n!=this.from?!1:!0},run:function(e){var t=null;try{t=this.handler(e)}catch(n){throw n.sourceURL?r.fatal("error: "+this.handler+" "+n.sourceURL+":"+n.line+" - "+n.name+": "+n.message):n.fileName?(typeof console!="undefined"&&(console.trace(),console.error(this.handler," - error - ",n,n.message)),r.fatal("error: "+this.handler+" "+n.fileName+":"+n.lineNumber+" - "+n.name+": "+n.message)):r.fatal("error: "+n.message+"\n"+n.stack),n}return t},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}},r.TimedHandler=function(e,t){this.period=e,this.handler=t,this.lastCalled=(new Date).getTime(),this.user=!0},r.TimedHandler.prototype={run:function(){return this.lastCalled=(new Date).getTime(),this.handler()},reset:function(){this.lastCalled=(new Date).getTime()},toString:function(){return"{TimedHandler: "+this.handler+"("+this.period+")}"}},r.Connection=function(e,t){this.service=e,this.options=t||{};var n=this.options.protocol||"";e.indexOf("ws:")===0||e.indexOf("wss:")===0||n.indexOf("ws")===0?this._proto=new r.Websocket(this):this._proto=new r.Bosh(this),this.jid="",this.domain=null,this.features=null,this._sasl_data={},this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._authentication={},this._idleTimeout=null,this._disconnectTimeout=null,this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.do_authentication=!0,this.paused=!1,this.restored=!1,this._data=[],this._uniqueId=0,this._sasl_success_handler=null,this._sasl_failure_handler=null,this._sasl_challenge_handler=null,this.maxRetries=5,this._idleTimeout=setTimeout(this._onIdle.bind(this),100);for(var i in r._connectionPlugins)if(r._connectionPlugins.hasOwnProperty(i)){var s=r._connectionPlugins[i],o=function(){};o.prototype=s,this[i]=new o,this[i].init(this)}},r.Connection.prototype={reset:function(){this._proto._reset(),this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._authentication={},this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.restored=!1,this._data=[],this._requests=[],this._uniqueId=0},pause:function(){this.paused=!0},resume:function(){this.paused=!1},getUniqueId:function(e){var t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=Math.random()*16|0,n=e=="x"?t:t&3|8;return n.toString(16)});return typeof e=="string"||typeof e=="number"?t+":"+e:t+""},connect:function(e,t,n,i,s,o,u){this.jid=e,this.authzid=r.getBareJidFromJid(this.jid),this.authcid=u||r.getNodeFromJid(this.jid),this.pass=t,this.servtype="xmpp",this.connect_callback=n,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.restored=!1,this.domain=r.getDomainFromJid(this.jid),this._changeConnectStatus(r.Status.CONNECTING,null),this._proto._connect(i,s,o)},attach:function(e,t,n,i,s,o,u){if(!(this._proto instanceof r.Bosh))throw{name:"StropheSessionError",message:'The "attach" method can only be used with a BOSH connection.'};this._proto._attach(e,t,n,i,s,o,u)},restore:function(e,t,n,r,i){if(!this._sessionCachingSupported())throw{name:"StropheSessionError",message:'The "restore" method can only be used with a BOSH connection.'};this._proto._restore(e,t,n,r,i)},_sessionCachingSupported:function(){if(this._proto instanceof r.Bosh){if(!JSON)return!1;try{window.sessionStorage.setItem("_strophe_","_strophe_"),window.sessionStorage.removeItem("_strophe_")}catch(e){return!1}return!0}return!1},xmlInput:function(e){return},xmlOutput:function(e){return},rawInput:function(e){return},rawOutput:function(e){return},nextValidRid:function(e){return},send:function(e){if(e===null)return;if(typeof e.sort=="function")for(var t=0;t<e.length;t++)this._queueData(e[t]);else typeof e.tree=="function"?this._queueData(e.tree()):this._queueData(e);this._proto._send()},flush:function(){clearTimeout(this._idleTimeout),this._onIdle()},sendIQ:function(e,t,n,i){var s=null,o=this;typeof e.tree=="function"&&(e=e.tree());var u=e.getAttribute("id");u||(u=this.getUniqueId("sendIQ"),e.setAttribute("id",u));var a=e.getAttribute("to"),f=this.jid,l=this.addHandler(function(e){s&&o.deleteTimedHandler(s);var i=!1,u=e.getAttribute("from");if(u===a||a===null&&(u===r.getBareJidFromJid(f)||u===r.getDomainFromJid(f)||u===f))i=!0;if(!i)throw{name:"StropheError",message:"Got answer to IQ from wrong jid:"+u+"\nExpected jid: "+a};var l=e.getAttribute("type");if(l=="result")t&&t(e);else{if(l!="error")throw{name:"StropheError",message:"Got bad IQ type of "+l};n&&n(e)}},null,"iq",["error","result"],u);return i&&(s=this.addTimedHandler(i,function(){return o.deleteHandler(l),n&&n(null),!1})),this.send(e),u},_queueData:function(e){if(e===null||!e.tagName||!e.childNodes)throw{name:"StropheError",message:"Cannot queue non-DOMElement."};this._data.push(e)},_sendRestart:function(){this._data.push("restart"),this._proto._sendRestart(),this._idleTimeout=setTimeout(this._onIdle.bind(this),100)},addTimedHandler:function(e,t){var n=new r.TimedHandler(e,t);return this.addTimeds.push(n),n},deleteTimedHandler:function(e){this.removeTimeds.push(e)},addHandler:function(e,t,n,i,s,o,u){var a=new r.Handler(e,t,n,i,s,o,u);return this.addHandlers.push(a),a},deleteHandler:function(e){this.removeHandlers.push(e);var t=this.addHandlers.indexOf(e);t>=0&&this.addHandlers.splice(t,1)},disconnect:function(e){this._changeConnectStatus(r.Status.DISCONNECTING,e),r.info("Disconnect was called because: "+e);if(this.connected){var t=!1;this.disconnecting=!0,this.authenticated&&(t=u({xmlns:r.NS.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(3e3,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(t)}else r.info("Disconnect was called before Strophe connected to the server"),this._proto._abortAllRequests()},_changeConnectStatus:function(e,t){for(var n in r._connectionPlugins)if(r._connectionPlugins.hasOwnProperty(n)){var i=this[n];if(i.statusChanged)try{i.statusChanged(e,t)}catch(s){r.error(""+n+" plugin caused an exception "+"changing status: "+s)}}if(this.connect_callback)try{this.connect_callback(e,t)}catch(o){r.error("User connection callback caused an exception: "+o)}},_doDisconnect:function(e){typeof this._idleTimeout=="number"&&clearTimeout(this._idleTimeout),this._disconnectTimeout!==null&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),r.info("_doDisconnect was called"),this._proto._doDisconnect(),this.authenticated=!1,this.disconnecting=!1,this.restored=!1,this.handlers=[],this.timedHandlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._changeConnectStatus(r.Status.DISCONNECTED,e),this.connected=!1},_dataRecv:function(e,t){r.info("_dataRecv called");var n=this._proto._reqToData(e);if(n===null)return;this.xmlInput!==r.Connection.prototype.xmlInput&&(n.nodeName===this._proto.strip&&n.childNodes.length?this.xmlInput(n.childNodes[0]):this.xmlInput(n)),this.rawInput!==r.Connection.prototype.rawInput&&(t?this.rawInput(t):this.rawInput(r.serialize(n)));var i,s;while(this.removeHandlers.length>0)s=this.removeHandlers.pop(),i=this.handlers.indexOf(s),i>=0&&this.handlers.splice(i,1);while(this.addHandlers.length>0)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue()){this._doDisconnect();return}var o=n.getAttribute("type"),u,a;if(o!==null&&o=="terminate"){if(this.disconnecting)return;u=n.getAttribute("condition"),a=n.getElementsByTagName("conflict"),u!==null?(u=="remote-stream-error"&&a.length>0&&(u="conflict"),this._changeConnectStatus(r.Status.CONNFAIL,u)):this._changeConnectStatus(r.Status.CONNFAIL,"unknown"),this._doDisconnect(u);return}var f=this;r.forEachChild(n,null,function(e){var t,n;n=f.handlers,f.handlers=[];for(t=0;t<n.length;t++){var i=n[t];try{i.isMatch(e)&&(f.authenticated||!i.user)?i.run(e)&&f.handlers.push(i):f.handlers.push(i)}catch(s){r.warn("Removing Strophe handlers due to uncaught exception: "+s.message)}}})},mechanisms:{},_connect_cb:function(e,t,n){r.info("_connect_cb was called"),this.connected=!0;var i=this._proto._reqToData(e);if(!i)return;this.xmlInput!==r.Connection.prototype.xmlInput&&(i.nodeName===this._proto.strip&&i.childNodes.length?this.xmlInput(i.childNodes[0]):this.xmlInput(i)),this.rawInput!==r.Connection.prototype.rawInput&&(n?this.rawInput(n):this.rawInput(r.serialize(i)));var s=this._proto._connect_cb(i);if(s===r.Status.CONNFAIL)return;this._authentication.sasl_scram_sha1=!1,this._authentication.sasl_plain=!1,this._authentication.sasl_digest_md5=!1,this._authentication.sasl_anonymous=!1,this._authentication.legacy_auth=!1;var o;i.getElementsByTagNameNS?o=i.getElementsByTagNameNS(r.NS.STREAM,"features").length>0:o=i.getElementsByTagName("stream:features").length>0||i.getElementsByTagName("features").length>0;var u=i.getElementsByTagName("mechanism"),a=[],f,l,c=!1;if(!o){this._proto._no_auth_received(t);return}if(u.length>0)for(f=0;f<u.length;f++)l=r.getText(u[f]),this.mechanisms[l]&&a.push(this.mechanisms[l]);this._authentication.legacy_auth=i.getElementsByTagName("auth").length>0,c=this._authentication.legacy_auth||a.length>0;if(!c){this._proto._no_auth_received(t);return}this.do_authentication!==!1&&this.authenticate(a)},authenticate:function(e){var n;for(n=0;n<e.length-1;++n){var s=n;for(var u=n+1;u<e.length;++u)e[u].prototype.priority>e[s].prototype.priority&&(s=u);if(s!=n){var a=e[n];e[n]=e[s],e[s]=a}}var f=!1;for(n=0;n<e.length;++n){if(!e[n].test(this))continue;this._sasl_success_handler=this._addSysHandler(this._sasl_success_cb.bind(this),null,"success",null,null),this._sasl_failure_handler=this._addSysHandler(this._sasl_failure_cb.bind(this),null,"failure",null,null),this._sasl_challenge_handler=this._addSysHandler(this._sasl_challenge_cb.bind(this),null,"challenge",null,null),this._sasl_mechanism=new e[n],this._sasl_mechanism.onStart(this);var l=i("auth",{xmlns:r.NS.SASL,mechanism:this._sasl_mechanism.name});if(this._sasl_mechanism.isClientFirst){var c=this._sasl_mechanism.onChallenge(this,null);l.t(t.encode(c))}this.send(l.tree()),f=!0;break}f||(r.getNodeFromJid(this.jid)===null?(this._changeConnectStatus(r.Status.CONNFAIL,"x-strophe-bad-non-anon-jid"),this.disconnect("x-strophe-bad-non-anon-jid")):(this._changeConnectStatus(r.Status.AUTHENTICATING,null),this._addSysHandler(this._auth1_cb.bind(this),null,null,null,"_auth_1"),this.send(o({type:"get",to:this.domain,id:"_auth_1"}).c("query",{xmlns:r.NS.AUTH}).c("username",{}).t(r.getNodeFromJid(this.jid)).tree())))},_sasl_challenge_cb:function(e){var n=t.decode(r.getText(e)),s=this._sasl_mechanism.onChallenge(this,n),o=i("response",{xmlns:r.NS.SASL});return s!==""&&o.t(t.encode(s)),this.send(o.tree()),!0},_auth1_cb:function(e){var t=o({type:"set",id:"_auth_2"}).c("query",{xmlns:r.NS.AUTH}).c("username",{}).t(r.getNodeFromJid(this.jid)).up().c("password").t(this.pass);return r.getResourceFromJid(this.jid)||(this.jid=r.getBareJidFromJid(this.jid)+"/strophe"),t.up().c("resource",{}).t(r.getResourceFromJid(this.jid)),this._addSysHandler(this._auth2_cb.bind(this),null,null,null,"_auth_2"),this.send(t.tree()),!1},_sasl_success_cb:function(e){if(this._sasl_data["server-signature"]){var n,i=t.decode(r.getText(e)),s=/([a-z]+)=([^,]+)(,|$)/,o=i.match(s);o[1]=="v"&&(n=o[2]);if(n!=this._sasl_data["server-signature"])return this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_data={},this._sasl_failure_cb(null)}r.info("SASL authentication succeeded."),this._sasl_mechanism&&this._sasl_mechanism.onSuccess(),this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null);var u=[],a=function(e,t){while(e.length)this.deleteHandler(e.pop());return this._sasl_auth1_cb.bind(this)(t),!1};return u.push(this._addSysHandler(function(e){a.bind(this)(u,e)}.bind(this),null,"stream:features",null,null)),u.push(this._addSysHandler(function(e){a.bind(this)(u,e)}.bind(this),r.NS.STREAM,"features",null,null)),this._sendRestart(),!1},_sasl_auth1_cb:function(e){this.features=e;var t,n;for(t=0;t<e.childNodes.length;t++)n=e.childNodes[t],n.nodeName=="bind"&&(this.do_bind=!0),n.nodeName=="session"&&(this.do_session=!0);if(!this.do_bind)return this._changeConnectStatus(r.Status.AUTHFAIL,null),!1;this._addSysHandler(this._sasl_bind_cb.bind(this),null,null,null,"_bind_auth_2");var i=r.getResourceFromJid(this.jid);return i?this.send(o({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:r.NS.BIND}).c("resource",{}).t(i).tree()):this.send(o({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:r.NS.BIND}).tree()),!1},_sasl_bind_cb:function(e){if(e.getAttribute("type")=="error"){r.info("SASL binding failed.");var t=e.getElementsByTagName("conflict"),n;return t.length>0&&(n="conflict"),this._changeConnectStatus(r.Status.AUTHFAIL,n),!1}var i=e.getElementsByTagName("bind"),s;if(!(i.length>0))return r.info("SASL binding failed."),this._changeConnectStatus(r.Status.AUTHFAIL,null),!1;s=i[0].getElementsByTagName("jid"),s.length>0&&(this.jid=r.getText(s[0]),this.do_session?(this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2"),this.send(o({type:"set",id:"_session_auth_2"}).c("session",{xmlns:r.NS.SESSION}).tree())):(this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null)))},_sasl_session_cb:function(e){if(e.getAttribute("type")=="result")this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null);else if(e.getAttribute("type")=="error")return r.info("Session creation failed."),this._changeConnectStatus(r.Status.AUTHFAIL,null),!1;return!1},_sasl_failure_cb:function(e){return this._sasl_success_handler&&(this.deleteHandler(this._sasl_success_handler),this._sasl_success_handler=null),this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_mechanism&&this._sasl_mechanism.onFailure(),this._changeConnectStatus(r.Status.AUTHFAIL,null),!1},_auth2_cb:function(e){return e.getAttribute("type")=="result"?(this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null)):e.getAttribute("type")=="error"&&(this._changeConnectStatus(r.Status.AUTHFAIL,null),this.disconnect("authentication failed")),!1},_addSysTimedHandler:function(e,t){var n=new r.TimedHandler(e,t);return n.user=!1,this.addTimeds.push(n),n},_addSysHandler:function(e,t,n,i,s){var o=new r.Handler(e,t,n,i,s);return o.user=!1,this.addHandlers.push(o),o},_onDisconnectTimeout:function(){return r.info("_onDisconnectTimeout was called"),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1},_onIdle:function(){var e,t,n,r;while(this.addTimeds.length>0)this.timedHandlers.push(this.addTimeds.pop());while(this.removeTimeds.length>0)t=this.removeTimeds.pop(),e=this.timedHandlers.indexOf(t),e>=0&&this.timedHandlers.splice(e,1);var i=(new Date).getTime();r=[];for(e=0;e<this.timedHandlers.length;e++){t=this.timedHandlers[e];if(this.authenticated||!t.user)n=t.lastCalled+t.period,n-i<=0?t.run()&&r.push(t):r.push(t)}this.timedHandlers=r,clearTimeout(this._idleTimeout),this._proto._onIdle(),this.connected&&(this._idleTimeout=setTimeout(this._onIdle.bind(this),100))}},r.SASLMechanism=function(e,t,n){this.name=e,this.isClientFirst=t,this.priority=n},r.SASLMechanism.prototype={test:function(e){return!0},onStart:function(e){this._connection=e},onChallenge:function(e,t){throw new Error("You should implement challenge handling!")},onFailure:function(){this._connection=null},onSuccess:function(){this._connection=null}},r.SASLAnonymous=function(){},r.SASLAnonymous.prototype=new r.SASLMechanism("ANONYMOUS",!1,10),r.SASLAnonymous.test=function(e){return e.authcid===null},r.Connection.prototype.mechanisms[r.SASLAnonymous.prototype.name]=r.SASLAnonymous,r.SASLPlain=function(){},r.SASLPlain.prototype=new r.SASLMechanism("PLAIN",!0,20),r.SASLPlain.test=function(e){return e.authcid!==null},r.SASLPlain.prototype.onChallenge=function(e){var t=e.authzid;return t+="\0",t+=e.authcid,t+="\0",t+=e.pass,t},r.Connection.prototype.mechanisms[r.SASLPlain.prototype.name]=r.SASLPlain,r.SASLSHA1=function(){},r.SASLSHA1.prototype=new r.SASLMechanism("SCRAM-SHA-1",!0,40),r.SASLSHA1.test=function(e){return e.authcid!==null},r.SASLSHA1.prototype.onChallenge=function(r,i,s){var o=s||n.hexdigest(Math.random()*1234567890),u="n="+r.authcid;return u+=",r=",u+=o,r._sasl_data.cnonce=o,r._sasl_data["client-first-message-bare"]=u,u="n,,"+u,this.onChallenge=function(n,r){var i,s,o,u,a,f,l,c,h,p,d,v="c=biws,",m=n._sasl_data["client-first-message-bare"]+","+r+",",g=n._sasl_data.cnonce,y=/([a-z]+)=([^,]+)(,|$)/;while(r.match(y)){var b=r.match(y);r=r.replace(b[0],"");switch(b[1]){case"r":i=b[2];break;case"s":s=b[2];break;case"i":o=b[2]}}if(i.substr(0,g.length)!==g)return n._sasl_data={},n._sasl_failure_cb();v+="r="+i,m+=v,s=t.decode(s),s+="\0\0\0\ 1",u=f=e.core_hmac_sha1(n.pass,s);for(l=1;l<o;l++){a=e.core_hmac_sha1(n.pass,e.binb2str(f));for(c=0;c<5;c++)u[c]^=a[c];f=a}u=e.binb2str(u),h=e.core_hmac_sha1(u,"Client Key"),p=e.str_hmac_sha1(u,"Server Key"),d=e.core_hmac_sha1(e.str_sha1(e.binb2str(h)),m),n._sasl_data["server-signature"]=e.b64_hmac_sha1(p,m);for(c=0;c<5;c++)h[c]^=d[c];return v+=",p="+t.encode(e.binb2str(h)),v}.bind(this),u},r.Connection.prototype.mechanisms[r.SASLSHA1.prototype.name]=r.SASLSHA1,r.SASLMD5=function(){},r.SASLMD5.prototype=new r.SASLMechanism("DIGEST-MD5",!1,30),r.SASLMD5.test=function(e){return e.authcid!==null},r.SASLMD5.prototype._quote=function(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'},r.SASLMD5.prototype.onChallenge=function(e,t,r){var i=/([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/,s=r||n.hexdigest(""+Math.random()*1234567890),o="",u=null,a="",f="",l;while(t.match(i)){l=t.match(i),t=t.replace(l[0],""),l[2]=l[2].replace(/^"(.+)"$/,"$1");switch(l[1]){case"realm":o=l[2];break;case"nonce":a=l[2];break;case"qop":f=l[2];break;case"host":u=l[2]}}var c=e.servtype+"/"+e.domain;u!==null&&(c=c+"/"+u);var h=n.hash(e.authcid+":"+o+":"+this._connection.pass)+":"+a+":"+s,p="AUTHENTICATE:"+c,d="";return d+="charset=utf-8,",d+="username="+this._quote(e.authcid)+",",d+="realm="+this._quote(o)+",",d+="nonce="+this._quote(a)+",",d+="nc=00000001,",d+="cnonce="+this._quote(s)+",",d+="digest-uri="+this._quote(c)+",",d+="response="+n.hexdigest(n.hexdigest(h)+":"+a+":00000001:"+s+":auth:"+n.hexdigest(p))+",",d+="qop=auth",this.onChallenge=function(){return""}.bind(this),d},r.Connection.prototype.mechanisms[r.SASLMD5.prototype.name]=r.SASLMD5,{Strophe:r,$build:i,$msg:s,$iq:o,$pres:u,SHA1:e,Base64:t,MD5:n}}),function(e,t){if(typeof define!="function"||!define.amd)return t(Strophe,$build);define("strophe-bosh",["strophe-core"],function(e){return t(e.Strophe,e.$build)})}(this,function(e,t){return e.Request=function(t,n,r,i){this.id=++e._requestId,this.xmlData=t,this.data=e.serialize(t),this.origFunc=n,this.func=n,this.rid=r,this.date=NaN,this.sends=i||0,this.abort=!1,this.dead=null,this.age=function(){if(!this.date)return 0;var e=new Date;return(e-this.date)/1e3},this.timeDead=function(){if(!this.dead)return 0;var e=new Date;return(e-this.dead)/1e3},this.xhr=this._newXHR()},e.Request.prototype={getResponse:function(){var t=null;if(this.xhr.responseXML&&this.xhr.responseXML.documentElement){t=this.xhr.responseXML.documentElement;if(t.tagName=="parsererror")throw e.error("invalid response received"),e.error("responseText: "+this.xhr.responseText),e.error("responseXML: "+e.serialize(this.xhr.responseXML)),"parsererror"}else this.xhr.responseText&&(e.error("invalid response received"),e.error("responseText: "+this.xhr.responseText),e.error("responseXML: "+e.serialize(this.xhr.responseXML)));return t},_newXHR:function(){var e=null;return window.XMLHttpRequest?(e=new XMLHttpRequest,e.overrideMimeType&&e.overrideMimeType("text/xml; charset=utf-8")):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLHTTP")),e.onreadystatechange=this.func.bind(null,this),e}},e.Bosh=function(e){this._conn=e,this.rid=Math.floor(Math.random()*4294967295),this.sid=null,this.hold=1,this.wait=60,this.window=5,this.errors=0,this._requests=[]},e.Bosh.prototype={strip:null,_buildBody:function(){var n=t("body",{rid:this.rid++,xmlns:e.NS.HTTPBIND});return this.sid!==null&&n.attrs({sid:this.sid}),this._conn.options.keepalive&&this._cacheSession(),n},_reset:function(){this.rid=Math.floor(Math.random()*4294967295),this.sid=null,this.errors=0,window.sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)},_connect:function(t,n,r){this.wait=t||this.wait,this.hold=n||this.hold,this.errors=0;var i=this._buildBody().attrs({to:this._conn.domain,"xml:lang":"en",wait:this.wait,hold:this.hold,content:"text/xml; charset=utf-8",ver:"1.6","xmpp:version":"1.0","xmlns:xmpp":e.NS.BOSH});r&&i.attrs({route:r});var s=this._conn._connect_cb;this._requests.push(new e.Request(i.tree(),this._onRequestStateChange.bind(this,s.bind(this._conn)),i.tree().getAttribute("rid"))),this._throttledRequestHandler()},_attach:function(t,n,r,i,s,o,u){this._conn.jid=t,this.sid=n,this.rid=r,this._conn.connect_callback=i,this._conn.domain=e.getDomainFromJid(this._conn.jid),this._conn.authenticated=!0,this._conn.connected=!0,this.wait=s||this.wait,this.hold=o||this.hold,this.window=u||this.window,this._conn._changeConnectStatus(e.Status.ATTACHED,null)},_restore:function(t,n,r,i,s){var o=JSON.parse(window.sessionStorage.getItem("strophe-bosh-session"));if(!(typeof o!="undefined"&&o!==null&&o.rid&&o.sid&&o.jid)||typeof t!="undefined"&&t!=="null"&&e.getBareJidFromJid(o.jid)!=e.getBareJidFromJid(t))throw{name:"StropheSessionError",message:"_restore: no restoreable session."};this._conn.restored=!0,this._attach(o.jid,o.sid,o.rid,n,r,i,s)},_cacheSession:function(){this._conn.authenticated?this._conn.jid&&this.rid&&this.sid&&window.sessionStorage.setItem("strophe-bosh-session",JSON.stringify({jid:this._conn.jid,rid:this.rid,sid:this.sid})):window.sessionStorage.removeItem("strophe-bosh-session")},_connect_cb:function(t){var n=t.getAttribute("type"),r,i;if(n!==null&&n=="terminate")return r=t.getAttribute("condition"),e.error("BOSH-Connection failed: "+r),i=t.getElementsByTagName("conflict"),r!==null?(r=="remote-stream-error"&&i.length>0&&(r="conflict"),this._conn._changeConnectStatus(e.Status.CONNFAIL,r)):this._conn._changeConnectStatus(e.Status.CONNFAIL,"unknown"),this._conn._doDisconnect(r),e.Status.CONNFAIL;this.sid||(this.sid=t.getAttribute("sid"));var s=t.getAttribute("requests");s&&(this.window=parseInt(s,10));var o=t.getAttribute("hold");o&&(this.hold=parseInt(o,10));var u=t.getAttribute("wait");u&&(this.wait=parseInt(u,10))},_disconnect:function(e){this._sendTerminate(e)},_doDisconnect:function(){this.sid=null,this.rid=Math.floor(Math.random()*4294967295),window.sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)},_emptyQueue:function(){return this._requests.length===0},_hitError:function(t){this.errors++,e.warn("request errored, status: "+t+", number of errors: "+this.errors),this.errors>4&&this._conn._onDisconnectTimeout()},_no_auth_received:function(t){t?t=t.bind(this._conn):t=this._conn._connect_cb.bind(this._conn);var n=this._buildBody();this._requests.push(new e.Request(n.tree(),this._onRequestStateChange.bind(this,t.bind(this._conn)),n.tree().getAttribute("rid"))),this._throttledRequestHandler()},_onDisconnectTimeout:function(){this._abortAllRequests()},_abortAllRequests:function(){var t;while(this._requests.length>0)t=this._requests.pop(),t.abort=!0,t.xhr.abort(),t.xhr.onreadystatechange=function(){}},_onIdle:function(){var t=this._conn._data;this._conn.authenticated&&this._requests.length===0&&t.length===0&&!this._conn.disconnecting&&(e.info("no requests during idle cycle, sending blank request"),t.push(null));if(this._conn.paused)return;if(this._requests.length<2&&t.length>0){var n=this._buildBody();for(var r=0;r<t.length;r++)t[r]!==null&&(t[r]==="restart"?n.attrs({to:this._conn.domain,"xml:lang":"en","xmpp:restart":"true","xmlns:xmpp":e.NS.BOSH}):n.cnode(t[r]).up());delete this._conn._data,this._conn._data=[],this._requests.push(new e.Request(n.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),n.tree().getAttribute("rid"))),this._throttledRequestHandler()}if(this._requests.length>0){var i=this._requests[0].age();this._requests[0].dead!==null&&this._requests[0].timeDead()>Math.floor(e.SECONDARY_TIMEOUT*this.wait)&&this._throttledRequestHandler(),i>Math.floor(e.TIMEOUT*this.wait)&&(e.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(e.TIMEOUT*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}},_onRequestStateChange:function(t,n){e.debug("request id "+n.id+"."+n.sends+" state changed to "+n.xhr.readyState);if(n.abort){n.abort=!1;return}var r;if(n.xhr.readyState==4){r=0;try{r=n.xhr.status}catch(i){}typeof r=="undefined"&&(r=0);if(this.disconnecting&&r>=400){this._hitError(r);return}var s=this._requests[0]==n,o=this._requests[1]==n;if(r>0&&r<500||n.sends>5)this._removeRequest(n),e.debug("request id "+n.id+" should now be removed");if(r==200)(o||s&&this._requests.length>0&&this._requests[0].age()>Math.floor(e.SECONDARY_TIMEOUT*this.wait))&&this._restartRequest(0),this._conn.nextValidRid(Number(n.rid)+1),e.debug("request id "+n.id+"."+n.sends+" got 200"),t(n),this.errors=0;else{e.error("request id "+n.id+"."+n.sends+" error "+r+" happened");if(r===0||r>=400&&r<600||r>=12e3)this._hitError(r),r>=400&&r<500&&(this._conn._changeConnectStatus(e.Status.DISCONNECTING,null),this._conn._doDisconnect())}r>0&&r<500||n.sends>5||this._throttledRequestHandler()}},_processRequest:function(t){var n=this,r=this._requests[t],i=-1;try{r.xhr.readyState==4&&(i=r.xhr.status)}catch(s){e.error("caught an error in _requests["+t+"], reqStatus: "+i)}typeof i=="undefined"&&(i=-1);if(r.sends>this._conn.maxRetries){this._conn._onDisconnectTimeout();return}var o=r.age(),u=!isNaN(o)&&o>Math.floor(e.TIMEOUT*this.wait),a=r.dead!==null&&r.timeDead()>Math.floor(e.SECONDARY_TIMEOUT*this.wait),f=r.xhr.readyState==4&&(i<1||i>=500);if(u||a||f)a&&e.error("Request "+this._requests[t].id+" timed out (secondary), restarting"),r.abort=!0,r.xhr.abort(),r.xhr.onreadystatechange=function(){},this._requests[t]=new e.Request(r.xmlData,r.origFunc,r.rid,r.sends),r=this._requests[t];if(r.xhr.readyState===0){e.debug("request id "+r.id+"."+r.sends+" posting");try{r.xhr.open("POST",this._conn.service,this._conn.options.sync?!1:!0),r.xhr.setRequestHeader("Content-Type","text/xml; charset=utf-8")}catch(l){e.error("XHR open failed."),this._conn.connected||this._conn._changeConnectStatus(e.Status.CONNFAIL,"bad-service"),this._conn.disconnect();return}var c=function(){r.date=new Date;if(n._conn.options.customHeaders){var e=n._conn.options.customHeaders;for(var t in e)e.hasOwnProperty(t)&&r.xhr.setRequestHeader(t,e[t])}r.xhr.send(r.data)};if(r.sends>1){var h=Math.min(Math.floor(e.TIMEOUT*this.wait),Math.pow(r.sends,3))*1e3;setTimeout(c,h)}else c();r.sends++,this._conn.xmlOutput!==e.Connection.prototype.xmlOutput&&(r.xmlData.nodeName===this.strip&&r.xmlData.childNodes.length?this._conn.xmlOutput(r.xmlData.childNodes[0]):this._conn.xmlOutput(r.xmlData)),this._conn.rawOutput!==e.Connection.prototype.rawOutput&&this._conn.rawOutput(r.data)}else e.debug("_processRequest: "+(t===0?"first":"second")+" request has readyState of "+r.xhr.readyState)},_removeRequest:function(t){e.debug("removing request");var n;for(n=this._requests.length-1;n>=0;n--)t==this._requests[n]&&this._requests.splice(n,1);t.xhr.onreadystatechange=function(){},this._throttledRequestHandler()},_restartRequest:function(e){var t=this._requests[e];t.dead===null&&(t.dead=new Date),this._processRequest(e)},_reqToData:function(e){try{return e.getResponse()}catch(t){if(t!="parsererror")throw t;this._conn.disconnect("strophe-parsererror")}},_sendTerminate:function(t){e.info("_sendTerminate was called");var n=this._buildBody().attrs({type:"terminate"});t&&n.cnode(t.tree());var r=new e.Request(n.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),n.tree().getAttribute("rid"));this._requests.push(r),this._throttledRequestHandler()},_send:function(){clearTimeout(this._conn._idleTimeout),this._throttledRequestHandler(),this._conn._idleTimeout=setTimeout(this._conn._onIdle.bind(this._conn),100)},_sendRestart:function(){this._throttledRequestHandler(),clearTimeout(this._conn._idleTimeout)},_throttledRequestHandler:function(){this._requests?e.debug("_throttledRequestHandler called with "+this._requests.length+" requests"):e.debug("_throttledRequestHandler called with undefined requests");if(!this._requests||this._requests.length===0)return;this._requests.length>0&&this._processRequest(0),this._requests.length>1&&Math.abs(this._requests[0].rid-this._requests[1].rid)<this.window&&this._processRequest(1)}},e}),function(e,t){if(typeof define!="function"||!define.amd)return t(Strophe,$build);define("strophe-websocket",["strophe-core"],function(e){return t(e.Strophe,e.$build)})}(this,function(e,t){return e.Websocket=function(e){this._conn=e,this.strip="wrapper";var t=e.service;if(t.indexOf("ws:")!==0&&t.indexOf("wss:")!==0){var n="";e.options.protocol==="ws"&&window.location.protocol!=="https:"?n+="ws":n+="wss",n+="://"+window.location.host,t.indexOf("/")!==0?n+=window.location.pathname+t:n+=t,e.service=n}},e.Websocket.prototype={_buildStream:function(){return t("open",{xmlns:e.NS.FRAMING,to:this._conn.domain,version:"1.0"})},_check_streamerror:function(t,n){var r;t.getElementsByTagNameNS?r=t.getElementsByTagNameNS(e.NS.STREAM,"error"):r=t.getElementsByTagName("stream:error");if(r.length===0)return!1;var i=r[0],s="",o="",u="urn:ietf:params:xml:ns:xmpp-streams";for(var a=0;a<i.childNodes.length;a++){var f=i.childNodes[a];if(f.getAttribute("xmlns")!==u)break;f.nodeName==="text"?o=f.textContent:s=f.nodeName}var l="WebSocket stream error: ";return s?l+=s:l+="unknown",o&&(l+=" - "+s),e.error(l),this._conn._changeConnectStatus(n,s),this._conn._doDisconnect(),!0},_reset:function(){return},_connect:function(){this._closeSocket(),this.socket=new WebSocket(this._conn.service,"xmpp"),this.socket.onopen=this._onOpen.bind(this),this.socket.onerror=this._onError.bind(this),this.socket.onclose=this._onClose.bind(this),this.socket.onmessage=this._connect_cb_wrapper.bind(this)},_connect_cb:function(t){var n=this._check_streamerror(t,e.Status.CONNFAIL);if(n)return e.Status.CONNFAIL},_handleStreamStart:function(t){var n=!1,r=t.getAttribute("xmlns");typeof r!="string"?n="Missing xmlns in <open />":r!==e.NS.FRAMING&&(n="Wrong xmlns in <open />: "+r);var i=t.getAttribute("version");return typeof i!="string"?n="Missing version in <open />":i!=="1.0"&&(n="Wrong version in <open />: "+i),n?(this._conn._changeConnectStatus(e.Status.CONNFAIL,n),this._conn._doDisconnect(),!1):!0},_connect_cb_wrapper:function(t){if(t.data.indexOf("<open ")===0||t.data.indexOf("<?xml")===0){var n=t.data.replace(/^(<\?.*?\?>\s*)*/,"");if(n==="")return;var r=(new DOMParser).parseFromString(n,"text/xml").documentElement;this._conn.xmlInput(r),this._conn.rawInput(t.data),this._handleStreamStart(r)&&this._connect_cb(r)}else if(t.data.indexOf("<close ")===0){this._conn.rawInput(t.data),this._conn.xmlInput(t);var i=t.getAttribute("see-other-uri");i?(this._conn._changeConnectStatus(e.Status.REDIRECT,"Received see-other-uri, resetting connection"),this._conn.reset(),this._conn.service=i,this._connect()):(this._conn._changeConnectStatus(e.Status.CONNFAIL,"Received closing stream"),this._conn._doDisconnect())}else{var s=this._streamWrap(t.data),o=(new DOMParser).parseFromString(s,"text/xml").documentElement;this.socket.onmessage=this._onMessage.bind(this),this._conn._connect_cb(o,null,t.data)}},_disconnect:function(n){if(this.socket&&this.socket.readyState!==WebSocket.CLOSED){n&&this._conn.send(n);var r=t("close",{xmlns:e.NS.FRAMING});this._conn.xmlOutput(r);var i=e.serialize(r);this._conn.rawOutput(i);try{this.socket.send(i)}catch(s){e.info("Couldn't send <close /> tag.")}}this._conn._doDisconnect()},_doDisconnect:function(){e.info("WebSockets _doDisconnect was called"),this._closeSocket()},_streamWrap:function(e){return"<wrapper>"+e+"</wrapper>"},_closeSocket:function(){if(this.socket)try{this.socket.close()}catch(e){}this.socket=null},_emptyQueue:function(){return!0},_onClose:function(){this._conn.connected&&!this._conn.disconnecting?(e.error("Websocket closed unexcectedly"),this._conn._doDisconnect()):e.info("Websocket closed")},_no_auth_received:function(t){e.error("Server did not send any auth methods"),this._conn._changeConnectStatus(e.Status.CONNFAIL,"Server did not send any auth methods"),t&&(t=t.bind(this._conn),t()),this._conn._doDisconnect()},_onDisconnectTimeout:function(){},_abortAllRequests:function(){},_onError:function(t){e.error("Websocket error "+t),this._conn._changeConnectStatus(e.Status.CONNFAIL,"The WebSocket connection could not be established was disconnected."),this._disconnect()},_onIdle:function(){var t=this._conn._data;if(t.length>0&&!this._conn.paused){for(var n=0;n<t.length;n++)if(t[n]!==null){var r,i;t[n]==="restart"?r=this._buildStream().tree():r=t[n],i=e.serialize(r),this._conn.xmlOutput(r),this._conn.rawOutput(i),this.socket.send(i)}this._conn._data=[]}},_onMessage:function(t){var n,r,i='<close xmlns="urn:ietf:params:xml:ns:xmpp-framing" />';if(t.data===i){this._conn.rawInput(i),this._conn.xmlInput(t),this._conn.disconnecting||this._conn._doDisconnect();return}if(t.data.search("<open ")===0){n=(new DOMParser).parseFromString(t.data,"text/xml").documentElement;if(!this._handleStreamStart(n))return}else r=this._streamWrap(t.data),n=(new DOMParser).parseFromString(r,"text/xml").documentElement;if(this._check_streamerror(n,e.Status.ERROR))return;if(this._conn.disconnecting&&n.firstChild.nodeName==="presence"&&n.firstChild.getAttribute("type")==="unavailable"){this._conn.xmlInput(n),this._conn.rawInput(e.serialize(n));return}this._conn._dataRecv(n,t.data)},_onOpen:function(){e.info("Websocket open");var t=this._buildStream();this._conn.xmlOutput(t.tree());var n=e.serialize(t);this._conn.rawOutput(n),this.socket.send(n)},_reqToData:function(e){return e},_send:function(){this._conn.flush()},_sendRestart:function(){clearTimeout(this._conn._idleTimeout),this._conn._onIdle.bind(this._conn)()}},e}),define("strophe",["strophe-core","strophe-bosh","strophe-websocket"],function(e){return e}),function(e,t){typeof define=="function"&&define.amd?define("strophe.disco",["strophe"],function(e){return t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres),e}):t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres)}(this,function(e,t,n,r,i){e.addConnectionPlugin("disco",{_connection:null,_identities:[],_features:[],_items:[],init:function(t){this._connection=t,this._identities=[],this._features=[],this._items=[],t.addHandler(this._onDiscoInfo.bind(this),e.NS.DISCO_INFO,"iq","get",null,null),t.addHandler(this._onDiscoItems.bind(this),e.NS.DISCO_ITEMS,"iq","get",null,null)},addIdentity:function(e,t,n,r){for(var i=0;i<this._identities.length;i++)if(this._identities[i].category==e&&this._identities[i].type==t&&this._identities[i].name==n&&this._identities[i].lang==r)return!1;return this._identities.push({category:e,type:t,name:n,lang:r}),!0},addFeature:function(e){for(var t=0;t<this._features.length;t++)if(this._features[t]==e)return!1;return this._features.push(e),!0},removeFeature:function(e){for(var t=0;t<this._features.length;t++)if(this._features[t]===e)return this._features.splice(t,1),!0;return!1},addItem:function(e,t,n,r){return n&&!r?!1:(this._items.push({jid:e,name:t,node:n,call_back:r}),!0)},info:function(t,r,i,s,o){var u={xmlns:e.NS.DISCO_INFO};r&&(u.node=r);var a=n({from:this._connection.jid,to:t,type:"get"}).c("query",u);this._connection.sendIQ(a,i,s,o)},items:function(t,r,i,s,o){var u={xmlns:e.NS.DISCO_ITEMS};r&&(u.node=r);var a=n({from:this._connection.jid,to:t,type:"get"}).c("query",u);this._connection.sendIQ(a,i,s,o)},_buildIQResult:function(e,t){var r=e.getAttribute("id"),i=e.getAttribute("from"),s=n({type:"result",id:r});return i!==null&&s.attrs({to:i}),s.c("query",t)},_onDiscoInfo:function(t){var n=t.getElementsByTagName("query")[0].getAttribute("node"),r={xmlns:e.NS.DISCO_INFO},i;n&&(r.node=n);var s=this._buildIQResult(t,r);for(i=0;i<this._identities.length;i++)r={category:this._identities[i].category,type:this._identities[i].type},this._identities[i].name&&(r.name=this._identities[i].name),this._identities[i].lang&&(r["xml:lang"]=this._identities[i].lang),s.c("identity",r).up();for(i=0;i<this._features.length;i++)s.c("feature",{"var":this._features[i]}).up();return this._connection.send(s.tree()),!0},_onDiscoItems:function(t){var n={xmlns:e.NS.DISCO_ITEMS},r=t.getElementsByTagName("query")[0].getAttribute("node"),i,s;if(r){n.node=r,i=[];for(s=0;s<this._items.length;s++)if(this._items[s].node==r){i=this._items[s].call_back(t);break}}else i=this._items;var o=this._buildIQResult(t,n);for(s=0;s<i.length;s++){var u={jid:i[s].jid};i[s].name&&(u.name=i[s].name),i[s].node&&(u.node=i[s].node),o.c("item",u).up()}return this._connection.send(o.tree()),!0}})}),function(e,t){typeof define=="function"&&define.amd?define("strophe.ping",["strophe"],function(e){return t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres),e}):t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres)}(this,function(e,t,n,r,i){e.addConnectionPlugin("ping",{_c:null,init:function(t){this._c=t,e.addNamespace("PING","urn:xmpp:ping")},ping:function(t,r,i,s){var o=this._c.getUniqueId("ping"),u=n({type:"get",to:t,id:o}).c("ping",{xmlns:e.NS.PING});this._c.sendIQ(u,r,i,s)},pong:function(e){var t=e.getAttribute("from"),r=e.getAttribute("id"),i=n({type:"result",to:t,id:r});this._c.sendIQ(i)},addPingHandler:function(t){return this._c.addHandler(t,e.NS.PING,"iq","get")}})}),function(e,t){typeof define=="function"&&define.amd?define("strophe.rsm",["strophe"],function(e){return t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres),e}):t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres)}(this,function(e,t,n,r,i){e.addNamespace("RSM","http://jabber.org/protocol/rsm"),e.RSM=function(e){this.attribs=["max","first","last","after","before","index","count"];if(typeof e.xml!="undefined")this.fromXMLElement(e.xml);else for(var t=0;t<this.attribs.length;t++){var n=this.attribs[t];this[n]=e[n]}},e.RSM.prototype={toXML:function(){var n=t("set",{xmlns:e.NS.RSM});for(var r=0;r<this.attribs.length;r++){var i=this.attribs[r];typeof this[i]!="undefined"&&(n=n.c(i).t(this[i].toString()).up())}return n.tree()},next:function(t){var n=new e.RSM({max:t,after:this.last});return n},previous:function(t){var n=new e.RSM({max:t,before:this.first});return n},fromXMLElement:function(t){for(var n=0;n<this.attribs.length;n++){var r=this.attribs[n],i=t.getElementsByTagName(r)[0];typeof i!="undefined"&&i!==null&&(this[r]=e.getText(i),r=="first"&&(this.index=i.getAttribute("index")))}}}}),function(e,t){typeof define=="function"&&define.amd?define("strophe.vcard",["strophe"],function(e){return t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres),e}):t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres)}(this,function(e,t,n,r,i){var s=function(t,r,i){var s=n(r?{type:t,to:r}:{type:t});return s.c("vCard",{xmlns:e.NS.VCARD}),i&&s.cnode(i),s};e.addConnectionPlugin("vcard",{_connection:null,init:function(t){return this._connection=t,e.addNamespace("VCARD","vcard-temp")},get:function(e,t,n){var r=s("get",t);return this._connection.sendIQ(r,e,n)},set:function(e,t,n,r){var i=s("set",n,t);return this._connection.sendIQ(i,e,r)}})}),function(e,t){if(typeof define=="function"&&define.amd)define("backbone",["underscore","jquery","exports"],function(n,r,i){e.Backbone=t(e,i,n,r)});else if(typeof exports!="undefined"){var n=require("underscore");t(e,exports,n)}else e.Backbone=t(e,{},e._,e.jQuery||e.Zepto||e.ender||e.$)}(this,function(e,t,n,r){var i=e.Backbone,s=[],o=s.push,u=s.slice,a=s.splice;t.VERSION="1.1.2",t.$=r,t.noConflict=function(){return e.Backbone=i,this},t.emulateHTTP=!1,t.emulateJSON=!1;var f=t.Events={on:function(e,t,n){if(!c(this,"on",e,[t,n])||!t)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:t,context:n,ctx:n||this}),this},once:function(e,t,r){if(!c(this,"once",e,[t,r])||!t)return this;var i=this,s=n.once(function(){i.off(e,s),t.apply(this,arguments)});return s._callback=t,this.on(e,s,r)},off:function(e,t,r){var i,s,o,u,a,f,l,h;if(!this._events||!c(this,"off",e,[t,r]))return this;if(!e&&!t&&!r)return this._events=void 0,this;u=e?[e]:n.keys(this._events);for(a=0,f=u.length;a<f;a++){e=u[a];if(o=this._events[e]){this._events[e]=i=[];if(t||r)for(l=0,h=o.length;l<h;l++)s=o[l],(t&&t!==s.callback&&t!==s.callback._callback||r&&r!==s.context)&&i.push(s);i.length||delete this._events[e]}}return this},trigger:function(e){if(!this._events)return this;var t=u.call(arguments,1);if(!c(this,"trigger",e,t))return this;var n=this._events[e],r=this._events.all;return n&&h(n,t),r&&h(r,arguments),this},stopListening:function(e,t,r){var i=this._listeningTo;if(!i)return this;var s=!t&&!r;!r&&typeof t=="object"&&(r=this),e&&((i={})[e._listenId]=e);for(var o in i)e=i[o],e.off(t,r,this),(s||n.isEmpty(e._events))&&delete this._listeningTo[o];return this}},l=/\s+/,c=function(e,t,n,r){if(!n)return!0;if(typeof n=="object"){for(var i in n)e[t].apply(e,[i,n[i]].concat(r));return!1}if(l.test(n)){var s=n.split(l);for(var o=0,u=s.length;o<u;o++)e[t].apply(e,[s[o]].concat(r));return!1}return!0},h=function(e,t){var n,r=-1,i=e.length,s=t[0],o=t[1],u=t[2];switch(t.length){case 0:while(++r<i)(n=e[r]).callback.call(n.ctx);return;case 1:while(++r<i)(n=e[r]).callback.call(n.ctx,s);return;case 2:while(++r<i)(n=e[r]).callback.call(n.ctx,s,o);return;case 3:while(++r<i)(n=e[r]).callback.call(n.ctx,s,o,u);return;default:while(++r<i)(n=e[r]).callback.apply(n.ctx,t);return}},p={listenTo:"on",listenToOnce:"once"};n.each(p,function(e,t){f[t]=function(t,r,i){var s=this._listeningTo||(this._listeningTo={}),o=t._listenId||(t._listenId=n.uniqueId("l"));return s[o]=t,!i&&typeof r=="object"&&(i=this),t[e](r,i,this),this}}),f.bind=f.on,f.unbind=f.off,n.extend(t,f);var d=t.Model=function(e,t){var r=e||{};t||(t={}),this.cid=n.uniqueId("c"),this.attributes={},t.collection&&(this.collection=t.collection),t.parse&&(r=this.parse(r,t)||{}),r=n.defaults({},r,n.result(this,"defaults")),this.set(r,t),this.changed={},this.initialize.apply(this,arguments)};n.extend(d.prototype,f,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(e){return n.clone(this.attributes)},sync:function(){return t.sync.apply(this,arguments)},get:function(e){return this.attributes[e]},escape:function(e){return n.escape(this.get(e))},has:function(e){return this.get(e)!=null},set:function(e,t,r){var i,s,o,u,a,f,l,c;if(e==null)return this;typeof e=="object"?(s=e,r=t):(s={})[e]=t,r||(r={});if(!this._validate(s,r))return!1;o=r.unset,a=r.silent,u=[],f=this._changing,this._changing=!0,f||(this._previousAttributes=n.clone(this.attributes),this.changed={}),c=this.attributes,l=this._previousAttributes,this.idAttribute in s&&(this.id=s[this.idAttribute]);for(i in s)t=s[i],n.isEqual(c[i],t)||u.push(i),n.isEqual(l[i],t)?delete this.changed[i]:this.changed[i]=t,o?delete c[i]:c[i]=t;if(!a){u.length&&(this._pending=r);for(var h=0,p=u.length;h<p;h++)this.trigger("change:"+u[h],this,c[u[h]],r)}if(f)return this;if(!a)while(this._pending)r=this._pending,this._pending=!1,this.trigger("change",this,r);return this._pending=!1,this._changing=!1,this},unset:function(e,t){return this.set(e,void 0,n.extend({},t,{unset:!0}))},clear:function(e){var t={};for(var r in this.attributes)t[r]=void 0;return this.set(t,n.extend({},e,{unset:!0}))},hasChanged:function(e){return e==null?!n.isEmpty(this.changed):n.has(this.changed,e)},changedAttributes:function(e){if(!e)return this.hasChanged()?n.clone(this.changed):!1;var t,r=!1,i=this._changing?this._previousAttributes:this.attributes;for(var s in e){if(n.isEqual(i[s],t=e[s]))continue;(r||(r={}))[s]=t}return r},previous:function(e){return e==null||!this._previousAttributes?null:this._previousAttributes[e]},previousAttributes:function(){return n.clone(this._previousAttributes)},fetch:function(e){e=e?n.clone(e):{},e.parse===void 0&&(e.parse=!0);var t=this,r=e.success;return e.success=function(n){if(!t.set(t.parse(n,e),e))return!1;r&&r(t,n,e),t.trigger("sync",t,n,e)},I(this,e),this.sync("read",this,e)},save:function(e,t,r){var i,s,o,u=this.attributes;e==null||typeof e=="object"?(i=e,r=t):(i={})[e]=t,r=n.extend({validate:!0},r);if(i&&!r.wait){if(!this.set(i,r))return!1}else if(!this._validate(i,r))return!1;i&&r.wait&&(this.attributes=n.extend({},u,i)),r.parse===void 0&&(r.parse=!0);var a=this,f=r.success;return r.success=function(e){a.attributes=u;var t=a.parse(e,r);r.wait&&(t=n.extend(i||{},t));if(n.isObject(t)&&!a.set(t,r))return!1;f&&f(a,e,r),a.trigger("sync",a,e,r)},I(this,r),s=this.isNew()?"create":r.patch?"patch":"update",s==="patch"&&(r.attrs=i),o=this.sync(s,this,r),i&&r.wait&&(this.attributes=u),o},destroy:function(e){e=e?n.clone(e):{};var t=this,r=e.success,i=function(){t.trigger("destroy",t,t.collection,e)};e.success=function(n){(e.wait||t.isNew())&&i(),r&&r(t,n,e),t.isNew()||t.trigger("sync",t,n,e)};if(this.isNew())return e.success(),!1;I(this,e);var s=this.sync("delete",this,e);return e.wait||i(),s},url:function(){var e=n.result(this,"urlRoot")||n.result(this.collection,"url")||F();return this.isNew()?e:e.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(e,t){return e},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(e){return this._validate({},n.extend(e||{},{validate:!0}))},_validate:function(e,t){if(!t.validate||!this.validate)return!0;e=n.extend({},this.attributes,e);var r=this.validationError=this.validate(e,t)||null;return r?(this.trigger("invalid",this,r,n.extend(t,{validationError:r})),!1):!0}});var v=["keys","values","pairs","invert","pick","omit"];n.each(v,function(e){d.prototype[e]=function(){var t=u.call(arguments);return t.unshift(this.attributes),n[e].apply(n,t)}});var m=t.Collection=function(e,t){t||(t={}),t.model&&(this.model=t.model),t.comparator!==void 0&&(this.comparator=t.comparator),this._reset(),this.initialize.apply(this,arguments),e&&this.reset(e,n.extend({silent:!0},t))},g={add:!0,remove:!0,merge:!0},y={add:!0,remove:!1};n.extend(m.prototype,f,{model:d,initialize:function(){},toJSON:function(e){return this.map(function(t){return t.toJSON(e)})},sync:function(){return t.sync.apply(this,arguments)},add:function(e,t){return this.set(e,n.extend({merge:!1},t,y))},remove:function(e,t){var r=!n.isArray(e);e=r?[e]:n.clone(e),t||(t={});var i,s,o,u;for(i=0,s=e.length;i<s;i++){u=e[i]=this.get(e[i]);if(!u)continue;delete this._byId[u.id],delete this._byId[u.cid],o=this.indexOf(u),this.models.splice(o,1),this.length--,t.silent||(t.index=o,u.trigger("remove",u,this,t)),this._removeReference(u,t)}return r?e[0]:e},set:function(e,t){t=n.defaults({},t,g),t.parse&&(e=this.parse(e,t));var r=!n.isArray(e);e=r?e?[e]:[]:n.clone(e);var i,s,o,u,a,f,l,c=t.at,h=this.model,p=this.comparator&&c==null&&t.sort!==!1,v=n.isString(this.comparator)?this.comparator:null,m=[],y=[],b={},w=t.add,E=t.merge,S=t.remove,x=!p&&w&&S?[]:!1;for(i=0,s=e.length;i<s;i++){a=e[i]||{},a instanceof d?o=u=a:o=a[h.prototype.idAttribute||"id"];if(f=this.get(o))S&&(b[f.cid]=!0),E&&(a=a===u?u.attributes:a,t.parse&&(a=f.parse(a,t)),f.set(a,t),p&&!l&&f.hasChanged(v)&&(l=!0)),e[i]=f;else if(w){u=e[i]=this._prepareModel(a,t);if(!u)continue;m.push(u),this._addReference(u,t)}u=f||u,x&&(u.isNew()||!b[u.id])&&x.push(u),b[u.id]=!0}if(S){for(i=0,s=this.length;i<s;++i)b[(u=this.models[i]).cid]||y.push(u);y.length&&this.remove(y,t)}if(m.length||x&&x.length){p&&(l=!0),this.length+=m.length;if(c!=null)for(i=0,s=m.length;i<s;i++)this.models.splice(c+i,0,m[i]);else{x&&(this.models.length=0);var T=x||m;for(i=0,s=T.length;i<s;i++)this.models.push(T[i])}}l&&this.sort({silent:!0});if(!t.silent){for(i=0,s=m.length;i<s;i++)(u=m[i]).trigger("add",u,this,t);(l||x&&x.length)&&this.trigger("sort",this,t)}return r?e[0]:e},reset:function(e,t){t||(t={});for(var r=0,i=this.models.length;r<i;r++)this._removeReference(this.models[r],t);return t.previousModels=this.models,this._reset(),e=this.add(e,n.extend({silent:!0},t)),t.silent||this.trigger("reset",this,t),e},push:function(e,t){return this.add(e,n.extend({at:this.length},t))},pop:function(e){var t=this.at(this.length-1);return this.remove(t,e),t},unshift:function(e,t){return this.add(e,n.extend({at:0},t))},shift:function(e){var t=this.at(0);return this.remove(t,e),t},slice:function(){return u.apply(this.models,arguments)},get:function(e){return e==null?void 0:this._byId[e]||this._byId[e.id]||this._byId[e.cid]},at:function(e){return this.models[e]},where:function(e,t){return n.isEmpty(e)?t?void 0:[]:this[t?"find":"filter"](function(t){for(var n in e)if(e[n]!==t.get(n))return!1;return!0})},findWhere:function(e){return this.where(e,!0)},sort:function(e){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return e||(e={}),n.isString(this.comparator)||this.comparator.length===1?this.models=this.sortBy(this.comparator,this):this.models.sort(n.bind(this.comparator,this)),e.silent||this.trigger("sort",this,e),this},pluck:function(e){return n.invoke(this.models,"get",e)},fetch:function(e){e=e?n.clone(e):{},e.parse===void 0&&(e.parse=!0);var t=e.success,r=this;return e.success=function(n){var i=e.reset?"reset":"set";r[i](n,e),t&&t(r,n,e),r.trigger("sync",r,n,e)},I(this,e),this.sync("read",this,e)},create:function(e,t){t=t?n.clone(t):{};if(!(e=this._prepareModel(e,t)))return!1;t.wait||this.add(e,t);var r=this,i=t.success;return t.success=function(e,n){t.wait&&r.add(e,t),i&&i(e,n,t)},e.save(null,t),e},parse:function(e,t){return e},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0,this.models=[],this._byId={}},_prepareModel:function(e,t){if(e instanceof d)return e;t=t?n.clone(t):{},t.collection=this;var r=new this.model(e,t);return r.validationError?(this.trigger("invalid",this,r.validationError,t),!1):r},_addReference:function(e,t){this._byId[e.cid]=e,e.id!=null&&(this._byId[e.id]=e),e.collection||(e.collection=this),e.on("all",this._onModelEvent,this)},_removeReference:function(e,t){this===e.collection&&delete e.collection,e.off("all",this._onModelEvent,this)},_onModelEvent:function(e,t,n,r){if((e==="add"||e==="remove")&&n!==this)return;e==="destroy"&&this.remove(t,r),t&&e==="change:"+t.idAttribute&&(delete this._byId[t.previous(t.idAttribute)],t.id!=null&&(this._byId[t.id]=t)),this.trigger.apply(this,arguments)}});var b=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];n.each(b,function(e){m.prototype[e]=function(){var t=u.call(arguments);return t.unshift(this.models),n[e].apply(n,t)}});var w=["groupBy","countBy","sortBy","indexBy"];n.each(w,function(e){m.prototype[e]=function(t,r){var i=n.isFunction(t)?t:function(e){return e.get(t)};return n[e](this.models,i,r)}});var E=t.View=function(e){this.cid=n.uniqueId("view"),e||(e={}),n.extend(this,n.pick(e,x)),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},S=/^(\S+)\s*(.*)$/,x=["model","collection","el","id","attributes","className","tagName","events"];n.extend(E.prototype,f,{tagName:"div",$:function(e){return this.$el.find(e)},initialize:function(){},render:function(){return this},remove:function(){return this.$el.remove(),this.stopListening(),this},setElement:function(e,n){return this.$el&&this.undelegateEvents(),this.$el=e instanceof t.$?e:t.$(e),this.el=this.$el[0],n!==!1&&this.delegateEvents(),this},delegateEvents:function(e){if(!e&&!(e=n.result(this,"events")))return this;this.undelegateEvents();for(var t in e){var r=e[t];n.isFunction(r)||(r=this[e[t]]);if(!r)continue;var i=t.match(S),s=i[1],o=i[2];r=n.bind(r,this),s+=".delegateEvents"+this.cid,o===""?this.$el.on(s,r):this.$el.on(s,o,r)}return this},undelegateEvents:function(){return this.$el.off(".delegateEvents"+this.cid),this},_ensureElement:function(){if(!this.el){var e=n.extend({},n.result(this,"attributes"));this.id&&(e.id=n.result(this,"id")),this.className&&(e["class"]=n.result(this,"className"));var r=t.$("<"+n.result(this,"tagName")+">").attr(e);this.setElement(r,!1)}else this.setElement(n.result(this,"el"),!1)}}),t.sync=function(e,r,i){var s=N[e];n.defaults(i||(i={}),{emulateHTTP:t.emulateHTTP,emulateJSON:t.emulateJSON});var o={type:s,dataType:"json"};i.url||(o.url=n.result(r,"url")||F()),i.data==null&&r&&(e==="create"||e==="update"||e==="patch")&&(o.contentType="application/json",o.data=JSON.stringify(i.attrs||r.toJSON(i))),i.emulateJSON&&(o.contentType="application/x-www-form-urlencoded",o.data=o.data?{model:o.data}:{});if(i.emulateHTTP&&(s==="PUT"||s==="DELETE"||s==="PATCH")){o.type="POST",i.emulateJSON&&(o.data._method=s);var u=i.beforeSend;i.beforeSend=function(e){e.setRequestHeader("X-HTTP-Method-Override",s);if(u)return u.apply(this,arguments)}}o.type!=="GET"&&!i.emulateJSON&&(o.processData=!1),o.type==="PATCH"&&T&&(o.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")});var a=i.xhr=t.ajax(n.extend(o,i));return r.trigger("request",r,a,i),a};var T=typeof window!="undefined"&&!!window.ActiveXObject&&(!window.XMLHttpRequest||!(new XMLHttpRequest).dispatchEvent),N={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};t.ajax=function(){return t.$.ajax.apply(t.$,arguments)};var C=t.Router=function(e){e||(e={}),e.routes&&(this.routes=e.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},k=/\((.*?)\)/g,L=/(\(\?)?:\w+/g,A=/\*\w+/g,O=/[\-{}\[\]+?.,\\\^$|#\s]/g;n.extend(C.prototype,f,{initialize:function(){},route:function(e,r,i){n.isRegExp(e)||(e=this._routeToRegExp(e)),n.isFunction(r)&&(i=r,r=""),i||(i=this[r]);var s=this;return t.history.route(e,function(n){var o=s._extractParameters(e,n);s.execute(i,o),s.trigger.apply(s,["route:"+r].concat(o)),s.trigger("route",r,o),t.history.trigger("route",s,r,o)}),this},execute:function(e,t){e&&e.apply(this,t)},navigate:function(e,n){return t.history.navigate(e,n),this},_bindRoutes:function(){if(!this.routes)return;this.routes=n.result(this,"routes");var e,t=n.keys(this.routes);while((e=t.pop())!=null)this.route(e,this.routes[e])},_routeToRegExp:function(e){return e=e.replace(O,"\\$&").replace(k,"(?:$1)?").replace(L,function(e,t){return t?e:"([^/?]+)"}).replace(A,"([^?]*?)"),new RegExp("^"+e+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(e,t){var r=e.exec(t).slice(1);return n.map(r,function(e,t){return t===r.length-1?e||null:e?decodeURIComponent(e):null})}});var M=t.History=function(){this.handlers=[],n.bindAll(this,"checkUrl"),typeof window!="undefined"&&(this.location=window.location,this.history=window.history)},_=/^[#\/]|\s+$/g,D=/^\/+|\/+$/g,P=/msie [\w.]+/,H=/\/$/,B=/#.*$/;M.started=!1,n.extend(M.prototype,f,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(e){var t=(e||this).location.href.match(/#(.*)$/);return t?t[1]:""},getFragment:function(e,t){if(e==null)if(this._hasPushState||!this._wantsHashChange||t){e=decodeURI(this.location.pathname+this.location.search);var n=this.root.replace(H,"");e.indexOf(n)||(e=e.slice(n.length))}else e=this.getHash();return e.replace(_,"")},start:function(e){if(M.started)throw new Error("Backbone.history has already been started");M.started=!0,this.options=n.extend({root:"/"},this.options,e),this.root=this.options.root,this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment(),i=document.documentMode,s=P.exec(navigator.userAgent.toLowerCase())&&(!i||i<=7);this.root=("/"+this.root+"/").replace(D,"/");if(s&&this._wantsHashChange){var o=t.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=o.hide().appendTo("body")[0].contentWindow,this.navigate(r)}this._hasPushState?t.$(window).on("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!s?t.$(window).on("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),this.fragment=r;var u=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot())return this.fragment=this.getFragment(null,!0),this.location.replace(this.root+"#"+this.fragment),!0;this._hasPushState&&this.atRoot()&&u.hash&&(this.fragment=this.getHash().replace(_,""),this.history.replaceState({},document.title,this.root+this.fragment))}if(!this.options.silent)return this.loadUrl()},stop:function(){t.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),M.started=!1},route:function(e,t){this.handlers.unshift({route:e,callback:t})},checkUrl:function(e){var t=this.getFragment();t===this.fragment&&this.iframe&&(t=this.getFragment(this.getHash(this.iframe)));if(t===this.fragment)return!1;this.iframe&&this.navigate(t),this.loadUrl()},loadUrl:function(e){return e=this.fragment=this.getFragment(e),n.any(this.handlers,function(t){if(t.route.test(e))return t.callback(e),!0})},navigate:function(e,t){if(!M.started)return!1;if(!t||t===!0)t={trigger:!!t};var n=this.root+(e=this.getFragment(e||""));e=e.replace(B,"");if(this.fragment===e)return;this.fragment=e,e===""&&n!=="/"&&(n=n.slice(0,-1));if(this._hasPushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,n);else{if(!this._wantsHashChange)return this.location.assign(n);this._updateHash(this.location,e,t.replace),this.iframe&&e!==this.getFragment(this.getHash(this.iframe))&&(t.replace||this.iframe.document.open().close(),this._updateHash(this.iframe.location,e,t.replace))}if(t.trigger)return this.loadUrl(e)},_updateHash:function(e,t,n){if(n){var r=e.href.replace(/(javascript:|#).*$/,"");e.replace(r+"#"+t)}else e.hash="#"+t}}),t.history=new M;var j=function(e,t){var r=this,i;e&&n.has(e,"constructor")?i=e.constructor:i=function(){return r.apply(this,arguments)},n.extend(i,r,t);var s=function(){this.constructor=i};return s.prototype=r.prototype,i.prototype=new s,e&&n.extend(i.prototype,e),i.__super__=r.prototype,i};d.extend=m.extend=C.extend=E.extend=M.extend=j;var F=function(){throw new Error('A "url" property or function must be specified')},I=function(e,t){var n=t.error;t.error=function(r){n&&n(e,r,t),e.trigger("error",e,r,t)}};return t}),function(e,t){typeof exports=="object"&&typeof require=="function"?module.exports=t(require("backbone"),require("underscore")):typeof define=="function"&&define.amd?define("backbone.browserStorage",["backbone","underscore"],function(n,r){return t(n||e.Backbone,r||e._)}):t(Backbone,_)}(this,function(e,t){function n(){return((1+Math.random())*65536|0).toString(16).substring(1)}function r(){return n()+n()+"-"+n()+"-"+n()+"-"+n()+"-"+n()+n()+n()}function i(e,t){var n=e.length;while(n--)if(e[n]===t)return!0;return!1}function s(e,t){for(var n in t)e[n]=t[n];return e}function o(e,n,r){var i;if(r==="local"&&!window.localStorage)throw"Backbone.browserStorage: Environment does not support localStorage.";if(r==="session"&&!window.sessionStorage)throw"Backbone.browserStorage: Environment does not support sessionStorage.";this.name=e,this.serializer=n||{serialize:function(e){return t.isObject(e)?JSON.stringify(e):e},deserialize:function(e){return e&&JSON.parse(e)}};if(r==="session")this.store=window.sessionStorage;else{if(r!=="local")throw"Backbone.browserStorage: No storage type was specified";this.store=window.localStorage}i=this.store.getItem(this.name),this.records=i&&i.split(",")||[]}e.BrowserStorage={local:function(e,t){return o.bind(this,e,t,"local")()},session:function(e,t){return o.bind(this,e,t,"session")()}};var u={save:function(){this.store.setItem(this.name,this.records.join(","))},create:function(e){return e.id||(e.id=r(),e.set(e.idAttribute,e.id)),this.store.setItem(this._itemName(e.id),this.serializer.serialize(e)),this.records.push(e.id.toString()),this.save(),this.find(e)!==!1},update:function(e){this.store.setItem(this._itemName(e.id),this.serializer.serialize(e));var t=e.id.toString();return i(this.records,t)||(this.records.push(t),this.save()),this.find(e)!==!1},find:function(e){return this.serializer.deserialize(this.store.getItem(this._itemName(e.id)))},findAll:function(){var e=[];for(var t=0,n,r;t<this.records.length;t++)n=this.records[t],r=this.serializer.deserialize(this.store.getItem(this._itemName(n))),r!==null&&e.push(r);return e},destroy:function(e){this.store.removeItem(this._itemName(e.id));var t=e.id.toString();for(var n=0,r;n<this.records.length;n++)this.records[n]===t&&this.records.splice(n,1);return this.save(),e},browserStorage:function(){return{session:sessionStorage,local:localStorage}},_clear:function(){var e=this.store,t=new RegExp("^"+this.name+"-");e.removeItem(this.name);for(var n in e)t.test(n)&&e.removeItem(n);this.records.length=0},_storageSize:function(){return this.store.length},_itemName:function(e){return this.name+"-"+e}};return s(e.BrowserStorage.session.prototype,u),s(e.BrowserStorage.local.prototype,u),e.BrowserStorage.sync=e.localSync=function(t,n,r){var i=n.browserStorage||n.collection.browserStorage,s,o,u=e.$?e.$.Deferred&&e.$.Deferred():e.Deferred&&e.Deferred();try{switch(t){case"read":s=n.id!==undefined?i.find(n):i.findAll();break;case"create":s=i.create(n);break;case"update":s=i.update(n);break;case"delete":s=i.destroy(n)}}catch(a){a.code===22&&i._storageSize()===0?o="Private browsing is unsupported":o=a.message}return s?(r&&r.success&&(e.VERSION==="0.9.10"?r.success(n,s,r):r.success(s)),u&&u.resolve(s)):(o=o?o:"Record Not Found",r&&r.error&&(e.VERSION==="0.9.10"?r.error(n,o,r):r.error(o)),u&&u.reject(o)),r&&r.complete&&r.complete(s),u&&u.promise()},e.ajaxSync=e.sync,e.getSyncMethod=function(t){return t.browserStorage||t.collection&&t.collection.browserStorage?e.localSync:e.ajaxSync},e.sync=function(t,n,r){return e.getSyncMethod(n).apply(this,[t,n,r])},e.BrowserStorage}),function(e,t){typeof define=="function"&&define.amd?define("backbone.overview",["underscore","backbone"],t):t(_||e._,Backbone||e.Backbone)}(this,function(e,t){"use strict";var n=t.Overview=function(n){this.views={},this.keys=e.partial(e.keys,this.views),this.getAll=e.partial(e.identity,this.views),this.get=function(e){return this.views[e]}.bind(this),this.add=function(e,t){return this.views[e]=t,t}.bind(this),this.remove=function(e){typeof e=="undefined"&&(new t.View).remove.apply(this);var n=this.views[e];if(n)return delete this.views[e],n.remove(),n}.bind(this),this.removeAll=function(){e.each(e.keys(this.views),this.remove)}.bind(this),t.View.apply(this,Array.prototype.slice.apply(arguments))},r=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];return e.each(r,function(t){n.prototype[t]=function(){var n=Array.prototype.slice.call(arguments);return n.unshift(this.views),e[t].apply(e,n)}}),e.extend(n.prototype,t.View.prototype),n.extend=t.View.extend,t.Overview}),function(e,t){typeof define=="function"&&define.amd?define("typeahead",["jquery"],function(n){t(n,e)}):t(jQuery,e)}(this,function(e,t){var n=function(){"use strict";return{isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:!1},isBlankString:function(e){return!e||/^\s*$/.test(e)},escapeRegExChars:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(e){return typeof e=="string"},isNumber:function(e){return typeof e=="number"},isArray:e.isArray,isFunction:e.isFunction,isObject:e.isPlainObject,isUndefined:function(e){return typeof e=="undefined"},toStr:function(t){return n.isUndefined(t)||t===null?"":t+""},bind:e.proxy,each:function(t,n){function r(e,t){return n(t,e)}e.each(t,r)},map:e.map,filter:e.grep,every:function(t,n){var r=!0;return t?(e.each(t,function(e,i){if(!(r=n.call(null,i,e,t)))return!1}),!!r):r},some:function(t,n){var r=!1;return t?(e.each(t,function(e,i){if(r=n.call(null,i,e,t))return!1}),!!r):r},mixin:e.extend,getUniqueId:function(){var e=0;return function(){return e++}}(),templatify:function(n){function r(){return String(n)}return e.isFunction(n)?n:r},defer:function(e){setTimeout(e,0)},debounce:function(e,t,n){var r,i;return function(){var s=this,o=arguments,u,a;return u=function(){r=null,n||(i=e.apply(s,o))},a=n&&!r,clearTimeout(r),r=setTimeout(u,t),a&&(i=e.apply(s,o)),i}},throttle:function(e,t){var n,r,i,s,o,u;return o=0,u=function(){o=new Date,i=null,s=e.apply(n,r)},function(){var a=new Date,f=t-(a-o);return n=this,r=arguments,f<=0?(clearTimeout(i),i=null,o=a,s=e.apply(n,r)):i||(i=setTimeout(u,f)),s}},noop:function(){}}}(),r=function(){return{wrapper:'<span class="twitter-typeahead"></span>',dropdown:'<span class="tt-dropdown-menu"></span>',dataset:'<div class="tt-dataset-%CLASS%"></div>',suggestions:'<span class="tt-suggestions"></span>',suggestion:'<div class="tt-suggestion"></div>'}}(),i=function(){"use strict";var e={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:" 0"}};return n.isMsie()&&n.mixin(e.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),n.isMsie()&&n.isMsie()<=7&&n.mixin(e.input,{marginTop:"-1px"}),e}(),s=function(){"use strict";function r(t){(!t||!t.el)&&e.error("EventBus initialized without el"),this.$el=e(t.el)}var t="typeahead:";return n.mixin(r.prototype,{trigger:function(e){var n=[].slice.call(arguments,1);this.$el.trigger(t+e,n)}}),r}(),o=function(){"use strict";function r(t,n,r,i){var s;if(!r)return this;n=n.split(e),r=i?l(r,i):r,this._callbacks=this._callbacks||{};while(s=n.shift())this._callbacks[s]=this._callbacks[s]||{sync:[],async:[]},this._callbacks[s][t].push(r);return this}function i(e,t,n){return r.call(this,"async",e,t,n)}function s(e,t,n){return r.call(this,"sync",e,t,n)}function o(t){var n;if(!this._callbacks)return this;t=t.split(e);while(n=t.shift())delete this._callbacks[n];return this}function u(t){var r,i,s,o,u;if(!this._callbacks)return this;t=t.split(e),s=[].slice.call(arguments,1);while((r=t.shift())&&(i=this._callbacks[r]))o=a(i.sync,this,[r].concat(s)),u=a(i.async,this,[r].concat(s)),o()&&n(u);return this}function a(e,t,n){function r(){var r;for(var i=0,s=e.length;!r&&i<s;i+=1)r=e[i].apply(t,n)===!1;return!r}return r}function f(){var e;return t.setImmediate?e=function(t){setImmediate(function(){t()})}:e=function(t){setTimeout(function(){t()},0)},e}function l(e,t){return e.bind?e.bind(t):function(){e.apply(t,[].slice.call(arguments,0))}}var e=/\s+/,n=f();return{onSync:s,onAsync:i,off:o,trigger:u}}(),u=function(e){"use strict";function r(e,t,r){var i=[],s;for(var o=0,u=e.length;o<u;o++)i.push(n.escapeRegExChars(e[o]));return s=r?"\\b("+i.join("|")+")\\b":"("+i.join("|")+")",t?new RegExp(s):new RegExp(s,"i")}var t={node:null,pattern:null,tagName:"strong",className:null,wordsOnly:!1,caseSensitive:!1};return function(s){function u(t){var n,r,i;if(n=o.exec(t.data))i=e.createElement(s.tagName),s.className&&(i.className=s.className),r=t.splitText(n.index),r.splitText(n[0].length),i.appendChild(r.cloneNode(!0)),t.parentNode.replaceChild(i,r);return!!n}function a(e,t){var n,r=3;for(var i=0;i<e.childNodes.length;i++)n=e.childNodes[i],n.nodeType===r?i+=t(n)?1:0:a(n,t)}var o;s=n.mixin({},t,s);if(!s.node||!s.pattern)return;s.pattern=n.isArray(s.pattern)?s.pattern:[s.pattern],o=r(s.pattern,s.caseSensitive,s.wordsOnly),a(s.node,u)}}(t.document),a=function(){"use strict";function r(r){var s=this,o,u,a,f;r=r||{},r.input||e.error("input is missing"),o=n.bind(this._onBlur,this),u=n.bind(this._onFocus,this),a=n.bind(this._onKeydown,this),f=n.bind(this._onInput,this),this.$hint=e(r.hint),this.$input=e(r.input).on("blur.tt",o).on("focus.tt",u).on("keydown.tt",a),this.$hint.length===0&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=n.noop),n.isMsie()?this.$input.on("keydown.tt keypress.tt cut.tt paste.tt",function(e){if(t[e.which||e.keyCode])return;n.defer(n.bind(s._onInput,s,e))}):this.$input.on("input.tt",f),this.query=this.$input.val(),this.$overflowHelper=i(this.$input)}function i(t){return e('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:t.css("font-family"),fontSize:t.css("font-size"),fontStyle:t.css("font-style"),fontVariant:t.css("font-variant"),fontWeight:t.css("font-weight"),wordSpacing:t.css("word-spacing"),letterSpacing:t.css("letter-spacing"),textIndent:t.css("text-indent"),textRendering:t.css("text-rendering"),textTransform:t.css("text-transform")}).insertAfter(t)}function s(e,t){return r.normalizeQuery(e)===r.normalizeQuery(t)}function u(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}var t;return t={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"},r.normalizeQuery=function(e){return(e||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},n.mixin(r.prototype,o,{_onBlur:function(){this.resetInputValue(),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(n){var r=t[n.which||n.keyCode];this._managePreventDefault(r,n),r&&this._shouldTrigger(r,n)&&this.trigger(r+"Keyed",n)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,n){var r,i,s;switch(t){case"tab":i=this.getHint(),s=this.getInputValue(),r=i&&i!==s&&!u(n);break;case"up":case"down":r=!u(n);break;default:r=!1}r&&n.preventDefault()},_shouldTrigger:function(t,n){var r;switch(t){case"tab":r=!u(n);break;default:r=!0}return r},_checkInputValue:function(){var t,n,r;t=this.getInputValue(),n=s(t,this.query),r=n?this.query.length!==t.length:!1,this.query=t,n?r&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,n){this.$input.val(t),n?this.clearHint():this._checkInputValue()},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,n,r,i;t=this.getInputValue(),n=this.getHint(),r=t!==n&&n.indexOf(t)===0,i=t!==""&&r&&!this.hasOverflow(),!i&&this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var e,t,r;return e=this.$input.val().length,t=this.$input[0].selectionStart,n.isNumber(t)?t===e:document.selection?(r=document.selection.createRange(),r.moveStart("character",-e),e===r.text.length):!0},destroy:function(){this.$hint.off(".tt"),this.$input.off(".tt"),this.$hint=this.$input=this.$overflowHelper=null}}),r}(),f=function(){"use strict";function f(t){t=t||{},t.templates=t.templates||{},t.source||e.error("missing source"),t.name&&!h(t.name)&&e.error("invalid dataset name: "+t.name),this.query=null,this.highlight=!!t.highlight,this.name=t.name||n.getUniqueId(),this.source=t.source,this.displayFn=l(t.display||t.displayKey),this.templates=c(t.templates,this.displayFn),this.$el=e(r.dataset.replace("%CLASS%",this.name))}function l(e){function t(t){return t[e]}return e=e||"value",n.isFunction(e)?e:t}function c(e,t){function r(e){return"<p>"+t(e)+"</p>"}return{empty:e.empty&&n.templatify(e.empty),header:e.header&&n.templatify(e.header),footer:e.footer&&n.templatify(e.footer),suggestion:e.suggestion||r}}function h(e){return/^[_a-zA-Z0-9-]+$/.test(e)}var t="ttDataset",s="ttValue",a="ttDatum";return f.extractDatasetName=function(r){return e(r).data(t)},f.extractValue=function(n){return e(n).data(s)},f.extractDatum=function(n){return e(n).data(a)},n.mixin(f.prototype,o,{_render:function(f,l){function p(){return c.templates.empty({query:f,isEmpty:!0})}function d(){function p(n){var o;return o=e(r.suggestion).append(c.templates.suggestion(n)).data(t,c.name).data(s,c.displayFn(n)).data(a,n),o.children().each(function(){e(this).css(i.suggestionChild)}),o}var o,h;return o=e(r.suggestions).css(i.suggestions),h=n.map(l,p),o.append.apply(o,h),c.highlight&&u({className:"tt-highlight",node:o[0],pattern:f}),o}function v(){return c.templates.header({query:f,isEmpty:!h})}function m(){return c.templates.footer({query:f,isEmpty:!h})}if(!this.$el)return;var c=this,h;this.$el.empty(),h=l&&l.length,!h&&this.templates.empty?this.$el.html(p()).prepend(c.templates.header?v():null).append(c.templates.footer?m():null):h&&this.$el.html(d()).prepend(c.templates.header?v():null).append(c.templates.footer?m():null),this.trigger("rendered")},getRoot:function(){return this.$el},update:function(t){function r(e){!n.canceled&&t===n.query&&n._render(t,e)}var n=this;this.query=t,this.canceled=!1,this.source(t,r)},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger("rendered")},isEmpty:function(){return this.$el.is(":empty")},destroy:function(){this.$el=null}}),f}(),l=function(){"use strict";function t(t){var i=this,s,o,u;t=t||{},t.menu||e.error("menu is required"),this.isOpen=!1,this.isEmpty=!0,this.datasets=n.map(t.datasets,r),s=n.bind(this._onSuggestionClick,this),o=n.bind(this._onSuggestionMouseEnter,this),u=n.bind(this._onSuggestionMouseLeave,this),this.$menu=e(t.menu).on("click.tt",".tt-suggestion",s).on("mouseenter.tt",".tt-suggestion",o).on("mouseleave.tt",".tt-suggestion",u),n.each(this.datasets,function(e){i.$menu.append(e.getRoot()),e.onSync("rendered",i._onRendered,i)})}function r(e){return new f(e)}return n.mixin(t.prototype,o,{_onSuggestionClick:function(n){this.trigger("suggestionClicked",e(n.currentTarget))},_onSuggestionMouseEnter:function(n){this._removeCursor(),this._setCursor(e(n.currentTarget),!0)},_onSuggestionMouseLeave:function(){this._removeCursor()},_onRendered:function(){function t(e){return e.isEmpty()}this.isEmpty=n.every(this.datasets,t),this.isEmpty?this._hide():this.isOpen&&this._show(),this.trigger("datasetRendered")},_hide:function(){this.$menu.hide()},_show:function(){this.$menu.css("display","block")},_getSuggestions:function(){return this.$menu.find(".tt-suggestion")},_getCursor:function(){return this.$menu.find(".tt-cursor").first()},_setCursor:function(t,n){t.first().addClass("tt-cursor"),!n&&this.trigger("cursorMoved")},_removeCursor:function(){this._getCursor().removeClass("tt-cursor")},_moveCursor:function(t){var n,r,i,s;if(!this.isOpen)return;r=this._getCursor(),n=this._getSuggestions(),this._removeCursor(),i=n.index(r)+t,i=(i+1)%(n.length+1)-1;if(i===-1){this.trigger("cursorRemoved");return}i<-1&&(i=n.length-1),this._setCursor(s=n.eq(i)),this._ensureVisible(s)},_ensureVisible:function(t){var n,r,i,s;n=t.position().top,r=n+t.outerHeight(!0),i=this.$menu.scrollTop(),s=this.$menu.height()+parseInt(this.$menu.css("paddingTop"),10)+parseInt(this.$menu.css("paddingBottom"),10),n<0?this.$menu.scrollTop(i+n):s<r&&this.$menu.scrollTop(i+(r-s))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,!this.isEmpty&&this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css(t==="ltr"?i.ltr:i.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var n=null;return t.length&&(n={raw:f.extractDatum(t),value:f.extractValue(t),datasetName:f.extractDatasetName(t)}),n},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},update:function(t){function r(e){e.update(t)}n.each(this.datasets,r)},empty:function(){function t(e){e.clear()}n.each(this.datasets,t),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){function t(e){e.destroy()}this.$menu.off(".tt"),this.$menu=null,n.each(this.datasets,t)}}),t}(),c=function(){"use strict";function o(t){var r,i,o;t=t||{},t.input||e.error("missing input"),this.isActivated=!1,this.autoselect=!!t.autoselect,this.minLength=n.isNumber(t.minLength)?t.minLength:1,this.$node=u(t.input,t.withHint),r=this.$node.find(".tt-dropdown-menu"),i=this.$node.find(".tt-input"),o=this.$node.find(".tt-hint"),i.on("blur.tt",function(e){var t,s,o;t=document.activeElement,s=r.is(t),o=r.has(t).length>0,n.isMsie()&&(s||o)&&(e.preventDefault(),e.stopImmediatePropagation(),n.defer(function(){i.focus()}))}),r.on("mousedown.tt",function(e){e.preventDefault()}),this.eventBus=t.eventBus||new s({el:i}),this.dropdown=(new l({menu:r,datasets:t.datasets})).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=(new a({input:i,hint:o})).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._setLanguageDirection()}function u(n,s){var o,u,a,l;o=e(n),u=e(r.wrapper).css(i.wrapper),a=e(r.dropdown).css(i.dropdown),l=o.clone().css(i.hint).css(f(o)),l.val("").removeData().addClass("tt-hint").removeAttr("id name placeholder required").prop("readonly",!0).attr({autocomplete:"off",spellcheck:"false",tabindex:-1}),o.data(t,{dir:o.attr("dir"),autocomplete:o.attr("autocomplete"),spellcheck:o.attr("spellcheck"),style:o.attr("style")}),o.addClass("tt-input").attr({autocomplete:"off",spellcheck:!1}).css(s?i.input:i.inputWithNoHint);try{!o.attr("dir")&&o.attr("dir","auto")}catch(c){}return o.wrap(u).parent().prepend(s?l:null).append(a)}function f(e){return{backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}}function c(e){var r=e.find(".tt-input");n.each(r.data(t),function(e,t){n.isUndefined(e)?r.removeAttr(t):r.attr(t,e)}),r.detach().removeData(t).removeClass("tt-input").insertAfter(e),e.remove()}var t="ttAttrs";return n.mixin(o.prototype,{_onSuggestionClicked:function(t,n){var r;(r=this.dropdown.getDatumForSuggestion(n))&&this._select(r)},_onCursorMoved:function(){var t=this.dropdown.getDatumForCursor();this.input.setInputValue(t.value,!0),this.eventBus.trigger("cursorchanged",t.raw,t.datasetName)},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint()},_onDatasetRendered:function(){this._updateHint()},_onOpened:function(){this._updateHint(),this.eventBus.trigger("opened")},_onClosed:function(){this.input.clearHint(),this.eventBus.trigger("closed")},_onFocused:function(){this.isActivated=!0,this.dropdown.open()},_onBlurred:function(){this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()},_onEnterKeyed:function(t,n){var r,i;r=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion(),r?(this._select(r),n.preventDefault()):this.autoselect&&i&&(this._select(i),n.preventDefault())},_onTabKeyed:function(t,n){var r;(r=this.dropdown.getDatumForCursor())?(this._select(r),n.preventDefault()):this._autocomplete(!0)},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){this.dir==="rtl"&&this._autocomplete()},_onRightKeyed:function(){this.dir==="ltr"&&this._autocomplete()},_onQueryChanged:function(t,n){this.input.clearHintIfInvalid(),n.length>=this.minLength?this.dropdown.update(n):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t;this.dir!==(t=this.input.getLanguageDirection())&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,r,i,s,o,u;t=this.dropdown.getDatumForTopSuggestion(),t&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(r=this.input.getInputValue(),i=a.normalizeQuery(r),s=n.escapeRegExChars(i),o=new RegExp("^(?:"+s+")(.+$)","i"),u=o.exec(t.value),u?this.input.setHint(r+u[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var n,r,i,s;n=this.input.getHint(),r=this.input.getQuery(),i=t||this.input.isCursorAtEnd(),n&&r!==n&&i&&(s=this.dropdown.getDatumForTopSuggestion(),s&&this.input.setInputValue(s.value),this.eventBus.trigger("autocompleted",s.raw,s.datasetName))},_select:function(t){this.input.setQuery(t.value),this.input.setInputValue(t.value,!0),this._setLanguageDirection(),this.eventBus.trigger("selected",t.raw,t.datasetName),this.dropdown.close(),n.defer(n.bind(this.dropdown.empty,this.dropdown))},open:function(){this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=n.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),c(this.$node),this.$node=null}}),o}();return function(){"use strict";var t,r,i;t=e.fn.typeahead,r="ttTypeahead",i={initialize:function(i,o){function u(){var t=e(this),u,a;n.each(o,function(e){e.highlight=!!i.highlight}),a=new c({input:t,eventBus:u=new s({el:t}),withHint:n.isUndefined(i.hint)?!0:!!i.hint,minLength:i.minLength,autoselect:i.autoselect,datasets:o}),t.data(r,a)}return o=n.isArray(o)?o:[].slice.call(arguments,1),i=i||{},this.each(u)},open:function(){function n(){var t=e(this),n;(n=t.data(r))&&n.open()}return this.each(n)},close:function(){function n(){var t=e(this),n;(n=t.data(r))&&n.close()}return this.each(n)},val:function(n){function i(){var t=e(this),i;(i=t.data(r))&&i.setVal(n)}function s(e){var t,n;if(t=e.data(r))n=t.getVal();return n}return arguments.length?this.each(i):s(this.first())},destroy:function(){function n(){var t=e(this),n;if(n=t.data(r))n.destroy(),t.removeData(r)}return this.each(n)}},e.fn.typeahead=function(t){var n;return i[t]&&t!=="initialize"?(n=this.filter(function(){return!!e(this).data(r)}),i[t].apply(n,[].slice.call(arguments,1))):i.initialize.apply(this,arguments)},e.fn.typeahead.noConflict=function(){return e.fn.typeahead=t,this}}(),{}}),define("converse-dependencies",["jquery","utils","otr","moment_with_locales","strophe","strophe.disco","strophe.ping","strophe.rsm","strophe.vcard","backbone.browserStorage","backbone.overview","jquery.browser","typeahead"],function(e,t,n,r,i){return _.extend({underscore:_,jQuery:e,otr:n,moment:r,utils:t},i)}),function(e,t){typeof define=="function"&&define.amd?define("converse",["converse-dependencies","converse-templates"],function(e,n){return t(n,e.jQuery,e.$iq,e.$msg,e.$pres,e.$build,e.otr?e.otr.DSA:undefined,e.otr?e.otr.OTR:undefined,e.Strophe,e.underscore,e.moment,e.utils,e.SHA1.b64_sha1)}):e.converse=t(templates,jQuery,$iq,$msg,$pres,$build,DSA,OTR,Strophe,_,moment,utils,b64_sha1)}(this,function(e,t,n,r,i,s,o,u,a,f,l,c,h){if(typeof console=="undefined"||typeof console.log=="undefined")console={log:function(){},error:function(){}};f.templateSettings={evaluate:/\{\[([\s\S]+?)\]\}/g,interpolate:/\{\{([\s\S]+?)\}\}/g};var p=function(e,t){return function(n){if(typeof e=="object"){var r=!1;return f.each(e,function(e){r=r||n.get(e).toLowerCase().indexOf(t.toLowerCase())!==-1}),r}if(typeof e=="string")return n.get(e).toLowerCase().indexOf(t.toLowerCase())!==-1;throw new TypeError("contains: wrong attribute type. Must be string or array.")}};p.not=function(e,t){return function(n){return!p(e,t)(n)}},String.prototype.splitOnce=function(e){var t=this.split(e);return[t.shift(),t.join(e)]};var d={plugins:{},templates:e,emit:function(e,n){t(this).trigger(e,n)},once:function(e,n){t(this).one(e,n)},on:function(e,n){t(this).bind(e,n)},off:function(e,n){t(this).unbind(e,n)},refreshWebkit:function(){if(t.browser.webkit){var e=document.getElementById("conversejs");e.style.display="none",e.offsetHeight=e.offsetHeight,e.style.display="block"}}},v=["max","first","last","after","before","index","count"],m=["with","start","end"],g={offline:6,unavailable:5,xa:4,away:3,dnd:2,chat:1,online:1};d.initialize=function(d,v){"use strict";var m=this,y;"onpagehide"in window?y="pagehide":"onbeforeunload"in window?y="beforeunload":"onunload"in window&&(y="unload"),a.log=function(e,t){m.log(e+" "+t,e)},a.error=function(e){m.log(e,"error")},a.addNamespace("CARBONS","urn:xmpp:carbons:2"),a.addNamespace("CHATSTATES","http://jabber.org/protocol/chatstates"),a.addNamespace("CSI","urn:xmpp:csi:0"),a.addNamespace("MAM","urn:xmpp:mam:0"),a.addNamespace("MUC_ADMIN",a.NS.MUC+"#admin"),a.addNamespace("MUC_OWNER",a.NS.MUC+"#owner"),a.addNamespace("MUC_REGISTER","jabber:iq:register"),a.addNamespace("MUC_ROOMCONF",a.NS.MUC+"#roomconfig"),a.addNamespace("MUC_USER",a.NS.MUC+"#user"),a.addNamespace("REGISTER","jabber:iq:register"),a.addNamespace("ROSTERX","http://jabber.org/protocol/rosterx"),a.addNamespace("RSM","http://jabber.org/protocol/rsm"),a.addNamespace("XFORM","jabber:x:data");var w=0;Object.keys(a.Status).forEach(function(e){w=Math.max(w,a.Status[e])}),a.Status.REGIFAIL=w+1,a.Status.REGISTERED=w+2,a.Status.CONFLICT=w+3,a.Status.NOTACCEPTABLE=w+5;var E="login",S="anonymous",x="prebind",T=0,N=1,C=2,k=3,L={ENTER:13,FORWARD_SLASH:47},A={0:"ERROR",1:"CONNECTING",2:"CONNFAIL",3:"AUTHENTICATING",4:"AUTHFAIL",5:"CONNECTED",6:"DISCONNECTED",7:"DISCONNECTING",8:"ATTACHED",9:"REDIRECT"},O="inactive",M="active",D="composing",P="paused",H="gone";this.TIMEOUTS={PAUSED:2e4,INACTIVE:9e4};var B=typeof crypto!="undefined"&&(typeof crypto.randomBytes=="function"||typeof crypto.getRandomValues=="function"),j=B&&typeof CryptoJS!="undefined"&&typeof u!="undefined"&&typeof o!="undefined",F="opened",I="closed";this.isConverseLocale=function(e){return typeof locales[e]!="undefined"},this.isMomentLocale=function(e){return l.locale()!=l.locale(e)},this.isLocaleAvailable=function(e,t){if(t(e))return e;var n=e.split("-")[0];if(n!=e&&t(n))return n},this.detectLocale=function(e){var t,n;window.navigator.userLanguage&&(t=this.isLocaleAvailable(window.navigator.userLanguage,e));if(window.navigator.languages&&!t)for(n=0;n<window.navigator.languages.length&&!t;n++)t=this.isLocaleAvailable(window.navigator.languages[n],e);return window.navigator.browserLanguage&&!t&&(t=this.isLocaleAvailable(window.navigator.browserLanguage,e)),window.navigator.language&&!t&&(t=this.isLocaleAvailable(window.navigator.language,e)),window.navigator.systemLanguage&&!t&&(t=this.isLocaleAvailable(window.navigator.systemLanguage,e)),t||"en"},l.locale||(l.locale=l.lang),l.locale(this.detectLocale(this.isMomentLocale)),this.i18n=d.i18n?d.i18n:locales[this.detectLocale(this.isConverseLocale)];var q=c.__.bind(this),R=c.___;this.default_settings={allow_chat_pending_contacts:!1,allow_contact_removal:!0,allow_contact_requests:!0,allow_dragresize:!0,allow_logout:!0,allow_muc:!0,allow_otr:!0,archived_messages_page_size:"20",auto_away:0,auto_xa:0,allow_registration:!0,animate:!0,auto_list_rooms:!1,auto_login:!1,auto_reconnect:!1,auto_subscribe:!1,bosh_service_url:undefined,cache_otr_key:!1,csi_waiting_time:0,debug:!1,domain_placeholder:q(" e.g. conversejs.org"),expose_rid_and_sid:!1,forward_messages:!1,hide_muc_server:!1,hide_offline_users:!1,jid:undefined,keepalive:!1,message_archiving:"never",message_carbons:!1,muc_history_max_stanzas:undefined,no_trimming:!1,ping_interval:180,play_sounds:!1,sounds_path:"/sounds/",password:undefined,authentication:"login",prebind:!1,prebind_url:null,providers_link:"https://xmpp.net/directory.php",rid:undefined,roster_groups:!1,show_controlbox_by_default:!1,show_only_online_users:!1,show_toolbar:!0,sid:undefined,storage:"session",use_otr_by_default:!1,use_vcards:!0,visible_toolbar_buttons:{emoticons:!0,call:!1,clear:!0,toggle_participants:!0},websocket_url:undefined,xhr_custom_status:!1,xhr_custom_status_url:"",xhr_user_search:!1,xhr_user_search_url:""},f.extend(this,this.default_settings),f.extend(this,f.pick(d,Object.keys(this.default_settings))),this.prebind===!0&&(this.authentication=x);if(this.authentication===S&&!this.jid)throw"Config Error: you need to provide the server's domain via the 'jid' option when using anonymous authentication.";d.visible_toolbar_buttons&&f.extend(this.visible_toolbar_buttons,f.pick(d.visible_toolbar_buttons,["emoticons","call","clear","toggle_participants"])),t.fx.off=!this.animate,this.allow_otr=this.allow_otr&&j,this.use_otr_by_default=this.use_otr_by_default&&this.allow_otr;var U={};U[T]="unencrypted",U[N]="unverified",U[C]="verified",U[k]="finished";var z={};z[T]=q("unencrypted"),z[N]=q("unverified"),z[C]=q("verified"),z[k]=q("finished");var W={dnd:q("This contact is busy"),online:q("This contact is online"),offline:q("This contact is offline"),unavailable:q("This contact is unavailable"),xa:q("This contact is away for an extended period"),away:q("This contact is away")},X=q("Click to hide these contacts"),V=q("My contacts"),J=q("Pending contacts"),K=q("Contact requests"),Q=q("Ungrouped"),G=q("Contacts"),Y=q("Groups"),Z={};Z[V]=0,Z[Q]=1,Z[K]=2,Z[J]=3,this.callback=v||function(){},this.initial_presence_sent=0,this.msg_counter=0,this.sendCSI=function(e){if(m.features[a.NS.CSI]||!0)m.connection.send(s(e,{xmlns:a.NS.CSI})),this.inactive=e===O?!0:!1},this.onUserActivity=function(){this.idle_seconds>0&&(this.idle_seconds=0);if(!m.connection.authenticated)return;this.inactive&&this.sendCSI(M),this.auto_changed_status===!0&&(this.auto_changed_status=!1,this.xmppstatus.setStatus("online"))},this.onEverySecond=function(){if(!m.connection.authenticated)return;var e=this.xmppstatus.getStatus();this.idle_seconds++,this.csi_waiting_time>0&&this.idle_seconds>this.csi_waiting_time&&!this.inactive&&this.sendCSI(O),this.auto_away>0&&this.idle_seconds>this.auto_away&&e!=="away"&&e!=="xa"?(this.auto_changed_status=!0,this.xmppstatus.setStatus("away")):this.auto_xa>0&&this.idle_seconds>this.auto_xa&&e!=="xa"&&(this.auto_changed_status=!0,this.xmppstatus.setStatus("xa"))},this.registerIntervalHandler=function(){if(this.auto_away<1&&this.auto_xa<1&&this.csi_waiting_time<1)return;this.idle_seconds=0,this.auto_changed_status=!1,t(window).on("click mousemove keypress focus"+y,this.onUserActivity.bind(this)),window.setInterval(this.onEverySecond.bind(this),1e3)},this.playNotification=function(){var e;m.play_sounds&&typeof Audio!="undefined"&&(e=new Audio(m.sounds_path+"msg_received.ogg"),e.canPlayType("/audio/ogg")?e.play():(e=new Audio(m.sounds_path+"msg_received.mp3"),e.play()))},this.giveFeedback=function(e,n){t(".conn-feedback").each(function(r,i){var s=t(i);s.addClass("conn-feedback").text(e),n?s.addClass(n):s.removeClass("error")})},this.log=function(e,t){this.debug&&(t=="error"?console.log("ERROR: "+e):console.log(e))},this.rejectPresenceSubscription=function(e,t){var n=i({to:e,type:"unsubscribed"});t&&t!==""&&n.c("status").t(t),m.connection.send(n)},this.getVCard=function(e,n,r){if(!this.use_vcards){n&&n(e,e);return}m.connection.vcard.get(function(r){var i=t(r).find("vCard"),s=i.find("FN").text(),o=i.find("BINVAL").text(),u=i.find("TYPE").text(),a=i.find("URL").text();if(e){var c=m.roster.get(e);c&&(s=f.isEmpty(s)?c.get("fullname")||e:s,c.save({fullname:s,image_type:u,image:o,url:a,vcard_updated:l().format()}))}n&&n(r,e,s,o,u,a)}.bind(this),e,function(t){var n=m.roster.get(e);n&&n.save({vcard_updated:l().format()}),r&&r(t,e)})},this.reconnect=function(e){m.log("Attempting to reconnect in 5 seconds"),m.giveFeedback(q("Attempting to reconnect in 5 seconds"),"error"),setTimeout(function(){m.authentication!=="prebind"?this.connection.connect(this.connection.jid,this.connection.pass,function(e,t){this.onConnectStatusChanged(e,t,!0)}.bind(this),this.connection.wait,this.connection.hold,this.connection.route):m.prebind_url&&(this.clearSession(),this._tearDown(),this.startNewBOSHSession())}.bind(this),5e3)},this.renderLoginPanel=function(){m._tearDown();var e=m.chatboxviews.get("controlbox");e.model.set({connected:!1}),e.renderLoginPanel()},this.onConnectStatusChanged=function(e,t,n){m.log("Status changed to: "+A[e]),e===a.Status.CONNECTED||e===a.Status.ATTACHED?(delete m.disconnection_cause,typeof n!="undefined"&&n?(m.log(e===a.Status.CONNECTED?"Reconnected":"Reattached"),m.onReconnected()):(m.log(e===a.Status.CONNECTED?"Connected":"Attached"),m.onConnected())):e===a.Status.DISCONNECTED?m.disconnection_cause==a.Status.CONNFAIL&&m.auto_reconnect?m.reconnect(t):m.renderLoginPanel():e===a.Status.ERROR?m.giveFeedback(q("Error"),"error"):e===a.Status.CONNECTING?m.giveFeedback(q("Connecting")):e===a.Status.AUTHENTICATING?m.giveFeedback(q("Authenticating")):e===a.Status.AUTHFAIL?(m.giveFeedback(q("Authentication Failed"),"error"),m.connection.disconnect(q("Authentication Failed")),m.disconnection_cause=a.Status.AUTHFAIL):e===a.Status.CONNFAIL?m.disconnection_cause=a.Status.CONNFAIL:e===a.Status.DISCONNECTING&&(m.connection.connected||m.renderLoginPanel(),t&&m.giveFeedback(t,"error"))},this.applyHeightResistance=function(e){if(typeof e=="undefined")return m.default_box_height;var t=10;return e!==m.default_box_height&&Math.abs(e-m.default_box_height)<t?m.default_box_height:e},this.updateMsgCounter=function(){this.msg_counter>0?(document.title.search(/^Messages \(\d+\) /)==-1?document.title="Messages ("+this.msg_counter+") "+document.title:document.title=document.title.replace(/^Messages \(\d+\) /,"Messages ("+this.msg_counter+") "),window.blur(),window.focus()):document.title.search(/^Messages \(\d+\) /)!=-1&&(document.title=document.title.replace(/^Messages \(\d+\) /,""))},this.incrementMsgCounter=function(){this.msg_counter+=1,this.updateMsgCounter()},this.clearMsgCounter=function(){this.msg_counter=0,this.updateMsgCounter()},this.initStatus=function(e){this.xmppstatus=new this.XMPPStatus;var t=h("converse.xmppstatus-"+m.bare_jid);this.xmppstatus.id=t,this.xmppstatus.browserStorage=new Backbone.BrowserStorage[m.storage](t),this.xmppstatus.fetch({success:e,error:e})},this.initSession=function(){this.session=new this.Session;var e=h("converse.bosh-session");this.session.id=e,this.session.browserStorage=new Backbone.BrowserStorage[m.storage](e),this.session.fetch()},this.clearSession=function(){this.roster&&this.roster.browserStorage._clear(),this.session.browserStorage._clear(),m.connection.connected&&m.chatboxes.get("controlbox").save({connected:!1})},this.logOut=function(){m.chatboxviews.closeAllChatBoxes(!1),m.clearSession(),m.connection.disconnect()},this.registerGlobalEventHandlers=function(){t(document).click(function(){t(".toggle-otr ul").is(":visible")&&t(".toggle-otr ul",this).slideUp(),t(".toggle-smiley ul").is(":visible")&&t(".toggle-smiley ul",this).slideUp()}),t(document).on("mousemove",function(e){if(!this.resized_chatbox||!this.allow_dragresize)return!0;e.preventDefault(),this.resized_chatbox.resizeChatBox(e)}.bind(this)),t(document).on("mouseup",function(e){if(!this.resized_chatbox||!this.allow_dragresize)return!0;e.preventDefault();var t=this.applyHeightResistance(this.resized_chatbox.height);this.connection.connected?this.resized_chatbox.model.save({height:t}):this.resized_chatbox.model.set({height:t}),this.resized_chatbox=null}.bind(this)),t(window).on("blur focus",function(e){this.windowState!=e.type&&e.type=="focus"&&m.clearMsgCounter(),this.windowState=e.type}.bind(this)),t(window).on("resize",f.debounce(function(e){this.chatboxviews.trimChats()}.bind(this),200))},this.ping=function(e,t,n,r){m.lastStanzaDate=new Date;if(typeof e=="undefined"||e===null)e=a.getDomainFromJid(m.bare_jid);return typeof r=="undefined"&&(r=null),typeof t=="undefined"&&(t=null),typeof n=="undefined"&&(n=null),m.connection?(m.connection.ping.ping(e,t,n,r),!0):!1},this.pong=function(e){return m.lastStanzaDate=new Date,m.connection.ping.pong(e),!0},this.registerPongHandler=function(){m.connection.disco.addFeature(a.NS.PING),m.connection.ping.addPingHandler(this.pong)},this.registerPingHandler=function(){this.registerPongHandler(),this.ping_interval>0&&(this.connection.addHandler(function(){return this.lastStanzaDate=new Date,!0}.bind(m)),this.connection.addTimedHandler(1e3,function(){var e=new Date;return this.lastStanzaDate||(this.lastStanzaDate=e),(e-this.lastStanzaDate)/1e3>this.ping_interval?this.ping():!0}.bind(m)))},this.onReconnected=function(){this.initStatus(function(){this.registerPingHandler(),this.rosterview.registerRosterXHandler(),this.rosterview.registerPresenceHandler(),this.chatboxes.registerMessageHandler(),this.xmppstatus.sendPresence(),this.giveFeedback(q("Contacts"))}.bind(this))},this.enableCarbons=function(){if(!this.message_carbons||this.session.get("carbons_enabled"))return;var e=(new a.Builder("iq",{from:this.connection.jid,id:"enablecarbons",type:"set"})).c("enable",{xmlns:a.NS.CARBONS});this.connection.addHandler(function(e){t(e).find("error").length>0?m.log("ERROR: An error occured while trying to enable message carbons."):(this.session.save({carbons_enabled:!0}),m.log("Message carbons have been enabled."))}.bind(this),null,"iq",null,"enablecarbons"),this.connection.send(e)},this.onConnected=function(){this.chatboxviews.closeAllChatBoxes(),this.jid=this.connection.jid,this.bare_jid=a.getBareJidFromJid(this.connection.jid),this.resource=a.getResourceFromJid(this.connection.jid),this.domain=a.getDomainFromJid(this.connection.jid),this.minimized_chats=new m.MinimizedChats({model:this.chatboxes}),this.features=new this.Features,this.enableCarbons(),this.initStatus(function(){this.registerPingHandler(),this.registerIntervalHandler(),this.chatboxes.onConnected(),this.giveFeedback(q("Contacts")),this.callback&&(this.connection.service==="jasmine tests"?this.callback(this):this.callback())}.bind(this)),m.emit("ready")},this.OTR=Backbone.Model.extend({getSessionPassphrase:function(){if(m.authentication==="prebind"){var e=h(m.connection.jid),t=window.sessionStorage[e];return typeof t=="undefined"&&(t=Math.floor(Math.random()*4294967295).toString(),window.sessionStorage[e]=t),t}return m.connection.pass},generatePrivateKey:function(){var e=new o,t=m.connection.jid;if(m.cache_otr_key){var n=CryptoJS.lib.PasswordBasedCipher,r=this.getSessionPassphrase();typeof r!="undefined"&&(window.sessionStorage[h(t+"priv_key")]=n.encrypt(CryptoJS.algo.AES,e.packPrivate(),r).toString(),window.sessionStorage[h(t+"instance_tag")]=instance_tag,window.sessionStorage[h(t+"pass_check")]=n.encrypt(CryptoJS.algo.AES,"match",r).toString())}return e}}),this.Message=Backbone.Model.extend({idAttribute:"msgid",defaults:function(){return{msgid:m.connection.getUniqueId()}}}),this.Messages=Backbone.Collection.extend({model:m.Message,comparator:"time"}),this.ChatBox=Backbone.Model.extend({initialize:function(){var e=this.get("height");this.get("box_id")!=="controlbox"?(this.messages=new m.Messages,this.messages.browserStorage=new Backbone.BrowserStorage[m.storage](h("converse.messages"+this.get("jid")+m.bare_jid)),this.save({chat_state:undefined,box_id:h(this.get("jid")),height:e?m.applyHeightResistance(e):undefined,minimized:this.get("minimized")||!1,num_unread:this.get("num_unread")||0,otr_status:this.get("otr_status")||T,time_minimized:this.get("time_minimized")||l(),time_opened:this.get("time_opened")||l().valueOf(),url:"",user_id:a.getNodeFromJid(this.get("jid"))})):this.set({height:e?m.applyHeightResistance(e):undefined,time_opened:l(0).valueOf(),num_unread:this.get("num_unread")||0})},maximize:function(){this.save({minimized:!1,time_opened:l().valueOf()})},minimize:function(){this.save({minimized:!0,time_minimized:l().format()})},getSession:function(e){var t=CryptoJS.lib.PasswordBasedCipher,n,r,i,s,a;if(m.cache_otr_key){r=m.otr.getSessionPassphrase();if(typeof r!="undefined"){i=window.sessionStorage[h(this.id+"instance_tag")],s=window.sessionStorage[h(this.id+"priv_key")],a=window.sessionStorage[h(this.connection.jid+"pass_check")];if(s&&i&&typeof a!="undefined"){var f=t.decrypt(CryptoJS.algo.AES,s,r),l=o.parsePrivate(f.toString(CryptoJS.enc.Latin1));if(t.decrypt(CryptoJS.algo.AES,a,r).toString(CryptoJS.enc.Latin1)==="match"){this.trigger("showHelpMessages",[q("Re-establishing encrypted session")]),e({key:l,instance_tag:i});return}}}}this.trigger("showHelpMessages",[q("Generating private key."),q("Your browser might become unresponsive.")],null,!0),setTimeout(function(){e({key:m.otr.generatePrivateKey.apply(this),instance_tag:u.makeInstanceTag()})},500)},updateOTRStatus:function(e){switch(e){case u.CONST.STATUS_AKE_SUCCESS:this.otr.msgstate===u.CONST.MSGSTATE_ENCRYPTED&&this.save({otr_status:N});break;case u.CONST.STATUS_END_OTR:this.otr.msgstate===u.CONST.MSGSTATE_FINISHED?this.save({otr_status:k}):this.otr.msgstate===u.CONST.MSGSTATE_PLAINTEXT&&this.save({otr_status:T})}},onSMP:function(e,t){switch(e){case"question":this.otr.smpSecret(prompt(q("Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s",[this.get("fullname"),t])));break;case"trust":t===!0?this.save({otr_status:C}):(this.trigger("showHelpMessages",[q("Could not verify this user's identify.")],"error"),this.save({otr_status:N}));break;default:throw new TypeError("ChatBox.onSMP: Unknown type for SMP")}},initiateOTR:function(e){this.save({otr_status:T});var t=this.getSession(function(t){this.otr=new u({fragment_size:140,send_interval:200,priv:t.key,instance_tag:t.instance_tag,debug:this.debug}),this.otr.on("status",this.updateOTRStatus.bind(this)),this.otr.on("smp",this.onSMP.bind(this)),this.otr.on("ui",function(e){this.trigger("showReceivedOTRMessage",e)}.bind(this)),this.otr.on("io",function(e){this.trigger("sendMessage",new m.Message({message:e}))}.bind(this)),this.otr.on("error",function(e){this.trigger("showOTRError",e)}.bind(this)),this.trigger("showHelpMessages",[q("Exchanging private key with contact.")]),e?this.otr.receiveMsg(e):this.otr.sendQueryMsg()}.bind(this))},endOTR:function(){this.otr&&this.otr.endOtr(),this.save({otr_status:T})},createMessage:function(e,t,n){t=t||e.find("delay");var r=e.children("body").text(),i=t.length>0,s=this.get("fullname"),o=e.attr("type")==="groupchat",u=e.attr("id"),c=e.find(D).length&&D||e.find(P).length&&P||e.find(O).length&&O||e.find(M).length&&M||e.find(H).length&&H,h,p,d,v;o?v=a.unescapeNode(a.getResourceFromJid(e.attr("from"))):v=a.getBareJidFromJid(e.attr("from")),s=(f.isEmpty(s)?v:s).split(" ")[0],i?(h=t.attr("stamp"),p=h):p=l().format(),o&&v===this.get("nick")||!o&&v==m.bare_jid?d="me":d="them",this.messages.create({chat_state:c,delayed:i,fullname:s,message:r||undefined,msgid:u,sender:d,time:p,archive_id:n})},receiveMessage:function(e,t,n){var r=e.children("body"),i=r.length>0?r.text():undefined;if(!i||!m.allow_otr)return this.createMessage(e,t,n);i.match(/^\?OTRv23?/)?this.initiateOTR(i):f.contains([N,C],this.get("otr_status"))?this.otr.receiveMsg(i):i.match(/^\?OTR/)?this.otr?this.otr.receiveMsg(i):this.initiateOTR(i):this.createMessage(e,t,n)}}),this.ChatBoxView=Backbone.View.extend({length:200,tagName:"div",className:"chatbox",is_chatroom:!1,events:{"click .close-chatbox-button":"close","click .toggle-chatbox-button":"minimize","keypress textarea.chat-textarea":"keyPressed","click .toggle-smiley":"toggleEmoticonMenu","click .toggle-smiley ul li":"insertEmoticon","click .toggle-clear":"clearMessages","click .toggle-otr":"toggleOTRMenu","click .start-otr":"startOTRFromToolbar","click .end-otr":"endOTR","click .auth-otr":"authOTR","click .toggle-call":"toggleCall","mousedown .dragresize":"onDragResizeStart"},initialize:function(){this.model.messages.on("add",this.onMessageAdded,this),this.model.on("show",this.show,this),this.model.on("destroy",this.hide,this),this.model.on("change:chat_state",this.sendChatState,this),this.model.on("change:chat_status",this.onChatStatusChanged,this),this.model.on("change:image",this.renderAvatar,this),this.model.on("change:otr_status",this.onOTRStatusChanged,this),this.model.on("change:minimized",this.onMinimizedChanged,this),this.model.on("change:status",this.onStatusChanged,this),this.model.on("showOTRError",this.showOTRError,this),this.model.on("showHelpMessages",this.showHelpMessages,this),this.model.on("sendMessage",this.sendMessage,this),this.model.on("showSentOTRMessage",function(e){this.showMessage({message:e,sender:"me"})},this),this.model.on("showReceivedOTRMessage",function(e){this.showMessage({message:e,sender:"them"})},this),this.updateVCard().render().fetchMessages().insertIntoPage().hide(),(f.contains([N,C],this.model.get("otr_status"))||m.use_otr_by_default)&&this.model.initiateOTR()},render:function(){return this.$el.attr("id",this.model.get("box_id")).html(m.templates.chatbox(f.extend(this.model.toJSON(),{show_toolbar:m.show_toolbar,label_personal_message:q("Personal message")}))),typeof this.model.get("height")=="undefined"&&this.model.set("height",this.$el.find(".box-flyout").height()),this.$content=this.$el.find(".chat-content"),this.renderToolbar().renderAvatar(),this.$content.on("scroll",f.debounce(this.onScroll.bind(this),100)),m.emit("chatBoxOpened",this),setTimeout(m.refreshWebkit,50),this.showStatusMessage()},onScroll:function(e){t(e.target).scrollTop()===0&&this.model.messages.length&&this.fetchArchivedMessages({before:this.model.messages.at(0).get("archive_id"),"with":this.model.get("jid"),max:m.archived_messages_page_size})},fetchMessages:function(){return this.model.messages.fetch({add:!0,success:function(){if(!m.features.findWhere({"var":a.NS.MAM}))return;this.model.messages.length<m.archived_messages_page_size&&this.fetchArchivedMessages({before:"","with":this.model.get("jid"),max:m.archived_messages_page_size})}.bind(this)}),this},fetchArchivedMessages:function(e){if(!m.features.findWhere({"var":a.NS.MAM})){m.log("Attempted to fetch archived messages but this user's server doesn't support XEP-0313");return}this.addSpinner(),b.archive.query(f.extend(e,{groupchat:this.is_chatroom}),function(e){this.clearSpinner(),e.length&&(this.is_chatroom?f.map(e,this.onChatRoomMessage.bind(this)):f.map(e,m.chatboxes.onMessage.bind(m.chatboxes)))}.bind(this),function(e){this.clearSpinner(),m.log("Error while trying to fetch archived messages","error")}.bind(this))},insertIntoPage:function(){return this.$el.insertAfter(m.chatboxviews.get("controlbox").$el),this},initHeight:function(){return typeof this.model.get("height")=="undefined"&&this.model.set("height",this.$el.find(".box-flyout").height()),this},initDragResize:function(){return this.initHeight(),this.prev_pageY=0,m.connection.connected&&(this.height=this.model.get("height")),this},showStatusNotification:function(e,n){n||this.$content.find("div.chat-event").remove(),this.$content.append(t('<div class="chat-event"></div>').text(e)),this.scrollDown()},clearChatRoomMessages:function(e){typeof e!="undefined"&&e.stopPropagation();var t=confirm(q("Are you sure you want to clear the messages from this room?"));return t===!0&&this.$content.empty(),this},addSpinner:function(){this.$content.first().hasClass("spinner")||this.$content.prepend('<span class="spinner"/>')},clearSpinner:function(){this.$content.children(":first").is("span.spinner")&&this.$content.children(":first").remove()},prependDayIndicator:function(e){var t=l(e).startOf("day");this.$content.prepend(m.templates.new_day({isodate:t.format(),datestring:t.format("dddd MMM Do YYYY")}))},appendMessage:function(e){f.compose(f.debounce(this.scrollDown.bind(this),50),this.$content.append.bind(this.$content))(this.renderMessage(e))},showMessage:function(e){var n=this.$content.children(".chat-message:first"),r=n.data("isodate"),i,s,o,u,a,c;if(!r){this.appendMessage(e);return}s=l(e.time)||l,i=this.$content.children(".chat-message:last").data("isodate");if(typeof i!="undefined"&&(s.isAfter(i)||s.isSame(i))){s.isAfter(i,"day")&&(o=l(s).startOf("day"),this.$content.append(m.templates.new_day({isodate:s.format(),datestring:s.format("dddd MMM Do YYYY")}))),this.appendMessage(e);return}typeof r!="undefined"&&(s.isBefore(r)||s.isSame(r)&&!s.isSame(i))?(n.prev().length===0&&this.prependDayIndicator(r),s.isBefore(r,"day")?(f.compose(this.scrollDownMessageHeight.bind(this),function(e){return this.$content.prepend(e),e}.bind(this))(this.renderMessage(e)),this.prependDayIndicator(s)):f.compose(this.scrollDownMessageHeight.bind(this),function(e){return e.insertBefore(n),e})(this.renderMessage(e))):(s=s.format(),u=this.$content.children(".chat-message"),a=f.map(u,function(e){return t(e).data("isodate")}),a.push(s),a.sort(),c=a.indexOf(s)-1,f.compose(this.scrollDownMessageHeight.bind(this),function(e){return e.insertAfter(this.$content.find('.chat-message[data-isodate="'+a[c]+'"]')),e}.bind(this))(this.renderMessage(e)))},renderMessage:function(e){var n=l(e.time)||l,r=e.message,i=r.match(/^\/(.*?)(?: (.*))?$/),s=this.model.get("fullname")||e.fullname,o=e.delayed&&"delayed"||"",u,a;return i&&i[1]==="me"?(r=r.replace(/^\/me/,""),u=m.templates.action,a=s):(u=m.templates.message,a=e.sender==="me"&&q("me")||s),this.$content.find("div.chat-event").remove(),this.is_chatroom&&e.sender=="them"&&(new RegExp("\\b"+this.model.get("nick")+"\\b")).test(r)&&(o+=" mentioned"),t(u({msgid:e.msgid,sender:e.sender,time:n.format("hh:mm"),isodate:n.format(),username:a,message:"",extra_classes:o})).children(".chat-message-content").first().text(r).addHyperlinks().addEmoticons(m.visible_toolbar_buttons.emoticons).parent()},showHelpMessages:function(e,n,r){var i,s=e.length;for(i=0;i<s;i++)this.$content.append(t('<div class="chat-'+(n||"info")+'">'+e[i]+"</div>"));return r===!0?this.$content.append('<span class="spinner"/>'):r===!1&&this.$content.find("span.spinner").remove(),this.scrollDown()},onMessageAdded:function(e){if(!e.get("message")){if(e.get("chat_state")===D){this.showStatusNotification(e.get("fullname")+" "+q("is typing"));return}if(e.get("chat_state")===P){this.showStatusNotification(e.get("fullname")+" "+q("has stopped typing"));return}if(f.contains([O,M],e.get("chat_state"))){this.$content.find("div.chat-event").remove();return}if(e.get("chat_state")===H){this.showStatusNotification(e.get("fullname")+" "+q("has gone away"));return}}else this.showMessage(f.clone(e.attributes));e.get("sender")!="me"&&m.windowState=="blur"&&m.incrementMsgCounter(),!this.model.get("minimized")&&!this.$el.is(":visible")&&f.debounce(this.show.bind(this),100)()},sendMessage:function(e){var t=this.model.get("jid"),n=r({from:m.connection.jid,to:t,type:"chat",id:e.get("msgid")}).c("body").t(e.get("message")).up().c(M,{xmlns:a.NS.CHATSTATES}).up();this.model.get("otr_status")!=T&&n.c("private",{xmlns:a.NS.CARBONS}),m.connection.send(n);if(m.forward_messages){var i=r({to:m.bare_jid,type:"chat",id:e.get("msgid")}).c("forwarded",{xmlns:"urn:xmpp:forward:0"}).c("delay",{xmns:"urn:xmpp:delay",stamp:timestamp}).up().cnode(n.tree());m.connection.send(i)}},onMessageSubmitted:function(e){if(!m.connection.authenticated)return this.showHelpMessages(["Sorry, the connection has been lost, and your message could not be sent"],"error");var t=e.replace(/^\s*/,"").match(/^\/(.*)\s*$/),n;if(t){if(t[1]==="clear")return this.clearMessages();if(t[1]==="help"){n=["<strong>/help</strong>:"+q("Show this menu")+"","<strong>/me</strong>:"+q("Write in the third person")+"","<strong>/clear</strong>:"+q("Remove messages")+""],this.showHelpMessages(n);return}if(m.allow_otr&&t[1]==="endotr")return this.endOTR();if(m.allow_otr&&t[1]==="otr")return this.model.initiateOTR()}if(f.contains([N,C],this.model.get("otr_status")))this.model.otr.sendMsg(e),this.model.trigger("showSentOTRMessage",e);else{var r=m.xmppstatus.get("fullname");r=f.isEmpty(r)?m.bare_jid:r;var i=this.model.messages.create({fullname:r,sender:"me",time:l().format(),message:e});this.sendMessage(i)}},sendChatState:function(){m.connection.send(r({to:this.model.get("jid"),type:"chat"}).c(this.model.get("chat_state"),{xmlns:a.NS.CHATSTATES}))},setChatState:function(e,t){return typeof this.chat_state_timeout!="undefined"&&(clearTimeout(this.chat_state_timeout),delete this.chat_state_timeout),e===D?this.chat_state_timeout=setTimeout(this.setChatState.bind(this),m.TIMEOUTS.PAUSED,P):e===P&&(this.chat_state_timeout=setTimeout(this.setChatState.bind(this),m.TIMEOUTS.INACTIVE,O)),!t&&this.model.get("chat_state")!=e&&this.model.set("chat_state",e),this},keyPressed:function(e){var n=t(e.target),r;e.keyCode==L.ENTER?(e.preventDefault(),r=n.val(),n.val("").focus(),r!==""&&(this.model.get("chatroom")?this.onChatRoomMessageSubmitted(r):this.onMessageSubmitted(r),m.emit("messageSend",r)),this.setChatState(M)):this.model.get("chatroom")||this.setChatState(D,e.keyCode==L.FORWARD_SLASH)},onDragResizeStart:function(e){if(!m.allow_dragresize)return!0;this.height=this.$el.children(".box-flyout").height(),m.resized_chatbox=this,this.prev_pageY=e.pageY},setChatBoxHeight:function(e){this.model.get("minimized")||(this.$el.children(".box-flyout")[0].style.height=m.applyHeightResistance(e)+"px")},resizeChatBox:function(e){var t=e.pageY-this.prev_pageY;if(!t)return;this.height-=t,this.prev_pageY=e.pageY,this.setChatBoxHeight(this.height)},clearMessages:function(e){e&&e.preventDefault&&e.preventDefault();var t=confirm(q("Are you sure you want to clear the messages from this chat box?"));return t===!0&&(this.$content.empty(),this.model.messages.reset(),this.model.messages.browserStorage._clear()),this},insertEmoticon:function(e){e.stopPropagation(),this.$el.find(".toggle-smiley ul").slideToggle(200);var n=this.$el.find("textarea.chat-textarea"),r=n.val(),i=t(e.target);i=i.is("a")?i:i.children("a"),r&&r[r.length-1]!==" "&&(r+=" "),n.focus().val(r+i.data("emoticon")+" ")},toggleEmoticonMenu:function(e){e.stopPropagation(),this.$el.find(".toggle-smiley ul").slideToggle(200)},toggleOTRMenu:function(e){e.stopPropagation(),this.$el.find(".toggle-otr ul").slideToggle(200)},showOTRError:function(e){e=="Message cannot be sent at this time."?this.showHelpMessages([q("Your message could not be sent")],"error"):e=="Received an unencrypted message."?this.showHelpMessages([q("We received an unencrypted message")],"error"):e=="Received an unreadable encrypted message."?this.showHelpMessages([q("We received an unreadable encrypted message")],"error"):this.showHelpMessages(["Encryption error occured: "+e],"error"),console.log("OTR ERROR:"+e)},startOTRFromToolbar:function(e){t(e.target).parent().parent().slideUp(),e.stopPropagation(),this.model.initiateOTR()},endOTR:function(e){typeof e!="undefined"&&(e.preventDefault(),e.stopPropagation()),this.model.endOTR()},authOTR:function(e){var n=t(e.target).data().scheme,r,i,s;n==="fingerprint"?(r=confirm(q("Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.",[this.model.get("fullname"),m.xmppstatus.get("fullname")||m.bare_jid,this.model.otr.priv.fingerprint(),this.model.otr.their_priv_pk.fingerprint()])),r===!0?this.model.save({otr_status:C}):this.model.save({otr_status:N})):n==="smp"?(alert(q("You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.")),i=prompt(q("What is your security question?")),i&&(s=prompt(q("What is the answer to the security question?")),this.model.otr.smpSecret(s,i))):this.showHelpMessages([q("Invalid authentication scheme provided")],"error")},toggleCall:function(e){e.stopPropagation(),m.emit("callButtonClicked",{connection:m.connection,model:this.model})},onChatStatusChanged:function(e){var t=e.get("chat_status"),n=e.get("fullname");n=f.isEmpty(n)?e.get("jid"):n,this.$el.is(":visible")&&(t==="offline"?this.showStatusNotification(n+" "+q("has gone offline")):t==="away"?this.showStatusNotification(n+" "+q("has gone away")):t==="dnd"?this.showStatusNotification(n+" "+q("is busy")):t==="online"&&this.$el.find("div.chat-event").remove()),m.emit("contactStatusChanged",e.attributes,e.get("chat_status"))},onStatusChanged:function(e){this.showStatusMessage(),m.emit("contactStatusMessageChanged",e.attributes,e.get("status"))},onOTRStatusChanged:function(e){this.renderToolbar().informOTRChange()},onMinimizedChanged:function(e){e.get("minimized")?this.hide():this.maximize()},showStatusMessage:function(e){return e=e||this.model.get("status"),typeof e=="string"&&this.$el.find("p.user-custom-message").text(e).attr("title",e),this},close:function(e){return e&&e.preventDefault&&e.preventDefault(),m.connection.connected?(this.model.destroy(),this.setChatState(O)):this.hide(),m.emit("chatBoxClosed",this),this},maximize:function(){var e=m.chatboxviews;this.$el.insertAfter(e.get("controlbox").$el).show("fast",function(){e.trimChats(this),m.refreshWebkit(),this.setChatState(M).focus(),m.emit("chatBoxMaximized",this)}.bind(this))},minimize:function(e){e&&e.preventDefault&&e.preventDefault(),this.setChatState(O).model.minimize(),this.$el.hide("fast",m.refreshwebkit),m.emit("chatBoxMinimized",this)},updateVCard:function(){if(!this.use_vcards)return this;var e=this.model.get("jid"),t=m.roster.get(e);return t&&!t.get("vcard_updated")&&m.getVCard(e,function(e,t,n,r,i,s){this.model.save({fullname:n||t,url:s,image_type:i,image:r})}.bind(this),function(){m.log("ChatBoxView.initialize: An error occured while fetching vcard")}),this},informOTRChange:function(){var e=this.model.toJSON(),t=[];return e.otr_status==T?t.push(q("Your messages are not encrypted anymore")):e.otr_status==N?t.push(q("Your messages are now encrypted but your contact's identity has not been verified.")):e.otr_status==C?t.push(q("Your contact's identify has been verified.")):e.otr_status==k&&t.push(q("Your contact has ended encryption on their end, you should do the same.")),this.showHelpMessages(t,"info",!1)},renderToolbar:function(){if(m.show_toolbar){var e=this.model.toJSON();e.otr_status==T?e.otr_tooltip=q("Your messages are not encrypted. Click here to enable OTR encryption."):e.otr_status==N?e.otr_tooltip=q("Your messages are encrypted, but your contact has not been verified."):e.otr_status==C?e.otr_tooltip=q("Your messages are encrypted and your contact verified."):e.otr_status==k&&(e.otr_tooltip=q("Your contact has closed their end of the private session, you should do the same")),this.$el.find(".chat-toolbar").html(m.templates.toolbar(f.extend(e,{FINISHED:k,UNENCRYPTED:T,UNVERIFIED:N,VERIFIED:C,allow_otr:m.allow_otr&&!this.is_chatroom,label_clear:q("Clear all messages"),label_end_encrypted_conversation:q("End encrypted conversation"),label_insert_smiley:q("Insert a smiley"),label_hide_participants:q("Hide the list of participants"),label_refresh_encrypted_conversation:q("Refresh encrypted conversation"),label_start_call:q("Start a call"),label_start_encrypted_conversation:q("Start encrypted conversation"),label_verify_with_fingerprints:q("Verify with fingerprints"),label_verify_with_smp:q("Verify with SMP"),label_whats_this:q("What's this?"),otr_status_class:U[e.otr_status],otr_translated_status:z[e.otr_status],show_call_button:m.visible_toolbar_buttons.call,show_clear_button:m.visible_toolbar_buttons.clear,show_emoticons:m.visible_toolbar_buttons.emoticons,show_participants_toggle:this.is_chatroom&&m.visible_toolbar_buttons.toggle_participants})))}return this},renderAvatar:function(){if(!this.model.get("image"))return;var e="data:"+this.model.get("image_type")+";base64,"+this.model.get("image"),n=t('<canvas height="32px" width="32px" class="avatar"></canvas>').get(0);if(!n.getContext||!n.getContext("2d"))return this;var r=n.getContext("2d"),i=new Image;return i.onload=function(){var e=i.width/i.height;r.drawImage(i,0,0,35*e,35)},i.src=e,this.$el.find(".chat-title").before(n),this},focus:function(){return this.$el.find(".chat-textarea").focus(),m.emit("chatBoxFocused",this),this},hide:function(){return this.$el.is(":visible")&&this.$el.css("opacity")=="1"&&(this.$el.hide(),m.refreshWebkit()),this},show:function(e){return this.$el.is(":visible")&&this.$el.css("opacity")=="1"?this.focus():(this.$el.fadeIn(function(){typeof e=="function"&&e.apply(this,arguments),m.connection.connected&&(this.model.save(),this.initDragResize()),this.setChatState(M),this.scrollDown().focus()}.bind(this)),this)},scrollDownMessageHeight:function(e){return this.$content.is(":visible")&&this.$content.scrollTop(this.$content.scrollTop()+e[0].scrollHeight),this},scrollDown:function(){return this.$content.is(":visible")&&this.$content.scrollTop(this.$content[0].scrollHeight),this}}),this.ContactsPanel=Backbone.View.extend({tagName:"div",className:"controlbox-pane",id:"users",events:{"click a.toggle-xmpp-contact-form":"toggleContactForm","submit form.add-xmpp-contact":"addContactFromForm","submit form.search-xmpp-contact":"searchContacts","click a.subscribe-to-user":"addContactFromList"},initialize:function(e){e.$parent.append(this.$el),this.$tabs=e.$parent.parent().find("#controlbox-tabs")},render:function(){var e,t=m.templates.contacts_panel({label_online:q("Online"),label_busy:q("Busy"),label_away:q("Away"),label_offline:q("Offline"),label_logout:q("Log out"),allow_logout:m.allow_logout});return this.$tabs.append(m.templates.contacts_tab({label_contacts:G})),m.xhr_user_search?e=m.templates.search_contact({label_contact_name:q("Contact name"),label_search:q("Search")}):e=m.templates.add_contact_form({label_contact_username:q("e.g. user@example.com"),label_add:q("Add")}),m.allow_contact_requests&&(t+=m.templates.add_contact_dropdown({label_click_to_chat:q("Click to add new chat contacts"),label_add_contact:q("Add a contact")})),this.$el.html(t),this.$el.find(".search-xmpp ul").append(e),this},toggleContactForm:function(e){e.preventDefault(),this.$el.find(".search-xmpp").toggle("fast",function(){t(this).is(":visible")&&t(this).find("input.username").focus()})},searchContacts:function(e){e.preventDefault(),t.getJSON(m.xhr_user_search_url+"?q="+t(e.target).find("input.username").val(),function(e){var n=t(".search-xmpp ul");n.find("li.found-user").remove(),n.find("li.chat-info").remove(),e.length||n.append('<li class="chat-info">'+q("No users found")+"</li>"),t(e).each(function(e,r){n.append(t('<li class="found-user"></li>').append(t('<a class="subscribe-to-user" href="#" title="'+q("Click to add as a chat contact")+'"></a>').attr("data-recipient",a.getNodeFromJid(r.id)+"@"+a.getDomainFromJid(r.id)).text(r.fullname)))})})},addContactFromForm:function(e){e.preventDefault();var n=t(e.target).find("input"),r=n.val();if(!r){n.addClass("error");return}m.roster.addAndSubscribe(r),t(".search-xmpp").hide()},addContactFromList:function(e){e.preventDefault();var n=t(e.target),r=n.attr("data-recipient"),i=n.text();m.roster.addAndSubscribe(r,i),n.parent().remove(),t(".search-xmpp").hide()}}),this.RoomsPanel=Backbone.View.extend({tagName:"div",className:"controlbox-pane",id:"chatrooms",events:{"submit form.add-chatroom":"createChatRoom","click input#show-rooms":"showRooms","click a.open-room":"createChatRoom","click a.room-info":"showRoomInfo","change input[name=server]":"setDomain","change input[name=nick]":"setNick"},initialize:function(e){this.$parent=e.$parent,this.model.on("change:muc_domain",this.onDomainChange,this),this.model.on("change:nick",this.onNickChange,this)},render:function(){return this.$parent.append(this.$el.html(m.templates.room_panel({server_input_type:m.hide_muc_server&&"hidden"||"text",server_label_global_attr:m.hide_muc_server&&" hidden"||"",label_room_name:q("Room name"),label_nickname:q("Nickname"),label_server:q("Server"),label_join:q("Join Room"),label_show_rooms:q("Show rooms")})).hide()),this.$tabs=this.$parent.parent().find("#controlbox-tabs"),this.$tabs.append(m.templates.chatrooms_tab({label_rooms:q("Rooms")})),this},onDomainChange:function(e){var t=this.$el.find("input.new-chatroom-server");t.val(e.get("muc_domain")),m.auto_list_rooms&&this.updateRoomsList()},onNickChange:function(e){var t=this.$el.find("input.new-chatroom-nick");t.val(e.get("nick"))},informNoRoomsFound:function(){var e=this.$el.find("#available-chatrooms");e.html("<dt>"+q("No rooms on %1$s",this.model.get("muc_domain"))+"</dt>"),t("input#show-rooms").show().siblings("span.spinner").remove()},onRoomsFound:function(e){var n,r,i,s,o=this,u=this.$el.find("#available-chatrooms");this.rooms=t(e).find("query").find("item");if(this.rooms.length){u.html("<dt>"+q("Rooms on %1$s",this.model.get("muc_domain"))+"</dt>"),s=document.createDocumentFragment();for(i=0;i<this.rooms.length;i++)n=a.unescapeNode(t(this.rooms[i]).attr("name")||t(this.rooms[i]).attr("jid")),r=t(this.rooms[i]).attr("jid"),s.appendChild(t(m.templates.room_item({name:n,jid:r,open_title:q("Click to open this room"),info_title:q("Show more information on this room")}))[0]);u.append(s),t("input#show-rooms").show().siblings("span.spinner").remove()}else this.informNoRoomsFound();return!0},updateRoomsList:function(){m.connection.sendIQ(n({to:this.model.get("muc_domain"),from:m.connection.jid,type:"get"}).c("query",{xmlns:a.NS.DISCO_ITEMS}),this.onRoomsFound.bind(this),this.informNoRoomsFound.bind(this))},showRooms:function(e){var n=this.$el.find("#available-chatrooms"),r=this.$el.find("input.new-chatroom-server"),i=r.val();if(!i){r.addClass("error");return}this.$el.find("input.new-chatroom-name").removeClass("error"),r.removeClass("error"),n.empty(),t("input#show-rooms").hide().after('<span class="spinner"/>'),this.model.save({muc_domain:i}),this.updateRoomsList()},showRoomInfo:function(e){var n=e.target,r=t(n).parent("dd"),i=r.find("div.room-info");i.length?i.remove():(r.find("span.spinner").remove(),r.append('<span class="spinner hor_centered"/>'),m.connection.disco.info(t(n).attr("data-room-jid"),null,function(e){var n=t(e);r.find("span.spinner").replaceWith(m.templates.room_description({desc:n.find('field[var="muc#roominfo_description"] value').text(),occ:n.find('field[var="muc#roominfo_occupants"] value').text(),hidden:n.find('feature[var="muc_hidden"]').length,membersonly:n.find('feature[var="muc_membersonly"]').length,moderated:n.find('feature[var="muc_moderated"]').length,nonanonymous:n.find('feature[var="muc_nonanonymous"]').length,open:n.find('feature[var="muc_open"]').length,passwordprotected:n.find('feature[var="muc_passwordprotected"]').length,persistent:n.find('feature[var="muc_persistent"]').length,publicroom:n.find('feature[var="muc_public"]').length,semianonymous:n.find('feature[var="muc_semianonymous"]').length,temporary:n.find('feature[var="muc_temporary"]').length,unmoderated:n.find('feature[var="muc_unmoderated"]').length,label_desc:q("Description:"),label_occ:q("Occupants:"),label_features:q("Features:"),label_requires_auth:q("Requires authentication"),label_hidden:q("Hidden"),label_requires_invite:q("Requires an invitation"),label_moderated:q("Moderated"),label_non_anon:q("Non-anonymous"),label_open_room:q("Open room"),label_permanent_room:q("Permanent room"),label_public:q("Public"),label_semi_anon:f("Semi-anonymous"),label_temp_room:f("Temporary room"),label_unmoderated:q("Unmoderated")}))}.bind(this)))},createChatRoom:function(e){e.preventDefault();var n,r,i,s,o,u=this.$el.find("input.new-chatroom-nick"),f=u.val(),l;f?u.removeClass("error"):u.addClass("error");if(e.type==="click")n=t(e.target).text(),o=t(e.target).attr("data-room-jid");else{r=this.$el.find("input.new-chatroom-name"),s=this.$el.find("input.new-chatroom-server"),i=s.val(),n=r.val().trim(),r.val("");if(!n||!i){n||r.addClass("error"),i||s.addClass("error");return}o=a.escapeNode(n.toLowerCase())+"@"+i,r.removeClass("error"),s.removeClass("error"),this.model.save({muc_domain:i})}if(!f)return;l=m.chatboxviews.showChat({id:o,jid:o,name:n||a.unescapeNode(a.getNodeFromJid(o)),nick:f,chatroom:!0,box_id:h(o)})},setDomain:function(e){this.model.save({muc_domain:e.target.value})},setNick:function(e){this.model.save({nick:e.target.value})}}),this.ControlBoxView=m.ChatBoxView.extend({tagName:"div",className:"chatbox",id:"controlbox",events:{"click a.close-chatbox-button":"close","click ul#controlbox-tabs li a":"switchTab","mousedown .dragresize":"onDragResizeStart"},initialize:function(){this.$el.insertAfter(m.controlboxtoggle.$el),this.model.on("change:connected",this.onConnected,this),this.model.on("destroy",this.hide,this),this.model.on("hide",this.hide,this),this.model.on("show",this.show,this),this.model.on("change:closed",this.ensureClosedState,this),this.render(),this.model.get("connected")&&this.initRoster(),this.model.get("closed")?this.hide():this.show()},render:function(){return!m.connection.connected||!m.connection.authenticated||m.connection.disconnecting?this.renderLoginPanel():(!this.contactspanel||!this.contactspanel.$el.is(":visible"))&&this.renderContactsPanel(),this},giveFeedback:function(e,t){var n=this.$(".conn-feedback");n.addClass("conn-feedback").text(e),t&&n.addClass(t)},onConnected:function(){if(this.model.get("connected")){this.render().initRoster(),m.features.off("add",this.featureAdded,this),m.features.on("add",this.featureAdded,this);var e=m.features.findWhere({"var":a.NS.MUC});e&&this.featureAdded(e)}},initRoster:function(){m.roster=new m.RosterContacts,m.roster.browserStorage=new Backbone.BrowserStorage[m.storage](h("converse.contacts-"+m.bare_jid));var e=new m.RosterGroups;return e.browserStorage=new Backbone.BrowserStorage[m.storage](h("converse.roster.groups"+m.bare_jid)),m.rosterview=new m.RosterView({model:e}),this.contactspanel.$el.append(m.rosterview.$el),m.rosterview.render().fetch().update(),this},renderLoginPanel:function(){var e=this.$(".conn-feedback");this.$el.html(m.templates.controlbox(this.model.toJSON()));var t={$parent:this.$el.find(".controlbox-panes"),model:this};return this.loginpanel?(this.loginpanel.delegateEvents().initialize(t),m.allow_registration&&this.registerpanel.delegateEvents().initialize(t)):(this.loginpanel=new m.LoginPanel(t),m.allow_registration&&(this.registerpanel=new m.RegisterPanel(t))),this.loginpanel.render(),m.allow_registration&&this.registerpanel.render().$el.hide(),this.initDragResize(),e.length&&this.$(".conn-feedback").replaceWith(e),this},renderContactsPanel:function(){var e;this.$el.html(m.templates.controlbox(this.model.toJSON())),this.contactspanel=new m.ContactsPanel({$parent:this.$el.find(".controlbox-panes")}),this.contactspanel.render(),m.xmppstatusview=new m.XMPPStatusView({model:m.xmppstatus}),m.xmppstatusview.render(),m.allow_muc&&(this.roomspanel=new m.RoomsPanel({$parent:this.$el.find(".controlbox-panes"),model:new(Backbone.Model.extend({id:h("converse.roomspanel"+m.bare_jid),browserStorage:new Backbone.BrowserStorage[m.storage](h("converse.roomspanel"+m.bare_jid))}))}),this.roomspanel.render().model.fetch(),this.roomspanel.model.get("nick")||this.roomspanel.model.save({nick:a.getNodeFromJid(m.bare_jid)})),this.initDragResize()},close:function(e){return e&&e.preventDefault&&e.preventDefault(),m.connection.connected?this.model.save({closed:!0}):this.model.trigger("hide"),m.emit("controlBoxClosed",this),this},ensureClosedState:function(){this.model.get("closed")?this.hide():this.show()},hide:function(e){return this.$el.hide("fast",function(){m.refreshWebkit(),m.emit("chatBoxClosed",this),m.controlboxtoggle.show(function(){typeof e=="function"&&e()})}),this},show:function(){return m.controlboxtoggle.hide(function(){this.$el.show("fast",function(){m.rosterview&&m.rosterview.update(),m.refreshWebkit()}.bind(this)),m.emit("controlBoxOpened",this)}.bind(this)),this},featureAdded:function(e){if(e.get("var")==a.NS.MUC&&m.allow_muc){this.roomspanel.model.save({muc_domain:e.get("from")});var t=this.$el.find("input.new-chatroom-server");t.is(":focus")||t.val(this.roomspanel.model.get("muc_domain"))}},switchTab:function(e){e&&e.preventDefault&&e.preventDefault();var n=t(e.target),r=n.parent().siblings("li").children("a"),i=t(n.attr("href"));return t(r.attr("href")).hide(),r.removeClass("current"),n.addClass("current"),i.show(),this},showHelpMessages:function(e){return}}),this.ChatRoomOccupant=Backbone.Model,this.ChatRoomOccupantView=Backbone.View.extend({tagName:"li",initialize:function(){this.model.on("add",this.render,this),this.model.on("change",this.render,this),this.model.on("destroy",this.destroy,this)},render:function(){var e=m.templates.occupant(f.extend(this.model.toJSON(),{desc_moderator:q("This user is a moderator"),desc_participant:q("This user can send messages in this room"),desc_visitor:q("This user can NOT send messages in this room")}));return this.$el.replaceWith(e),this.setElement(e,!0),this},destroy:function(){this.$el.remove()}}),this.ChatRoomOccupants=Backbone.Collection.extend({model:m.ChatRoomOccupant}),this.ChatRoomOccupantsView=Backbone.Overview.extend({tagName:"div",className:"participants",initialize:function(){this.model.on("add",this.onOccupantAdded,this)},render:function(){return this.$el.html(m.templates.chatroom_sidebar({label_invitation:q("Invite..."),label_occupants:q("Occupants")})),this.initInviteWidget()},onOccupantAdded:function(e){var t=this.get(e.get("id"));t?(delete t.model,t.model=e,t.initialize()):t=this.add(e.get("id"),new m.ChatRoomOccupantView({model:e})),this.$(".participant-list").append(t.render().$el)},parsePresence:function(e){var t=a.getResourceFromJid(e.getAttribute("from")),n={id:t,nick:t,type:e.getAttribute("type"),states:[]};return f.each(e.childNodes,function(e){switch(e.nodeName){case"status":n.status=e.textContent||null;break;case"show":n.show=e.textContent||null;break;case"x":e.getAttribute("xmlns")===a.NS.MUC_USER&&f.each(e.childNodes,function(e){switch(e.nodeName){case"item":n.affiliation=e.getAttribute("affiliation"),n.role=e.getAttribute("role"),n.jid=e.getAttribute("jid"),n.nick=e.getAttribute("nick")||n.nick;break;case"status":e.getAttribute("code")&&n.states.push(e.getAttribute("code"))}})}}),n},updateOccupantsOnPresence:function(e){var t,n=this.parsePresence(e);switch(n.type){case"error":return!0;case"unavailable":t=this.model.get(n.id),t&&t.destroy();break;default:t=this.model.get(n.id),t?t.save(n):this.model.create(n)}},initInviteWidget:function(){var e=this.$("input.invited-contact");return e.typeahead({minLength:1,highlight:!0},{name:"contacts-dataset",source:function(e,t){var n=[];f.each(m.roster.filter(p(["fullname","jid"],e)),function(e){n.push({value:e.get("fullname"),jid:e.get("jid")})}),t(n)},templates:{suggestion:f.template('<p data-jid="{{jid}}">{{value}}</p>')}}),e.on("typeahead:selected",function(e,n,r){var i=prompt(q(R('You are about to invite %1$s to the chat room "%2$s". '),n.value,this.model.get("id"))+q("You may optionally include a message, explaining the reason for the invitation."));i!==null&&this.chatroomview.directInvite(n.jid,i),t(e.target).typeahead("val","")}.bind(this)),this}}),this.ChatRoomView=m.ChatBoxView.extend({length:300,tagName:"div",className:"chatroom",events:{"click .close-chatbox-button":"close","click .toggle-chatbox-button":"minimize","click .configure-chatroom-button":"configureChatRoom","click .toggle-smiley":"toggleEmoticonMenu","click .toggle-smiley ul li":"insertEmoticon","click .toggle-clear":"clearChatRoomMessages","click .toggle-call":"toggleCall","click .toggle-participants a":"toggleOccupants","keypress textarea.chat-textarea":"keyPressed","mousedown .dragresize":"onDragResizeStart"},is_chatroom:!0,initialize:function(){this.model.messages.on("add",this.onMessageAdded,this),this.model.on("change:minimized",function(e){e.get("minimized")?this.hide():this.maximize()},this),this.model.on("destroy",function(e,t,n){this.hide().leave()},this),this.occupantsview=new m.ChatRoomOccupantsView({model:new m.ChatRoomOccupants({nick:this.model.get("nick")})});var e=h("converse.occupants"+m.bare_jid+this.model.get("id")+this.model.get("nick"));this.occupantsview.model.id=e,this.occupantsview.model.browserStorage=new Backbone.BrowserStorage[m.storage](e),this.occupantsview.chatroomview=this,this.render(),this.occupantsview.model.fetch({add:!0}),this.join(null,{maxstanzas:m.muc_history_max_stanzas}),this.fetchMessages(),m.emit("chatRoomOpened",this),this.$el.insertAfter(m.chatboxviews.get("controlbox").$el),this.model.get("minimized")?this.hide():this.show()},render:function(){return this.$el.attr("id",this.model.get("box_id")).html(m.templates.chatroom(this.model.toJSON())),this.renderChatArea(),this.$content.on("scroll",f.debounce(this.onScroll.bind(this),100)),setTimeout(m.refreshWebkit,50),this},renderChatArea:function(){return this.$(".chat-area").length||(this.$(".chat-body").empty().append(m.templates.chatarea({show_toolbar:m.show_toolbar,label_message:q("Message")})).append(this.occupantsview.render().$el),this.renderToolbar(),this.$content=this.$el.find(".chat-content")),this.model.set({hidden_occupants:!this.model.get("hidden_occupants")}),this.toggleOccupants(),this},toggleOccupants:function(e){e&&(e.preventDefault(),e.stopPropagation());var t=this.$(".icon-hide-users");this.model.get("hidden_occupants")?(this.model.save({hidden_occupants:!1}),t.removeClass("icon-show-users").addClass("icon-hide-users"),this.$(".chat-area, form.sendXMPPMessage").css({width:""}),this.$("div.participants").show().animate({width:"auto"},this.scrollDown.bind(this))):(this.model.save({hidden_occupants:!0}),t.removeClass("icon-hide-users").addClass("icon-show-users"),this.$("form.sendXMPPMessage, .chat-area").animate({width:"100%"}),this.$("div.participants").animate({width:0},this.scrollDown.bind(this)))},directInvite:function(e,t){var n={xmlns:"jabber:x:conference",jid:this.model.get("jid")};t!==null&&(n.reason=t),this.model.get("password")&&(n.password=this.model.get("password"));var i=r({from:m.connection.jid,to:e,id:m.connection.getUniqueId()}).c("x",n);m.connection.send(i),m.emit("roomInviteSent",this,e,t)},onCommandError:function(e){this.showStatusNotification(q("Error: could not execute the command"),!0)},sendChatRoomMessage:function(e){var t=m.connection.getUniqueId(),n=r({to:this.model.get("jid"),from:m.connection.jid,type:"groupchat",id:t}).c("body").t(e).up().c("x",{xmlns:"jabber:x:event"}).c("composing");m.connection.send(n);var i=m.xmppstatus.get("fullname");this.model.messages.create({fullname:f.isEmpty(i)?m.bare_jid:i,sender:"me",time:l().format(),message:e,msgid:t})},setAffiliation:function(e,t,r,i,o,u){var f=s("item",{jid:t,affiliation:r}),l=n({to:e,type:"set"}).c("query",{xmlns:a.NS.MUC_ADMIN}).cnode(f.node);return i!==null&&l.c("reason",i),m.connection.sendIQ(l.tree(),o,u)},modifyRole:function(e,t,r,i,o,u){var f=s("item",{nick:t,role:r}),l=n({to:e,type:"set"}).c("query",{xmlns:a.NS.MUC_ADMIN}).cnode(f.node);return i!==null&&l.c("reason",i),m.connection.sendIQ(l.tree(),o,u)},member:function(e,t,n,r,i){return this.setAffiliation(e,t,"member",n,r,i)},revoke:function(e,t,n,r,i){return this.setAffiliation(e,t,"none",n,r,i)},owner:function(e,t,n,r,i){return this.setAffiliation(e,t,"owner",n,r,i)},admin:function(e,t,n,r,i){return this.setAffiliation(e,t,"admin",n,r,i)},validateRoleChangeCommand:function(e,t){return t.length<1||t.length>2?(this.showStatusNotification(q('Error: the "'+e+"\" command takes two arguments, the user's nickname and optionally a reason."),!0),!1):!0},onChatRoomMessageSubmitted:function(e){var t=e.replace(/^\s*/,"").match(/^\/(.*?)(?: (.*))?$/)||[!1,"",""],n=t[2]&&t[2].splitOnce(" ")||[];switch(t[1]){case"admin":if(!this.validateRoleChangeCommand(t[1],n))break;this.setAffiliation(this.model.get("jid"),n[0],"admin",n[1],undefined,this.onCommandError.bind(this));break;case"ban":if(!this.validateRoleChangeCommand(t[1],n))break;this.setAffiliation(this.model.get("jid"),n[0],"outcast",n[1],undefined,this.onCommandError.bind(this));break;case"clear":this.clearChatRoomMessages();break;case"deop":if(!this.validateRoleChangeCommand(t[1],n))break;this.modifyRole(this.model.get("jid"),n[0],"participant",n[1],undefined,this.onCommandError.bind(this));break;case"help":this.showHelpMessages(["<strong>/admin</strong>: "+q("Change user's affiliation to admin"),"<strong>/ban</strong>: "+q("Ban user from room"),"<strong>/clear</strong>: "+q("Remove messages"),"<strong>/deop</strong>: "+q("Change user role to participant"),"<strong>/help</strong>: "+q("Show this menu"),"<strong>/kick</strong>: "+q("Kick user from room"),"<strong>/me</strong>: "+q("Write in 3rd person"),"<strong>/member</strong>: "+q("Grant membership to a user"),"<strong>/mute</strong>: "+q("Remove user's ability to post messages"),"<strong>/nick</strong>: "+q("Change your nickname"),"<strong>/op</strong>: "+q("Grant moderator role to user"),"<strong>/owner</strong>: "+q("Grant ownership of this room"),"<strong>/revoke</strong>: "+q("Revoke user's membership"),"<strong>/topic</strong>: "+q("Set room topic"),"<strong>/voice</strong>: "+q("Allow muted user to post messages")]);break;case"kick":if(!this.validateRoleChangeCommand(t[1],n))break;this.modifyRole(this.model.get("jid"),n[0],"none",n[1],undefined,this.onCommandError.bind(this));break;case"mute":if(!this.validateRoleChangeCommand(t[1],n))break;this.modifyRole(this.model.get("jid"),n[0],"visitor",n[1],undefined,this.onCommandError.bind(this));break;case"member":if(!this.validateRoleChangeCommand(t[1],n))break;this.setAffiliation(this.model.get("jid"),n[0],"member",n[1],undefined,this.onCommandError.bind(this));break;case"nick":m.connection.send(i({from:m.connection.jid,to:this.getRoomJIDAndNick(t[2]),id:m.connection.getUniqueId()}).tree());break;case"owner":if(!this.validateRoleChangeCommand(t[1],n))break;this.setAffiliation(this.model.get("jid"),n[0],"owner",n[1],undefined,this.onCommandError.bind(this));break;case"op":if(!this.validateRoleChangeCommand(t[1],n))break;this.modifyRole(this.model.get("jid"),n[0],"moderator",n[1],undefined,this.onCommandError.bind(this));break;case"revoke":if(!this.validateRoleChangeCommand(t[1],n))break;this.setAffiliation(this.model.get("jid"),n[0],"none",n[1],undefined,this.onCommandError.bind(this));break;case"topic":m.connection.send(r({to:this.model.get("jid"),from:m.connection.jid,type:"groupchat"}).c("subject",{xmlns:"jabber:client"}).t(t[2]).tree());break;case"voice":if(!this.validateRoleChangeCommand(t[1],n))break;this.modifyRole(this.model.get("jid"),n[0],"participant",n[1],undefined,this.onCommandError.bind(this));break;default:this.sendChatRoomMessage(e)}},handleMUCStanza:function(e){var n,r,i,s=e.getAttribute("from"),o=t(e).find('[xmlns="'+a.NS.MAM+'"]').length>0;if(!s||this.model.get("id")!==s.split("/")[0]||o)return!0;if(e.nodeName==="message")f.compose(this.onChatRoomMessage.bind(this),this.showStatusMessages.bind(this))(e);else if(e.nodeName==="presence"){r=e.getElementsByTagName("x");if(r.length>0)for(i=0;i<r.length;i++){n=r[i].getAttribute("xmlns");if(n&&n.match(a.NS.MUC)){this.onChatRoomPresence(e);break}}}return!0},getRoomJIDAndNick:function(e){e=e||this.model.get("nick");var t=this.model.get("jid"),n=a.getNodeFromJid(t),r=a.getDomainFromJid(t);return n+"@"+r+(e!==null?"/"+e:"")},join:function(e,t,n){var r=i({from:m.connection.jid,to:this.getRoomJIDAndNick()}).c("x",{xmlns:a.NS.MUC});return typeof t=="object"&&Object.keys(t).length&&(r=r.c("history",t).up()),e&&r.cnode(a.xmlElement("password",[],e)),typeof n!="undefined"&&n!==null&&r.up.cnode(n),this.handler||(this.handler=m.connection.addHandler(this.handleMUCStanza.bind(this))),this.model.set("connection_status",a.Status.CONNECTING),m.connection.send(r)},leave:function(e){var t=m.connection.getUniqueId(),n=i({type:"unavailable",id:t,from:m.connection.jid,to:this.getRoomJIDAndNick()});e!==null&&n.c("status",e),m.connection.addHandler(function(){this.model.set("connection_status",a.Status.DISCONNECTED)}.bind(this),null,"presence",null,t),m.connection.send(n)},renderConfigurationForm:function(e){var n=this.$el.find("form.chatroom-form"),r=t(e),i=r.find("field"),s=r.find("title").text(),o=r.find("instructions").text();n.find("span.spinner").remove(),n.append(t("<legend>").text(s)),o&&o!=s&&n.append(t('<p class="instructions">').text(o)),f.each(i,function(e){n.append(c.xForm2webForm(t(e),r))}),n.append('<input type="submit" class="save-submit" value="'+q("Save")+'"/>'),n.append('<input type="button" class="cancel-submit" value="'+q("Cancel")+'"/>'),n.on("submit",this.saveConfiguration.bind(this)),n.find("input[type=button]").on("click",this.cancelConfiguration.bind(this))},sendConfiguration:function(e,t,r){var i=n({to:this.model.get("jid"),type:"set"}).c("query",{xmlns:a.NS.MUC_OWNER}).c("x",{xmlns:a.NS.XFORM,type:"submit"});return f.each(e,function(e){i.cnode(e).up()}),m.connection.sendIQ(i.tree(),t,r)},saveConfiguration:function(e){e.preventDefault();var n=this,r=t(e.target).find(":input:not([type=button]):not([type=submit])"),i=r.length,s=[];r.each(function(){s.push(c.webForm2xForm(this)),--i||n.sendConfiguration(s,n.onConfigSaved.bind(n),n.onErrorConfigSaved.bind(n))}),this.$el.find("div.chatroom-form-container").hide(function(){t(this).remove(),n.$el.find(".chat-area").show(),n.$el.find(".participants").show()})},onConfigSaved:function(e){},onErrorConfigSaved:function(e){this.showStatusNotification(q("An error occurred while trying to save the form."))},cancelConfiguration:function(e){e.preventDefault();var n=this;this.$el.find("div.chatroom-form-container").hide(function(){t(this).remove(),n.$el.find(".chat-area").show(),n.$el.find(".participants").show()})},configureChatRoom:function(e){e.preventDefault();if(this.$el.find("div.chatroom-form-container").length)return;this.$(".chat-body").children().hide(),this.$(".chat-body").append(t('<div class="chatroom-form-container"><form class="chatroom-form"><span class="spinner centered"/></form></div>')),m.connection.sendIQ(n({to:this.model.get("jid"),type:"get"}).c("query",{xmlns:a.NS.MUC_OWNER}).tree(),this.renderConfigurationForm.bind(this))},submitPassword:function(e){e.preventDefault();var t=this.$el.find(".chatroom-form").find("input[type=password]").val();this.$el.find(".chatroom-form-container").replaceWith('<span class="spinner centered"/>'),this.join(t)},renderPasswordForm:function(){this.$(".chat-body").children().hide(),this.$("span.centered.spinner").remove(),this.$(".chat-body").append(m.templates.chatroom_password_form({heading:q("This chatroom requires a password"),label_password:q("Password: "),label_submit:q("Submit")})),this.$(".chatroom-form").on("submit",this.submitPassword.bind(this))},showDisconnectMessage:function(e){this.$(".chat-area").hide(),this.$(".participants").hide(),this.$("span.centered.spinner").remove(),this.$(".chat-body").append(t("<p>"+e+"</p>"))},infoMessages:{100:q("This room is not anonymous"),102:q("This room now shows unavailable members"),103:q("This room does not show unavailable members"),104:q("Non-privacy-related room configuration has changed"),170:q("Room logging is now enabled"),171:q("Room logging is now disabled"),172:q("This room is now non-anonymous"),173:q("This room is now semi-anonymous"),174:q("This room is now fully-anonymous"),201:q("A new room has been created")},disconnectMessages:{301:q("You have been banned from this room"),307:q("You have been kicked from this room"),321:q("You have been removed from this room because of an affiliation change"),322:q("You have been removed from this room because the room has changed to members-only and you're not a member"),332:q("You have been removed from this room because the MUC (Multi-user chat) service is being shut down.")},actionInfoMessages:{301:R("<strong>%1$s</strong> has been banned"),303:R("<strong>%1$s</strong>'s nickname has changed"),307:R("<strong>%1$s</strong> has been kicked out"),321:R("<strong>%1$s</strong> has been removed because of an affiliation change"),322:R("<strong>%1$s</strong> has been removed for not being a member")},newNicknameMessages:{210:R("Your nickname has been automatically changed to: <strong>%1$s</strong>"),303:R("Your nickname has been changed to: <strong>%1$s</strong>")},showStatusMessages:function(e,n){var r=t(e),i=[],s=[],o=[];r.find('x[xmlns="'+a.NS.MUC_USER+'"]').each(function(e,u){var l=t(u).find("item");a.getBareJidFromJid(l.attr("jid"))===m.bare_jid&&l.attr("affiliation")==="owner"&&this.$el.find("a.configure-chatroom-button").show(),t(u).find("item reason").each(function(e,n){t(n).text()&&o.push(t(n).text())}),t(u).find("status").each(function(e,o){var u=o.getAttribute("code"),c=a.unescapeNode(a.getResourceFromJid(r.attr("from")));n&&u==="210"?s.push(q(this.newNicknameMessages[u],c)):n&&u==="303"?s.push(q(this.newNicknameMessages[u],l.attr("nick"))):n&&f.contains(f.keys(this.disconnectMessages),u)?i.push(this.disconnectMessages[u]):!n&&f.contains(f.keys(this.actionInfoMessages),u)?s.push(q(this.actionInfoMessages[u],c)):f.contains(f.keys(this.infoMessages),u)?s.push(this.infoMessages[u]):u!=="110"&&t(o).text()&&s.push(t(o).text())}.bind(this))}.bind(this));if(i.length>0){for(w=0;w<i.length;w++)this.showDisconnectMessage(i[w]);for(w=0;w<o.length;w++)this.showDisconnectMessage(q('The reason given is: "'+o[w]+'"'),!0);this.model.set("connection_status",a.Status.DISCONNECTED);return}for(w=0;w<s.length;w++)this.$content.append(m.templates.info({message:s[w]}));for(w=0;w<o.length;w++)this.showStatusNotification(q('The reason given is: "'+o[w]+'"'),!0);return this.scrollDown(),e},showErrorMessage:function(e){e.attr("type")=="auth"?e.find("not-authorized").length?this.renderPasswordForm():e.find("registration-required").length?this.showDisconnectMessage(q("You are not on the member list of this room")):e.find("forbidden").length&&this.showDisconnectMessage(q("You have been banned from this room")):e.attr("type")=="modify"?e.find("jid-malformed").length&&this.showDisconnectMessage(q("No nickname was specified")):e.attr("type")=="cancel"&&(e.find("not-allowed").length?this.showDisconnectMessage(q("You are not allowed to create new rooms")):e.find("not-acceptable").length?this.showDisconnectMessage(q("Your nickname doesn't conform to this room's policies")):e.find("conflict").length?this.showDisconnectMessage(q("Your nickname is already taken")):e.find("item-not-found").length?this.showDisconnectMessage(q("This room does not (yet) exist")):e.find("service-unavailable").length&&this.showDisconnectMessage(q("This room has reached it's maximum number of occupants")))},onChatRoomPresence:function(e){var n=t(e),r,i=this.model.get("nick");n.attr("type")==="error"?(this.model.set("connection_status",a.Status.DISCONNECTED),this.showErrorMessage(n.find("error"))):(r=n.find("status[code='110']").length||n.attr("from")==this.model.get("id")+"/"+a.escapeNode(i),this.model.get("connection_status")!==a.Status.CONNECTED&&(this.model.set("connection_status",a.Status.CONNECTED),this.$("span.centered.spinner").remove(),this.$el.find(".chat-body").children().show()),this.showStatusMessages(e,r)),this.occupantsview.updateOccupantsOnPresence(e)},onChatRoomMessage:function(e){var n=t(e),r=n.find('result[xmlns="'+a.NS.MAM+'"]').attr("id"),i=n.find("delay").length>0,s=n.find("forwarded"),o;s.length&&(n=s.children("message"),o=s.children("delay"),i=o.length>0);var u=n.children("body").text(),f=n.attr("from"),l=n.attr("id"),c=a.getResourceFromJid(f),h=c&&a.unescapeNode(c)||"",p=n.children("subject").text();return l&&this.model.messages.findWhere({msgid:l})?!0:(p&&(this.$el.find(".chatroom-topic").text(p).attr("title",p),this.$content.append(m.templates.info({message:q("Topic set by %1$s to: %2$s",h,p)}))),h===""?!0:(this.model.createMessage(n,o,r),!i&&h!==this.model.get("nick")&&(new RegExp("\\b"+this.model.get("nick")+"\\b")).test(u)&&m.playNotification(),h!==this.model.get("nick")&&m.emit("message",e),!0))}}),this.ChatBoxes=Backbone.Collection.extend({model:m.ChatBox,comparator:"time_opened",registerMessageHandler:function(){m.connection.addHandler(function(e){return this.onMessage(e),!0}.bind(this),null,"message","chat"),m.connection.addHandler(function(e){return this.onInvite(e),!0}.bind(this),"jabber:x:conference","message")},onConnected:function(){this.browserStorage=new Backbone.BrowserStorage[m.storage](h("converse.chatboxes-"+m.bare_jid)),this.registerMessageHandler(),this.fetch({add:!0,success:function(e,t){e.each(function(e){e.get("id")!=="controlbox"&&!e.get("minimized")&&e.trigger("show")}),f.include(f.pluck(t,"id"),"controlbox")||this.add({id:"controlbox",box_id:"controlbox"}),this.get("controlbox").save({connected:!0})}.bind(this)})},isOnlyChatStateNotification:function(e){return e.find("body").length===0&&(e.find(M).length!==0||e.find(D).length!==0||e.find(O).length!==0||e.find(P).length!==0||e.find(H).length!==0)},onInvite:function(e){var n=t(e),r=n.children('x[xmlns="jabber:x:conference"]'),i=a.getBareJidFromJid(n.attr("from")),s=r.attr("jid"),o=r.attr("reason"),u=m.roster.get(i),l;o?l=confirm(q(R('%1$s has invited you to join a chat room: %2$s, and left the following reason: "%3$s"'),u.get("fullname"),s,o)):l=confirm(q(R("%1$s has invited you to join a chat room: %2$s"),u.get("fullname"),s));if(l===!0){var c=m.chatboxviews.showChat({id:s,jid:s,name:a.unescapeNode(a.getNodeFromJid(s)),nick:a.unescapeNode(a.getNodeFromJid(m.connection.jid)),chatroom:!0,box_id:h(s),password:r.attr("password")});f.contains([a.Status.CONNECTING,a.Status.CONNECTED],c.get("connection_status"))||m.chatboxviews.get(s).join(null)}},onMessage:function(e){var n=t(e),r,i,s,o,u,f,l,c,h,p,d=n.attr("from"),v=n.attr("to"),g=a.getResourceFromJid(v),y=n.find('result[xmlns="'+a.NS.MAM+'"]').attr("id");return g&&g!==m.resource?(m.log("Ignore incoming message intended for a different resource: "+v,"info"),!0):d===m.connection.jid?(m.log("Ignore incoming message sent from this client's JID: "+d,"info"),!0):(i=n.find("forwarded"),i.length&&(n=i.children("message"),s=i.children("delay"),d=n.attr("from"),v=n.attr("to")),o=a.getBareJidFromJid(d),u=a.getResourceFromJid(d),f=o==m.bare_jid,l=n.attr("id"),f?(r=a.getBareJidFromJid(v),h=a.getResourceFromJid(v)):(r=o,h=u),c=this.getChatBox(r,n.find("body").length>0),c?l&&c.messages.findWhere({msgid:l})?!0:(!this.isOnlyChatStateNotification(n)&&!f&&!i.length&&m.playNotification(),c.receiveMessage(n,s,y),m.roster.addResource(r,h),m.emit("message",e),!0):!0)},getChatBox:function(e,t){var n=a.getBareJidFromJid(e),r=this.get(n);if(!r&&t){var i=m.roster.get(n);if(i===undefined){m.log("Could not get roster item for JID "+n,"error");return}r=this.create({id:n,jid:n,fullname:f.isEmpty(i.get("fullname"))?e:i.get("fullname"),image_type:i.get("image_type"),image:i.get("image"),url:i.get("url")})}return r}}),this.ChatBoxViews=Backbone.Overview.extend({initialize:function(){this.model.on("add",this.onChatBoxAdded,this),this.model.on("change:minimized",function(e){e.get("minimized")===!0?this.trimChats():this.trimChats(this.get(e.get("id")))},this)},_ensureElement:function(){if(!this.el){var e=t("#conversejs");e.length||(e=t('<div id="conversejs">'),t("body").append(e)),e.html(m.templates.chats_panel()),this.setElement(e,!1)}else this.setElement(f.result(this,"el"),!1)},onChatBoxAdded:function(e){var t=this.get(e.get("id"));t?(delete t.model,t.model=e,t.initialize()):(e.get("chatroom")?t=new m.ChatRoomView({model:e}):e.get("box_id")==="controlbox"?t=new m.ControlBoxView({model:e}):t=new m.ChatBoxView({model:e}),this.add(e.get("id"),t)),this.trimChats(t)},trimChats:function(e){if(m.no_trimming||this.model.length<=1)return;var n,r=0,i=m.minimized_chats.$el,s=f.contains(this.model.pluck("minimized"),!0)?i.outerWidth(!0):0,o=e?e.$el.outerWidth(!0):0,u=e?e.model.get("id"):null,a=this.get("controlbox");!a||!a.$el.is(":visible")?r=m.controlboxtoggle.$el.outerWidth(!0):r=a.$el.outerWidth(!0),f.each(this.getAll(),function(e){var t=e.model.get("id");t!=="controlbox"&&t!==u&&!e.model.get("minimized")&&e.$el.is(":visible")&&(o+=e.$el.outerWidth(!0))}),s+o+r>t("body").outerWidth(!0)&&(n=this.getOldestMaximizedChat(),n&&n.get("id")!==u&&n.minimize())},getOldestMaximizedChat:function(){var e=0,t=this.model.sort().at(e);while(t.get("id")==="controlbox"||t.get("minimized")===!0){e++,t=this.model.at(e);if(!t)return null}return t},closeAllChatBoxes:function(e){var t=[];return this.model.each(function(n){var r=n.get("id");(e||r!=="controlbox")&&t.push(r)}),t.forEach(function(e){var t=this.get(e);t&&t.close()},this),this},showChat:function(e){var t=this.model.get(e.jid);return t||(t=this.model.create(e,{error:function(e,t){m.log(t.responseText)}})),t.get("minimized")?t.maximize():t.trigger("show"),t}}),this.MinimizedChatBoxView=Backbone.View.extend({tagName:"div",className:"chat-head",events:{"click .close-chatbox-button":"close","click .restore-chat":"restore"},initialize:function(){this.model.messages.on("add",function(e){e.get("message")&&this.updateUnreadMessagesCounter()},this),this.model.on("change:minimized",this.clearUnreadMessagesCounter,this),this.model.on("showReceivedOTRMessage",this.updateUnreadMessagesCounter,this),this.model.on("showSentOTRMessage",this.updateUnreadMessagesCounter,this)},render:function(){var e=f.extend(this.model.toJSON(),{tooltip:q("Click to restore this chat")});return this.model.get("chatroom")?(e.title=this.model.get("name"),this.$el.addClass("chat-head-chatroom")):(e.title=this.model.get("fullname"),this.$el.addClass("chat-head-chatbox")),this.$el.html(m.templates.trimmed_chat(e))},clearUnreadMessagesCounter:function(){this.model.set({num_unread:0}),this.render()},updateUnreadMessagesCounter:function(){this.model.set({num_unread:this.model.get("num_unread")+1}),this.render()},close:function(e){return e&&e.preventDefault&&e.preventDefault(),this.remove(),this.model.destroy(),m.emit("chatBoxClosed",this),this},restore:f.debounce(function(e){e&&e.preventDefault&&e.preventDefault(),this.model.messages.off("add",null,this),this.remove(),this.model.maximize()},200,!0)}),this.MinimizedChats=Backbone.Overview.extend({el:"#minimized-chats",events:{"click #toggle-minimized-chats":"toggle"},initialize:function(){this.initToggle(),this.model.on("add",this.onChanged,this),this.model.on("destroy",this.removeChat,this),this.model.on("change:minimized",this.onChanged,this),this.model.on("change:num_unread",this.updateUnreadMessagesCounter,this)},tearDown:function(){return this.model.off("add",this.onChanged),this.model.off("destroy",this.removeChat),this.model.off("change:minimized",this.onChanged),this.model.off("change:num_unread",this.updateUnreadMessagesCounter),this},initToggle:function(){this.toggleview=new m.MinimizedChatsToggleView({model:new m.MinimizedChatsToggle});var e=h("converse.minchatstoggle"+m.bare_jid);this.toggleview.model.id=e,this.toggleview.model.browserStorage=new Backbone.BrowserStorage[m.storage](e),this.toggleview.model.fetch()},render:function(){return this.keys().length===0?this.$el.hide("fast"):this.keys().length===1&&this.$el.show("fast"),this.$el},toggle:function(e){e&&e.preventDefault&&e.preventDefault(),this.toggleview.model.save({collapsed:!this.toggleview.model.get("collapsed")}),this.$(".minimized-chats-flyout").toggle()},onChanged:function(e){e.get("id")!=="controlbox"&&e.get("minimized")?this.addChat(e):this.get(e.get("id"))&&this.removeChat(e)},addChat:function(e){var t=this.get(e.get("id"));if(t&&t.$el.parent().length!==0)return;var n=new m.MinimizedChatBoxView({model:e});this.$(".minimized-chats-flyout").append(n.render()),this.add(e.get("id"),n),this.toggleview.model.set({num_minimized:this.keys().length}),this.render()},removeChat:function(e){this.remove(e.get("id")),this.toggleview.model.set({num_minimized:this.keys().length}),this.render()},updateUnreadMessagesCounter:function(){var e=this.model.pluck("num_unread"),t=0,n;for(n=0;n<e.length;n++)t+=e[n];this.toggleview.model.set({num_unread:t}),this.render()}}),this.MinimizedChatsToggle=Backbone.Model.extend({initialize:function(){this.set({collapsed:this.get("collapsed")||!1,num_minimized:this.get("num_minimized")||0,num_unread:this.get("num_unread")||0})}}),this.MinimizedChatsToggleView=Backbone.View.extend({el:"#toggle-minimized-chats",initialize:function(){this.model.on("change:num_minimized",this.render,this),this.model.on("change:num_unread",this.render,this),this.$flyout=this.$el.siblings(".minimized-chats-flyout")},render:function(){return this.$el.html(m.templates.toggle_chats(f.extend(this.model.toJSON(),{Minimized:q("Minimized")}))),this.model.get("collapsed")?this.$flyout.hide():this.$flyout.show(),this.$el}}),this.RosterContact=Backbone.Model.extend({initialize:function(e,t){var n=e.jid,r=a.getBareJidFromJid(n),i=a.getResourceFromJid(n);e.jid=r,this.set(f.extend({id:r,jid:r,fullname:r,chat_status:"offline",user_id:a.getNodeFromJid(n),resources:i?[i]:[],groups:[],image_type:"image/png",image:"iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAIAAABt+uBvAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gwHCy455JBsggAABkJJREFUeNrtnM1PE1sUwHvvTD8otWLHST/Gimi1CEgr6M6FEWuIBo2pujDVsNDEP8GN/4MbN7oxrlipG2OCgZgYlxAbkRYw1KqkIDRCSkM7nXvvW8x7vjyNeQ9m7p1p3z1LQk/v/Dhz7vkEXL161cHl9wI5Ag6IA+KAOCAOiAPigDggLhwQB2S+iNZ+PcYY/SWEEP2HAAAIoSAIoihCCP+ngDDGtVotGAz29/cfOXJEUZSOjg6n06lp2sbGRqlUWlhYyGazS0tLbrdbEASrzgksyeYJId3d3el0uqenRxRFAAAA4KdfIIRgjD9+/Pj8+fOpqSndslofEIQwHA6Pjo4mEon//qmFhYXHjx8vLi4ihBgDEnp7e9l8E0Jo165dQ0NDd+/eDYVC2/qsJElDQ0OEkKWlpa2tLZamxAhQo9EIBoOjo6MXL17csZLe3l5FUT59+lQul5l5JRaAVFWNRqN37tw5ceKEQVWRSOTw4cOFQuHbt2+iKLYCIISQLMu3b99OJpOmKAwEAgcPHszn8+vr6wzsiG6UQQhxuVyXLl0aGBgwUW0sFstkMl6v90fo1KyAMMYDAwPnzp0zXfPg4GAqlWo0Gk0MiBAiy/L58+edTqf5Aa4onj59OhaLYYybFRCEMBaL0fNxBw4cSCQStN0QRUBut3t4eJjq6U+dOiVJElVPRBFQIBDo6+ujCqirqyscDlONGykC2lYyYSR6pBoQQapHZwAoHo/TuARYAOrs7GQASFEUqn6aIiBJkhgA6ujooFpUo6iaTa7koFwnaoWadLNe81tbWwzoaJrWrICWl5cZAFpbW6OabVAEtLi4yABQsVjUNK0pAWWzWQaAcrlcswKanZ1VVZUqHYRQEwOq1Wpv3ryhCmh6erpcLjdrNl+v1ycnJ+l5UELI27dvv3//3qxxEADgy5cvExMT9Mznw4cPtFtAdAPFarU6Pj5eKpVM17yxsfHy5cvV1VXazXu62gVBKBQKT58+rdVqJqrFGL948eLdu3dU8/g/H4FBUaJYLAqC0NPTY9brMD4+PjY25mDSracOCABACJmZmXE6nUePHjWu8NWrV48ePSKEsGlAs7Agfd5nenq6Wq0mk0kjDzY2NvbkyRMIIbP2PLvhBUEQ8vl8NpuNx+M+n29bzhVjvLKycv/+/YmJCcazQuwA6YzW1tYmJyf1SY+2trZ/rRk1Go1SqfT69esHDx4UCgVmNaa/zZ/9ABUhRFXVYDB48uTJeDweiUQkSfL7/T9MA2NcqVTK5fLy8vL8/PzU1FSxWHS5XJaM4wGr9sUwxqqqer3eUCgkSZJuUBBCfTRvc3OzXC6vrKxUKhWn02nhCJ5lM4oQQo/HgxD6+vXr58+fHf8sDOp+HQDg8XgclorFU676dKLlo6yWRdItIBwQB8QBcUCtfosRQjRNQwhhjPUC4w46WXryBSHU1zgEQWBz99EFhDGu1+t+v//48ePxeFxRlD179ng8nh0Efgiher2+vr6ur3HMzMysrq7uTJVdACGEurq6Ll++nEgkPB7Pj9jPoDHqOxyqqubz+WfPnuVyuV9XPeyeagAAAoHArVu3BgcHab8CuVzu4cOHpVKJUnfA5GweY+xyuc6cOXPv3r1IJMLAR8iyPDw8XK/Xi8Wiqqqmm5KZgBBC7e3tN27cuHbtGuPVpf7+/lAoNDs7W61WzfVKpgHSSzw3b95MpVKW3MfRaDQSiczNzVUqFRMZmQOIEOL1eq9fv3727FlL1t50URRFluX5+flqtWpWEGAOIFEUU6nUlStXLKSjy759+xwOx9zcnKZpphzGHMzhcDiTydgk9r1w4YIp7RPTAAmCkMlk2FeLf/tIEKbTab/fbwtAhJBoNGrutpNx6e7uPnTokC1eMU3T0um0DZPMkZER6wERQnw+n/FFSxpy7Nix3bt3WwwIIcRgIWnHkkwmjecfRgGx7DtuV/r6+iwGhDHev3+/bQF1dnYaH6E2CkiWZdsC2rt3r8WAHA5HW1ubbQGZcjajgOwTH/4qNko1Wlg4IA6IA+KAOKBWBUQIsfNojyliKIoRRfH9+/dut9umf3wzpoUNNQ4BAJubmwz+ic+OxefzWWlBhJD29nbug7iT5sIBcUAcEAfEAXFAHBAHxOVn+QMrmWpuPZx12gAAAABJRU5ErkJggg==",status:""},e)),this.on("destroy",function(){this.removeFromRoster()}.bind(this))},subscribe:function(e){this.save("ask","subscribe");var t=i({to:this.get("jid"),type:"subscribe"});e&&e!==""&&t.c("status").t(e).up();var n=m.xmppstatus.get("fullname");return n&&n!==""&&t.c("nick",{xmlns:a.NS.NICK}).t(n).up(),m.connection.send(t),this},ackSubscribe:function(){m.connection.send(i({type:"subscribe",to:this.get("jid")}))},ackUnsubscribe:function(e){m.connection.send(i({type:"unsubscribe",to:this.get("jid")})),this.destroy()},unauthorize:function(e){return m.rejectPresenceSubscription(this.get("jid"),e),this},authorize:function(e){var t=i({to:this.get("jid"),type:"subscribed"});return e&&e!==""&&t.c("status").t(e),m.connection.send(t),this},removeResource:function(e){var t=this.get("resources"),n;return e&&(n=f.indexOf(t,e),n!==-1&&(t.splice(n,1),this.save({resources:t}))),t.length},removeFromRoster:function(e){var t=n({type:"set"}).c("query",{xmlns:a.NS.ROSTER}).c("item",{jid:this.get("jid"),subscription:"remove"});return m.connection.sendIQ(t,e,e),this},showInRoster:function(){var e=this.get("chat_status");return m.show_only_online_users&&e!=="online"||m.hide_offline_users&&e==="offline"?this.get("ask")==="subscribe"||this.get("subscription")==="from"||this.get("requesting")===!0?!0:!1:!0}}),this.RosterContactView=Backbone.View.extend({tagName:"dd",events:{"click .accept-xmpp-request":"acceptRequest","click .decline-xmpp-request":"declineRequest","click .open-chat":"openChat","click .remove-xmpp-contact":"removeContact"},initialize:function(){this.model.on("change",this.render,this),this.model.on("remove",this.remove,this),this.model.on("destroy",this.remove,this),this.model.on("open",this.openChat,this)},render:function(){if(!this.model.showInRoster())return this.$el.hide(),this;this.$el[0].style.display==="none"&&this.$el.show();var e=this.model,t=e.get("ask"),n=e.get("chat_status"),r=e.get("requesting"),i=e.get("subscription"),s=["current-xmpp-contact","pending-xmpp-contact","requesting-xmpp-contact"].concat(f.keys(W));f.each(s,function(e){this.el.className.indexOf(e)!==-1&&this.$el.removeClass(e)},this),this.$el.addClass(n).data("status",n);if(t==="subscribe"||i==="from")this.$el.addClass("pending-xmpp-contact"),this.$el.html(m.templates.pending_contact(f.extend(e.toJSON(),{desc_remove:q("Click to remove this contact"),allow_chat_pending_contacts:m.allow_chat_pending_contacts})));else if(r===!0)this.$el.addClass("requesting-xmpp-contact"),this.$el.html(m.templates.requesting_contact(f.extend(e.toJSON(),{desc_accept:q("Click to accept this contact request"),desc_decline:q("Click to decline this contact request"),allow_chat_pending_contacts:m.allow_chat_pending_contacts}))),m.controlboxtoggle.showControlBox();else if(i==="both"||i==="to")this.$el.addClass("current-xmpp-contact"),this.$el.removeClass(f.without(["both","to"],i)[0]).addClass(i),this.$el.html(m.templates.roster_item(f.extend(e.toJSON(),{desc_status:W[n||"offline"],desc_chat:q("Click to chat with this contact"),desc_remove:q("Click to remove this contact"),title_fullname:q("Name"),allow_contact_removal:m.allow_contact_removal})));return this},openChat:function(e){return e&&e.preventDefault&&e.preventDefault(),m.chatboxviews.showChat(this.model.attributes)},removeContact:function(e){e&&e.preventDefault&&e.preventDefault();if(!m.allow_contact_removal)return;var t=confirm(q("Are you sure you want to remove this contact?"));if(t===!0){var r=n({type:"set"}).c("query",{xmlns:a.NS.ROSTER}).c("item",{jid:this.model.get("jid"),subscription:"remove"});m.connection.sendIQ(r,function(e){this.model.destroy(),this.remove()}.bind(this),function(e){alert(q("Sorry, there was an error while trying to remove "+name+" as a contact.")),m.log(e)})}},acceptRequest:function(e){e&&e.preventDefault&&e.preventDefault(),m.roster.sendContactAddIQ(this.model.get("jid"),this.model.get("fullname"),[],function(){this.model.authorize().subscribe()}.bind(this))},declineRequest:function(e){e&&e.preventDefault&&e.preventDefault();var t=confirm(q("Are you sure you want to decline this contact request?"));return t===!0&&this.model.unauthorize().destroy(),this}}),this.RosterContacts=Backbone.Collection.extend({model:m.RosterContact,comparator:function(e,t){var n,r,i=e.get("chat_status")||"offline",s=t.get("chat_status")||"offline";return g[i]===g[s]?(n=e.get("fullname").toLowerCase(),r=t.get("fullname").toLowerCase(),n<r?-1:n>r?1:0):g[i]<g[s]?-1:1},subscribeToSuggestedItems:function(e){return t(e).find("item").each(function(e,n){var r=t(this);this.getAttribute("action")==="add"&&m.roster.addAndSubscribe(this.getAttribute("jid"),null,m.xmppstatus.get("fullname"))}),!0},isSelf:function(e){return a.getBareJidFromJid(e)===a.getBareJidFromJid(m.connection.jid)},addAndSubscribe:function(e,t,n,r,i){this.addContact(e,t,n,i).done(function(e){e instanceof m.RosterContact&&e.subscribe(r)})},sendContactAddIQ:function(e,t,r,i,s){t=f.isEmpty(t)?e:t;var o=n({type:"set"}).c("query",{xmlns:a.NS.ROSTER}).c("item",{jid:e,name:t});f.map(r,function(e){o.c("group").t(e).up()}),m.connection.sendIQ(o,i,s)},addContact:function(e,n,r,i){var s=new t.Deferred;return r=r||[],n=f.isEmpty(n)?e:n,this.sendContactAddIQ(e,n,r,function(t){var o=this.create(f.extend({ask:undefined,fullname:n,groups:r,jid:e,requesting:!1,subscription:"none"},i),{sort:!1});s.resolve(o)}.bind(this),function(e){alert(q("Sorry, there was an error while trying to add "+n+" as a contact.")),m.log(e),s.resolve(e)}),s.promise()},addResource:function(e,t){var n=this.get(e),r;n&&(r=n.get("resources"),r?f.indexOf(r,t)==-1&&(r.push(t),n.set({resources:r})):n.set({resources:[t]}))},subscribeBack:function(e){var t=this.get(e);t instanceof m.RosterContact?t.authorize().subscribe():this.addContact(e,"",[],{subscription:"from"}).done(function(e){e instanceof m.RosterContact&&e.authorize().subscribe()})},getNumOnlineContacts:function(){var e=0,t=["offline","unavailable"],n=this.models,r=n.length,i;m.show_only_online_users&&(t=f.union(t,["dnd","xa","away"]));for(i=0;i<r;i++)f.indexOf(t,n[i].get("chat_status"))===-1&&e++;return e},onRosterPush:function(e){var r=e.getAttribute("id"),i=e.getAttribute("from");return i&&i!==""&&a.getNodeFromJid(i)!=m.bare_jid?(m.connection.send(n({type:"error",id:r,from:m.connection.jid}).c("error",{type:"cancel"}).c("service-unavailable",{xmlns:a.NS.ROSTER})),!0):(m.connection.send(n({type:"result",id:r,from:m.connection.jid})),t(e).children("query").find("item").each(function(e,t){this.updateContact(t)}.bind(this)),!0)},fetchFromServer:function(e,t){var r=n({type:"get",id:m.connection.getUniqueId("roster")}).c("query",{xmlns:a.NS.ROSTER});return m.connection.sendIQ(r,this.onReceivedFromServer.bind(this))},onReceivedFromServer:function(e){m.emit("roster",e),t(e).children("query").find("item").each(function(e,t){this.updateContact(t)}.bind(this)),m.initial_presence_sent||(m.initial_presence_sent=1,m.xmppstatus.sendPresence())},updateContact:function(e){var n=e.getAttribute("jid");if(this.isSelf(n))return;var r=[],i=this.get(n),s=e.getAttribute("ask"),o=e.getAttribute("subscription");t.map(e.getElementsByTagName("group"),function(e){r.push(a.getText(e))});if(!i){if(o==="none"&&s===null||o==="remove")return;this.create({ask:s,fullname:e.getAttribute("name")||n,groups:r,jid:n,subscription:o},{sort:!1})}else{if(o==="remove")return i.destroy();i.save({subscription:o,ask:s,requesting:null,groups:r})}},createContactFromVCard:function(e,t,n,r,i,s){var o=a.getBareJidFromJid(t);this.create({jid:o,subscription:"none",ask:null,requesting:!0,fullname:n||o,image:r,image_type:i,url:s,vcard_updated:l().format()})},handleIncomingSubscription:function(e){var t=a.getBareJidFromJid(e),n=this.get(t);m.allow_contact_requests||m.rejectPresenceSubscription(e,q("This client does not allow presence subscriptions")),m.auto_subscribe?!n||n.get("subscription")!="to"?this.subscribeBack(t):n.authorize():n?n.get("subscription")!="none"?n.authorize():n.get("ask")=="subscribe"&&n.authorize():n||m.getVCard(t,this.createContactFromVCard.bind(this),function(e,t){m.log("Error while retrieving vcard for "+t),this.createContactFromVCard.call(this,e,t)}.bind(this))},presenceHandler:function(e){var n=t(e),r=e.getAttribute("type");if(r==="error")return!0;var i=e.getAttribute("from"),s=a.getBareJidFromJid(i),o=a.getResourceFromJid(i),u=n.find("show").text()||"online",f=n.find("status"),l=this.get(s);if(this.isSelf(s)){m.connection.jid!==i&&r!=="unavailable"&&(m.xmppstatus.save({status:u}),f.length&&m.xmppstatus.save({status_message:f.text()}));return}if((n.find("x").attr("xmlns")||"").indexOf(a.NS.MUC)===0)return;l&&f.text()!=l.get("status")&&l.save({status:f.text()});if(r==="subscribed"&&l)l.ackSubscribe();else if(r==="unsubscribed"&&l)l.ackUnsubscribe();else{if(r==="unsubscribe")return;r==="subscribe"?this.handleIncomingSubscription(i):r==="unavailable"&&l?l.removeResource(o)===0&&l.save({chat_status:"offline"}):l&&(this.addResource(s,o),l.save({chat_status:u}))}}}),this.RosterGroup=Backbone.Model.extend({initialize:function(e,t){this.set(f.extend({description:X,state:F},e)),this.contacts=new m.RosterContacts}}),this.RosterGroupView=Backbone.Overview.extend({tagName:"dt",className:"roster-group",events:{"click a.group-toggle":"toggle"},initialize:function(){this.model.contacts.on("add",this.addContact,this),this.model.contacts.on("change:subscription",this.onContactSubscriptionChange,this),this.model.contacts.on("change:requesting",this.onContactRequestChange,this),this.model.contacts.on("change:chat_status",function(e){this.model.contacts.sort(),this.positionContact(e).render()},this),this.model.contacts.on("destroy",this.onRemove,this),this.model.contacts.on("remove",this.onRemove,this),m.roster.on("change:groups",this.onContactGroupChange,this)},render:function(){return this.$el.attr("data-group",this.model.get("name")),this.$el.html(t(m.templates.group_header({label_group:this.model.get("name"),desc_group_toggle:this.model.get("description"),toggle_state:this.model.get("state")}))),this},addContact:function(e){var t=new m.RosterContactView({model:e});this.add(e.get("id"),t),t=this.positionContact(e).render(),e.showInRoster()&&(this.model.get("state")===I?(t.$el[0].style.display!=="none"&&t.$el.hide(),this.$el.is(":visible")||this.$el.show()):this.$el[0].style.display!=="block"&&this.show())},positionContact:function(e){var t=this.get(e.get("id")),n=this.model.contacts.indexOf(e);return t.$el.detach(),n===0?this.$el.after(t.$el):n==this.model.contacts.length-1?this.$el.nextUntil("dt").last().after(t.$el):this.$el.nextUntil("dt").eq(n).before(t.$el),t},show:function(){this.$el.show(),f.each(this.getAll(),function(e){e.model.showInRoster()&&e.$el.show()})},hide:function(){this.$el.nextUntil("dt").addBack().hide()},filter:function(e){var t;e.length===0?(this.model.get("state")===F&&this.model.contacts.each(function(e){e.showInRoster()&&this.get(e.get("id")).$el.show()}.bind(this)),this.showIfNecessary()):(e=e.toLowerCase(),t=this.model.contacts.filter(p.not("fullname",e)),t.length===this.model.contacts.length?this.hide():(f.each(t,function(e){this.get(e.get("id")).$el.hide()}.bind(this)),f.each(this.model.contacts.reject(p.not("fullname",e)),function(e){this.get(e.get("id")).$el.show()}.bind(this)),this.showIfNecessary()))},showIfNecessary:function(){!this.$el.is(":visible")&&this.model.contacts.length>0&&this.$el.show()},toggle:function(e){e&&e.preventDefault&&e.preventDefault();var n=t(e.target);n.hasClass("icon-opened")?(this.$el.nextUntil("dt").slideUp(),this.model.save({state:I}),n.removeClass("icon-opened").addClass("icon-closed")):(n.removeClass("icon-closed").addClass("icon-opened"),this.model.save({state:F}),this.filter(m.rosterview.$(".roster-filter").val(),m.rosterview.$(".filter-type").val()))},onContactGroupChange:function(e){var t=f.contains(e.get("groups"),this.model.get("name")),n=e.get("id"),r=!this.get(n);t&&!r?this.model.contacts.remove(n):!t&&r&&this.addContact(e)},onContactSubscriptionChange:function(e){this.model.get("name")===J&&e.get("subscription")!=="from"&&this.model.contacts.remove(e.get("id"))},onContactRequestChange:function(e){this.model.get("name")===K&&!e.get("requesting")&&this.model.contacts.remove(e.get("id"))},onRemove:function(e){this.remove(e.get("id")),this.model.contacts.length===0&&this.$el.hide()}}),this.RosterGroups=Backbone.Collection.extend({model:m.RosterGroup,comparator:function(e,t){e=e.get("name"),t=t.get("name");var n=f.keys(Z),r=f.contains(n,e),i=f.contains(n,t);if(!r&&!i)return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0;if(r&&i)return Z[e]<Z[t]?-1:Z[e]>Z[t]?1:0;if(!r&&i)return t===V?1:-1;if(r&&!i)return e===V?-1:1}}),this.RosterView=Backbone.Overview.extend({tagName:"div",id:"converse-roster",events:{"keydown .roster-filter":"liveFilter","click .onX":"clearFilter","mousemove .x":"togglePointer","change .filter-type":"changeFilterType"},initialize:function(){this.roster_handler_ref=this.registerRosterHandler(),this.rosterx_handler_ref=this.registerRosterXHandler(),this.presence_ref=this.registerPresenceHandler(),m.roster.on("add",this.onContactAdd,this),m.roster.on("change",this.onContactChange,this),m.roster.on("destroy",this.update,this),m.roster.on("remove",this.update,this),this.model.on("add",this.onGroupAdd,this),this.model.on("reset",this.reset,this),this.$roster=t('<dl class="roster-contacts" style="display: none;"></dl>')},unregisterHandlers:function(){m.connection.deleteHandler(this.roster_handler_ref),delete this.roster_handler_ref,m.connection.deleteHandler(this.rosterx_handler_ref),delete this.rosterx_handler_ref,m.connection.deleteHandler(this.presence_ref),delete this.presence_ref},update:f.debounce(function(){var e=t("#online-count");return e.text("("+m.roster.getNumOnlineContacts()+")"),e.is(":visible")||e.show(),this.$roster.parent().length===0&&this.$el.append(this.$roster.show()),this.showHideFilter()},m.animate?100:0),render:function(){return this.$el.html(m.templates.roster({placeholder:q("Type to filter"),label_contacts:G,label_groups:Y})),m.allow_contact_requests||this.$el.addClass("no-contact-requests"),this},fetch:function(){return this.model.fetch({silent:!0,success:function(e,t,n){e.length!==0&&this.positionFetchedGroups(e,t,n),m.roster.fetch({add:!0,success:function(e){e.length>0?m.initial_presence_sent=1:m.roster.fetchFromServer()}})}.bind(this)}),this},changeFilterType:function(e){e&&e.preventDefault&&e.preventDefault(),this.clearFilter(),this.filter(this.$(".roster-filter").val(),e.target.value)},tog:function(e){return e?"addClass":"removeClass"},togglePointer:function(e){e&&e.preventDefault&&e.preventDefault();var n=e.target;t(n)[this.tog(n.offsetWidth-18<e.clientX-n.getBoundingClientRect().left)]("onX")},filter:function(e,t){e=e.toLowerCase(),t==="groups"?f.each(this.getAll(),function(t,n){t.model.get("name").toLowerCase().indexOf(e.toLowerCase())===-1?t.hide():t.model.contacts.length>0&&t.show()}):f.each(this.getAll(),function(n){n.filter(e,t)})},liveFilter:f.debounce(function(e){e&&e.preventDefault&&e.preventDefault();var t=this.$(".roster-filter"),n=t.val(),r=this.$(".filter-type").val();t[this.tog(n)]("x"),this.filter(n,r)},300),clearFilter:function(e){e&&e.preventDefault&&(e.preventDefault(),t(e.target).removeClass("x onX").val("")),this.filter("")},showHideFilter:function(){if(!this.$el.is(":visible"))return;var e=this.$(".roster-filter"),t=this.$(".filter-type"),n=e.is(":visible");if(n&&e.val().length>0)return;return this.$roster.hasScrollBar()?n||(e.show(),t.show()):(e.hide(),t.hide()),this},reset:function(){return m.roster.reset(),this.removeAll(),this.$roster=t('<dl class="roster-contacts" style="display: none;"></dl>'),this.render().update(),this},registerRosterHandler:function(){m.connection.addHandler(m.roster.onRosterPush.bind(m.roster),a.NS.ROSTER,"iq","set")},registerRosterXHandler:function(){var e=0;m.connection.addHandler(function(n){return window.setTimeout(function(){m.connection.flush(),m.roster.subscribeToSuggestedItems.bind(m.roster)(n)},e),e+=t(n).find("item").length*250,!0},a.NS.ROSTERX,"message",null)},registerPresenceHandler:function(){m.connection.addHandler(function(e){return m.roster.presenceHandler(e),!0}.bind(this),null,"presence",null)},onGroupAdd:function(e){var t=new m.RosterGroupView({model:e});this.add(e.get("name"),t.render()),this.positionGroup(t)},onContactAdd:function(e){this.addRosterContact(e).update(),e.get("vcard_updated")||m.getVCard(e.get("jid"))},onContactChange:function(e){this.updateChatBox(e).update(),f.has(e.changed,"subscription")&&(e.changed.subscription=="from"?this.addContactToGroup(e,J):f.contains(["both","to"],e.get("subscription"))&&this.addExistingContact(e)),f.has(e.changed,"ask")&&e.changed.ask=="subscribe"&&this.addContactToGroup(e,J),f.has(e.changed,"subscription")&&e.changed.requesting=="true"&&this.addContactToGroup(e,K),this.liveFilter()},updateChatBox:function(e){var t=m.chatboxes.get(e.get("jid")),n={};return t?(f.has(e.changed,"chat_status")&&(n.chat_status=e.get("chat_status")),f.has(e.changed,"status")&&(n.status=e.get("status")),t.save(n),this):this},positionFetchedGroups:function(e,t,n){e.sort(),e.each(function(e,t){var n=this.get(e.get("name"));n||(n=new m.RosterGroupView({model:e}),this.add(e.get("name"),n.render())),t===0?this.$roster.append(n.$el):this.appendGroup(n)}.bind(this))},positionGroup:function(e){var n=this.$roster.find(".roster-group"),r=n.length?this.model.indexOf(e.model):0;return r===0?this.$roster.prepend(e.$el):r==this.model.length-1?this.appendGroup(e):t(n.eq(r)).before(e.$el),this},appendGroup:function(e){var t=this.$roster.find(".roster-group").last(),n=t.siblings("dd");return n.length>0?n.last().after(e.$el):t.after(e.$el),this},getGroup:function(e){var t=this.get(e);return t?t.model:this.model.create({name:e,id:h(e)})},addContactToGroup:function(e,t){this.getGroup(t).contacts.add(e)},addExistingContact:function(e){var t;m.roster_groups?(t=e.get("groups"),t.length===0&&(t=[Q])):t=[V],f.each(t,f.bind(this.addContactToGroup,this,e))},addRosterContact:function(e){return e.get("subscription")==="both"||e.get("subscription")==="to"?this.addExistingContact(e):e.get("ask")==="subscribe"||e.get("subscription")==="from"?this.addContactToGroup(e,J):e.get("requesting")===!0&&this.addContactToGroup(e,K),this}}),this.XMPPStatus=Backbone.Model.extend({initialize:function(){this.set({status:this.getStatus()}),this.on("change",function(e){this.get("fullname")===undefined&&m.getVCard(null,function(e,t,n,r,i,s){this.save({fullname:n})}.bind(this)),f.has(e.changed,"status")&&m.emit("statusChanged",this.get("status")),f.has(e.changed,"status_message")&&m.emit("statusMessageChanged",this.get("status_message"))}.bind(this))},constructPresence:function(e,t){typeof e=="undefined"&&(e=this.get("status")||"online"),typeof t=="undefined"&&(t=this.get("status_message"));var n;return e==="unavailable"||e==="probe"||e==="error"||e==="unsubscribe"||e==="unsubscribed"||e==="subscribe"||e==="subscribed"?n=i({type:e}):e==="offline"?(n=i({type:"unavailable"}),t&&n.c("show").t(e)):(e==="online"?n=i():n=i().c("show").t(e).up(),t&&n.c("status").t(t)),n},sendPresence:function(e,t){m.connection.send(this.constructPresence(e,t))},setStatus:function(e){this.sendPresence(e),this.save({status:e})},getStatus:function(){return this.get("status")||"online"},setStatusMessage:function(e){this.sendPresence(this.getStatus(),e);var n=this.get("status_message");this.save({status_message:e}),this.xhr_custom_status&&t.ajax({url:this.xhr_custom_status_url,type:"POST",data:{msg:e}}),n===e&&this.trigger("update-status-ui",this)}}),this.XMPPStatusView=Backbone.View.extend({el:"span#xmpp-status-holder",events:{"click a.choose-xmpp-status":"toggleOptions","click #fancy-xmpp-status-select a.change-xmpp-status-message":"renderStatusChangeForm","submit #set-custom-xmpp-status":"setStatusMessage","click .dropdown dd ul li a":"setStatus"},initialize:function(){this.model.on("change:status",this.updateStatusUI,this),this.model.on("change:status_message",this.updateStatusUI,this),this.model.on("update-status-ui",this.updateStatusUI,this)},render:function(){var e=this.$el.find("select#select-xmpp-status"),n=this.model.get("status")||"offline",r=t("option",e),i,s=[],o=this;return this.$el.html(m.templates.choose_status()),this.$el.find("#fancy-xmpp-status-select").html(m.templates.chat_status({status_message:this.model.get("status_message")||q("I am %1$s",this.getPrettyStatus(n)),chat_status:n,desc_custom_status:q("Click here to write a custom status message"),desc_change_status:q("Click to change your chat status")})),r.each(function(){s.push(m.templates.status_option({value:t(this).val(),text:this.text}))}),i=this.$el.find("#target dd ul").hide(),i.append(s.join("")),e.remove(),this},toggleOptions:function(e){e.preventDefault(),t(e.target).parent().parent().siblings("dd").find("ul").toggle("fast")},renderStatusChangeForm:function(e){e.preventDefault();var t=this.model.get("status")||"offline",n=m.templates.change_status_message({status_message:t,label_custom_status:q("Custom status"),label_save:q("Save")});this.$el.find(".xmpp-status").replaceWith(n),this.$el.find(".custom-xmpp-status").focus().focus()},setStatusMessage:function(e){e.preventDefault(),this.model.setStatusMessage(t(e.target).find("input").val())},setStatus:function(e){e.preventDefault();var n=t(e.target),r=n.attr("data-value");r==="logout"?(this.$el.find(".dropdown dd ul").hide(),m.logOut()):(this.model.setStatus(r),this.$el.find(".dropdown dd ul").hide())},getPrettyStatus:function(e){return e==="chat"?q("online"):e==="dnd"?q("busy"):e==="xa"?q("away for long"):e==="away"?q("away"):e==="offline"?q("offline"):q(e)||q("online")},updateStatusUI:function(e){var t=e.get("status"),n=e.get("status_message")||q("I am %1$s",this.getPrettyStatus(t));this.$el.find("#fancy-xmpp-status-select").html(m.templates.chat_status({chat_status:t,status_message:n,desc_custom_status:q("Click here to write a custom status message"),desc_change_status:q("Click to change your chat status")}))}}),this.Session=Backbone.Model,this.Feature=Backbone.Model,this.Features=Backbone.Collection.extend({model:m.Feature,initialize:function(){this.addClientIdentities().addClientFeatures(),this.browserStorage=new Backbone.BrowserStorage[m.storage](h("converse.features"+m.bare_jid)),this.on("add",this.onFeatureAdded,this),this.browserStorage.records.length===0?(m.connection.disco.info(m.domain,null,this.onInfo.bind(this)),m.connection.disco.items(m.domain,null,this.onItems.bind(this))):this.fetch({add:!0})},onFeatureAdded:function(e){var t=e.get("preferences")||{};m.emit("serviceDiscovered",e),e.get("var")==a.NS.MAM&&t["default"]!==m.message_archiving&&m.connection.sendIQ(n({type:"get"}).c("prefs",{xmlns:a.NS.MAM}),f.bind(this.onMAMPreferences,this,e),f.bind(this.onMAMError,this,e))},onMAMPreferences:function(e,r){var i=t(r).find('prefs[xmlns="'+a.NS.MAM+'"]'),s=i.attr("default"),o;s!==m.message_archiving?(o=n({type:"set"}).c("prefs",{xmlns:a.NS.MAM,"default":m.message_archiving}),i.children().each(function(e,t){o.cnode(t).up()}),m.connection.sendIQ(o,f.bind(function(e,t){e.save({preferences:{"default":m.message_archiving}})},this,e),f.bind(this.onMAMError,this,e))):e.save({preferences:{"default":m.message_archiving}})},onMAMError:function(e){t(e).find("feature-not-implemented").length?m.log("Message Archive Management (XEP-0313) not supported by this browser"):(m.log("An error occured while trying to set archiving preferences."),m.log(e))},addClientIdentities:function(){return m.connection.disco.addIdentity("client","web","Converse.js"),this},addClientFeatures:function(){return m.connection.disco.addFeature("jabber:x:conference"),m.connection.disco.addFeature(a.NS.BOSH),m.connection.disco.addFeature(a.NS.CHATSTATES),m.connection.disco.addFeature(a.NS.DISCO_INFO),m.connection.disco.addFeature(a.NS.MAM),m.connection.disco.addFeature(a.NS.ROSTERX),m.use_vcards&&m.connection.disco.addFeature(a.NS.VCARD),m.allow_muc&&m.connection.disco.addFeature(a.NS.MUC),m.message_carbons&&m.connection.disco.addFeature(a.NS.CARBONS),this},onItems:function(e){t(e).find("query item").each(function(e,n){m.connection.disco.info(t(n).attr("jid"),null,this.onInfo.bind(this))}.bind(this))},onInfo:function(e){var n=t(e);if(n.find("identity[category=server][type=im]").length===0&&n.find("identity[category=conference][type=text]").length===0)return;n.find("feature").each(function(e,r){var i=t(r).attr("var");this[i]=!0,this.create({"var":i,from:n.attr("from")})}.bind(this))}}),this.RegisterPanel=Backbone.View.extend({tagName:"div",id:"register",className:"controlbox-pane",events:{"submit form#converse-register":"onProviderChosen"},initialize:function(e){this.reset(),this.$parent=e.$parent,this.$tabs=e.$parent.parent().find("#controlbox-tabs"),this.registerHooks()},render:function(){return this.$parent.append(this.$el.html(m.templates.register_panel({label_domain:q("Your XMPP provider's domain name:"),label_register:q("Fetch registration form"),help_providers:q("Tip: A list of public XMPP providers is available"),help_providers_link:q("here"),href_providers:m.providers_link,domain_placeholder:m.domain_placeholder}))),this.$tabs.append(m.templates.register_tab({label_register:q("Register")})),this},registerHooks:function(){var e=m.connection,t=e._connect_cb.bind(e);e._connect_cb=function(e,n,r){this._registering?this.getRegistrationFields(e,n,r)&&(this._registering=!1):t(e,n,r)}.bind(this)},getRegistrationFields:function(e,t,r){m.log("sendQueryStanza was called");var i=m.connection;i.connected=!0;var s=i._proto._reqToData(e);if(!s)return;if(i._proto._connect_cb(s)===a.Status.CONNFAIL)return!1;var o=s.getElementsByTagName("register"),u=s.getElementsByTagName("mechanism");return o.length===0&&u.length===0?(i._proto._no_auth_received(t),!1):o.length===0?(i._changeConnectStatus(a.Status.REGIFAIL,q("Sorry, the given provider does not support in band account registration. Please try with a different provider.")),!0):(i._addSysHandler(this.onRegistrationFields.bind(this),null,"iq",null,null),i.send(n({type:"get"}).c("query",{xmlns:a.NS.REGISTER}).tree()),!0)},onRegistrationFields:function(e){return e.getElementsByTagName("query").length!==1?(m.connection._changeConnectStatus(a.Status.REGIFAIL,"unknown"),!1):(this.setFields(e),this.renderRegistrationForm(e),!1)},reset:function(e){var t={fields:{},urls:[],title:"",instructions:"",registered:!1,_registering:!1,domain:null,form_type:null};f.extend(this,t),e&&f.extend(this,f.pick(e,Object.keys(t)))},onProviderChosen:function(e){e&&e.preventDefault&&e.preventDefault();var n=t(e.target),r=n.find("input[name=domain]"),i=r.val(),s=!1;if(!i){r.addClass("error");return}return n.find("input[type=submit]").hide().after(m.templates.registration_request({cancel:q("Cancel"),info_message:q("Requesting a registration form from the XMPP server")})),n.find("button.cancel").on("click",this.cancelRegistration.bind(this)),this.reset({domain:a.getDomainFromJid(i),_registering:!0}),m.connection.connect(this.domain,"",this.onRegistering.bind(this)),!1},giveFeedback:function(e,n){this.$(".reg-feedback").attr("class","reg-feedback").text(e),n&&t(".reg-feedback").addClass(n)},onRegistering:function(e,n){var r;console.log("onRegistering"),f.contains([a.Status.DISCONNECTED,a.Status.CONNFAIL,a.Status.REGIFAIL,a.Status.NOTACCEPTABLE,a.Status.CONFLICT],e)?(m.log("Problem during registration: Strophe.Status is: "+e),this.cancelRegistration(),n?this.giveFeedback(n,"error"):this.giveFeedback(q('Something went wrong while establishing a connection with "%1$s". Are you sure it exists?',this.domain),"error")):e==a.Status.REGISTERED&&(m.log("Registered successfully."),m.connection.reset(),r=this,this.$("form").hide(function(){t(this).replaceWith('<span class="spinner centered"/>'),r.fields.password&&r.fields.username?(m.connection.connect(r.fields.username.toLowerCase()+"@"+r.domain.toLowerCase(),r.fields.password,m.onConnectStatusChanged),m.chatboxviews.get("controlbox").switchTab({target:r.$tabs.find(".current")}).giveFeedback(q("Now logging you in"))):m.chatboxviews.get("controlbox").renderLoginPanel().giveFeedback(q("Registered successfully")),r.reset()}))},renderRegistrationForm:function(n){var r=this.$("form"),i=t(n),s,o;r.empty().append(m.templates.registration_form({domain:this.domain,title:this.title,instructions:this.instructions})),this.form_type=="xform"?(s=i.find("field"),f.each(s,function(e){r.append(c.xForm2webForm.bind(this,t(e),i))}.bind(this))):(f.each(Object.keys(this.fields),function(n){n=="username"?o=e.form_username({domain:" @"+this.domain,name:n,type:"text",label:n,value:"",required:1}):(r.append("<label>"+n+"</label>"),o=t('<input placeholder="'+n+'" name="'+n+'"></input>'),(n==="password"||n==="email")&&o.attr("type",n)),r.append(o)}.bind(this)),f.each(this.urls,function(e){r.append(t('<a target="blank"></a>').attr("href",e).text(e))}.bind(this))),this.fields?(r.append('<input type="submit" class="save-submit" value="'+q("Register")+'"/>'),r.on("submit",this.submitRegistrationForm.bind(this)),r.append('<input type="button" class="cancel-submit" value="'+q("Cancel")+'"/>'),r.find("input[type=button]").on("click",this.cancelRegistration.bind(this))):(r.append('<input type="button" class="submit" value="'+q("Return")+'"/>'),r.find("input[type=button]").on("click",this.cancelRegistration.bind(this)))},reportErrors:function(e){var n=this.$("form"),r,i=t(e).find("error text"),s=n.find(".form-errors");s.length?s.empty():(r='<legend class="form-errors"></legend>',n.find("p.instructions").length?n.find("p.instructions").append(r):n.prepend(r),s=n.find(".form-errors")),i.each(function(e,n){s.append(t("<p>").text(t(n).text()))}),i.length||s.append(t("<p>").text(q("The provider rejected your registration attempt. Please check the values you entered for correctness."))),s.show()},cancelRegistration:function(e){e&&e.preventDefault&&e.preventDefault(),m.connection.reset(),this.render()},submitRegistrationForm:function(e){e&&e.preventDefault&&e.preventDefault();var r=this.$("input.required:emptyVal");if(r.length){r.addClass("error");return}var i=t(e.target).find(":input:not([type=button]):not([type=submit])"),s=n({type:"set"}).c("query",{xmlns:a.NS.REGISTER});this.form_type=="xform"?(s.c("x",{xmlns:a.NS.XFORM,type:"submit"}),i.each(function(){s.cnode(c.webForm2xForm(this)).up()})):i.each(function(){var e=t(this);s.c(e.attr("name"),{},e.val())}),m.connection._addSysHandler(this._onRegisterIQ.bind(this),null,"iq",null,null),m.connection.send(s),this.setFields(s.tree())},setFields:function(e){var n=t(e).find("query"),r;n.length>0&&(r=n.find('x[xmlns="'+a.NS.XFORM+'"]'),r.length>0?this._setFieldsFromXForm(r):this._setFieldsFromLegacy(n))},_setFieldsFromLegacy:function(e){e.children().each(function(e,n){var r=t(n);if(n.tagName.toLowerCase()==="instructions"){this.instructions=a.getText(n);return}if(n.tagName.toLowerCase()==="x"){r.attr("xmlns")==="jabber:x:oob"&&r.find("url").each(function(e,n){this.urls.push(t(n).text())}.bind(this));return}this.fields[n.tagName.toLowerCase()]=a.getText(n)}.bind(this)),this.form_type="legacy"},_setFieldsFromXForm:function(e){this.title=e.find("title").text(),this.instructions=e.find("instructions").text(),e.find("field").each(function(e,n){var r=n.getAttribute("var");r?this.fields[r.toLowerCase()]=t(n).children("value").text():console.log("WARNING: Found field we couldn't parse")}.bind(this)),this.form_type="xform"},_onRegisterIQ:function(e){var t,n,r=null,i,s=e.getElementsByTagName("query");s.length>0&&(s=s[0]);if(e.getAttribute("type")==="error"){m.log("Registration failed."),r=e.getElementsByTagName("error");if(r.length!==1)return m.connection._changeConnectStatus(a.Status.REGIFAIL,"unknown"),!1;r=r[0].firstChild.tagName.toLowerCase(),r==="conflict"?m.connection._changeConnectStatus(a.Status.CONFLICT,r):r==="not-acceptable"?m.connection._changeConnectStatus(a.Status.NOTACCEPTABLE,r):m.connection._changeConnectStatus(a.Status.REGIFAIL,r),this.reportErrors(e)}else m.connection._changeConnectStatus(a.Status.REGISTERED,null);return!1},remove:function(){this.$tabs.empty(),this.$el.parent().empty()}}),this.LoginPanel=Backbone.View.extend({tagName:"div",id:"login-dialog",className:"controlbox-pane",events:{"submit form#converse-login":"authenticate"},initialize:function(e){e.$parent.html(this.$el.html(m.templates.login_panel({LOGIN:E,ANONYMOUS:S,PREBIND:x,auto_login:m.auto_login,authentication:m.authentication,label_username:q("XMPP Username:"),label_password:q("Password:"),label_anon_login:q("Click here to log in anonymously"),label_login:q("Log In"),placeholder_username:q("user@server"),placeholder_password:q("password")}))),this.$tabs=e.$parent.parent().find("#controlbox-tabs")},render:function(){return this.$tabs.append(m.templates.login_tab({label_sign_in:q("Sign in")})),this.$el.find("input#jid").focus(),this.$el.is(":visible")||this.$el.show(),this},authenticate:function(e){e&&e.preventDefault&&e.preventDefault();var n=t(e.target);if(m.authentication===S){this.connect(n,m.jid,null);return}var r=n.find("input[name=jid]"),i=r.val(),s=n.find("input[name=password]"),o=s.val(),u=null,a=!1;i||(a=!0,r.addClass("error")),o||(a=!0,s.addClass("error"));if(a)return;return this.connect(n,i,o),!1},connect:function(e,t,n){var r;e&&e.find("input[type=submit]").hide().after('<span class="spinner login-submit"/>'),t&&(r=a.getResourceFromJid(t),r?t=a.getBareJidFromJid(t).toLowerCase()+"/"+a.getResourceFromJid(t):t=t.toLowerCase()+"/converse.js-"+Math.floor(Math.random()*139749825).toString()),m.connection.connect(t,n,m.onConnectStatusChanged)},remove:function(){this.$tabs.empty(),this.$el.parent().empty()}}),this.ControlBoxToggle=Backbone.View.extend({tagName:"a",className:"toggle-controlbox",id:"toggle-controlbox",events:{click:"onClick"},attributes:{href:"#"},initialize:function(){this.render()},render:function(){return t("#conversejs").prepend(this.$el.html(m.templates.controlbox_toggle({label_toggle:q("Toggle chat")}))),this.$el.hide(),this},hide:function(e){this.$el.fadeOut("fast",e)},show:function(e){this.$el.show("fast",e)},showControlBox:function(){var e=m.chatboxes.get("controlbox");e||(e=m.addControlBox()),m.connection.connected?e.save({closed:!1}):e.trigger("show")},onClick:function(e){e.preventDefault();if(t("div#controlbox").is(":visible")){var n=m.chatboxes.get("controlbox");m.connection.connected?n.save({closed:!0}):n.trigger("hide")}else this.showControlBox()}}),this.addControlBox=function(){return this.chatboxes.add({id:"controlbox",box_id:"controlbox",closed:!this.show_controlbox_by_default})},this.setUpXMLLogging=function(){this.debug&&(this.connection.xmlInput=function(e){console.log(e.outerHTML)},this.connection.xmlOutput=function(e){console.log(e.outerHTML)})},this.startNewBOSHSession=function(){t.ajax({url:this.prebind_url,type:"GET",success:function(e){this.connection.attach(e.jid,e.sid,e.rid,this.onConnectStatusChanged)}.bind(this),error:function(e){delete this.connection,this.emit("noResumeableSession")}.bind(this)})},this.attemptPreboundSession=function(e){if(!this.keepalive){if(this.jid&&this.sid&&this.rid)return this.connection.attach(this.jid,this.sid,this.rid,this.onConnectStatusChanged);throw new Error("initConnection: If you use prebind and not keepalive, then you MUST supply JID, RID and SID values")}if(!this.jid)throw new Error("initConnection: when using 'keepalive' with 'prebind, you must supply the JID of the current user.");try{return this.connection.restore(this.jid,this.onConnectStatusChanged)}catch(t){m.log("Could not restore session for jid: "+this.jid+" Error message: "+t.message)}this.prebind_url?this.startNewBOSHSession():(delete this.connection,this.emit("noResumeableSession"))},this.attemptNonPreboundSession=function(){if(this.keepalive)try{return this.connection.restore(undefined,this.onConnectStatusChanged)}catch(e){m.log("Could not restore sessions. Error message: "+e.message)}if(this.auto_login){if(!this.jid)throw new Error("initConnection: If you use auto_login, you also need to provide a jid value");if(this.authentication===S)this.connection.connect(this.jid.toLowerCase(),null,this.onConnectStatusChanged);else if(this.authentication===E){if(!this.password)throw new Error("initConnection: If you use auto_login and authentication='login' then you also need to provide a password.");this.jid=a.getBareJidFromJid(this.jid).toLowerCase()+"/"+a.getResourceFromJid(this.jid),this.connection.connect(this.jid,this.password,this.onConnectStatusChanged)}}},this.initConnection=function(){if(this.connection&&this.connection.connected)this.setUpXMLLogging(),this.onConnected();else{if(!this.bosh_service_url&&!this.websocket_url)throw new Error("initConnection: you must supply a value for either the bosh_service_url or websocket_url or both.");if(("WebSocket"in window||"MozWebSocket"in window)&&this.websocket_url)this.connection=new a.Connection(this.websocket_url);else{if(!this.bosh_service_url)throw new Error("initConnection: this browser does not support websockets and bosh_service_url wasn't specified.");this.connection=new a.Connection(this.bosh_service_url,{keepalive:this.keepalive})}this.setUpXMLLogging(),this.authentication===x?this.attemptPreboundSession():this.attemptNonPreboundSession()}},this._tearDown=function(){return this.initial_presence_sent=!1,this.roster&&this.roster.off().reset(),this.rosterview&&(this.rosterview.unregisterHandlers(),this.rosterview.model.off().reset(),this.rosterview.undelegateEvents().remove()),this.chatboxes.remove(),this.features&&this.features.reset(),this.minimized_chats&&(this.minimized_chats.undelegateEvents().model.reset(),this.minimized_chats.removeAll(),this.minimized_chats.tearDown().remove(),delete this.minimized_chats),this},this._initialize=function(){return this.chatboxes=new this.ChatBoxes,this.chatboxviews=new this.ChatBoxViews({model:this.chatboxes}),this.controlboxtoggle=new this.ControlBoxToggle,this.otr=new this.OTR,this.initSession(),this.initConnection(),this.connection&&this.addControlBox(),this},this._overrideAttribute=function(e,t){var n=t.overrides[e];typeof n=="function"?(typeof t._super=="undefined"&&(t._super={converse:m}),t._super[e]=m[e].bind(m),m[e]=n.bind(t)):m[e]=n},this._extendObject=function(e,t){e.prototype._super||(e.prototype._super={converse:m}),f.each(t,function(t,n){n==="events"?e.prototype[n]=f.extend(t,e.prototype[n]):(typeof t=="function"&&(e.prototype._super[n]=e.prototype[n]),e.prototype[n]=t)})},this._initializePlugins=function(){f.each(this.plugins,function(e){e.converse=m,f.each(Object.keys(e.overrides),function(t){var n=e.overrides[t];typeof n=="object"?this._extendObject(m[t],n):this._overrideAttribute(t,e)}.bind(this)),typeof e.initialize=="function"?e.initialize.bind(e)(this):e.bind(this)(this)}.bind(this))},d.connection&&(this.connection=d.connection),this._initializePlugins(),this._initialize(),this.registerGlobalEventHandlers(),m.emit("initialized")};var y=function(e){if(!e)return;var t=d.chatboxviews.get(e.get("jid"));return{close:t.close.bind(t),endOTR:e.endOTR.bind(e),focus:t.focus.bind(t),get:e.get.bind(e),initiateOTR:e.initiateOTR.bind(e),is_chatroom:e.is_chatroom,maximize:e.maximize.bind(e),minimize:e.minimize.bind(e),open:t.show.bind(t),set:e.set.bind(e)}},b={initialize:function(e,t){d.initialize(e,t)},disconnect:function(){d.connection.disconnect()},account:{logout:function(){d.logOut()}},user:{logout:function(){d.logOut()},status:{get:function(){return d.xmppstatus.get("status")},set:function(e,t){var n={status:e};if(!f.contains(f.keys(g),e))throw new Error("Invalid availability value. See https://xmpp.org/rfcs/rfc3921.html#rfc.section.2.2.2.1");typeof t=="string"&&(n.status_message=t),d.xmppstatus.save(n)},message:{get:function(){return d.xmppstatus.get("status_message")},set:function(e){d.xmppstatus.save({status_message:e})}}}},settings:{get:function(e){if(f.contains(Object.keys(d.default_settings),e))return d[e]},set:function(e,t){var n={};typeof e=="object"?f.extend(d,f.pick(e,Object.keys(d.default_settings))):typeof e=="string"&&(n[e]=t,f.extend(d,f.pick(n,Object.keys(d.default_settings))))}},contacts:{get:function(e){var t=function(e){var t=d.roster.get(a.getBareJidFromJid(e));return t?t.attributes:null};if(typeof e=="undefined")e=d.roster.pluck("jid");else if(typeof e=="string")return t(e);return f.map(e,t)},add:function(e,t){if(typeof e!="string"||e.indexOf("@")<0)throw new TypeError("contacts.add: invalid jid");d.roster.addAndSubscribe(e,f.isEmpty(t)?e:t)}},chats:{open:function(e){var t;return typeof e=="undefined"?(d.log("chats.open: You need to provide at least one JID","error"),null):typeof e=="string"?(t=y(d.chatboxes.getChatBox(e,!0)),t.open(),t):f.map(e,function(e){return t=y(d.chatboxes.getChatBox(e,!0)),t.open(),t})},get:function(e){return typeof e=="undefined"?(d.log("chats.get: You need to provide at least one JID","error"),null):typeof e=="string"?y(d.chatboxes.getChatBox(e,!0)):f.map(e,f.partial(f.compose(y,d.chatboxes.getChatBox.bind(d.chatboxes)),f,!0))}},archive:{query:function(e,r,i){var s,o=[];typeof e=="function"&&(r=e,i=r);if(!d.features.findWhere({"var":a.NS.MAM}))throw new Error("This server does not support XEP-0313, Message Archive Management");var u=d.connection.getUniqueId(),c={type:"set"};if(typeof e!="undefined"&&e.groupchat){if(!e["with"])throw new Error('You need to specify a "with" value containing the chat room JID, when querying groupchat messages.');c.to=e["with"]}var h=n(c).c("query",{xmlns:a.NS.MAM,queryid:u});typeof e!="undefined"&&(h.c("x",{xmlns:a.NS.XFORM,type:"submit"}).c("field",{"var":"FORM_TYPE",type:"hidden"}).c("value").t(a.NS.MAM).up().up(),e["with"]&&!e.groupchat&&h.c("field",{"var":"with"}).c("value").t(e["with"]).up().up(),f.each(["start","end"],function(t){if(e[t]){s=l(e[t]);if(!s.isValid())throw new TypeError("archive.query: invalid date provided for: "+t);h.c("field",{"var":t}).c("value").t(s.format()).up().up()}}),h.up(),e instanceof a.RSM?h.cnode(e.toXML()):f.intersection(v,f.keys(e)).length&&h.cnode((new a.RSM(e)).toXML())),d.connection.addHandler(function(n){var i=t(n),s,l,c;if(typeof r=="function")return s=i.find('fin[xmlns="'+a.NS.MAM+'"]'),s.length?(l=new a.RSM({xml:s.find("set")[0]}),f.extend(l,f.pick(e,["max"])),f.extend(l,f.pick(e,m)),r(o,l),!1):(u==i.find("result").attr("queryid")&&o.push(n),!0);return!1},a.NS.MAM),d.connection.sendIQ(h,null,i)}},rooms:{open:function(e,t){t||(t=a.getNodeFromJid(d.bare_jid));if(typeof t!="string")throw new TypeError("rooms.open: invalid nick, must be string");var n=function(e){var n=d.chatboxes.get(e);return d.log("jid"),n||(n=d.chatboxviews.showChat({id:e,jid:e,name:a.unescapeNode(a.getNodeFromJid(e)),nick:t,chatroom:!0,box_id:h(e)})),y(d.chatboxes.getChatBox(n,!0))};if(typeof e=="undefined")throw new TypeError("rooms.open: You need to provide at least one JID");return typeof e=="string"?n(e):f.map(e,n)},get:function(e){if(typeof e=="undefined")throw new TypeError("rooms.get: You need to provide at least one JID");return typeof e=="string"?y(d.chatboxes.getChatBox(e,!0)):f.map(e,f.partial(y,f.bind(d.chatboxes.getChatBox,d.chatboxes,f,!0)))}},tokens:{get:function(e){if(!d.expose_rid_and_sid||typeof d.connection=="undefined")return null;if(e.toLowerCase()==="rid")return d.connection.rid||d.connection._proto.rid;if(e.toLowerCase()==="sid")return d.connection.sid||d.connection._proto.sid}},listen:{once:function(e,t){d.once(e,t)},on:function(e,t){d.on(e,t)},not:function(e,t){d.off(e,t)}},send:function(e){d.connection.send(e)},ping:function(e){d.ping(e)},plugins:{add:function(e,t){d.plugins[e]=t},remove:function(e){delete d.plugins[e]},override:function(e,t){d._overrideAttribute(e,t)},extend:function(e,t){d._extendObject(e,t)}},env:{$build:s,$iq:n,$msg:r,$pres:i,Strophe:a,_:f,b64_sha1:h,jQuery:t,moment:l}};return b});var config;typeof require=="undefined"&&(require={config:function(e){config=e}}),require.config({baseUrl:".",paths:{backbone:"components/backbone/backbone","backbone.browserStorage":"components/backbone.browserStorage/backbone.browserStorage","backbone.overview":"components/backbone.overview/backbone.overview","converse-dependencies":"src/deps-full","converse-templates":"src/templates",eventemitter:"components/otr/build/dep/eventemitter",jquery:"components/jquery/dist/jquery","jquery-private":"src/jquery-private","jquery.browser":"components/jquery.browser/dist/jquery.browser","jquery.easing":"components/jquery-easing-original/index",moment:"components/momentjs/moment",strophe:"components/strophejs/src/wrapper","strophe-base64":"components/strophejs/src/base64","strophe-bosh":"components/strophejs/src/bosh","strophe-core":"components/strophejs/src/core","strophe-md5":"components/strophejs/src/md5","strophe-polyfill":"components/strophejs/src/polyfills","strophe-sha1":"components/strophejs/src/sha1","strophe-websocket":"components/strophejs/src/websocket","strophe.disco":"components/strophejs-plugins/disco/strophe.disco","strophe.ping":"src/strophe.ping","strophe.rsm":"components/strophejs-plugins/rsm/strophe.rsm","strophe.vcard":"src/strophe.vcard",text:"components/requirejs-text/text",tpl:"components/requirejs-tpl-jcbrand/tpl",typeahead:"components/typeahead.js/index",underscore:"components/underscore/underscore",utils:"src/utils",bigint:"src/bigint",crypto:"src/crypto","crypto.aes":"components/otr/vendor/cryptojs/aes","crypto.cipher-core":"components/otr/vendor/cryptojs/cipher-core","crypto.core":"components/otr/vendor/cryptojs/core","crypto.enc-base64":"components/otr/vendor/cryptojs/enc-base64","crypto.evpkdf":"components/crypto-js-evanvosberg/src/evpkdf","crypto.hmac":"components/otr/vendor/cryptojs/hmac","crypto.md5":"components/crypto-js-evanvosberg/src/md5","crypto.mode-ctr":"components/otr/vendor/cryptojs/mode-ctr","crypto.pad-nopadding":"components/otr/vendor/cryptojs/pad-nopadding","crypto.sha1":"components/otr/vendor/cryptojs/sha1","crypto.sha256":"components/otr/vendor/cryptojs/sha256",salsa20:"components/otr/build/dep/salsa20",otr:"src/otr",locales:"src/locales",jed:"components/jed/jed",af:"locale/af/LC_MESSAGES/converse.json",de:"locale/de/LC_MESSAGES/converse.json",en:"locale/en/LC_MESSAGES/converse.json",es:"locale/es/LC_MESSAGES/converse.json",fr:"locale/fr/LC_MESSAGES/converse.json",he:"locale/he/LC_MESSAGES/converse.json",hu:"locale/hu/LC_MESSAGES/converse.json",id:"locale/id/LC_MESSAGES/converse.json",it:"locale/it/LC_MESSAGES/converse.json",ja:"locale/ja/LC_MESSAGES/converse.json",nb:"locale/nb/LC_MESSAGES/converse.json",nl:"locale/nl/LC_MESSAGES/converse.json",pl:"locale/pl/LC_MESSAGES/converse.json",pt_BR:"locale/pt_BR/LC_MESSAGES/converse.json",ru:"locale/ru/LC_MESSAGES/converse.json",uk:"locale/uk/LC_MESSAGES/converse.json",zh:"locale/zh/LC_MESSAGES/converse.json",moment_with_locales:"src/moment_locales",moment_af:"components/momentjs/locale/af",moment_de:"components/momentjs/locale/de",moment_es:"components/momentjs/locale/es",moment_fr:"components/momentjs/locale/fr",moment_he:"components/momentjs/locale/he",moment_hu:"components/momentjs/locale/hu",moment_id:"components/momentjs/locale/id",moment_it:"components/momentjs/locale/it",moment_ja:"components/momentjs/locale/ja",moment_nb:"components/momentjs/locale/nb",moment_nl:"components/momentjs/locale/nl",moment_pl:"components/momentjs/locale/pl","moment_pt-br":"components/momentjs/locale/pt-br",moment_ru:"components/momentjs/locale/ru",moment_uk:"components/momentjs/locale/uk",moment_zh:"components/momentjs/locale/zh-cn",action:"src/templates/action",add_contact_dropdown:"src/templates/add_contact_dropdown",add_contact_form:"src/templates/add_contact_form",change_status_message:"src/templates/change_status_message",chat_status:"src/templates/chat_status",chatarea:"src/templates/chatarea",chatbox:"src/templates/chatbox",chatroom:"src/templates/chatroom",chatroom_password_form:"src/templates/chatroom_password_form",chatroom_sidebar:"src/templates/chatroom_sidebar",chatrooms_tab:"src/templates/chatrooms_tab",chats_panel:"src/templates/chats_panel",choose_status:"src/templates/choose_status",contacts_panel:"src/templates/contacts_panel",contacts_tab:"src/templates/contacts_tab",controlbox:"src/templates/controlbox",controlbox_toggle:"src/templates/controlbox_toggle",field:"src/templates/field",form_captcha:"src/templates/form_captcha",form_checkbox:"src/templates/form_checkbox",form_input:"src/templates/form_input",form_select:"src/templates/form_select",form_textarea:"src/templates/form_textarea",form_username:"src/templates/form_username",group_header:"src/templates/group_header",info:"src/templates/info",login_panel:"src/templates/login_panel",login_tab:"src/templates/login_tab",message:"src/templates/message",new_day:"src/templates/new_day",occupant:"src/templates/occupant",pending_contact:"src/templates/pending_contact",pending_contacts:"src/templates/pending_contacts",register_panel:"src/templates/register_panel",register_tab:"src/templates/register_tab",registration_form:"src/templates/registration_form",registration_request:"src/templates/registration_request",requesting_contact:"src/templates/requesting_contact",requesting_contacts:"src/templates/requesting_contacts",room_description:"src/templates/room_description",room_item:"src/templates/room_item",room_panel:"src/templates/room_panel",roster:"src/templates/roster",roster_item:"src/templates/roster_item",search_contact:"src/templates/search_contact",select_option:"src/templates/select_option",status_option:"src/templates/status_option",toggle_chats:"src/templates/toggle_chats",toolbar:"src/templates/toolbar",trimmed_chat:"src/templates/trimmed_chat"},map:{"*":{jquery:"jquery-private"},"jquery-private":{jquery:"jquery"}},tpl:{templateSettings:{evaluate:/\{\[([\s\S]+?)\]\}/g,interpolate:/\{\{([\s\S]+?)\}\}/g}},shim:{"crypto.aes":{deps:["crypto.cipher-core"]},"crypto.cipher-core":{deps:["crypto.enc-base64","crypto.evpkdf"]},"crypto.enc-base64":{deps:["crypto.core"]},"crypto.evpkdf":{deps:["crypto.md5"]},"crypto.hmac":{deps:["crypto.core"]},"crypto.md5":{deps:["crypto.core"]},"crypto.mode-ctr":{deps:["crypto.cipher-core"]},"crypto.pad-nopadding":{deps:["crypto.cipher-core"]},"crypto.sha1":{deps:["crypto.core"]},"crypto.sha256":{deps:["crypto.core"]},bigint:{deps:["crypto"]},"strophe.ping":{deps:["strophe"]},"strophe.register":{deps:["strophe"]},"strophe.vcard":{deps:["strophe"]}}}),typeof require=="function"&&require(["converse"],function(e){window.converse=e}),define("main",function(){});
\ No newline at end of file
diff --git a/xmpp/converse/builds/locales.js b/xmpp/converse/builds/locales.js
new file mode 100644 (file)
index 0000000..40017cb
--- /dev/null
@@ -0,0 +1,11108 @@
+var locales = locales || {};
+locales["af"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "lang": "af"
+         },
+         "unencrypted": [
+            null,
+            "nie-privaat"
+         ],
+         "unverified": [
+            null,
+            "ongeverifieer"
+         ],
+         "verified": [
+            null,
+            "privaat"
+         ],
+         "finished": [
+            null,
+            "afgesluit"
+         ],
+         "This contact is busy": [
+            null,
+            "Hierdie persoon is besig"
+         ],
+         "This contact is online": [
+            null,
+            "Hierdie persoon is aanlyn"
+         ],
+         "This contact is offline": [
+            null,
+            "Hierdie persoon is aflyn"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Hierdie persoon is onbeskikbaar"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Hierdie persoon is vir lank afwesig"
+         ],
+         "This contact is away": [
+            null,
+            "Hierdie persoon is afwesig"
+         ],
+         "My contacts": [
+            null,
+            "My kontakte"
+         ],
+         "Pending contacts": [
+            null,
+            "Hangende kontakte"
+         ],
+         "Contact requests": [
+            null,
+            "Kontak versoeke"
+         ],
+         "Ungrouped": [
+            null,
+            "Ongegroepeer"
+         ],
+         "Contacts": [
+            null,
+            "Kontakte"
+         ],
+         "Groups": [
+            null,
+            "Groepe"
+         ],
+         "Reconnecting": [
+            null,
+            "Herkonnekteer"
+         ],
+         "Error": [
+            null,
+            "Fout"
+         ],
+         "Connecting": [
+            null,
+            "Verbind tans"
+         ],
+         "Authenticating": [
+            null,
+            "Besig om te bekragtig"
+         ],
+         "Authentication Failed": [
+            null,
+            "Bekragtiging het gefaal"
+         ],
+         "Online Contacts": [
+            null,
+            "Kontakte aangemeld"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "Herstel versleutelde sessie"
+         ],
+         "Generating private key.": [
+            null,
+            "Genereer private sleutel."
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            "U webblaaier mag tydelik onreageerbaar word."
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            "Verifieeringsversoek van  %1$s\n\nU gespreksmaat probeer om u identiteit te verifieer, deur die volgende vraag te vra \n\n%2$s"
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "Kon nie hierdie gebruiker se identitied verifieer nie."
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            "Sleutels word met gespreksmaat uitgeruil."
+         ],
+         "Personal message": [
+            null,
+            "Persoonlike boodskap"
+         ],
+         "Are you sure you want to clear the messages from this room?": [
+            null,
+            "Is u seker dat u die boodskappe in hierdie kamer wil verwyder?"
+         ],
+         "me": [
+            null,
+            "ek"
+         ],
+         "is typing": [
+            null,
+            "tik tans"
+         ],
+         "has stopped typing": [
+            null,
+            "het opgehou tik"
+         ],
+         "Show this menu": [
+            null,
+            "Vertoon hierdie keuselys"
+         ],
+         "Write in the third person": [
+            null,
+            "Skryf in die derde persoon"
+         ],
+         "Remove messages": [
+            null,
+            "Verwyder boodskappe"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            "Is u seker u wil die boodskappe van hierdie klets uitvee?"
+         ],
+         "Your message could not be sent": [
+            null,
+            "U boodskap kon nie gestuur word nie"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "Ons het 'n onversleutelde boodskap ontvang"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "Ons het 'n onleesbare versleutelde boodskap ontvang"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "Hierdie gebruiker versoek 'n versleutelde sessie"
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "Hier is die vingerafdrukke, bevestig hulle met %1$s, buite hierdie kletskanaal \n\nU vingerafdruk, %2$s: %3$s\n\nVingerafdruk vir %1$s: %4$s\n\nIndien u die vingerafdrukke bevestig het, klik OK, andersinds klik Kanselleer"
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            "Daar sal van u verwag word om 'n sekuriteitsvraag te stel, en dan ook die antwoord tot daardie vraag te verskaf.\n\nU gespreksmaat sal dan daardie vraag gestel word, en indien hulle presies dieselfde antwoord (lw. hoofletters tel) verskaf, sal hul identiteit geverifieer wees."
+         ],
+         "What is your security question?": [
+            null,
+            "Wat is u sekuriteitsvraag?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "Wat is die antwoord tot die sekuriteitsvraag?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "Ongeldige verifikasiemetode verskaf"
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "U boodskappe is nie meer versleutel nie"
+         ],
+         "Your messages are now encrypted but your contact's identity has not been verified.": [
+            null,
+            "U boodskappe is now versleutel maar u gespreksmaat se identiteit is nog onseker."
+         ],
+         "Your contact's identify has been verified.": [
+            null,
+            "U gespreksmaat se identiteit is geverifieer."
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            "U gespreksmaat het versleuteling gestaak, u behoort nou dieselfde te doen."
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "U boodskappe is nie versleutel nie. Klik hier om OTR versleuteling te aktiveer."
+         ],
+         "Your messages are encrypted, but your contact has not been verified.": [
+            null,
+            "U boodskappe is versleutel, maar u gespreksmaat se identiteit is not onseker."
+         ],
+         "Your messages are encrypted and your contact verified.": [
+            null,
+            "U boodskappe is versleutel en u gespreksmaat se identiteit geverifieer."
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            "U gespreksmaat het die private sessie gestaak. U behoort dieselfde te doen"
+         ],
+         "Clear all messages": [
+            null,
+            "Vee alle boodskappe uit"
+         ],
+         "End encrypted conversation": [
+            null,
+            "Beëindig versleutelde gesprek"
+         ],
+         "Hide the list of participants": [
+            null,
+            "Verskuil die lys van deelnemers"
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "Verfris versleutelde gesprek"
+         ],
+         "Start a call": [
+            null,
+            "Begin 'n oproep"
+         ],
+         "Start encrypted conversation": [
+            null,
+            "Begin versleutelde gesprek"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "Verifieer met vingerafdrukke"
+         ],
+         "Verify with SMP": [
+            null,
+            "Verifieer met SMP"
+         ],
+         "What's this?": [
+            null,
+            "Wat is hierdie?"
+         ],
+         "Online": [
+            null,
+            "Aangemeld"
+         ],
+         "Busy": [
+            null,
+            "Besig"
+         ],
+         "Away": [
+            null,
+            "Afwesig"
+         ],
+         "Offline": [
+            null,
+            "Afgemeld"
+         ],
+         "Contact name": [
+            null,
+            "Kontaknaam"
+         ],
+         "Search": [
+            null,
+            "Soek"
+         ],
+         "Contact username": [
+            null,
+            "Konak gebruikersnaam"
+         ],
+         "Add": [
+            null,
+            "Voeg by"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Kliek om nuwe kletskontakte by te voeg"
+         ],
+         "Add a contact": [
+            null,
+            "Voeg 'n kontak by"
+         ],
+         "No users found": [
+            null,
+            "Geen gebruikers gevind"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Kliek om as kletskontak by te voeg"
+         ],
+         "Room name": [
+            null,
+            "Kamer naam"
+         ],
+         "Nickname": [
+            null,
+            "Bynaam"
+         ],
+         "Server": [
+            null,
+            "Bediener"
+         ],
+         "Join": [
+            null,
+            "Sluit aan"
+         ],
+         "Show rooms": [
+            null,
+            "Wys kamers"
+         ],
+         "Rooms": [
+            null,
+            "Kamers"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Geen kamers op %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Kamers op %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Kliek om hierdie kletskamer te open"
+         ],
+         "Show more information on this room": [
+            null,
+            "Wys meer inligting aangaande hierdie kletskamer"
+         ],
+         "Description:": [
+            null,
+            "Beskrywing:"
+         ],
+         "Occupants:": [
+            null,
+            "Deelnemers:"
+         ],
+         "Features:": [
+            null,
+            "Eienskappe:"
+         ],
+         "Requires authentication": [
+            null,
+            "Benodig magtiging"
+         ],
+         "Hidden": [
+            null,
+            "Verskuil"
+         ],
+         "Requires an invitation": [
+            null,
+            "Benodig 'n uitnodiging"
+         ],
+         "Moderated": [
+            null,
+            "Gemodereer"
+         ],
+         "Non-anonymous": [
+            null,
+            "Nie-anoniem"
+         ],
+         "Open room": [
+            null,
+            "Oop kletskamer"
+         ],
+         "Permanent room": [
+            null,
+            "Permanente kamer"
+         ],
+         "Public": [
+            null,
+            "Publiek"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Deels anoniem"
+         ],
+         "Temporary room": [
+            null,
+            "Tydelike kamer"
+         ],
+         "Unmoderated": [
+            null,
+            "Ongemodereer"
+         ],
+         "This user is a moderator": [
+            null,
+            "Hierdie gebruiker is 'n moderator"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Hierdie gebruiker kan boodskappe na die kamer stuur"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Hierdie gebruiker kan NIE boodskappe na die kamer stuur nie"
+         ],
+         "Invite...": [
+            null,
+            "Nooi uit..."
+         ],
+         "Occupants": [
+            null,
+            "Deelnemers"
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            "U is op die punt om %1$s na die kletskamer \"%2$s\" uit te nooi."
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            "U mag na keuse 'n boodskap insluit, om bv. die rede vir die uitnodiging te staaf."
+         ],
+         "Message": [
+            null,
+            "Boodskap"
+         ],
+         "Error: could not execute the command": [
+            null,
+            "Fout: kon nie die opdrag uitvoer nie"
+         ],
+         "Ban user from room": [
+            null,
+            "Verban gebruiker uit hierdie kletskamer"
+         ],
+         "Kick user from room": [
+            null,
+            "Skop gebruiker uit hierdie kletskamer"
+         ],
+         "Write in 3rd person": [
+            null,
+            "Skryf in die derde persoon"
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            "Verwyder gebruiker se vermoë om boodskappe te plaas"
+         ],
+         "Change your nickname": [
+            null,
+            "Verander u bynaam"
+         ],
+         "Set room topic": [
+            null,
+            "Stel onderwerp vir kletskamer"
+         ],
+         "Allow muted user to post messages": [
+            null,
+            "Laat stilgemaakte gebruiker toe om weer boodskappe te plaas"
+         ],
+         "Save": [
+            null,
+            "Stoor"
+         ],
+         "Cancel": [
+            null,
+            "Kanseleer"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "A fout het voorgekom terwyl probeer is om die vorm te stoor."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Hiedie kletskamer benodig 'n wagwoord"
+         ],
+         "Password: ": [
+            null,
+            "Wagwoord:"
+         ],
+         "Submit": [
+            null,
+            "Dien in"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Hierdie vertrek is nie anoniem nie"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Hierdie vertrek wys nou onbeskikbare lede"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Hierdie vertrek wys nie onbeskikbare lede nie"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Nie-privaatheidverwante kamer instellings het verander"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "Kamer log is nou aangeskakel"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "Kamer log is nou afgeskakel"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Hiedie kamer is nou nie anoniem nie"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Hierdie kamer is nou gedeeltelik anoniem"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Hierdie kamer is nou ten volle anoniem"
+         ],
+         "A new room has been created": [
+            null,
+            "'n Nuwe kamer is geskep"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Jy is uit die kamer verban"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Jy is uit die kamer geskop"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Jy is vanuit die kamer verwyder a.g.v 'n verandering van affiliasie"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Jy is vanuit die kamer verwyder omdat die kamer nou slegs tot lede beperk word en jy nie 'n lid is nie."
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Jy is van hierdie kamer verwyder aangesien die MUC (Multi-user chat) diens nou afgeskakel word."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> is verban"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> is uitgeskop"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> is verwyder a.g.v 'n verandering van affiliasie"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> is nie 'n lid nie, en dus verwyder"
+         ],
+         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [
+            null,
+            "U bynaam is outomaties verander na: <strong>%1$s</strong>"
+         ],
+         "Your nickname has been changed to: <strong>%1$s</strong>": [
+            null,
+            "U bynaam is verander na: <strong>%1$s</strong>"
+         ],
+         "The reason given is: \"": [
+            null,
+            "Die gegewe rede is: \""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Jy is nie op die ledelys van hierdie kamer nie"
+         ],
+         "No nickname was specified": [
+            null,
+            "Geen bynaam verskaf nie"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Jy word nie toegelaat om nog kamers te skep nie"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Jou bynaam voldoen nie aan die kamer se beleid nie"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Jou bynaam is reeds geneem"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Hierdie kamer bestaan tans (nog) nie"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Hierdie kamer het sy maksimum aantal deelnemers bereik"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Onderwerp deur %1$s bygewerk na: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            "%1$s het u uitgenooi om die kletskamer %2$s te besoek"
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            "%1$s het u uitgenooi om die kletskamer %2$s te besoek, en het die volgende rede verskaf: \"%3$s\""
+         ],
+         "Click to restore this chat": [
+            null,
+            "Kliek om hierdie klets te herstel"
+         ],
+         "Minimized": [
+            null,
+            "Geminimaliseer"
+         ],
+         "Click to remove this contact": [
+            null,
+            "Kliek om hierdie kontak te verwyder"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Kliek om met hierdie kontak te klets"
+         ],
+         "Are you sure you want to remove this contact?": [
+            null,
+            "Is u seker u wil hierdie gespreksmaat verwyder?"
+         ],
+         "Are you sure you want to decline this contact request?": [
+            null,
+            "Is u seker dat u hierdie persoon se versoek wil afkeur?"
+         ],
+         "Type to filter": [
+            null,
+            "Tik om te filtreer"
+         ],
+         "I am %1$s": [
+            null,
+            "Ek is %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Kliek hier om jou eie statusboodskap te skryf"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Kliek om jou klets-status te verander"
+         ],
+         "Custom status": [
+            null,
+            "Doelgemaakte status"
+         ],
+         "online": [
+            null,
+            "aangemeld"
+         ],
+         "busy": [
+            null,
+            "besig"
+         ],
+         "away for long": [
+            null,
+            "vir lank afwesig"
+         ],
+         "away": [
+            null,
+            "afwesig"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            "U XMPP-verskaffer se domein naam:"
+         ],
+         "Fetch registration form": [
+            null,
+            "Haal die registrasie form"
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            "Wenk: A lys van publieke XMPP-verskaffers is beskikbaar"
+         ],
+         "here": [
+            null,
+            "hier"
+         ],
+         "Register": [
+            null,
+            "Registreer"
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            "Jammer, die gekose verskaffer ondersteun nie in-band registrasie nie.Probeer weer met 'n ander verskaffer."
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            "Vra tans die XMPP-bediener vir 'n registrasie vorm"
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            "Iets het fout geloop tydens koppeling met \"%1$s\". Is u seker dat dit bestaan?"
+         ],
+         "Now logging you in": [
+            null,
+            "U word nou aangemeld"
+         ],
+         "Registered successfully": [
+            null,
+            "Suksesvol geregistreer"
+         ],
+         "Return": [
+            null,
+            "Terug"
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            "Die verskaffer het u registrasieversoek verwerp."
+         ],
+         "XMPP Username:": [
+            null,
+            "XMPP Gebruikersnaam:"
+         ],
+         "Password:": [
+            null,
+            "Wagwoord"
+         ],
+         "Log In": [
+            null,
+            "Meld aan"
+         ],
+         "Sign in": [
+            null,
+            "Teken in"
+         ],
+         "Toggle chat": [
+            null,
+            "Klets"
+         ]
+      }
+   }
+};
+locales["de"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "lang": "de"
+         },
+         "unencrypted": [
+            null,
+            ""
+         ],
+         "unverified": [
+            null,
+            ""
+         ],
+         "verified": [
+            null,
+            ""
+         ],
+         "finished": [
+            null,
+            ""
+         ],
+         "This contact is busy": [
+            null,
+            "Dieser Kontakt ist beschäfticht"
+         ],
+         "This contact is online": [
+            null,
+            "Dieser Kontakt ist online"
+         ],
+         "This contact is offline": [
+            null,
+            "Dieser Kontakt ist offline"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Dieser Kontakt ist nicht verfügbar"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Dieser Kontakt is für längere Zeit abwesend"
+         ],
+         "This contact is away": [
+            null,
+            "Dieser Kontakt ist abwesend"
+         ],
+         "My contacts": [
+            null,
+            "Meine Kontakte"
+         ],
+         "Pending contacts": [
+            null,
+            "Unbestätigte Kontakte"
+         ],
+         "Contact requests": [
+            null,
+            "Kontaktanfragen"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Kontakte"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Fehler"
+         ],
+         "Connecting": [
+            null,
+            "Verbindungsaufbau …"
+         ],
+         "Authenticating": [
+            null,
+            "Authentifizierung"
+         ],
+         "Authentication Failed": [
+            null,
+            "Authentifizierung gescheitert"
+         ],
+         "Online Contacts": [
+            null,
+            "Online-Kontakte"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            ""
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            ""
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "Persönliche Nachricht"
+         ],
+         "me": [
+            null,
+            "Ich"
+         ],
+         "Show this menu": [
+            null,
+            "Dieses Menü anzeigen"
+         ],
+         "Write in the third person": [
+            null,
+            "In der dritten Person schreiben"
+         ],
+         "Remove messages": [
+            null,
+            "Nachrichten entfernen"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            ""
+         ],
+         "We received an unencrypted message": [
+            null,
+            ""
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            ""
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            ""
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            ""
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            ""
+         ],
+         "What is your security question?": [
+            null,
+            ""
+         ],
+         "What is the answer to the security question?": [
+            null,
+            ""
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            ""
+         ],
+         "Your messages are now encrypted but your contact's identity has not been verified.": [
+            null,
+            ""
+         ],
+         "Your contact's identify has been verified.": [
+            null,
+            ""
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted, but your contact has not been verified.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted and your contact verified.": [
+            null,
+            ""
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            ""
+         ],
+         "End encrypted conversation": [
+            null,
+            ""
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            ""
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            ""
+         ],
+         "Verify with fingerprints": [
+            null,
+            ""
+         ],
+         "Verify with SMP": [
+            null,
+            ""
+         ],
+         "What's this?": [
+            null,
+            ""
+         ],
+         "Online": [
+            null,
+            "Online"
+         ],
+         "Busy": [
+            null,
+            "Beschäfticht"
+         ],
+         "Away": [
+            null,
+            "Abwesend"
+         ],
+         "Offline": [
+            null,
+            "Abgemeldet"
+         ],
+         "Contact name": [
+            null,
+            "Name des Kontakts"
+         ],
+         "Search": [
+            null,
+            "Suche"
+         ],
+         "Contact username": [
+            null,
+            "Benutzername"
+         ],
+         "Add": [
+            null,
+            "Hinzufügen"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Klicken Sie, um einen neuen Kontakt hinzuzufügen"
+         ],
+         "Add a contact": [
+            null,
+            "Kontakte hinzufügen"
+         ],
+         "No users found": [
+            null,
+            "Keine Benutzer gefunden"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Hier klicken um als Kontakt hinzuzufügen"
+         ],
+         "Room name": [
+            null,
+            "Raumname"
+         ],
+         "Nickname": [
+            null,
+            "Spitzname"
+         ],
+         "Server": [
+            null,
+            "Server"
+         ],
+         "Join": [
+            null,
+            "Beitreten"
+         ],
+         "Show rooms": [
+            null,
+            "Räume anzeigen"
+         ],
+         "Rooms": [
+            null,
+            "Räume"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Keine Räume auf %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Räume auf %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Hier klicken um diesen Raum zu öffnen"
+         ],
+         "Show more information on this room": [
+            null,
+            "Mehr Information über diesen Raum zeigen"
+         ],
+         "Description:": [
+            null,
+            "Beschreibung"
+         ],
+         "Occupants:": [
+            null,
+            "Teilnehmer"
+         ],
+         "Features:": [
+            null,
+            "Funktionen:"
+         ],
+         "Requires authentication": [
+            null,
+            "Authentifizierung erforderlich"
+         ],
+         "Hidden": [
+            null,
+            "Versteckt"
+         ],
+         "Requires an invitation": [
+            null,
+            "Einladung erforderlich"
+         ],
+         "Moderated": [
+            null,
+            "Moderiert"
+         ],
+         "Non-anonymous": [
+            null,
+            "Nicht anonym"
+         ],
+         "Open room": [
+            null,
+            "Offener Raum"
+         ],
+         "Permanent room": [
+            null,
+            "Dauerhafter Raum"
+         ],
+         "Public": [
+            null,
+            "Öffentlich"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Teils anonym"
+         ],
+         "Temporary room": [
+            null,
+            "Vorübergehender Raum"
+         ],
+         "Unmoderated": [
+            null,
+            "Unmoderiert"
+         ],
+         "This user is a moderator": [
+            null,
+            "Dieser Benutzer ist ein Moderator"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Dieser Benutzer kann Nachrichten in diesem Raum verschicken"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Dieser Benutzer kann keine Nachrichten in diesem Raum verschicken"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Nachricht"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Speichern"
+         ],
+         "Cancel": [
+            null,
+            "Abbrechen"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Beim Speichern der Formular is ein Fehler aufgetreten."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Passwort wird für die Anmeldung benötigt."
+         ],
+         "Password: ": [
+            null,
+            "Passwort: "
+         ],
+         "Submit": [
+            null,
+            "Einreichen"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Dieser Raum ist nicht anonym"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Dieser Raum zeigt jetzt unferfügbare Mitglieder"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Dieser Raum zeigt nicht unverfügbare Mitglieder"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Die Konfiguration, die nicht auf die Privatsphäre bezogen ist, hat sich geändert"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "Zukünftige Nachrichten dieses Raums werden protokolliert."
+         ],
+         "Room logging is now disabled": [
+            null,
+            "Zukünftige Nachrichten dieses Raums werden nicht protokolliert."
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Dieser Raum ist jetzt nicht anonym"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Dieser Raum ist jetzt teils anonym"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Dieser Raum ist jetzt anonym"
+         ],
+         "A new room has been created": [
+            null,
+            "Einen neuen Raum ist erstellen"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Sie sind aus diesem Raum verbannt worden"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Sie wurden aus diesem Raum hinausgeworfen"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Sie wurden wegen einer Zugehörigkeitsänderung entfernt"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Sie wurden aus diesem Raum entfernt da Sie kein Mitglied sind."
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Sie werden aus diesem Raum entfernt da der MUC (Muli-user chat) Dienst gerade abgeschalten wird."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> ist verbannt"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> ist hinausgeworfen"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> wurde wegen einer Zugehörigkeitsänderung entfernt"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> ist kein Mitglied und wurde daher entfernt"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Sie sind nicht auf der Mitgliederliste dieses Raums"
+         ],
+         "No nickname was specified": [
+            null,
+            "Kein Spitzname festgelegt"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Es ist Ihnen nicht erlaubt, neue Räume anzulegen"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Ungültiger Spitzname"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Ihre Spitzname existiert bereits."
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Dieser Raum existiert (noch) nicht"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Dieser Raum hat die maximale Mitgliederanzahl erreicht"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "%1$s hat das Thema zu \"%2$s\" abgeändert"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "Hier klicken um diesen Kontakt zu entfernen"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Hier klicken um mit diesem Kontakt zu chatten"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "Ich bin %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Klicken Sie hier, um ihrer Status-Nachricht to ändern"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Klicken Sie, um ihrer Status to ändern"
+         ],
+         "Custom status": [
+            null,
+            "Status-Nachricht"
+         ],
+         "online": [
+            null,
+            "online"
+         ],
+         "busy": [
+            null,
+            "beschäfticht"
+         ],
+         "away for long": [
+            null,
+            "länger abwesend"
+         ],
+         "away": [
+            null,
+            "abwesend"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Passwort:"
+         ],
+         "Log In": [
+            null,
+            "Anmelden"
+         ],
+         "Sign in": [
+            null,
+            "Anmelden"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ]
+      }
+   }
+};
+locales["en"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "lang": "en"
+         },
+         "unencrypted": [
+            null,
+            "unencrypted"
+         ],
+         "unverified": [
+            null,
+            "unverified"
+         ],
+         "verified": [
+            null,
+            "verified"
+         ],
+         "finished": [
+            null,
+            "finished"
+         ],
+         "This contact is busy": [
+            null,
+            ""
+         ],
+         "This contact is online": [
+            null,
+            ""
+         ],
+         "This contact is offline": [
+            null,
+            ""
+         ],
+         "This contact is unavailable": [
+            null,
+            ""
+         ],
+         "This contact is away for an extended period": [
+            null,
+            ""
+         ],
+         "This contact is away": [
+            null,
+            ""
+         ],
+         "My contacts": [
+            null,
+            "My contacts"
+         ],
+         "Pending contacts": [
+            null,
+            "Pending contacts"
+         ],
+         "Contact requests": [
+            null,
+            "Contact requests"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Contacts"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Error"
+         ],
+         "Connecting": [
+            null,
+            "Connecting"
+         ],
+         "Authenticating": [
+            null,
+            "Authenticating"
+         ],
+         "Authentication Failed": [
+            null,
+            "Authentication Failed"
+         ],
+         "Online Contacts": [
+            null,
+            "Online Contacts"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "Re-establishing encrypted session"
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            ""
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "Personal message"
+         ],
+         "me": [
+            null,
+            ""
+         ],
+         "is typing": [
+            null,
+            ""
+         ],
+         "has stopped typing": [
+            null,
+            ""
+         ],
+         "Show this menu": [
+            null,
+            "Show this menu"
+         ],
+         "Write in the third person": [
+            null,
+            "Write in the third person"
+         ],
+         "Remove messages": [
+            null,
+            "Remove messages"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            ""
+         ],
+         "We received an unencrypted message": [
+            null,
+            ""
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            ""
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            ""
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            ""
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            ""
+         ],
+         "What is your security question?": [
+            null,
+            ""
+         ],
+         "What is the answer to the security question?": [
+            null,
+            ""
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            ""
+         ],
+         "Your messages are now encrypted but your contact's identity has not been verified.": [
+            null,
+            ""
+         ],
+         "Your contact's identify has been verified.": [
+            null,
+            ""
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted, but your contact has not been verified.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted and your contact verified.": [
+            null,
+            ""
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            ""
+         ],
+         "End encrypted conversation": [
+            null,
+            ""
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            ""
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            ""
+         ],
+         "Verify with fingerprints": [
+            null,
+            ""
+         ],
+         "Verify with SMP": [
+            null,
+            ""
+         ],
+         "What's this?": [
+            null,
+            ""
+         ],
+         "Online": [
+            null,
+            "Online"
+         ],
+         "Busy": [
+            null,
+            "Busy"
+         ],
+         "Away": [
+            null,
+            "Away"
+         ],
+         "Offline": [
+            null,
+            "Offline"
+         ],
+         "Contact name": [
+            null,
+            "Contact name"
+         ],
+         "Search": [
+            null,
+            "Search"
+         ],
+         "Contact username": [
+            null,
+            "Contact username"
+         ],
+         "Add": [
+            null,
+            "Add"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Click to add new chat contacts"
+         ],
+         "Add a contact": [
+            null,
+            "Add a contact"
+         ],
+         "No users found": [
+            null,
+            "No users found"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Click to add as a chat contact"
+         ],
+         "Room name": [
+            null,
+            "Room name"
+         ],
+         "Nickname": [
+            null,
+            "Nickname"
+         ],
+         "Server": [
+            null,
+            "Server"
+         ],
+         "Join": [
+            null,
+            "Join"
+         ],
+         "Show rooms": [
+            null,
+            "Show rooms"
+         ],
+         "Rooms": [
+            null,
+            "Rooms"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "No rooms on %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Rooms on %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Click to open this room"
+         ],
+         "Show more information on this room": [
+            null,
+            "Show more information on this room"
+         ],
+         "Description:": [
+            null,
+            "Description:"
+         ],
+         "Occupants:": [
+            null,
+            "Occupants:"
+         ],
+         "Features:": [
+            null,
+            "Features:"
+         ],
+         "Requires authentication": [
+            null,
+            "Requires authentication"
+         ],
+         "Hidden": [
+            null,
+            "Hidden"
+         ],
+         "Requires an invitation": [
+            null,
+            "Requires an invitation"
+         ],
+         "Moderated": [
+            null,
+            "Moderated"
+         ],
+         "Non-anonymous": [
+            null,
+            "Non-anonymous"
+         ],
+         "Open room": [
+            null,
+            "Open room"
+         ],
+         "Permanent room": [
+            null,
+            "Permanent room"
+         ],
+         "Public": [
+            null,
+            "Public"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Semi-anonymous"
+         ],
+         "Temporary room": [
+            null,
+            "Temporary room"
+         ],
+         "Unmoderated": [
+            null,
+            "Unmoderated"
+         ],
+         "This user is a moderator": [
+            null,
+            "This user is a moderator"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "This user can send messages in this room"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "This user can NOT send messages in this room"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Message"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Save"
+         ],
+         "Cancel": [
+            null,
+            "Cancel"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "An error occurred while trying to save the form."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "This chatroom requires a password"
+         ],
+         "Password: ": [
+            null,
+            "Password: "
+         ],
+         "Submit": [
+            null,
+            "Submit"
+         ],
+         "This room is not anonymous": [
+            null,
+            "This room is not anonymous"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "This room now shows unavailable members"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "This room does not show unavailable members"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Non-privacy-related room configuration has changed"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "Room logging is now enabled"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "Room logging is now disabled"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "This room is now non-anonymous"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "This room is now semi-anonymous"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "This room is now fully-anonymous"
+         ],
+         "A new room has been created": [
+            null,
+            "A new room has been created"
+         ],
+         "You have been banned from this room": [
+            null,
+            "You have been banned from this room"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "You have been kicked from this room"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "You have been removed from this room because of an affiliation change"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "You have been removed from this room because the room has changed to members-only and you're not a member"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "You have been removed from this room because the MUC (Multi-user chat) service is being shut down."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> has been banned"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> has been kicked out"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> has been removed because of an affiliation change"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> has been removed for not being a member"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "You are not on the member list of this room"
+         ],
+         "No nickname was specified": [
+            null,
+            "No nickname was specified"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "You are not allowed to create new rooms"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Your nickname doesn't conform to this room's policies"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Your nickname is already taken"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "This room does not (yet) exist"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "This room has reached it's maximum number of occupants"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Topic set by %1$s to: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "Click to remove this contact"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Click to chat with this contact"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "I am %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Click here to write a custom status message"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Click to change your chat status"
+         ],
+         "Custom status": [
+            null,
+            "Custom status"
+         ],
+         "online": [
+            null,
+            "online"
+         ],
+         "busy": [
+            null,
+            "busy"
+         ],
+         "away for long": [
+            null,
+            "away for long"
+         ],
+         "away": [
+            null,
+            "away"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Password:"
+         ],
+         "Log In": [
+            null,
+            "Log In"
+         ],
+         "Sign in": [
+            null,
+            "Sign in"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ]
+      }
+   }
+};
+locales["es"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "lang": "es"
+         },
+         "unencrypted": [
+            null,
+            "texto plano"
+         ],
+         "unverified": [
+            null,
+            "sin verificar"
+         ],
+         "verified": [
+            null,
+            "verificado"
+         ],
+         "finished": [
+            null,
+            "finalizado"
+         ],
+         "This contact is busy": [
+            null,
+            "Este contacto está ocupado"
+         ],
+         "This contact is online": [
+            null,
+            "Este contacto está en línea"
+         ],
+         "This contact is offline": [
+            null,
+            "Este contacto está desconectado"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Este contacto no está disponible"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Este contacto está ausente por un largo periodo de tiempo"
+         ],
+         "This contact is away": [
+            null,
+            "Este contacto está ausente"
+         ],
+         "My contacts": [
+            null,
+            "Mis contactos"
+         ],
+         "Pending contacts": [
+            null,
+            "Contactos pendientes"
+         ],
+         "Contact requests": [
+            null,
+            "Solicitudes de contacto"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Contactos"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Reconnecting": [
+            null,
+            "Reconectando"
+         ],
+         "Error": [
+            null,
+            "Error"
+         ],
+         "Connecting": [
+            null,
+            "Conectando"
+         ],
+         "Authenticating": [
+            null,
+            "Autenticando"
+         ],
+         "Authentication Failed": [
+            null,
+            "La autenticación falló"
+         ],
+         "Online Contacts": [
+            null,
+            "En línea"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "Re-estableciendo sesión cifrada"
+         ],
+         "Generating private key.": [
+            null,
+            "Generando llave privada"
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            "Su navegador podría dejar de responder por un momento"
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "No se pudo verificar la identidad de este usuario"
+         ],
+         "Personal message": [
+            null,
+            "Mensaje personal"
+         ],
+         "Are you sure you want to clear the messages from this room?": [
+            null,
+            "¿Está seguro de querer limpiar los mensajes de esta sala?"
+         ],
+         "me": [
+            null,
+            "yo"
+         ],
+         "is typing": [
+            null,
+            ""
+         ],
+         "has stopped typing": [
+            null,
+            ""
+         ],
+         "Show this menu": [
+            null,
+            "Mostrar este menú"
+         ],
+         "Write in the third person": [
+            null,
+            "Escribir en tercera persona"
+         ],
+         "Remove messages": [
+            null,
+            "Eliminar mensajes"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            "¿Está seguro de querer limpiar los mensajes de esta conversación?"
+         ],
+         "Your message could not be sent": [
+            null,
+            "Su mensaje no se pudo enviar"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "Se recibío un mensaje sin cifrar"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "Se recibío un mensaje cifrado corrupto"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "El usuario ha solicitado una sesión cifrada"
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "Por favor confirme los identificadores de %1$s fuera de este chat.\n\nSu identificador es, %2$s: %3$s\n\nEl identificador de %1$s es: %4$s\n\nDespués de confirmar los identificadores haga click en OK, cancele si no concuerdan."
+         ],
+         "What is your security question?": [
+            null,
+            "Introduzca su pregunta de seguridad"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "Introduzca la respuesta a su pregunta de seguridad"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "Esquema de autenticación inválido"
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "Sus mensajes han dejado de cifrarse"
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "Sus mensajes no están cifrados. Haga click aquí para habilitar el cifrado OTR"
+         ],
+         "End encrypted conversation": [
+            null,
+            "Finalizar sesión cifrada"
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "Actualizar sesión cifrada"
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            "Iniciar sesión cifrada"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "Verificar con identificadores"
+         ],
+         "Verify with SMP": [
+            null,
+            "Verificar con SMP"
+         ],
+         "What's this?": [
+            null,
+            "¿Qué es esto?"
+         ],
+         "Online": [
+            null,
+            "En línea"
+         ],
+         "Busy": [
+            null,
+            "Ocupado"
+         ],
+         "Away": [
+            null,
+            "Ausente"
+         ],
+         "Offline": [
+            null,
+            "Desconectado"
+         ],
+         "Contact name": [
+            null,
+            "Nombre de contacto"
+         ],
+         "Search": [
+            null,
+            "Búsqueda"
+         ],
+         "Contact username": [
+            null,
+            "Nombre de usuario de contacto"
+         ],
+         "Add": [
+            null,
+            "Agregar"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Haga click para agregar nuevos contactos al chat"
+         ],
+         "Add a contact": [
+            null,
+            "Agregar un contacto"
+         ],
+         "No users found": [
+            null,
+            "Sin usuarios encontrados"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Haga click para agregar como contacto de chat"
+         ],
+         "Room name": [
+            null,
+            "Nombre de sala"
+         ],
+         "Nickname": [
+            null,
+            "Apodo"
+         ],
+         "Server": [
+            null,
+            "Servidor"
+         ],
+         "Join": [
+            null,
+            "Unirse"
+         ],
+         "Show rooms": [
+            null,
+            "Mostrar salas"
+         ],
+         "Rooms": [
+            null,
+            "Salas"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Sin salas en %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Salas en %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Haga click para abrir esta sala"
+         ],
+         "Show more information on this room": [
+            null,
+            "Mostrar más información en esta sala"
+         ],
+         "Description:": [
+            null,
+            "Descripción"
+         ],
+         "Occupants:": [
+            null,
+            "Ocupantes:"
+         ],
+         "Features:": [
+            null,
+            "Características:"
+         ],
+         "Requires authentication": [
+            null,
+            "Autenticación requerida"
+         ],
+         "Hidden": [
+            null,
+            "Oculto"
+         ],
+         "Requires an invitation": [
+            null,
+            "Requiere una invitación"
+         ],
+         "Moderated": [
+            null,
+            "Moderado"
+         ],
+         "Non-anonymous": [
+            null,
+            "No anónimo"
+         ],
+         "Open room": [
+            null,
+            "Abrir sala"
+         ],
+         "Permanent room": [
+            null,
+            "Sala permanente"
+         ],
+         "Public": [
+            null,
+            "Pública"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Semi anónimo"
+         ],
+         "Temporary room": [
+            null,
+            "Sala temporal"
+         ],
+         "Unmoderated": [
+            null,
+            "Sin moderar"
+         ],
+         "This user is a moderator": [
+            null,
+            "Este usuario es un moderador"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Este usuario puede enviar mensajes en esta sala"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Este usuario NO puede enviar mensajes en esta"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Mensaje"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Guardar"
+         ],
+         "Cancel": [
+            null,
+            "Cancelar"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Un error ocurrío mientras se guardaba el formulario."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Esta sala de chat requiere una contraseña."
+         ],
+         "Password: ": [
+            null,
+            "Contraseña: "
+         ],
+         "Submit": [
+            null,
+            "Enviar"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Esta sala no es para usuarios anónimos"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Esta sala ahora muestra los miembros no disponibles"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Esta sala no muestra los miembros no disponibles"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Una configuración de la sala no relacionada con la privacidad ha sido cambiada"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "El registro de la sala ahora está habilitado"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "El registro de la sala ahora está deshabilitado"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Esta sala ahora es pública"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Esta sala ahora es semi-anónima"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Esta sala ahora es completamente anónima"
+         ],
+         "A new room has been created": [
+            null,
+            "Una nueva sala ha sido creada"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Usted ha sido bloqueado de esta sala"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Usted ha sido expulsado de esta sala"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Usted ha sido eliminado de esta sala debido a un cambio de afiliación"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Usted ha sido eliminado de esta sala debido a que la sala cambio su configuración a solo-miembros y usted no es un miembro"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Usted ha sido eliminado de esta sala debido a que el servicio MUC (Multi-user chat) está deshabilitado."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> ha sido bloqueado"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> ha sido expulsado"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> ha sido eliminado debido a un cambio de afiliación"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> ha sido eliminado debido a que no es miembro"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Usted no está en la lista de miembros de esta sala"
+         ],
+         "No nickname was specified": [
+            null,
+            "Sin apodo especificado"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Usted no esta autorizado para crear nuevas salas"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Su apodo no se ajusta a la política de esta sala"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Su apodo ya ha sido tomando por otro usuario"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Esta sala (aún) no existe"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Esta sala ha alcanzado su número máximo de ocupantes"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Tema fijado por %1$s a: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Click to restore this chat": [
+            null,
+            "Haga click para eliminar este contacto"
+         ],
+         "Minimized": [
+            null,
+            "Minimizado"
+         ],
+         "Click to remove this contact": [
+            null,
+            "Haga click para eliminar este contacto"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Haga click para conversar con este contacto"
+         ],
+         "Are you sure you want to remove this contact?": [
+            null,
+            "¿Esta seguro de querer eliminar este contacto?"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "Estoy %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Haga click para escribir un mensaje de estatus personalizado"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Haga click para cambiar su estatus de chat"
+         ],
+         "Custom status": [
+            null,
+            "Personalizar estatus"
+         ],
+         "online": [
+            null,
+            "en línea"
+         ],
+         "busy": [
+            null,
+            "ocupado"
+         ],
+         "away for long": [
+            null,
+            "ausente por mucho tiempo"
+         ],
+         "away": [
+            null,
+            "ausente"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Contraseña:"
+         ],
+         "Log In": [
+            null,
+            "Iniciar sesión"
+         ],
+         "Sign in": [
+            null,
+            "Registrar"
+         ],
+         "Toggle chat": [
+            null,
+            "Chat"
+         ]
+      }
+   }
+};
+locales["fr"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "lang": "fr"
+         },
+         "unencrypted": [
+            null,
+            ""
+         ],
+         "unverified": [
+            null,
+            ""
+         ],
+         "verified": [
+            null,
+            ""
+         ],
+         "finished": [
+            null,
+            ""
+         ],
+         "This contact is busy": [
+            null,
+            ""
+         ],
+         "This contact is online": [
+            null,
+            ""
+         ],
+         "This contact is offline": [
+            null,
+            ""
+         ],
+         "This contact is away for an extended period": [
+            null,
+            ""
+         ],
+         "This contact is away": [
+            null,
+            ""
+         ],
+         "My contacts": [
+            null,
+            "Mes contacts"
+         ],
+         "Pending contacts": [
+            null,
+            "Contacts en attente"
+         ],
+         "Contact requests": [
+            null,
+            "Demandes de contacts"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Contacts"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Erreur"
+         ],
+         "Connecting": [
+            null,
+            "Connection"
+         ],
+         "Authenticating": [
+            null,
+            "Authentification"
+         ],
+         "Authentication Failed": [
+            null,
+            "L'authentification a échoué"
+         ],
+         "Online Contacts": [
+            null,
+            "Contacts en ligne"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            ""
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            ""
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "Message personnel"
+         ],
+         "me": [
+            null,
+            ""
+         ],
+         "is typing": [
+            null,
+            ""
+         ],
+         "has stopped typing": [
+            null,
+            ""
+         ],
+         "Show this menu": [
+            null,
+            "Afficher ce menu"
+         ],
+         "Write in the third person": [
+            null,
+            "Écrire à la troisième personne"
+         ],
+         "Remove messages": [
+            null,
+            "Effacer les messages"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            ""
+         ],
+         "We received an unencrypted message": [
+            null,
+            ""
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            ""
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            ""
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            ""
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            ""
+         ],
+         "What is your security question?": [
+            null,
+            ""
+         ],
+         "What is the answer to the security question?": [
+            null,
+            ""
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            ""
+         ],
+         "Your messages are now encrypted but your contact's identity has not been verified.": [
+            null,
+            ""
+         ],
+         "Your contact's identify has been verified.": [
+            null,
+            ""
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted, but your contact has not been verified.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted and your contact verified.": [
+            null,
+            ""
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            ""
+         ],
+         "End encrypted conversation": [
+            null,
+            ""
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            ""
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            ""
+         ],
+         "Verify with fingerprints": [
+            null,
+            ""
+         ],
+         "Verify with SMP": [
+            null,
+            ""
+         ],
+         "What's this?": [
+            null,
+            ""
+         ],
+         "Online": [
+            null,
+            "En ligne"
+         ],
+         "Busy": [
+            null,
+            "Occupé"
+         ],
+         "Away": [
+            null,
+            "Absent"
+         ],
+         "Offline": [
+            null,
+            "Déconnecté"
+         ],
+         "Contact name": [
+            null,
+            "Nom du contact"
+         ],
+         "Search": [
+            null,
+            "Rechercher"
+         ],
+         "Contact username": [
+            null,
+            "Nom du contact"
+         ],
+         "Add": [
+            null,
+            "Ajouter"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Cliquez pour ajouter de nouveaux contacts"
+         ],
+         "Add a contact": [
+            null,
+            "Ajouter un contact"
+         ],
+         "No users found": [
+            null,
+            "Aucun utilisateur trouvé"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Cliquer pour ajouter aux contacts de chat"
+         ],
+         "Room name": [
+            null,
+            "Numéro de salon"
+         ],
+         "Nickname": [
+            null,
+            "Alias"
+         ],
+         "Server": [
+            null,
+            "Serveur"
+         ],
+         "Join": [
+            null,
+            "Rejoindre"
+         ],
+         "Show rooms": [
+            null,
+            "Afficher les salons"
+         ],
+         "Rooms": [
+            null,
+            "Salons"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Aucun salon dans %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Salons dans %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Cliquer pour ouvrir ce salon"
+         ],
+         "Show more information on this room": [
+            null,
+            "Afficher davantage d'informations sur ce salon"
+         ],
+         "Description:": [
+            null,
+            "Description :"
+         ],
+         "Occupants:": [
+            null,
+            "Participants :"
+         ],
+         "Features:": [
+            null,
+            "Caractéristiques :"
+         ],
+         "Requires authentication": [
+            null,
+            "Nécessite une authentification"
+         ],
+         "Hidden": [
+            null,
+            "Masqué"
+         ],
+         "Requires an invitation": [
+            null,
+            "Nécessite une invitation"
+         ],
+         "Moderated": [
+            null,
+            "Modéré"
+         ],
+         "Non-anonymous": [
+            null,
+            "Non-anonyme"
+         ],
+         "Open room": [
+            null,
+            "Ouvrir un salon"
+         ],
+         "Permanent room": [
+            null,
+            "Salon permanent"
+         ],
+         "Public": [
+            null,
+            "Public"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Semi-anonyme"
+         ],
+         "Temporary room": [
+            null,
+            "Salon temporaire"
+         ],
+         "Unmoderated": [
+            null,
+            "Non modéré"
+         ],
+         "This user is a moderator": [
+            null,
+            "Cet utilisateur est modérateur"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Cet utilisateur peut envoyer des messages dans ce salon"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Cet utilisateur ne peut PAS envoyer de messages dans ce salon"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Message"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Enregistrer"
+         ],
+         "Cancel": [
+            null,
+            "Annuler"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Une erreur est survenue lors de l'enregistrement du formulaire."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Ce salon nécessite un mot de passe."
+         ],
+         "Password: ": [
+            null,
+            "Mot de passe : "
+         ],
+         "Submit": [
+            null,
+            "Soumettre"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Ce salon n'est pas anonyme"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Ce salon affiche maintenant des membres indisponibles"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Ce salon n'affiche pas les membres indisponibles"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Les paramètres du salon non liés à la confidentialité ont été modifiés"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "Le logging du salon est activé"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "Le logging du salon est désactivé"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Ce salon est maintenant non-anonyme"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Ce salon est maintenant semi-anonyme"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Ce salon est maintenant entièrement anonyme"
+         ],
+         "A new room has been created": [
+            null,
+            "Un nouveau salon a été créé"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Vous avez été banni de ce salon"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Vous avez été expulsé de ce salon"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Vous avez été retiré de ce salon du fait d'un changement d'affiliation"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux membres et vous n'êtes pas membre"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Vous avez été retiré de ce salon parce que le service de chat multi-utilisateur a été désactivé."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> a été banni"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> a été expulsé"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> a été supprimé à cause d'un changement d'affiliation"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> a été supprimé car il n'est pas membre"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Vous n'êtes pas dans la liste des membres de ce salon"
+         ],
+         "No nickname was specified": [
+            null,
+            "Aucun alias n'a été indiqué"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Vous n'êtes pas autorisé à créer des salons"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Votre alias n'est pas conforme à la politique de ce salon"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Votre alias est déjà utilisé"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Ce salon n'existe pas encore"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Ce salon a atteint la limite maximale d'occupants"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Le sujet '%1$s' a été défini par %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "Cliquez pour supprimer ce contact"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Cliquez pour discuter avec ce contact"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "Je suis %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Cliquez ici pour indiquer votre statut personnel"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Cliquez pour changer votre statut"
+         ],
+         "Custom status": [
+            null,
+            "Statut personnel"
+         ],
+         "online": [
+            null,
+            "en ligne"
+         ],
+         "busy": [
+            null,
+            "occupé"
+         ],
+         "away for long": [
+            null,
+            "absent pour une longue durée"
+         ],
+         "away": [
+            null,
+            "absent"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Mot de passe :"
+         ],
+         "Log In": [
+            null,
+            "Se connecter"
+         ],
+         "Sign in": [
+            null,
+            "S'inscrire"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ]
+      }
+   }
+};
+locales["he"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "lang": "he"
+         },
+         "unencrypted": [
+            null,
+            "לא מוצפנת"
+         ],
+         "unverified": [
+            null,
+            "לא מאומתת"
+         ],
+         "verified": [
+            null,
+            "מאומתת"
+         ],
+         "finished": [
+            null,
+            "מוגמרת"
+         ],
+         "This contact is busy": [
+            null,
+            "איש קשר זה עסוק"
+         ],
+         "This contact is online": [
+            null,
+            "איש קשר זה מקוון"
+         ],
+         "This contact is offline": [
+            null,
+            "איש קשר זה לא מקוון"
+         ],
+         "This contact is unavailable": [
+            null,
+            "איש קשר זה לא זמין"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "איש קשר זה נעדר למשך זמן ממושך"
+         ],
+         "This contact is away": [
+            null,
+            "איש קשר זה הינו נעדר"
+         ],
+         "Click to hide these contacts": [
+            null,
+            "לחץ כדי להסתיר את אנשי קשר אלה"
+         ],
+         "My contacts": [
+            null,
+            "אנשי הקשר שלי"
+         ],
+         "Pending contacts": [
+            null,
+            "אנשי קשר ממתינים"
+         ],
+         "Contact requests": [
+            null,
+            "בקשות איש קשר"
+         ],
+         "Ungrouped": [
+            null,
+            "ללא קבוצה"
+         ],
+         "Contacts": [
+            null,
+            "אנשי קשר"
+         ],
+         "Groups": [
+            null,
+            "קבוצות"
+         ],
+         "Reconnecting": [
+            null,
+            "כעת מתחבר"
+         ],
+         "Error": [
+            null,
+            "שגיאה"
+         ],
+         "Connecting": [
+            null,
+            "כעת מתחבר"
+         ],
+         "Authenticating": [
+            null,
+            "כעת מאמת"
+         ],
+         "Authentication Failed": [
+            null,
+            "אימות נכשל"
+         ],
+         "Online Contacts": [
+            null,
+            "אנשי קשר מקוונים"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "בסס מחדש ישיבה מוצפנת"
+         ],
+         "Generating private key.": [
+            null,
+            "כעת מפיק מפתח פרטי."
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            "הדפדפן שלך עשוי שלא להגיב."
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "לא היתה אפשרות לאמת את זהות משתמש זה."
+         ],
+         "Personal message": [
+            null,
+            "הודעה אישית"
+         ],
+         "Are you sure you want to clear the messages from this room?": [
+            null,
+            "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך חדר זה?"
+         ],
+         "me": [
+            null,
+            "אני"
+         ],
+         "is typing": [
+            null,
+            "מקליד/ה כעת"
+         ],
+         "has stopped typing": [
+            null,
+            "חדל/ה מלהקליד"
+         ],
+         "Show this menu": [
+            null,
+            "הצג את תפריט זה"
+         ],
+         "Write in the third person": [
+            null,
+            "כתוב בגוף השלישי"
+         ],
+         "Remove messages": [
+            null,
+            "הסר הודעות"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך תיבת שיחה זה?"
+         ],
+         "Your message could not be sent": [
+            null,
+            "ההודעה שלך לא היתה יכולה להישלח"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "אנחנו קיבלנו הודעה לא מוצפנת"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "אנחנו קיבלנו הודעה מוצפנת לא קריאה"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "משתמש זה ביקש ישיבה מוצפנת."
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "הרי טביעות האצבע, אנא אמת אותן עם %1$s, מחוץ לשיחה זו.\n\nטביעת אצבע עבורך, %2$s: %3$s\n\nטביעת אצבע עבור %1$s: %4$s\n\nהיה ואימתת כי טביעות האצבע תואמות, לחץ אישור (OK), אחרת לחץ ביטול (Cancel)."
+         ],
+         "What is your security question?": [
+            null,
+            "מהי שאלת האבטחה שלך?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "מהי התשובה לשאלת האבטחה?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "סופקה סכימת אימות שגויה"
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "ההודעות שלך אינן מוצפנות עוד"
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "ההודעות שלך אינן מוצפנות. לחץ כאן כדי לאפשר OTR."
+         ],
+         "End encrypted conversation": [
+            null,
+            "סיים ישיבה מוצפנת"
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "רענן ישיבה מוצפנת"
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            "התחל ישיבה מוצפנת"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "אמת בעזרת טביעות אצבע"
+         ],
+         "Verify with SMP": [
+            null,
+            "אמת בעזרת SMP"
+         ],
+         "What's this?": [
+            null,
+            "מה זה?"
+         ],
+         "Online": [
+            null,
+            "מקוון"
+         ],
+         "Busy": [
+            null,
+            "עסוק"
+         ],
+         "Away": [
+            null,
+            "נעדר"
+         ],
+         "Offline": [
+            null,
+            "בלתי מקוון"
+         ],
+         "Contact name": [
+            null,
+            "שם איש קשר"
+         ],
+         "Search": [
+            null,
+            "חיפוש"
+         ],
+         "Contact username": [
+            null,
+            "שם משתמש איש קשר"
+         ],
+         "Add": [
+            null,
+            "הוסף"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "לחץ כדי להוסיף אנשי קשר שיחה חדשים"
+         ],
+         "Add a contact": [
+            null,
+            "הוסף איש קשר"
+         ],
+         "No users found": [
+            null,
+            "לא נמצאו משתמשים"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "לחץ כדי להוסיף בתור איש קשר שיחה"
+         ],
+         "Room name": [
+            null,
+            "שם חדר"
+         ],
+         "Nickname": [
+            null,
+            "שם כינוי"
+         ],
+         "Server": [
+            null,
+            "שרת"
+         ],
+         "Join": [
+            null,
+            "הצטרף"
+         ],
+         "Show rooms": [
+            null,
+            "הצג חדרים"
+         ],
+         "Rooms": [
+            null,
+            "חדרים"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "אין חדרים על %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "חדרים על %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "לחץ כדי לפתוח את חדר זה"
+         ],
+         "Show more information on this room": [
+            null,
+            "הצג עוד מידע אודות חדר זה"
+         ],
+         "Description:": [
+            null,
+            "תיאור:"
+         ],
+         "Occupants:": [
+            null,
+            "נוכחים:"
+         ],
+         "Features:": [
+            null,
+            "תכונות:"
+         ],
+         "Requires authentication": [
+            null,
+            "מצריך אישור"
+         ],
+         "Hidden": [
+            null,
+            "נסתר"
+         ],
+         "Requires an invitation": [
+            null,
+            "מצריך הזמנה"
+         ],
+         "Moderated": [
+            null,
+            "מבוקר"
+         ],
+         "Non-anonymous": [
+            null,
+            "לא אנונימי"
+         ],
+         "Open room": [
+            null,
+            "חדר פתוח"
+         ],
+         "Permanent room": [
+            null,
+            "חדר צמיתה"
+         ],
+         "Public": [
+            null,
+            "פומבי"
+         ],
+         "Semi-anonymous": [
+            null,
+            "אנונימי למחצה"
+         ],
+         "Temporary room": [
+            null,
+            "חדר זמני"
+         ],
+         "Unmoderated": [
+            null,
+            "לא מבוקר"
+         ],
+         "This user is a moderator": [
+            null,
+            "משתמש זה הינו אחראי"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "משתמש זה מסוגל לשלוח הודעות בתוך חדר זה"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "משתמש זה ﬥﬡ מסוגל לשלוח הודעות בתוך חדר זה"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "הודעה"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "שמור"
+         ],
+         "Cancel": [
+            null,
+            "ביטול"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "אירעה שגיאה במהלך ניסיון שמירת הטופס."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "חדר שיחה זה מצריך סיסמה"
+         ],
+         "Password: ": [
+            null,
+            "סיסמה: "
+         ],
+         "Submit": [
+            null,
+            "שלח"
+         ],
+         "This room is not anonymous": [
+            null,
+            "חדר זה אינו אנונימי"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "חדר זה כעת מציג חברים לא זמינים"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "חדר זה לא מציג חברים לא זמינים"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "תצורת חדר אשר לא-קשורה-בפרטיות שונתה"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "יומן חדר הינו מופעל כעת"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "יומן חדר הינו מנוטרל כעת"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "חדר זה אינו אנונימי כעת"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "חדר זה הינו אנונימי למחצה כעת"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "חדר זה הינו אנונימי לחלוטין כעת"
+         ],
+         "A new room has been created": [
+            null,
+            "חדר חדש נוצר"
+         ],
+         "You have been banned from this room": [
+            null,
+            "נאסרת מתוך חדר זה"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "נבעטת מתוך חדר זה"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "הוסרת מתוך חדר זה משום שינוי שיוך"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "הוסרת מתוך חדר זה משום שהחדר שונה לחברים-בלבד ואינך במעמד של חבר"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "הוסרת מתוך חדר זה משום ששירות שמ״מ (שיחה מרובת משתמשים) זה כעת מצוי בהליכי סגירה."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> נאסר(ה)"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> נבעט(ה)"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> הוסרה(ה) משום שינוי שיוך"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> הוסר(ה) משום אי הימצאות במסגרת מעמד של חבר"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "אינך ברשימת החברים של חדר זה"
+         ],
+         "No nickname was specified": [
+            null,
+            "לא צוין שום שם כינוי"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "אין לך רשות ליצור חדרים חדשים"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "שם הכינוי שלך לא תואם את המדינויות של חדר זה"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "שם הכינוי שלך הינו תפוס"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "חדר זה (עדיין) לא קיים"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "חדר זה הגיע לסף הנוכחים המרבי שלו"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "נושא חדר זה נקבע על ידי %1$s אל: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Click to restore this chat": [
+            null,
+            "לחץ כדי לשחזר את שיחה זו"
+         ],
+         "Minimized": [
+            null,
+            "ממוזער"
+         ],
+         "Click to remove this contact": [
+            null,
+            "לחץ כדי להסיר את איש קשר זה"
+         ],
+         "Click to accept this contact request": [
+            null,
+            "לחץ כדי לקבל את בקשת איש קשר זה"
+         ],
+         "Click to decline this contact request": [
+            null,
+            "לחץ כדי לסרב את בקשת איש קשר זה"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "לחץ כדי לשוחח עם איש קשר זה"
+         ],
+         "Are you sure you want to remove this contact?": [
+            null,
+            "האם אתה בטוח כי ברצונך להסיר את איש קשר זה?"
+         ],
+         "Are you sure you want to decline this contact request?": [
+            null,
+            "האם אתה בטוח כי ברצונך לסרב את בקשת איש קשר זה?"
+         ],
+         "Type to filter": [
+            null,
+            "הקלד כדי לסנן"
+         ],
+         "I am %1$s": [
+            null,
+            "מצבי כעת הינו %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "לחץ כאן כדי לכתוב הודעת מצב מותאמת"
+         ],
+         "Click to change your chat status": [
+            null,
+            "לחץ כדי לשנות את הודעת השיחה שלך"
+         ],
+         "Custom status": [
+            null,
+            "מצב מותאם"
+         ],
+         "online": [
+            null,
+            "מקוון"
+         ],
+         "busy": [
+            null,
+            "עסוק"
+         ],
+         "away for long": [
+            null,
+            "נעדר לזמן מה"
+         ],
+         "away": [
+            null,
+            "נעדר"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "סיסמה:"
+         ],
+         "Log In": [
+            null,
+            "כניסה"
+         ],
+         "Sign in": [
+            null,
+            "התחברות"
+         ],
+         "Toggle chat": [
+            null,
+            "הפעל שיח"
+         ]
+      }
+   }
+};
+locales["hu"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "unencrypted": [
+            null,
+            ""
+         ],
+         "unverified": [
+            null,
+            ""
+         ],
+         "verified": [
+            null,
+            ""
+         ],
+         "finished": [
+            null,
+            ""
+         ],
+         "This contact is busy": [
+            null,
+            "Elfoglalt"
+         ],
+         "This contact is online": [
+            null,
+            "Online"
+         ],
+         "This contact is offline": [
+            null,
+            "Nincs bejelentkezve"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Elérhetetlen"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Hosszabb ideje távol"
+         ],
+         "This contact is away": [
+            null,
+            "Távol"
+         ],
+         "My contacts": [
+            null,
+            "Kapcsolatok:"
+         ],
+         "Pending contacts": [
+            null,
+            "Függőben levő kapcsolatok"
+         ],
+         "Contact requests": [
+            null,
+            "Kapcsolat felvételi kérés"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Kapcsolatok"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Hiba"
+         ],
+         "Connecting": [
+            null,
+            "Kapcsolódás"
+         ],
+         "Authenticating": [
+            null,
+            "Azonosítás"
+         ],
+         "Authentication Failed": [
+            null,
+            "Azonosítási hiba"
+         ],
+         "Online Contacts": [
+            null,
+            "Online kapcsolatok"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            ""
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            ""
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "Saját üzenet"
+         ],
+         "me": [
+            null,
+            "én"
+         ],
+         "Show this menu": [
+            null,
+            "Mutasd ezt a menüt"
+         ],
+         "Write in the third person": [
+            null,
+            ""
+         ],
+         "Remove messages": [
+            null,
+            "Üzenet törlése"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            ""
+         ],
+         "We received an unencrypted message": [
+            null,
+            ""
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            ""
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            ""
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            ""
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            ""
+         ],
+         "What is your security question?": [
+            null,
+            ""
+         ],
+         "What is the answer to the security question?": [
+            null,
+            ""
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            ""
+         ],
+         "Your messages are now encrypted but your contact's identity has not been verified.": [
+            null,
+            ""
+         ],
+         "Your contact's identify has been verified.": [
+            null,
+            ""
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted, but your contact has not been verified.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted and your contact verified.": [
+            null,
+            ""
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            ""
+         ],
+         "End encrypted conversation": [
+            null,
+            ""
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            ""
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            ""
+         ],
+         "Verify with fingerprints": [
+            null,
+            ""
+         ],
+         "Verify with SMP": [
+            null,
+            ""
+         ],
+         "What's this?": [
+            null,
+            ""
+         ],
+         "Online": [
+            null,
+            "Elérhető"
+         ],
+         "Busy": [
+            null,
+            "Foglalt"
+         ],
+         "Away": [
+            null,
+            "Távol"
+         ],
+         "Offline": [
+            null,
+            "Nem elérhető"
+         ],
+         "Contact name": [
+            null,
+            "Kapcsolat neve"
+         ],
+         "Search": [
+            null,
+            "Keresés"
+         ],
+         "Contact username": [
+            null,
+            "Felhasználónév"
+         ],
+         "Add": [
+            null,
+            "Hozzáadás"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Új kapcsolatok hozzáadása"
+         ],
+         "Add a contact": [
+            null,
+            "Új kapcsolat"
+         ],
+         "No users found": [
+            null,
+            "Nincs találat"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Csevegő kapcsolatként hozzáad"
+         ],
+         "Room name": [
+            null,
+            "A szoba neve"
+         ],
+         "Nickname": [
+            null,
+            "Becenév"
+         ],
+         "Server": [
+            null,
+            "Szerver"
+         ],
+         "Join": [
+            null,
+            "Csatlakozás"
+         ],
+         "Show rooms": [
+            null,
+            "Létező szobák"
+         ],
+         "Rooms": [
+            null,
+            "Szobák"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Nincs csevegő szoba a(z) %1$s szerveren"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Csevegő szobák a(z) %1$s szerveren"
+         ],
+         "Click to open this room": [
+            null,
+            "Belépés a csevegő szobába"
+         ],
+         "Show more information on this room": [
+            null,
+            "További információk a csevegő szobáról"
+         ],
+         "Description:": [
+            null,
+            "Leírás:"
+         ],
+         "Occupants:": [
+            null,
+            "Jelenlevők:"
+         ],
+         "Features:": [
+            null,
+            "Tulajdonságok"
+         ],
+         "Requires authentication": [
+            null,
+            "Azonosítás szükséges"
+         ],
+         "Hidden": [
+            null,
+            "Rejtett"
+         ],
+         "Requires an invitation": [
+            null,
+            "Meghívás szükséges"
+         ],
+         "Moderated": [
+            null,
+            "Moderált"
+         ],
+         "Non-anonymous": [
+            null,
+            "NEM névtelen"
+         ],
+         "Open room": [
+            null,
+            "Nyitott szoba"
+         ],
+         "Permanent room": [
+            null,
+            "Állandó szoba"
+         ],
+         "Public": [
+            null,
+            "Nyílvános"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Félig névtelen"
+         ],
+         "Temporary room": [
+            null,
+            "Ideiglenes szoba"
+         ],
+         "Unmoderated": [
+            null,
+            "Moderálatlan"
+         ],
+         "This user is a moderator": [
+            null,
+            "Ez a felhasználó egy moderátor"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Ez a felhasználó küldhet üzenetet ebbe a szobába"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Ez a felhasználó NEM küldhet üzenetet ebbe a szobába"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Üzenet"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Write in 3rd person": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Mentés"
+         ],
+         "Cancel": [
+            null,
+            "Mégsem"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Hiba történt az adatok mentése közben."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "A csevegő szoba belépéshez jelszó szükséges"
+         ],
+         "Password: ": [
+            null,
+            "Jelszó:"
+         ],
+         "Submit": [
+            null,
+            "Küldés"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Ez a szoba NEM névtelen"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Ez a szoba mutatja az elérhetetlen tagokat"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Ez a szoba nem mutatja az elérhetetlen tagokat"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "A szoba általános konfigurációja módosult"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "A szobába a belépés lehetséges"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "A szobába a belépés szünetel"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Ez a szoba most NEM névtelen"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Ez a szoba most félig névtelen"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Ez a szoba most teljesen névtelen"
+         ],
+         "A new room has been created": [
+            null,
+            "Létrejött egy új csevegő szoba"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Ki lettél tíltva ebből a szobából"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Ki lettél dobva ebből a szobából"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Taglista módosítás miatt kiléptettünk a csevegő szobából"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Kiléptettünk a csevegő szobából, mert mostantól csak a taglistán szereplők lehetnek jelen."
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Kiléptettünk a csevegő szobából, mert a MUC (Multi-User Chat) szolgáltatás leállításra került."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "A szobából kitíltva: <strong>%1$s</strong>"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "A szobából kidobva: <strong>%1$s</strong>"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "Taglista módosítás miatt a szobából kiléptetve: <strong>%1$s</strong>"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "A taglistán nem szerepel így a szobából kiléptetve: <strong>%1$s</strong>"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Nem szerepelsz a csevegő szoba taglistáján"
+         ],
+         "No nickname was specified": [
+            null,
+            "Nem lett megadva becenév"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Nem lehet új csevegő szobát létrehozni"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "A beceneved ütközik a csevegő szoba szabályzataival"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "A becenevedet már valaki használja"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Ez a szoba (még) nem létezik"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Ez a csevegő szoba elérte a maximális jelenlevők számát"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "A következő témát állította be %1$s: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "A kapcsolat törlése"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Csevegés indítása ezzel a kapcsolatunkkal"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "%1$s vagyok"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Egyedi státusz üzenet írása"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Saját státusz beállítása"
+         ],
+         "Custom status": [
+            null,
+            "Egyedi státusz"
+         ],
+         "online": [
+            null,
+            "online"
+         ],
+         "busy": [
+            null,
+            "elfoglalt"
+         ],
+         "away for long": [
+            null,
+            "hosszú ideje távol"
+         ],
+         "away": [
+            null,
+            "távol"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Jelszó:"
+         ],
+         "Log In": [
+            null,
+            "Belépés"
+         ],
+         "Sign in": [
+            null,
+            "Belépés"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ],
+         "": {
+            "domain": "converse",
+            "lang": "hu"
+         }
+      }
+   }
+};
+locales["id"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "lang": "id"
+         },
+         "unencrypted": [
+            null,
+            "tak dienkripsi"
+         ],
+         "unverified": [
+            null,
+            "tak diverifikasi"
+         ],
+         "verified": [
+            null,
+            "diverifikasi"
+         ],
+         "finished": [
+            null,
+            "selesai"
+         ],
+         "This contact is busy": [
+            null,
+            "Teman ini sedang sibuk"
+         ],
+         "This contact is online": [
+            null,
+            "Teman ini terhubung"
+         ],
+         "This contact is offline": [
+            null,
+            "Teman ini tidak terhubung"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Teman ini tidak tersedia"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Teman ini tidak di tempat untuk waktu yang lama"
+         ],
+         "This contact is away": [
+            null,
+            "Teman ini tidak di tempat"
+         ],
+         "My contacts": [
+            null,
+            "Teman saya"
+         ],
+         "Pending contacts": [
+            null,
+            "Teman yang menunggu"
+         ],
+         "Contact requests": [
+            null,
+            "Permintaan pertemanan"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Teman"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Kesalahan"
+         ],
+         "Connecting": [
+            null,
+            "Menyambung"
+         ],
+         "Authenticating": [
+            null,
+            "Melakukan otentikasi"
+         ],
+         "Authentication Failed": [
+            null,
+            "Otentikasi gagal"
+         ],
+         "Online Contacts": [
+            null,
+            "Teman yang Terhubung"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "Menyambung kembali sesi terenkripsi"
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "Tak dapat melakukan verifikasi identitas pengguna ini."
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "Pesan pribadi"
+         ],
+         "me": [
+            null,
+            "saya"
+         ],
+         "is typing": [
+            null,
+            ""
+         ],
+         "has stopped typing": [
+            null,
+            ""
+         ],
+         "Show this menu": [
+            null,
+            "Tampilkan menu ini"
+         ],
+         "Write in the third person": [
+            null,
+            "Tulis ini menggunakan bahasa pihak ketiga"
+         ],
+         "Remove messages": [
+            null,
+            "Hapus pesan"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            "Pesan anda tak dapat dikirim"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "Kami menerima pesan terenkripsi"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "Kami menerima pesan terenkripsi yang gagal dibaca"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "Pengguna ini meminta sesi terenkripsi"
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "Ini adalah sidik jari anda, konfirmasikan bersama mereka dengan %1$s, di luar percakapan ini.\n\nSidik jari untuk anda, %2$s: %3$s\n\nSidik jari untuk %1$s: %4$s\n\nJika anda bisa mengkonfirmasi sidik jadi cocok, klik Lanjutkan, jika tidak klik Batal."
+         ],
+         "What is your security question?": [
+            null,
+            "Apakah pertanyaan keamanan anda?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "Apa jawaban dari pertanyaan keamanan tersebut?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "Skema otentikasi salah"
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "Pesan anda tidak lagi terenkripsi"
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "Pesan anda tak terenkripsi. Klik di sini untuk menyalakan enkripsi OTR."
+         ],
+         "End encrypted conversation": [
+            null,
+            "Sudahi percakapan terenkripsi"
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "Setel ulang percakapan terenkripsi"
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            "Mulai sesi terenkripsi"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "Verifikasi menggunakan sidik jari"
+         ],
+         "Verify with SMP": [
+            null,
+            "Verifikasi menggunakan SMP"
+         ],
+         "What's this?": [
+            null,
+            "Apakah ini?"
+         ],
+         "Online": [
+            null,
+            "Terhubung"
+         ],
+         "Busy": [
+            null,
+            "Sibuk"
+         ],
+         "Away": [
+            null,
+            "Pergi"
+         ],
+         "Offline": [
+            null,
+            "Tak Terhubung"
+         ],
+         "Contact name": [
+            null,
+            "Nama teman"
+         ],
+         "Search": [
+            null,
+            "Cari"
+         ],
+         "Contact username": [
+            null,
+            "Username teman"
+         ],
+         "Add": [
+            null,
+            "Tambah"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Klik untuk menambahkan teman baru"
+         ],
+         "Add a contact": [
+            null,
+            "Tambah teman"
+         ],
+         "No users found": [
+            null,
+            "Pengguna tak ditemukan"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Klik untuk menambahkan sebagai teman"
+         ],
+         "Room name": [
+            null,
+            "Nama ruangan"
+         ],
+         "Nickname": [
+            null,
+            "Nama panggilan"
+         ],
+         "Server": [
+            null,
+            "Server"
+         ],
+         "Join": [
+            null,
+            "Ikuti"
+         ],
+         "Show rooms": [
+            null,
+            "Perlihatkan ruangan"
+         ],
+         "Rooms": [
+            null,
+            "Ruangan"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Tak ada ruangan di %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Ruangan di %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Klik untuk membuka ruangan ini"
+         ],
+         "Show more information on this room": [
+            null,
+            "Tampilkan informasi ruangan ini"
+         ],
+         "Description:": [
+            null,
+            "Keterangan:"
+         ],
+         "Occupants:": [
+            null,
+            "Penghuni:"
+         ],
+         "Features:": [
+            null,
+            "Fitur:"
+         ],
+         "Requires authentication": [
+            null,
+            "Membutuhkan otentikasi"
+         ],
+         "Hidden": [
+            null,
+            "Tersembunyi"
+         ],
+         "Requires an invitation": [
+            null,
+            "Membutuhkan undangan"
+         ],
+         "Moderated": [
+            null,
+            "Dimoderasi"
+         ],
+         "Non-anonymous": [
+            null,
+            "Tidak anonim"
+         ],
+         "Open room": [
+            null,
+            "Ruangan terbuka"
+         ],
+         "Permanent room": [
+            null,
+            "Ruangan permanen"
+         ],
+         "Public": [
+            null,
+            "Umum"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Semi-anonim"
+         ],
+         "Temporary room": [
+            null,
+            "Ruangan sementara"
+         ],
+         "Unmoderated": [
+            null,
+            "Tak dimoderasi"
+         ],
+         "This user is a moderator": [
+            null,
+            "Pengguna ini adalah moderator"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Pengguna ini dapat mengirim pesan di ruangan ini"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Pengguna ini tak dapat mengirim pesan di ruangan ini"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Pesan"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Simpan"
+         ],
+         "Cancel": [
+            null,
+            "Batal"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Kesalahan terjadi saat menyimpan formulir ini."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Ruangan ini membutuhkan kata sandi"
+         ],
+         "Password: ": [
+            null,
+            "Kata sandi: "
+         ],
+         "Submit": [
+            null,
+            "Kirim"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Ruangan ini tidak anonim"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Ruangan ini menampilkan anggota yang tak tersedia"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Ruangan ini tidak menampilkan anggota yang tak tersedia"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Konfigurasi ruangan yang tak berhubungan dengan privasi telah diubah"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "Pencatatan di ruangan ini sekarang dinyalakan"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "Pencatatan di ruangan ini sekarang dimatikan"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Ruangan ini sekarang tak-anonim"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Ruangan ini sekarang semi-anonim"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Ruangan ini sekarang anonim"
+         ],
+         "A new room has been created": [
+            null,
+            "Ruangan baru telah dibuat"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Anda telah dicekal dari ruangan ini"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Anda telah ditendang dari ruangan ini"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Anda telah dihapus dari ruangan ini karena perubahan afiliasi"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Anda telah dihapus dari ruangan ini karena ruangan ini hanya terbuka untuk anggota dan anda bukan anggota"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Anda telah dihapus dari ruangan ini karena layanan MUC (Multi-user chat) telah dimatikan."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> telah dicekal"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> telah ditendang keluar"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> telah dihapus karena perubahan afiliasi"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> telah dihapus karena bukan anggota"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Anda bukan anggota dari ruangan ini"
+         ],
+         "No nickname was specified": [
+            null,
+            "Nama panggilan belum ditentukan"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Anda tak diizinkan untuk membuat ruangan baru"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Nama panggilan anda tidak sesuai aturan ruangan ini"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Nama panggilan anda telah digunakan orang lain"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Ruangan ini belum dibuat"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Ruangan ini telah mencapai jumlah penghuni maksimum"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Topik diganti oleh %1$s menjadi: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "Klik untuk menghapus teman ini"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Klik untuk mulai perbinjangan dengan teman ini"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "Saya %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Klik untuk menulis status kustom"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Klik untuk mengganti status"
+         ],
+         "Custom status": [
+            null,
+            "Status kustom"
+         ],
+         "online": [
+            null,
+            "terhubung"
+         ],
+         "busy": [
+            null,
+            "sibuk"
+         ],
+         "away for long": [
+            null,
+            "lama tak di tempat"
+         ],
+         "away": [
+            null,
+            "tak di tempat"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Kata sandi:"
+         ],
+         "Log In": [
+            null,
+            "Masuk"
+         ],
+         "Sign in": [
+            null,
+            "Masuk"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ]
+      }
+   }
+};
+locales["it"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "lang": "it"
+         },
+         "unencrypted": [
+            null,
+            ""
+         ],
+         "unverified": [
+            null,
+            ""
+         ],
+         "verified": [
+            null,
+            ""
+         ],
+         "finished": [
+            null,
+            ""
+         ],
+         "This contact is busy": [
+            null,
+            ""
+         ],
+         "This contact is online": [
+            null,
+            ""
+         ],
+         "This contact is offline": [
+            null,
+            ""
+         ],
+         "This contact is away for an extended period": [
+            null,
+            ""
+         ],
+         "This contact is away": [
+            null,
+            ""
+         ],
+         "My contacts": [
+            null,
+            "I miei contatti"
+         ],
+         "Pending contacts": [
+            null,
+            "Contatti in attesa"
+         ],
+         "Contact requests": [
+            null,
+            "Richieste dei contatti"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Contatti"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Errore"
+         ],
+         "Connecting": [
+            null,
+            "Connessione in corso"
+         ],
+         "Authenticating": [
+            null,
+            "Autenticazione in corso"
+         ],
+         "Authentication Failed": [
+            null,
+            "Autenticazione fallita"
+         ],
+         "Online Contacts": [
+            null,
+            "Contatti in linea"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            ""
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            ""
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "Messaggio personale"
+         ],
+         "me": [
+            null,
+            ""
+         ],
+         "is typing": [
+            null,
+            ""
+         ],
+         "has stopped typing": [
+            null,
+            ""
+         ],
+         "Show this menu": [
+            null,
+            "Mostra questo menu"
+         ],
+         "Write in the third person": [
+            null,
+            "Scrivi in terza persona"
+         ],
+         "Remove messages": [
+            null,
+            "Rimuovi messaggi"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            ""
+         ],
+         "We received an unencrypted message": [
+            null,
+            ""
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            ""
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            ""
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            ""
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            ""
+         ],
+         "What is your security question?": [
+            null,
+            ""
+         ],
+         "What is the answer to the security question?": [
+            null,
+            ""
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            ""
+         ],
+         "Your messages are now encrypted but your contact's identity has not been verified.": [
+            null,
+            ""
+         ],
+         "Your contact's identify has been verified.": [
+            null,
+            ""
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted, but your contact has not been verified.": [
+            null,
+            ""
+         ],
+         "Your messages are encrypted and your contact verified.": [
+            null,
+            ""
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            ""
+         ],
+         "End encrypted conversation": [
+            null,
+            ""
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            ""
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            ""
+         ],
+         "Verify with fingerprints": [
+            null,
+            ""
+         ],
+         "Verify with SMP": [
+            null,
+            ""
+         ],
+         "What's this?": [
+            null,
+            ""
+         ],
+         "Online": [
+            null,
+            "In linea"
+         ],
+         "Busy": [
+            null,
+            "Occupato"
+         ],
+         "Away": [
+            null,
+            "Assente"
+         ],
+         "Offline": [
+            null,
+            "Non in linea"
+         ],
+         "Contact name": [
+            null,
+            "Nome del contatto"
+         ],
+         "Search": [
+            null,
+            "Cerca"
+         ],
+         "Contact username": [
+            null,
+            "Nome utente del contatto"
+         ],
+         "Add": [
+            null,
+            "Aggiungi"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Clicca per aggiungere nuovi contatti alla chat"
+         ],
+         "Add a contact": [
+            null,
+            "Aggiungi contatti"
+         ],
+         "No users found": [
+            null,
+            "Nessun utente trovato"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Clicca per aggiungere il contatto alla chat"
+         ],
+         "Room name": [
+            null,
+            "Nome stanza"
+         ],
+         "Nickname": [
+            null,
+            "Soprannome"
+         ],
+         "Server": [
+            null,
+            "Server"
+         ],
+         "Join": [
+            null,
+            "Entra"
+         ],
+         "Show rooms": [
+            null,
+            "Mostra stanze"
+         ],
+         "Rooms": [
+            null,
+            "Stanze"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Nessuna stanza su %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Stanze su %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Clicca per aprire questa stanza"
+         ],
+         "Show more information on this room": [
+            null,
+            "Mostra più informazioni su questa stanza"
+         ],
+         "Description:": [
+            null,
+            "Descrizione:"
+         ],
+         "Occupants:": [
+            null,
+            "Utenti presenti:"
+         ],
+         "Features:": [
+            null,
+            "Funzionalità:"
+         ],
+         "Requires authentication": [
+            null,
+            "Richiede autenticazione"
+         ],
+         "Hidden": [
+            null,
+            "Nascosta"
+         ],
+         "Requires an invitation": [
+            null,
+            "Richiede un invito"
+         ],
+         "Moderated": [
+            null,
+            "Moderata"
+         ],
+         "Non-anonymous": [
+            null,
+            "Non-anonima"
+         ],
+         "Open room": [
+            null,
+            "Stanza aperta"
+         ],
+         "Permanent room": [
+            null,
+            "Stanza permanente"
+         ],
+         "Public": [
+            null,
+            "Pubblica"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Semi-anonima"
+         ],
+         "Temporary room": [
+            null,
+            "Stanza temporanea"
+         ],
+         "Unmoderated": [
+            null,
+            "Non moderata"
+         ],
+         "This user is a moderator": [
+            null,
+            "Questo utente è un moderatore"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Questo utente può inviare messaggi in questa stanza"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Questo utente NON può inviare messaggi in questa stanza"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Messaggio"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Salva"
+         ],
+         "Cancel": [
+            null,
+            "Annulla"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Errore durante il salvataggio del modulo"
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Questa stanza richiede una password"
+         ],
+         "Password: ": [
+            null,
+            "Password: "
+         ],
+         "Submit": [
+            null,
+            "Invia"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Questa stanza non è anonima"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Questa stanza mostra i membri non disponibili al momento"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Questa stanza non mostra i membri non disponibili"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Una configurazione della stanza non legata alla privacy è stata modificata"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "La registrazione è abilitata nella stanza"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "La registrazione è disabilitata nella stanza"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Questa stanza è non-anonima"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Questa stanza è semi-anonima"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Questa stanza è completamente-anonima"
+         ],
+         "A new room has been created": [
+            null,
+            "Una nuova stanza è stata creata"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Sei stato bandito da questa stanza"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Sei stato espulso da questa stanza"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Sei stato rimosso da questa stanza a causa di un cambio di affiliazione"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi utente) è in fase di spegnimento"
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> è stato bandito"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> è stato espulso"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> è stato rimosso in quanto non membro"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Non sei nella lista dei membri di questa stanza"
+         ],
+         "No nickname was specified": [
+            null,
+            "Nessun soprannome specificato"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Non ti è permesso creare nuove stanze"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Il tuo soprannome non è conforme alle regole di questa stanza"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Il tuo soprannome è già utilizzato"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Questa stanza non esiste (per ora)"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Questa stanza ha raggiunto il limite massimo di utenti"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Topic impostato da %1$s a: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "Clicca per rimuovere questo contatto"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Clicca per parlare con questo contatto"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "Sono %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Clicca qui per scrivere un messaggio di stato personalizzato"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Clicca per cambiare il tuo stato"
+         ],
+         "Custom status": [
+            null,
+            "Stato personalizzato"
+         ],
+         "online": [
+            null,
+            "in linea"
+         ],
+         "busy": [
+            null,
+            "occupato"
+         ],
+         "away for long": [
+            null,
+            "assente da molto"
+         ],
+         "away": [
+            null,
+            "assente"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Password:"
+         ],
+         "Log In": [
+            null,
+            "Entra"
+         ],
+         "Sign in": [
+            null,
+            "Accesso"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ]
+      }
+   }
+};
+locales["ja"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=1; plural=0;",
+            "lang": "JA"
+         },
+         "unencrypted": [
+            null,
+            "暗号化されていません"
+         ],
+         "unverified": [
+            null,
+            "検証されていません"
+         ],
+         "verified": [
+            null,
+            "検証されました"
+         ],
+         "finished": [
+            null,
+            "完了"
+         ],
+         "This contact is busy": [
+            null,
+            "この相手先は取り込み中です"
+         ],
+         "This contact is online": [
+            null,
+            "この相手先は在席しています"
+         ],
+         "This contact is offline": [
+            null,
+            "この相手先はオフラインです"
+         ],
+         "This contact is unavailable": [
+            null,
+            "この相手先は不通です"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "この相手先は不在です"
+         ],
+         "This contact is away": [
+            null,
+            "この相手先は離席中です"
+         ],
+         "My contacts": [
+            null,
+            "相手先一覧"
+         ],
+         "Pending contacts": [
+            null,
+            "保留中の相手先"
+         ],
+         "Contact requests": [
+            null,
+            "会話に呼び出し"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "相手先"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "エラー"
+         ],
+         "Connecting": [
+            null,
+            "接続中です"
+         ],
+         "Authenticating": [
+            null,
+            "認証中"
+         ],
+         "Authentication Failed": [
+            null,
+            "認証に失敗"
+         ],
+         "Online Contacts": [
+            null,
+            "オンラインの相手先"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "暗号化セッションの再接続"
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "このユーザーの本人性を検証できませんでした。"
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "私信"
+         ],
+         "me": [
+            null,
+            "私"
+         ],
+         "is typing": [
+            null,
+            ""
+         ],
+         "has stopped typing": [
+            null,
+            ""
+         ],
+         "Show this menu": [
+            null,
+            "このメニューを表示"
+         ],
+         "Write in the third person": [
+            null,
+            "第三者に書く"
+         ],
+         "Remove messages": [
+            null,
+            "メッセージを削除"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            "メッセージを送信できませんでした"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "暗号化されていないメッセージを受信しました"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "読めない暗号化メッセージを受信しました"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "このユーザーは暗号化セッションを求めています。"
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "これは鍵指紋です。チャット以外の方法でこれらを %1$s と確認してください。\n\nあなた %2$s の鍵指紋: %3$s\n\n%1$s の鍵指紋: %4$s\n\n確認して、鍵指紋が正しければ「OK」を、正しくなければ「キャンセル」をクリックしてください。"
+         ],
+         "What is your security question?": [
+            null,
+            "秘密の質問はなんですか?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "秘密の質問の答はなんですか?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "認証の方式が正しくありません"
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "メッセージはもう暗号化されません"
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "メッセージは暗号化されません。OTR 暗号化を有効にするにはここをクリックしてください。"
+         ],
+         "End encrypted conversation": [
+            null,
+            "暗号化された会話を終了"
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "暗号化された会話をリフレッシュ"
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            "暗号化された会話を開始"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "鍵指紋で検証"
+         ],
+         "Verify with SMP": [
+            null,
+            "SMP で検証"
+         ],
+         "What's this?": [
+            null,
+            "これは何ですか?"
+         ],
+         "Online": [
+            null,
+            "オンライン"
+         ],
+         "Busy": [
+            null,
+            "取り込み中"
+         ],
+         "Away": [
+            null,
+            "離席中"
+         ],
+         "Offline": [
+            null,
+            "オフライン"
+         ],
+         "Contact name": [
+            null,
+            "名前"
+         ],
+         "Search": [
+            null,
+            "検索"
+         ],
+         "Contact username": [
+            null,
+            "相手先の名前"
+         ],
+         "Add": [
+            null,
+            "追加"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "クリックして新しいチャットの相手先を追加"
+         ],
+         "Add a contact": [
+            null,
+            "相手先を追加"
+         ],
+         "No users found": [
+            null,
+            "ユーザーが見つかりません"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "クリックしてチャットの相手先として追加"
+         ],
+         "Room name": [
+            null,
+            "談話室の名前"
+         ],
+         "Nickname": [
+            null,
+            "ニックネーム"
+         ],
+         "Server": [
+            null,
+            "サーバー"
+         ],
+         "Join": [
+            null,
+            "入室"
+         ],
+         "Show rooms": [
+            null,
+            "談話室一覧を見る"
+         ],
+         "Rooms": [
+            null,
+            "談話室"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "%1$s に談話室はありません"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "%1$s の談話室一覧"
+         ],
+         "Click to open this room": [
+            null,
+            "クリックしてこの談話室を開く"
+         ],
+         "Show more information on this room": [
+            null,
+            "この談話室についての詳細を見る"
+         ],
+         "Description:": [
+            null,
+            "説明: "
+         ],
+         "Occupants:": [
+            null,
+            "入室者:"
+         ],
+         "Features:": [
+            null,
+            "特徴:"
+         ],
+         "Requires authentication": [
+            null,
+            "認証の要求"
+         ],
+         "Hidden": [
+            null,
+            "非表示"
+         ],
+         "Requires an invitation": [
+            null,
+            "招待の要求"
+         ],
+         "Moderated": [
+            null,
+            "発言制限"
+         ],
+         "Non-anonymous": [
+            null,
+            "非匿名"
+         ],
+         "Open room": [
+            null,
+            "開放談話室"
+         ],
+         "Permanent room": [
+            null,
+            "常設談話室"
+         ],
+         "Public": [
+            null,
+            "公開談話室"
+         ],
+         "Semi-anonymous": [
+            null,
+            "半匿名"
+         ],
+         "Temporary room": [
+            null,
+            "臨時談話室"
+         ],
+         "Unmoderated": [
+            null,
+            "発言制限なし"
+         ],
+         "This user is a moderator": [
+            null,
+            "このユーザーは司会者です"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "このユーザーはこの談話室で発言できます"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "このユーザーはこの談話室で発言できません"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "メッセージ"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "保存"
+         ],
+         "Cancel": [
+            null,
+            "キャンセル"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "フォームを保存する際にエラーが発生しました。"
+         ],
+         "This chatroom requires a password": [
+            null,
+            "この談話室にはパスワードが必要です"
+         ],
+         "Password: ": [
+            null,
+            "パスワード:"
+         ],
+         "Submit": [
+            null,
+            "送信"
+         ],
+         "This room is not anonymous": [
+            null,
+            "この談話室は非匿名です"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "この談話室はメンバー以外にも見えます"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "この談話室はメンバー以外には見えません"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "談話室の設定(プライバシーに無関係)が変更されました"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "談話室の記録を取りはじめます"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "談話室の記録を止めます"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "この談話室はただいま非匿名です"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "この談話室はただいま半匿名です"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "この談話室はただいま匿名です"
+         ],
+         "A new room has been created": [
+            null,
+            "新しい談話室が作成されました"
+         ],
+         "You have been banned from this room": [
+            null,
+            "この談話室から締め出されました"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "この談話室から蹴り出されました"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "分掌の変更のため、この談話室から削除されました"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "談話室がメンバー制に変更されました。メンバーではないため、この談話室から削除されました"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "MUC(グループチャット)のサービスが停止したため、この談話室から削除されました。"
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> を締め出しました"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> を蹴り出しました"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "分掌の変更のため、<strong>%1$s</strong> を削除しました"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "メンバーでなくなったため、<strong>%1$s</strong> を削除しました"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "この談話室のメンバー一覧にいません"
+         ],
+         "No nickname was specified": [
+            null,
+            "ニックネームがありません"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "新しい談話室を作成する権限がありません"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "ニックネームがこの談話室のポリシーに従っていません"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "ニックネームは既に使われています"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "この談話室は存在しません"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "この談話室は入室者数の上限に達しています"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "%1$s が話題を設定しました: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "クリックしてこの相手先を削除"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "クリックしてこの相手先とチャット"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "私はいま %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "状況メッセージを入力するには、ここをクリック"
+         ],
+         "Click to change your chat status": [
+            null,
+            "クリックして、在席状況を変更"
+         ],
+         "Custom status": [
+            null,
+            "独自の在席状況"
+         ],
+         "online": [
+            null,
+            "在席"
+         ],
+         "busy": [
+            null,
+            "取り込み中"
+         ],
+         "away for long": [
+            null,
+            "不在"
+         ],
+         "away": [
+            null,
+            "離席中"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "パスワード:"
+         ],
+         "Log In": [
+            null,
+            "ログイン"
+         ],
+         "Sign in": [
+            null,
+            "サインイン"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ]
+      }
+   }
+};
+locales["nb"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "lang": "nb"
+         },
+         "unencrypted": [
+            null,
+            "ukryptertß"
+         ],
+         "unverified": [
+            null,
+            "uverifisert"
+         ],
+         "verified": [
+            null,
+            "verifisert"
+         ],
+         "finished": [
+            null,
+            "ferdig"
+         ],
+         "This contact is busy": [
+            null,
+            "Denne kontakten er opptatt"
+         ],
+         "This contact is online": [
+            null,
+            "Kontakten er pålogget"
+         ],
+         "This contact is offline": [
+            null,
+            "Kontakten er avlogget"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Kontakten er utilgjengelig"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Kontakten er borte for en lengre periode"
+         ],
+         "This contact is away": [
+            null,
+            "Kontakten er borte"
+         ],
+         "Click to hide these contacts": [
+            null,
+            "Klikk for å skjule disse kontaktene"
+         ],
+         "My contacts": [
+            null,
+            "Mine Kontakter"
+         ],
+         "Pending contacts": [
+            null,
+            "Kontakter som venter på godkjenning"
+         ],
+         "Contact requests": [
+            null,
+            "Kontaktforespørsler"
+         ],
+         "Ungrouped": [
+            null,
+            "Ugrupperte"
+         ],
+         "Contacts": [
+            null,
+            "Kontakter"
+         ],
+         "Groups": [
+            null,
+            "Grupper"
+         ],
+         "Reconnecting": [
+            null,
+            "Kobler til igjen"
+         ],
+         "Error": [
+            null,
+            "Feil"
+         ],
+         "Connecting": [
+            null,
+            "Kobler til"
+         ],
+         "Authenticating": [
+            null,
+            "Godkjenner"
+         ],
+         "Authentication Failed": [
+            null,
+            "Godkjenning mislyktes"
+         ],
+         "Online Contacts": [
+            null,
+            "Påloggede Kontakter"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "Gjenopptar kryptert økt"
+         ],
+         "Generating private key.": [
+            null,
+            "Genererer privat nøkkel"
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            "Din nettleser kan bli uresponsiv"
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            "Godkjenningsforespørsel fra %1$s\n\nDin nettpratkontakt forsøker å bekrefte din identitet, ved å spørre deg spørsmålet under.\n\n%2$s"
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "Kunne ikke bekrefte denne brukerens identitet"
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            "Bytter private nøkler med kontakt"
+         ],
+         "Personal message": [
+            null,
+            "Personlig melding"
+         ],
+         "Are you sure you want to clear the messages from this room?": [
+            null,
+            "Er du sikker på at du vil fjerne meldingene fra dette rommet?"
+         ],
+         "me": [
+            null,
+            "meg"
+         ],
+         "is typing": [
+            null,
+            "skriver"
+         ],
+         "has stopped typing": [
+            null,
+            "har stoppet å skrive"
+         ],
+         "Show this menu": [
+            null,
+            "Viser denne menyen"
+         ],
+         "Write in the third person": [
+            null,
+            "Skriv i tredjeperson"
+         ],
+         "Remove messages": [
+            null,
+            "Fjern meldinger"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            "Er du sikker på at du vil fjerne meldingene fra denne meldingsboksen?"
+         ],
+         "Your message could not be sent": [
+            null,
+            "Beskjeden din kunne ikke sendes"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "Vi mottok en ukryptert beskjed"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "Vi mottok en uleselig melding"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "Denne brukeren har ønsket en kryptert økt"
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nOm du har bekreftet at avtrykkene matcher, klikk OK. I motsatt fall, trykk Avbryt."
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            "Du vil bli spurt etter å tilby et sikkerhetsspørsmål og siden svare på dette.\n\nDin kontakt vil så bli spurt om det samme spørsmålet, og om de svarer det nøyaktig samme svaret (det er forskjell på små og store bokstaver), vil identiteten verifiseres."
+         ],
+         "What is your security question?": [
+            null,
+            "Hva er ditt Sikkerhetsspørsmål?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "Hva er svaret på ditt Sikkerhetsspørsmål?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "Du har vedlagt en ugyldig godkjenningsplan."
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "Dine meldinger er ikke kryptert lenger."
+         ],
+         "Your messages are now encrypted but your contact's identity has not been verified.": [
+            null,
+            "Dine meldinger er nå krypterte, men identiteten til din kontakt har ikke blitt verifisert."
+         ],
+         "Your contact's identify has been verified.": [
+            null,
+            "Din kontakts identitet har blitt verifisert."
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            "Din kontakt har avsluttet kryptering i sin ende, dette burde du også gjøre."
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "Dine meldinger er ikke krypterte. Klikk her for å aktivere OTR-kryptering."
+         ],
+         "Your messages are encrypted, but your contact has not been verified.": [
+            null,
+            "Dine meldinger er krypterte, men din kontakt har ikke blitt verifisert."
+         ],
+         "Your messages are encrypted and your contact verified.": [
+            null,
+            "Dine meldinger er krypterte og din kontakt er verifisert."
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            "Din kontakt har avsluttet økten i sin ende, dette burde du også gjøre."
+         ],
+         "Clear all messages": [
+            null,
+            "Fjern alle meldinger"
+         ],
+         "End encrypted conversation": [
+            null,
+            "Avslutt kryptert økt"
+         ],
+         "Hide the list of participants": [
+            null,
+            "Skjul deltakerlisten"
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "Last inn kryptert samtale på nytt"
+         ],
+         "Start a call": [
+            null,
+            "Start en samtale"
+         ],
+         "Start encrypted conversation": [
+            null,
+            "Start en kryptert samtale"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "Verifiser med Avtrykk"
+         ],
+         "Verify with SMP": [
+            null,
+            "Verifiser med SMP"
+         ],
+         "What's this?": [
+            null,
+            "Hva er dette?"
+         ],
+         "Online": [
+            null,
+            "Pålogget"
+         ],
+         "Busy": [
+            null,
+            "Opptatt"
+         ],
+         "Away": [
+            null,
+            "Borte"
+         ],
+         "Offline": [
+            null,
+            "Avlogget"
+         ],
+         "Log out": [
+            null,
+            "Logg Av"
+         ],
+         "Contact name": [
+            null,
+            "Kontaktnavn"
+         ],
+         "Search": [
+            null,
+            "Søk"
+         ],
+         "Contact username": [
+            null,
+            "Brukernavnet til Kontakt"
+         ],
+         "Add": [
+            null,
+            "Legg Til"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Klikk for å legge til nye meldingskontakter"
+         ],
+         "Add a contact": [
+            null,
+            "Legg til en Kontakt"
+         ],
+         "No users found": [
+            null,
+            "Ingen brukere funnet"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Klikk for å legge til som meldingskontakt"
+         ],
+         "Room name": [
+            null,
+            "Romnavn"
+         ],
+         "Nickname": [
+            null,
+            "Kallenavn"
+         ],
+         "Server": [
+            null,
+            "Server"
+         ],
+         "Join": [
+            null,
+            "Koble til"
+         ],
+         "Show rooms": [
+            null,
+            "Vis Rom"
+         ],
+         "Rooms": [
+            null,
+            "Rom"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Ingen rom på %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Rom på %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Klikk for å åpne dette rommet"
+         ],
+         "Show more information on this room": [
+            null,
+            "Vis mer informasjon om dette rommet"
+         ],
+         "Description:": [
+            null,
+            "Beskrivelse:"
+         ],
+         "Occupants:": [
+            null,
+            "Brukere her:"
+         ],
+         "Features:": [
+            null,
+            "Egenskaper:"
+         ],
+         "Requires authentication": [
+            null,
+            "Krever Godkjenning"
+         ],
+         "Hidden": [
+            null,
+            "Skjult"
+         ],
+         "Requires an invitation": [
+            null,
+            "Krever en invitasjon"
+         ],
+         "Moderated": [
+            null,
+            "Moderert"
+         ],
+         "Non-anonymous": [
+            null,
+            "Ikke-Anonym"
+         ],
+         "Open room": [
+            null,
+            "Åpent Rom"
+         ],
+         "Permanent room": [
+            null,
+            "Permanent Rom"
+         ],
+         "Public": [
+            null,
+            "Alle"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Semi-anonymt"
+         ],
+         "Temporary room": [
+            null,
+            "Midlertidig Rom"
+         ],
+         "Unmoderated": [
+            null,
+            "Umoderert"
+         ],
+         "This user is a moderator": [
+            null,
+            "Denne brukeren er moderator"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Denne brukeren kan skrive meldinger i dette rommet"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Denne brukeren kan IKKE sende meldinger i dette rommet"
+         ],
+         "Invite...": [
+            null,
+            "Invitér..."
+         ],
+         "Occupants": [
+            null,
+            "Brukere her:"
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            "Du er i ferd med å invitere %1$s til samtalerommet \"%2$s\". "
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            "Du kan eventuelt inkludere en melding og forklare årsaken til invitasjonen."
+         ],
+         "Message": [
+            null,
+            "Melding"
+         ],
+         "Error: could not execute the command": [
+            null,
+            "Feil: kunne ikke utføre kommandoen"
+         ],
+         "Ban user from room": [
+            null,
+            "Utesteng bruker fra rommet"
+         ],
+         "Kick user from room": [
+            null,
+            "Kast ut bruker fra rommet"
+         ],
+         "Write in 3rd person": [
+            null,
+            "Skriv i tredjeperson"
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            "Fjern brukerens muligheter til å skrive meldinger"
+         ],
+         "Change your nickname": [
+            null,
+            "Endre ditt kallenavn"
+         ],
+         "Set room topic": [
+            null,
+            "Endre rommets emne"
+         ],
+         "Allow muted user to post messages": [
+            null,
+            "Tillat stumme brukere å skrive meldinger"
+         ],
+         "Save": [
+            null,
+            "Lagre"
+         ],
+         "Cancel": [
+            null,
+            "Avbryt"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "En feil skjedde under lagring av skjemaet."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Dette rommet krever et passord"
+         ],
+         "Password: ": [
+            null,
+            "Passord:"
+         ],
+         "Submit": [
+            null,
+            "Send"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Dette rommet er ikke anonymt"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Dette rommet viser nå utilgjengelige medlemmer"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Dette rommet viser ikke utilgjengelige medlemmer"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Ikke-personvernsrelatert romkonfigurasjon har blitt endret"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "Romlogging er nå aktivert"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "Romlogging er nå deaktivert"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Dette rommet er nå ikke-anonymt"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Dette rommet er nå semi-anonymt"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Dette rommet er nå totalt anonymt"
+         ],
+         "A new room has been created": [
+            null,
+            "Et nytt rom har blitt opprettet"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Du har blitt utestengt fra dette rommet"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Du ble kastet ut av dette rommet"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Du har blitt fjernet fra dette rommet på grunn av en holdningsendring"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Du har blitt fjernet fra dette rommet fordi rommet nå kun tillater medlemmer, noe du ikke er."
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Du har blitt fjernet fra dette rommet fordi MBC (Multi-Bruker-Chat)-tjenesten er stengt ned."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong>  har blitt utestengt"
+         ],
+         "<strong>%1$s</strong>'s nickname has changed": [
+            null,
+            "<strong>%1$s</strong> sitt kallenavn er endret"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong>  ble kastet ut"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> har blitt fjernet på grunn av en holdningsendring"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> har blitt fjernet på grunn av at han/hun ikke er medlem"
+         ],
+         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [
+            null,
+            "Ditt kallenavn har blitt automatisk endret til <strong>%1$s</strong> "
+         ],
+         "Your nickname has been changed to: <strong>%1$s</strong>": [
+            null,
+            "Ditt kallenavn har blitt endret til <strong>%1$s</strong> "
+         ],
+         "The reason given is: \"": [
+            null,
+            "Årsaken som er oppgitt er: \""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Du er ikke på medlemslisten til dette rommet"
+         ],
+         "No nickname was specified": [
+            null,
+            "Ingen kallenavn var spesifisert"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Du har ikke tillatelse til å opprette nye rom"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Ditt kallenavn er ikke i samsvar med rommets regler"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Kallenavnet er allerede tatt"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Dette rommet eksisterer ikke (enda)"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Dette rommet har nådd maksimalt antall brukere"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Emnet ble endret den %1$s til: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            "%1$s har invitert deg til å bli med i chatterommet: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            "%1$s har invitert deg til å bli med i chatterommet: %2$s, og forlot selv av følgende grunn:  \"%3$s\""
+         ],
+         "Click to restore this chat": [
+            null,
+            "Klikk for å gjenopprette denne samtalen"
+         ],
+         "Minimized": [
+            null,
+            "Minimert"
+         ],
+         "Click to remove this contact": [
+            null,
+            "Klikk for å fjerne denne kontakten"
+         ],
+         "Click to accept this contact request": [
+            null,
+            "Klikk for å Godta denne kontaktforespørselen"
+         ],
+         "Click to decline this contact request": [
+            null,
+            "Klikk for å avslå denne kontaktforespørselen"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Klikk for å chatte med denne kontakten"
+         ],
+         "Are you sure you want to remove this contact?": [
+            null,
+            "Er du sikker på at du vil fjerne denne kontakten?"
+         ],
+         "Are you sure you want to decline this contact request?": [
+            null,
+            "Er du sikker på at du vil avslå denne kontaktforespørselen?"
+         ],
+         "Type to filter": [
+            null,
+            "Skriv til filter"
+         ],
+         "I am %1$s": [
+            null,
+            "Jeg er %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Klikk her for å skrive en personlig statusmelding"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Klikk for å endre din meldingsstatus"
+         ],
+         "Custom status": [
+            null,
+            "Personlig status"
+         ],
+         "online": [
+            null,
+            "pålogget"
+         ],
+         "busy": [
+            null,
+            "opptatt"
+         ],
+         "away for long": [
+            null,
+            "borte lenge"
+         ],
+         "away": [
+            null,
+            "borte"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            "Din XMPP-tilbyders domenenavn:"
+         ],
+         "Fetch registration form": [
+            null,
+            "Hent registreringsskjema"
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            "Tips: En liste med offentlige XMPP-tilbydere er tilgjengelig"
+         ],
+         "here": [
+            null,
+            "her"
+         ],
+         "Register": [
+            null,
+            "Registrér deg"
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            "Beklager, den valgte tilbyderen støtter ikke in band kontoregistrering. Vennligst prøv igjen med en annen tilbyder. "
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            "Spør etter registreringsskjema fra XMPP-tjeneren"
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            "Noe gikk galt under etablering av forbindelse med \"%1$s\". Er du sikker på at denne eksisterer?"
+         ],
+         "Now logging you in": [
+            null,
+            "Logger deg inn"
+         ],
+         "Registered successfully": [
+            null,
+            "Registrering var vellykket"
+         ],
+         "Return": [
+            null,
+            "Tilbake"
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            "Tilbyderen avviste ditt registreringsforsøk."
+         ],
+         "XMPP Username:": [
+            null,
+            "XMPP Brukernavn:"
+         ],
+         "Password:": [
+            null,
+            "Passord:"
+         ],
+         "Log In": [
+            null,
+            "Logg inn"
+         ],
+         "Sign in": [
+            null,
+            "Innlogging"
+         ],
+         "Toggle chat": [
+            null,
+            "Endre chatten"
+         ]
+      }
+   }
+};
+locales["nl"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "lang": "nl"
+         },
+         "unencrypted": [
+            null,
+            "ongecodeerde"
+         ],
+         "unverified": [
+            null,
+            "niet geverifieerd"
+         ],
+         "verified": [
+            null,
+            "geverifieerd"
+         ],
+         "finished": [
+            null,
+            "klaar"
+         ],
+         "This contact is busy": [
+            null,
+            "Contact is bezet"
+         ],
+         "This contact is online": [
+            null,
+            "Contact is online"
+         ],
+         "This contact is offline": [
+            null,
+            "Contact is offline"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Contact is niet beschikbaar"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Contact is afwezig voor lange periode"
+         ],
+         "This contact is away": [
+            null,
+            "Conact is afwezig"
+         ],
+         "My contacts": [
+            null,
+            "Mijn contacts"
+         ],
+         "Pending contacts": [
+            null,
+            "Conacten in afwachting van"
+         ],
+         "Contact requests": [
+            null,
+            "Contact uitnodiging"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Contacten"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Error"
+         ],
+         "Connecting": [
+            null,
+            "Verbinden"
+         ],
+         "Authenticating": [
+            null,
+            "Authenticeren"
+         ],
+         "Authentication Failed": [
+            null,
+            "Authenticeren mislukt"
+         ],
+         "Online Contacts": [
+            null,
+            "Online Contacten"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "Bezig versleutelde sessie te herstellen"
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "Niet kon de identiteit van deze gebruiker niet identificeren."
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "Persoonlijk bericht"
+         ],
+         "me": [
+            null,
+            "ikzelf"
+         ],
+         "Show this menu": [
+            null,
+            "Toon dit menu"
+         ],
+         "Write in the third person": [
+            null,
+            "Schrijf in de 3de persoon"
+         ],
+         "Remove messages": [
+            null,
+            "Verwijder bericht"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            "Je bericht kon niet worden verzonden"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "We ontvingen een unencrypted bericht "
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "We ontvangen een onleesbaar unencrypted bericht"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "Deze gebruiker heeft een encrypted sessie aangevraagd."
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            ""
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            ""
+         ],
+         "What is your security question?": [
+            null,
+            "Wat is jou sericury vraag?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "Wat is het antwoord op de security vraag?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "Je berichten zijn niet meer encrypted"
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "Jou bericht is niet encrypted. KLik hier om ORC encrytion aan te zetten."
+         ],
+         "End encrypted conversation": [
+            null,
+            "Beeindig encrypted gesprek"
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "Ververs encrypted gesprek"
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            "Start encrypted gesprek"
+         ],
+         "Verify with fingerprints": [
+            null,
+            ""
+         ],
+         "Verify with SMP": [
+            null,
+            ""
+         ],
+         "What's this?": [
+            null,
+            "Wat is dit?"
+         ],
+         "Online": [
+            null,
+            "Online"
+         ],
+         "Busy": [
+            null,
+            "Bezet"
+         ],
+         "Away": [
+            null,
+            "Afwezig"
+         ],
+         "Offline": [
+            null,
+            ""
+         ],
+         "Contact name": [
+            null,
+            "Contact naam"
+         ],
+         "Search": [
+            null,
+            "Zoeken"
+         ],
+         "Contact username": [
+            null,
+            "Contact gebruikernaam"
+         ],
+         "Add": [
+            null,
+            "Toevoegen"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Klik om nieuwe contacten toe te voegen"
+         ],
+         "Add a contact": [
+            null,
+            "Voeg contact toe"
+         ],
+         "No users found": [
+            null,
+            "Geen gebruikers gevonden"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Klik om contact toe te voegen"
+         ],
+         "Room name": [
+            null,
+            "Room naam"
+         ],
+         "Nickname": [
+            null,
+            "Nickname"
+         ],
+         "Server": [
+            null,
+            "Server"
+         ],
+         "Join": [
+            null,
+            "Deelnemen"
+         ],
+         "Show rooms": [
+            null,
+            "Toon rooms"
+         ],
+         "Rooms": [
+            null,
+            "Rooms"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Geen room op %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Room op %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Klik om room te openen"
+         ],
+         "Show more information on this room": [
+            null,
+            "Toon meer informatie over deze room"
+         ],
+         "Description:": [
+            null,
+            "Beschrijving"
+         ],
+         "Occupants:": [
+            null,
+            "Deelnemers:"
+         ],
+         "Features:": [
+            null,
+            "Functies:"
+         ],
+         "Requires authentication": [
+            null,
+            "Verificatie vereist"
+         ],
+         "Hidden": [
+            null,
+            "Verborgen"
+         ],
+         "Requires an invitation": [
+            null,
+            "Veriest een uitnodiging"
+         ],
+         "Moderated": [
+            null,
+            "Gemodereerd"
+         ],
+         "Non-anonymous": [
+            null,
+            "Niet annoniem"
+         ],
+         "Open room": [
+            null,
+            "Open room"
+         ],
+         "Permanent room": [
+            null,
+            "Blijvend room"
+         ],
+         "Public": [
+            null,
+            "Publiek"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Semi annoniem"
+         ],
+         "Temporary room": [
+            null,
+            "Tijdelijke room"
+         ],
+         "Unmoderated": [
+            null,
+            "Niet gemodereerd"
+         ],
+         "This user is a moderator": [
+            null,
+            "Dit is een moderator"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Deze gebruiker kan berichten sturen in deze room"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Deze gebruiker kan NIET een bericht sturen in deze room"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Bericht"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Opslaan"
+         ],
+         "Cancel": [
+            null,
+            "Annuleren"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Een error tijdens het opslaan van het formulier."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Chatroom heeft een wachtwoord"
+         ],
+         "Password: ": [
+            null,
+            "Wachtwoord: "
+         ],
+         "Submit": [
+            null,
+            "Indienen"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Deze room is niet annoniem"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            ""
+         ],
+         "This room does not show unavailable members": [
+            null,
+            ""
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            ""
+         ],
+         "Room logging is now enabled": [
+            null,
+            ""
+         ],
+         "Room logging is now disabled": [
+            null,
+            ""
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Deze room is nu niet annoniem"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Deze room is nu semie annoniem"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Deze room is nu volledig annoniem"
+         ],
+         "A new room has been created": [
+            null,
+            "Een nieuwe room is gemaakt"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Je bent verbannen uit deze room"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Je bent uit de room gegooid"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            ""
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            ""
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            ""
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> is verbannen"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> has been kicked out"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            ""
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            ""
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Je bent niet een gebruiker van deze room"
+         ],
+         "No nickname was specified": [
+            null,
+            "Geen nickname ingegeven"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Je bent niet toegestaan nieuwe rooms te maken"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Je nickname is niet conform policy"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Je nickname bestaat al"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Deze room bestaat niet"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Deze room heeft het maximale aantal gebruikers"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "Klik om contact te verwijderen"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Klik om te chatten met contact"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "Ik ben %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Klik hier om custom status bericht te maken"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Klik hier om status te wijzigen"
+         ],
+         "Custom status": [
+            null,
+            ""
+         ],
+         "online": [
+            null,
+            "online"
+         ],
+         "busy": [
+            null,
+            "bezet"
+         ],
+         "away for long": [
+            null,
+            "afwezig lange tijd"
+         ],
+         "away": [
+            null,
+            "afwezig"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Wachtwoord:"
+         ],
+         "Log In": [
+            null,
+            "Aanmelden"
+         ],
+         "Sign in": [
+            null,
+            "Aanmelden"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ]
+      }
+   }
+};
+locales["pl"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);",
+            "lang": "pl"
+         },
+         "unencrypted": [
+            null,
+            "nieszyfrowane"
+         ],
+         "unverified": [
+            null,
+            "niezweryfikowane"
+         ],
+         "verified": [
+            null,
+            "zweryfikowane"
+         ],
+         "finished": [
+            null,
+            "zakończone"
+         ],
+         "This contact is busy": [
+            null,
+            "Kontakt jest zajęty"
+         ],
+         "This contact is online": [
+            null,
+            "Kontakt jest połączony"
+         ],
+         "This contact is offline": [
+            null,
+            "Kontakt jest niepołączony"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Kontakt jest niedostępny"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Kontakt jest nieobecny przez dłuższą chwilę"
+         ],
+         "This contact is away": [
+            null,
+            "Kontakt jest nieobecny"
+         ],
+         "Click to hide these contacts": [
+            null,
+            "Kliknij aby schować te kontakty"
+         ],
+         "My contacts": [
+            null,
+            "Moje kontakty"
+         ],
+         "Pending contacts": [
+            null,
+            "Kontakty oczekujące"
+         ],
+         "Contact requests": [
+            null,
+            "Zaproszenia do kontaktu"
+         ],
+         "Ungrouped": [
+            null,
+            "Niezgrupowane"
+         ],
+         "Contacts": [
+            null,
+            "Kontakty"
+         ],
+         "Groups": [
+            null,
+            "Grupy"
+         ],
+         "Reconnecting": [
+            null,
+            "Przywracam połączenie"
+         ],
+         "Error": [
+            null,
+            "Błąd"
+         ],
+         "Connecting": [
+            null,
+            "Łączę się"
+         ],
+         "Authenticating": [
+            null,
+            "Autoryzacja"
+         ],
+         "Authentication Failed": [
+            null,
+            "Autoryzacja nie powiodła się"
+         ],
+         "Online Contacts": [
+            null,
+            "Dostępne kontakty"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "Przywrócenie sesji szyfrowanej"
+         ],
+         "Generating private key.": [
+            null,
+            "Generuję klucz prywatny."
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            "Twoja przeglądarka może nieco zwolnić."
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            "Prośba o autoryzację od %1$s\n\nKontakt próbuje zweryfikować twoją tożsamość, zadając ci pytanie poniżej.\n\n%2$s"
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "Nie jestem w stanie zweryfikować tożsamości kontaktu."
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            "Wymieniam klucze szyfrujące z kontaktem."
+         ],
+         "Personal message": [
+            null,
+            "Wiadomość osobista"
+         ],
+         "Are you sure you want to clear the messages from this room?": [
+            null,
+            "Potwierdź czy rzeczywiście chcesz wyczyścić wiadomości z tego pokoju?"
+         ],
+         "me": [
+            null,
+            "ja"
+         ],
+         "is typing": [
+            null,
+            "pisze"
+         ],
+         "has stopped typing": [
+            null,
+            "przestał pisać"
+         ],
+         "Show this menu": [
+            null,
+            "Pokaż menu"
+         ],
+         "Write in the third person": [
+            null,
+            "Pisz w trzeciej osobie"
+         ],
+         "Remove messages": [
+            null,
+            "Usuń wiadomość"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            "Potwierdź czy rzeczywiście chcesz wyczyścić wiadomości z okienka rozmowy?"
+         ],
+         "Your message could not be sent": [
+            null,
+            "Twoja wiadomość nie została wysłana"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "Otrzymaliśmy niezaszyfrowaną wiadomość"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "Otrzymaliśmy nieczytelną zaszyfrowaną wiadomość"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "Kontakt prosi o sesję szyfrowaną."
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "Oto odciski palców, potwiedź je proszę z %1$s używając innego sposobuwymiany informacji niż ta rozmowa.\n\nOdcisk palca dla ciebie, %2$s: %3$s\n\nOdcisk palca dla %1$s: %4$s\n\nJeśli odciski palców zostały potwierdzone, kliknij OK, w inny wypadku kliknij Anuluj."
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            "Poprosimy cię o podanie pytania sprawdzającego i odpowiedzi na nie.\n\nTwój kontakt zostanie poproszony później o odpowiedź na to samo pytanie i jeśli udzieli tej samej odpowiedzi (ważna jest wielkość liter), tożsamość zostanie zwerfikowana."
+         ],
+         "What is your security question?": [
+            null,
+            "Jakie jest pytanie bezpieczeństwa?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "Jaka jest odpowiedź na pytanie bezpieczeństwa?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "Niewłaściwy schemat autoryzacji"
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "Twoje wiadomości nie są już szyfrowane"
+         ],
+         "Your messages are now encrypted but your contact's identity has not been verified.": [
+            null,
+            "Wiadomości są teraz szyfrowane, ale tożsamość kontaktu nie została zweryfikowana."
+         ],
+         "Your contact's identify has been verified.": [
+            null,
+            "Tożsamość kontaktu została zweryfikowana"
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            "Kontakt zakończył sesję szyfrowaną, powinieneś zrobić to samo."
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "Twoje wiadomości nie są szyfrowane. Kliknij, aby uruchomić szyfrowanie OTR"
+         ],
+         "Your messages are encrypted, but your contact has not been verified.": [
+            null,
+            "Wiadomości są szyfrowane, ale tożsamość kontaktu nie została zweryfikowana."
+         ],
+         "Your messages are encrypted and your contact verified.": [
+            null,
+            "Wiadomości są szyfrowane i tożsamość kontaktu została zweryfikowana."
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            "Kontakt zakończył prywatną rozmowę i ty zrób to samo"
+         ],
+         "Clear all messages": [
+            null,
+            "Wyczyść wszystkie wiadomości"
+         ],
+         "End encrypted conversation": [
+            null,
+            "Zakończ szyfrowaną rozmowę"
+         ],
+         "Hide the list of participants": [
+            null,
+            "Ukryj listę rozmówców"
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "Odśwież szyfrowaną rozmowę"
+         ],
+         "Start a call": [
+            null,
+            "Zadzwoń"
+         ],
+         "Start encrypted conversation": [
+            null,
+            "Rozpocznij szyfrowaną rozmowę"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "Zweryfikuj za pomocą odcisków palców"
+         ],
+         "Verify with SMP": [
+            null,
+            "Zweryfikuj za pomocą SMP"
+         ],
+         "What's this?": [
+            null,
+            "Co to jest?"
+         ],
+         "Online": [
+            null,
+            "Dostępny"
+         ],
+         "Busy": [
+            null,
+            "Zajęty"
+         ],
+         "Away": [
+            null,
+            "Nieobecny"
+         ],
+         "Offline": [
+            null,
+            "Rozłączony"
+         ],
+         "Log out": [
+            null,
+            "Wyloguj"
+         ],
+         "Contact name": [
+            null,
+            "Nazwa kontaktu"
+         ],
+         "Search": [
+            null,
+            "Szukaj"
+         ],
+         "Contact username": [
+            null,
+            "Ksywka kontaktu"
+         ],
+         "Add": [
+            null,
+            "Dodaj"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Kliknij aby dodać nowe kontakty"
+         ],
+         "Add a contact": [
+            null,
+            "Dodaj kontakt"
+         ],
+         "No users found": [
+            null,
+            "Nie znaleziono użytkowników"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Kliknij aby dodać jako kontakt"
+         ],
+         "Room name": [
+            null,
+            "Nazwa pokoju"
+         ],
+         "Nickname": [
+            null,
+            "Ksywka"
+         ],
+         "Server": [
+            null,
+            "Serwer"
+         ],
+         "Join": [
+            null,
+            "Dołącz"
+         ],
+         "Show rooms": [
+            null,
+            "Pokaż pokoje"
+         ],
+         "Rooms": [
+            null,
+            "Pokoje"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Brak jest pokojów na %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Pokoje na %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "Kliknij aby wejść do pokoju"
+         ],
+         "Show more information on this room": [
+            null,
+            "Pokaż więcej informacji o pokoju"
+         ],
+         "Description:": [
+            null,
+            "Opis:"
+         ],
+         "Occupants:": [
+            null,
+            "Uczestnicy:"
+         ],
+         "Features:": [
+            null,
+            "Możliwości:"
+         ],
+         "Requires authentication": [
+            null,
+            "Wymaga autoryzacji"
+         ],
+         "Hidden": [
+            null,
+            "Ukryty"
+         ],
+         "Requires an invitation": [
+            null,
+            "Wymaga zaproszenia"
+         ],
+         "Moderated": [
+            null,
+            "Moderowany"
+         ],
+         "Non-anonymous": [
+            null,
+            "Nieanonimowy"
+         ],
+         "Open room": [
+            null,
+            "Otwarty pokój"
+         ],
+         "Permanent room": [
+            null,
+            "Stały pokój"
+         ],
+         "Public": [
+            null,
+            "Publiczny"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Półanonimowy"
+         ],
+         "Temporary room": [
+            null,
+            "Pokój tymczasowy"
+         ],
+         "Unmoderated": [
+            null,
+            "Niemoderowany"
+         ],
+         "This user is a moderator": [
+            null,
+            "Ten człowiek jest moderatorem"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Ten człowiek może rozmawiać w niejszym pokoju"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Ten człowiek nie może rozmawiać w niniejszym pokoju"
+         ],
+         "Invite...": [
+            null,
+            "Zaproś..."
+         ],
+         "Occupants": [
+            null,
+            "Uczestników"
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            "Zamierzasz zaprosić %1$s do pokoju rozmów \"%2$s\". "
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            "Masz opcjonalną możliwość dołączenia wiadomości, która wyjaśni przyczynę zaproszenia."
+         ],
+         "Message": [
+            null,
+            "Wiadomość:"
+         ],
+         "Error: could not execute the command": [
+            null,
+            "Błąd: nie potrafię uruchomić polecenia"
+         ],
+         "Ban user from room": [
+            null,
+            "Zablokuj dostępu do pokoju"
+         ],
+         "Kick user from room": [
+            null,
+            "Wykop z pokoju"
+         ],
+         "Write in 3rd person": [
+            null,
+            "Pisz w trzeciej osobie"
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            "Zablokuj człowiekowi możliwość rozmowy"
+         ],
+         "Change your nickname": [
+            null,
+            "Zmień ksywkę"
+         ],
+         "Set room topic": [
+            null,
+            "Ustaw temat pokoju"
+         ],
+         "Allow muted user to post messages": [
+            null,
+            "Pozwól uciszonemu człowiekowi na rozmowę"
+         ],
+         "Save": [
+            null,
+            "Zachowaj"
+         ],
+         "Cancel": [
+            null,
+            "Anuluj"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Wystąpił błąd w czasie próby zachowania formularza."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Pokój rozmów wymaga podania hasła"
+         ],
+         "Password: ": [
+            null,
+            "Hasło:"
+         ],
+         "Submit": [
+            null,
+            "Wyślij"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Pokój nie jest anonimowy"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Pokój pokazuje niedostępnych rozmówców"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Ten pokój nie wyświetla niedostępnych członków"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Ustawienia pokoju nie związane z prywatnością zostały zmienione"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "Zostało włączone zapisywanie rozmów w pokoju"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "Zostało wyłączone zapisywanie rozmów w pokoju"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Pokój stał się nieanonimowy"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Pokój stał się półanonimowy"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Pokój jest teraz w pełni anonimowy"
+         ],
+         "A new room has been created": [
+            null,
+            "Został utworzony nowy pokój"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Jesteś niemile widziany w tym pokoju"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Zostałeś wykopany z pokoju"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Zostałeś usunięty z pokoju ze względu na zmianę przynależności"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Zostałeś usunięty z pokoju ze względu na to, że pokój zmienił się na wymagający członkowstwa, a ty nie jesteś członkiem"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Zostałeś usunięty z pokoju ze względu na to, że serwis MUC(Multi-user chat) został wyłączony."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> został zbanowany"
+         ],
+         "<strong>%1$s</strong>'s nickname has changed": [
+            null,
+            "<strong>%1$s</strong> zmienił ksywkę"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> został wykopany"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> został usunięty z powodu zmiany przynależności"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> został usunięty ze względu na to, że nie jest członkiem"
+         ],
+         "Your nickname has been automatically changed to: <strong>%1$s</strong>": [
+            null,
+            "Twoja ksywka została automatycznie zmieniona na: <strong>%1$s</strong>"
+         ],
+         "Your nickname has been changed to: <strong>%1$s</strong>": [
+            null,
+            "Twoja ksywka została zmieniona na: <strong>%1$s</strong>"
+         ],
+         "The reason given is: \"": [
+            null,
+            "Podana przyczyna to: \""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Nie jesteś członkiem tego pokoju rozmów"
+         ],
+         "No nickname was specified": [
+            null,
+            "Nie podałeś ksywki"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Nie masz uprawnień do tworzenia nowych pokojów rozmów"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Twoja ksywka nie jest zgodna z regulaminem pokoju"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Twoja ksywka jest już w użyciu"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Ten pokój (jeszcze) nie istnieje"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Pokój przekroczył dozwoloną ilość rozmówców"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Temat ustawiony przez %1$s na: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            "%1$s zaprosił(a) cię do wejścia do pokoju rozmów %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            "%1$s zaprosił cię do pokoju: %2$s, podając następujący powód: \"%3$s\""
+         ],
+         "Click to restore this chat": [
+            null,
+            "Kliknij aby powrócić do rozmowy"
+         ],
+         "Minimized": [
+            null,
+            "Zminimalizowany"
+         ],
+         "Click to remove this contact": [
+            null,
+            "Kliknij aby usunąć kontakt"
+         ],
+         "Click to accept this contact request": [
+            null,
+            "Klknij aby zaakceptować życzenie nawiązania kontaktu"
+         ],
+         "Click to decline this contact request": [
+            null,
+            "Kliknij aby odrzucić życzenie nawiązania kontaktu"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Kliknij aby porozmawiać z kontaktem"
+         ],
+         "Are you sure you want to remove this contact?": [
+            null,
+            "Czy potwierdzasz zamiar usnunięcia tego kontaktu?"
+         ],
+         "Are you sure you want to decline this contact request?": [
+            null,
+            "Czy potwierdzasz odrzucenie chęci nawiązania kontaktu?"
+         ],
+         "Type to filter": [
+            null,
+            "Zacznij pisać, aby odfiltrować"
+         ],
+         "I am %1$s": [
+            null,
+            "Jestem %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Kliknij aby wpisać nowy status"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Kliknij aby zmienić status rozmowy"
+         ],
+         "Custom status": [
+            null,
+            "Własny status"
+         ],
+         "online": [
+            null,
+            "dostępny"
+         ],
+         "busy": [
+            null,
+            "zajęty"
+         ],
+         "away for long": [
+            null,
+            "dłużej nieobecny"
+         ],
+         "away": [
+            null,
+            "nieobecny"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            "Domena twojego dostawcy XMPP:"
+         ],
+         "Fetch registration form": [
+            null,
+            "Pobierz formularz rejestracyjny"
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            "Wskazówka: dostępna jest lista publicznych dostawców XMPP"
+         ],
+         "here": [
+            null,
+            "tutaj"
+         ],
+         "Register": [
+            null,
+            "Zarejestruj"
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            "Przepraszamy, ale podany dostawca nie obsługuje rejestracji. Spróbuj wskazać innego dostawcę."
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            "Pobieranie formularza rejestracyjnego z serwera XMPP"
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            "Coś nie zadziałało przy próbie połączenia z \"%1$s\". Jesteś pewien że istnieje?"
+         ],
+         "Now logging you in": [
+            null,
+            "Teraz jesteś logowany"
+         ],
+         "Registered successfully": [
+            null,
+            "Szczęśliwie zarejestrowany"
+         ],
+         "Return": [
+            null,
+            "Powrót"
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            "Dostawca odrzucił twoją próbę rejestracji. "
+         ],
+         "XMPP Username:": [
+            null,
+            "Nazwa użytkownika XMPP:"
+         ],
+         "Password:": [
+            null,
+            "Hasło:"
+         ],
+         "Log In": [
+            null,
+            "Zaloguj się"
+         ],
+         "Sign in": [
+            null,
+            "Zarejestruj się"
+         ],
+         "Toggle chat": [
+            null,
+            "Przełącz rozmowę"
+         ]
+      }
+   }
+};
+locales["pt_br"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "plural_forms": "nplurals=2; plural=(n > 1);",
+            "lang": "pt_BR"
+         },
+         "unencrypted": [
+            null,
+            "não-criptografado"
+         ],
+         "unverified": [
+            null,
+            "não-verificado"
+         ],
+         "verified": [
+            null,
+            "verificado"
+         ],
+         "finished": [
+            null,
+            "finalizado"
+         ],
+         "This contact is busy": [
+            null,
+            "Este contato está ocupado"
+         ],
+         "This contact is online": [
+            null,
+            "Este contato está online"
+         ],
+         "This contact is offline": [
+            null,
+            "Este contato está offline"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Este contato está indisponível"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "Este contato está ausente por um longo período"
+         ],
+         "This contact is away": [
+            null,
+            "Este contato está ausente"
+         ],
+         "My contacts": [
+            null,
+            "Meus contatos"
+         ],
+         "Pending contacts": [
+            null,
+            "Contados pendentes"
+         ],
+         "Contact requests": [
+            null,
+            "Solicitação de contatos"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Contatos"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Erro"
+         ],
+         "Connecting": [
+            null,
+            "Conectando"
+         ],
+         "Authenticating": [
+            null,
+            "Autenticando"
+         ],
+         "Authentication Failed": [
+            null,
+            "Falha de autenticação"
+         ],
+         "Online Contacts": [
+            null,
+            "Contatos online"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "Reestabelecendo sessão criptografada"
+         ],
+         "Generating private key.": [
+            null,
+            "Gerando chave-privada."
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            "Seu navegador pode parar de responder."
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "Não foi possível verificar a identidade deste usuário."
+         ],
+         "Personal message": [
+            null,
+            "Mensagem pessoal"
+         ],
+         "me": [
+            null,
+            "eu"
+         ],
+         "Show this menu": [
+            null,
+            "Mostrar o menu"
+         ],
+         "Write in the third person": [
+            null,
+            "Escrever em terceira pessoa"
+         ],
+         "Remove messages": [
+            null,
+            "Remover mensagens"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            "Tem certeza que deseja limpar as mensagens dessa caixa?"
+         ],
+         "Your message could not be sent": [
+            null,
+            "Sua mensagem não pode ser enviada"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "Recebemos uma mensagem não-criptografada"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "Recebemos uma mensagem não-criptografada ilegível"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "Usuário pediu uma sessão criptografada."
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "Aqui estão as assinaturas digitais, por favor confirme elas com %1$s, fora deste chat.\n\nAssinatura para você, %2$s: %3$s\n\nAssinatura para %1$s: %4$s\n\nSe você tiver confirmado que as assinaturas conferem, clique OK, caso contrário, clique Cancelar."
+         ],
+         "What is your security question?": [
+            null,
+            "Qual é a sua pergunta de segurança?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "Qual é a resposta para a pergunta de segurança?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "Schema de autenticação fornecido é inválido"
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "Suas mensagens não estão mais criptografadas"
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "Suas mensagens não estão criptografadas. Clique aqui para habilitar criptografia OTR."
+         ],
+         "End encrypted conversation": [
+            null,
+            "Finalizar conversa criptografada"
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "Atualizar conversa criptografada"
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            "Iniciar conversa criptografada"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "Verificar com assinatura digital"
+         ],
+         "Verify with SMP": [
+            null,
+            "Verificar com SMP"
+         ],
+         "What's this?": [
+            null,
+            "O que é isso?"
+         ],
+         "Online": [
+            null,
+            "Online"
+         ],
+         "Busy": [
+            null,
+            "Ocupado"
+         ],
+         "Away": [
+            null,
+            "Ausente"
+         ],
+         "Offline": [
+            null,
+            "Offline"
+         ],
+         "Contact name": [
+            null,
+            "Nome do contato"
+         ],
+         "Search": [
+            null,
+            "Procurar"
+         ],
+         "Contact username": [
+            null,
+            "Usuário do contatt"
+         ],
+         "Add": [
+            null,
+            "Adicionar"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Clique para adicionar novos contatos ao chat"
+         ],
+         "Add a contact": [
+            null,
+            "Adicionar contato"
+         ],
+         "No users found": [
+            null,
+            "Não foram encontrados usuários"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Clique para adicionar como um contato do chat"
+         ],
+         "Room name": [
+            null,
+            "Nome da sala"
+         ],
+         "Nickname": [
+            null,
+            "Apelido"
+         ],
+         "Server": [
+            null,
+            "Server"
+         ],
+         "Join": [
+            null,
+            "Entrar"
+         ],
+         "Show rooms": [
+            null,
+            "Mostar salas"
+         ],
+         "Rooms": [
+            null,
+            "Salas"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Sem salas em %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Salas em %1$s"
+         ],
+         "Click to open this room": [
+            null,
+            "CLique para abrir a sala"
+         ],
+         "Show more information on this room": [
+            null,
+            "Mostrar mais informações nessa sala"
+         ],
+         "Description:": [
+            null,
+            "Descrição:"
+         ],
+         "Occupants:": [
+            null,
+            "Ocupantes:"
+         ],
+         "Features:": [
+            null,
+            "Recursos:"
+         ],
+         "Requires authentication": [
+            null,
+            "Requer autenticação"
+         ],
+         "Hidden": [
+            null,
+            "Escondido"
+         ],
+         "Requires an invitation": [
+            null,
+            "Requer um convite"
+         ],
+         "Moderated": [
+            null,
+            "Moderado"
+         ],
+         "Non-anonymous": [
+            null,
+            "Não anônimo"
+         ],
+         "Open room": [
+            null,
+            "Sala aberta"
+         ],
+         "Permanent room": [
+            null,
+            "Sala permanente"
+         ],
+         "Public": [
+            null,
+            "Público"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Semi anônimo"
+         ],
+         "Temporary room": [
+            null,
+            "Sala temporária"
+         ],
+         "Unmoderated": [
+            null,
+            "Sem moderação"
+         ],
+         "This user is a moderator": [
+            null,
+            "Esse usuário é o moderador"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Esse usuário pode enviar mensagens nessa sala"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Esse usuário NÃO pode enviar mensagens nessa sala"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Mensagem"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Salvar"
+         ],
+         "Cancel": [
+            null,
+            "Cancelar"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "Ocorreu um erro enquanto tentava salvar o formulário"
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Esse chat precisa de senha"
+         ],
+         "Password: ": [
+            null,
+            "Senha: "
+         ],
+         "Submit": [
+            null,
+            "Enviar"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Essa sala não é anônima"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Agora esta sala mostra membros indisponíveis"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Essa sala não mostra membros indisponíveis"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "Configuraçõs não relacionadas à privacidade mudaram"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "O log da sala está ativado"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "O log da sala está desativado"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Esse sala é não anônima"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Essa sala agora é semi anônima"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Essa sala agora é totalmente anônima"
+         ],
+         "A new room has been created": [
+            null,
+            "Uma nova sala foi criada"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Você foi banido dessa sala"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Você foi expulso dessa sala"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "Você foi removido da sala devido a uma mudança de associação"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Você foi removido da sala porque ela foi mudada para somente membrose você não é um membro"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Você foi removido da sala devido a MUC (Multi-user chat)o serviço está sendo desligado"
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> foi banido"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> foi expulso"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<srtong>%1$s</strong> foi removido por causa de troca de associação"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> foi removido por não ser um membro"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Você não é membro dessa sala"
+         ],
+         "No nickname was specified": [
+            null,
+            "Você não escolheu um apelido "
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Você não tem permitição de criar novas salas"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Seu apelido não está de acordo com as regras da sala"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Seu apelido já foi escolhido"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "A sala não existe (ainda)"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "A sala atingiu o número máximo de ocupantes"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Topico definido por %1$s para: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            "Minimizado"
+         ],
+         "Click to remove this contact": [
+            null,
+            "Clique para remover o contato"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Clique para conversar com o contato"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "Estou %1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Clique aqui para customizar a mensagem de status"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Clique para mudar seu status no chat"
+         ],
+         "Custom status": [
+            null,
+            "Status customizado"
+         ],
+         "online": [
+            null,
+            "online"
+         ],
+         "busy": [
+            null,
+            "ocupado"
+         ],
+         "away for long": [
+            null,
+            "ausente a bastante tempo"
+         ],
+         "away": [
+            null,
+            "ausente"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Senha:"
+         ],
+         "Log In": [
+            null,
+            "Entrar"
+         ],
+         "Sign in": [
+            null,
+            "Conectar-se"
+         ],
+         "Toggle chat": [
+            null,
+            "Alternar bate-papo"
+         ]
+      }
+   }
+};
+locales["ru"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "lang": "ru"
+         },
+         "unencrypted": [
+            null,
+            "не зашифровано"
+         ],
+         "unverified": [
+            null,
+            "непроверено"
+         ],
+         "verified": [
+            null,
+            "проверено"
+         ],
+         "finished": [
+            null,
+            "закончено"
+         ],
+         "This contact is busy": [
+            null,
+            "Занят"
+         ],
+         "This contact is online": [
+            null,
+            "В сети"
+         ],
+         "This contact is offline": [
+            null,
+            "Не в сети"
+         ],
+         "This contact is unavailable": [
+            null,
+            "Не доступен"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "На долго отошёл"
+         ],
+         "This contact is away": [
+            null,
+            "Отошёл"
+         ],
+         "My contacts": [
+            null,
+            "Контакты"
+         ],
+         "Pending contacts": [
+            null,
+            "Собеседники ожидающие авторизации"
+         ],
+         "Contact requests": [
+            null,
+            "Запросы на авторизацию"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "Контакты"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "Ошибка"
+         ],
+         "Connecting": [
+            null,
+            "Соединение"
+         ],
+         "Authenticating": [
+            null,
+            "Авторизация"
+         ],
+         "Authentication Failed": [
+            null,
+            "Не удалось авторизоваться"
+         ],
+         "Online Contacts": [
+            null,
+            "Cписок собеседников"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            ""
+         ],
+         "Generating private key.": [
+            null,
+            ""
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            ""
+         ],
+         "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
+            null,
+            ""
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            ""
+         ],
+         "Exchanging private key with contact.": [
+            null,
+            ""
+         ],
+         "Personal message": [
+            null,
+            "Введите сообщение"
+         ],
+         "me": [
+            null,
+            "Я"
+         ],
+         "is typing": [
+            null,
+            ""
+         ],
+         "has stopped typing": [
+            null,
+            ""
+         ],
+         "Show this menu": [
+            null,
+            "Показать это меню"
+         ],
+         "Write in the third person": [
+            null,
+            ""
+         ],
+         "Remove messages": [
+            null,
+            "Удалить сообщения"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            ""
+         ],
+         "Your message could not be sent": [
+            null,
+            "Ваше сообщение не послано"
+         ],
+         "We received an unencrypted message": [
+            null,
+            ""
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            ""
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            ""
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            ""
+         ],
+         "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
+            null,
+            ""
+         ],
+         "What is your security question?": [
+            null,
+            ""
+         ],
+         "What is the answer to the security question?": [
+            null,
+            ""
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "Ваши сообщения больше не шифруются"
+         ],
+         "Your contact has ended encryption on their end, you should do the same.": [
+            null,
+            ""
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "Ваши сообщения не шифруются. Нажмите здесь чтобы настроить шифрование."
+         ],
+         "Your contact has closed their end of the private session, you should do the same": [
+            null,
+            ""
+         ],
+         "End encrypted conversation": [
+            null,
+            ""
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            ""
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            ""
+         ],
+         "Verify with fingerprints": [
+            null,
+            ""
+         ],
+         "Verify with SMP": [
+            null,
+            ""
+         ],
+         "What's this?": [
+            null,
+            "Что это?"
+         ],
+         "Online": [
+            null,
+            "В сети"
+         ],
+         "Busy": [
+            null,
+            "Занят"
+         ],
+         "Away": [
+            null,
+            "Отошёл"
+         ],
+         "Offline": [
+            null,
+            "Не в сети"
+         ],
+         "Contact name": [
+            null,
+            "Имя контакта"
+         ],
+         "Search": [
+            null,
+            "Поиск"
+         ],
+         "Contact username": [
+            null,
+            "Имя пользователя"
+         ],
+         "Add": [
+            null,
+            "Добавить"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "Добавить новую конференцию"
+         ],
+         "Add a contact": [
+            null,
+            "Добавть контакт"
+         ],
+         "No users found": [
+            null,
+            "Пользователи не найдены"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "Добавить контакт"
+         ],
+         "Room name": [
+            null,
+            "Имя конференции"
+         ],
+         "Nickname": [
+            null,
+            "Псевдоним"
+         ],
+         "Server": [
+            null,
+            "Сервер"
+         ],
+         "Join": [
+            null,
+            "Подключиться"
+         ],
+         "Show rooms": [
+            null,
+            "Обновить"
+         ],
+         "Rooms": [
+            null,
+            "Конфер."
+         ],
+         "No rooms on %1$s": [
+            null,
+            "Нет доступных конференций %1$s"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "Конференции %1$s:"
+         ],
+         "Click to open this room": [
+            null,
+            "Зайти в конференцию"
+         ],
+         "Show more information on this room": [
+            null,
+            "Показать больше информации об этой конференции"
+         ],
+         "Description:": [
+            null,
+            "Описание:"
+         ],
+         "Occupants:": [
+            null,
+            "Участники:"
+         ],
+         "Features:": [
+            null,
+            "Свойства:"
+         ],
+         "Requires authentication": [
+            null,
+            "Требуется авторизация"
+         ],
+         "Hidden": [
+            null,
+            "Скрыто"
+         ],
+         "Requires an invitation": [
+            null,
+            "Требуется приглашение"
+         ],
+         "Moderated": [
+            null,
+            "Модерируемая"
+         ],
+         "Non-anonymous": [
+            null,
+            "Не анонимная"
+         ],
+         "Open room": [
+            null,
+            "Открыть конференцию"
+         ],
+         "Permanent room": [
+            null,
+            "Перманентная конференция"
+         ],
+         "Public": [
+            null,
+            "Публичный"
+         ],
+         "Semi-anonymous": [
+            null,
+            "Частично анонимная"
+         ],
+         "Temporary room": [
+            null,
+            "Временная конференция"
+         ],
+         "Unmoderated": [
+            null,
+            "Немодерируемая"
+         ],
+         "This user is a moderator": [
+            null,
+            "Модератор"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "Собеседник"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "Пользователь не может посылать сообщения в эту комнату"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "Сообщение"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Write in 3rd person": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "Сохранить"
+         ],
+         "Cancel": [
+            null,
+            "Отменить"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "При сохранение формы произошла ошибка."
+         ],
+         "This chatroom requires a password": [
+            null,
+            "Для доступа в конфер. необходим пароль."
+         ],
+         "Password: ": [
+            null,
+            "Пароль: "
+         ],
+         "Submit": [
+            null,
+            "Отправить"
+         ],
+         "This room is not anonymous": [
+            null,
+            "Эта комната не анонимная"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "Эта комната показывает доступных собеседников"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "Эта комната не показывает недоступных собеседников"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            ""
+         ],
+         "Room logging is now enabled": [
+            null,
+            ""
+         ],
+         "Room logging is now disabled": [
+            null,
+            ""
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "Эта комната не анонимная"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "Эта комната частично анонимная"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "Эта комната стала полностью анонимной"
+         ],
+         "A new room has been created": [
+            null,
+            "Новая комната была создана"
+         ],
+         "You have been banned from this room": [
+            null,
+            "Вам запрещено подключатся к этой конференции"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "Вам запрещено подключатся к этой конференции"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> удалён потому что изменились права"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Вы отключены от этой конференции потому что режим изменился: только-участники"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "Вы отключены от этой конференции потому что сервись конференций выключен."
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> забанен"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> выдворен"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "<strong>%1$s</strong> has been removed because of an affiliation change"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "<strong>%1$s</strong> удалён потому что не участник"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "Вас нет в списке этой конференции"
+         ],
+         "No nickname was specified": [
+            null,
+            "Вы не указали псевдоним"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "Вы не имеете права создавать конфер."
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "Псевдоним не согласуется с правилами конфер."
+         ],
+         "Your nickname is already taken": [
+            null,
+            "Ваш ник уже используется другим пользователем"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "Эта комната не существует"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "Конференция достигла максимального количества участников"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "Тема %2$s устатновлена %1$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            ""
+         ],
+         "Click to remove this contact": [
+            null,
+            "Удалить контакт"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "Начать общение"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "%1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "Редактировать произвольный статус"
+         ],
+         "Click to change your chat status": [
+            null,
+            "Изменить ваш статус"
+         ],
+         "Custom status": [
+            null,
+            "Произвольный статус"
+         ],
+         "online": [
+            null,
+            "на связи"
+         ],
+         "busy": [
+            null,
+            "занят"
+         ],
+         "away for long": [
+            null,
+            "отошёл на долго"
+         ],
+         "away": [
+            null,
+            "отошёл"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "Пароль:"
+         ],
+         "Log In": [
+            null,
+            "Войти"
+         ],
+         "Sign in": [
+            null,
+            "Подписать"
+         ],
+         "Toggle chat": [
+            null,
+            ""
+         ]
+      }
+   }
+};
+locales["zh"] = {
+   "domain": "converse",
+   "locale_data": {
+      "converse": {
+         "": {
+            "domain": "converse",
+            "lang": "zh"
+         },
+         "unencrypted": [
+            null,
+            "未加密"
+         ],
+         "unverified": [
+            null,
+            "未验证"
+         ],
+         "verified": [
+            null,
+            "已验证"
+         ],
+         "finished": [
+            null,
+            "结束了"
+         ],
+         "This contact is busy": [
+            null,
+            "对方忙碌中"
+         ],
+         "This contact is online": [
+            null,
+            "对方在线中"
+         ],
+         "This contact is offline": [
+            null,
+            "对方已下线"
+         ],
+         "This contact is unavailable": [
+            null,
+            "对方免打扰"
+         ],
+         "This contact is away for an extended period": [
+            null,
+            "对方暂时离开"
+         ],
+         "This contact is away": [
+            null,
+            "对方离开"
+         ],
+         "My contacts": [
+            null,
+            "我的好友列表"
+         ],
+         "Pending contacts": [
+            null,
+            "保留中的联系人"
+         ],
+         "Contact requests": [
+            null,
+            "来自好友的请求"
+         ],
+         "Ungrouped": [
+            null,
+            ""
+         ],
+         "Contacts": [
+            null,
+            "联系人"
+         ],
+         "Groups": [
+            null,
+            ""
+         ],
+         "Error": [
+            null,
+            "错误"
+         ],
+         "Connecting": [
+            null,
+            "连接中"
+         ],
+         "Authenticating": [
+            null,
+            "验证中"
+         ],
+         "Authentication Failed": [
+            null,
+            "验证失败"
+         ],
+         "Online Contacts": [
+            null,
+            "在线好友"
+         ],
+         "Re-establishing encrypted session": [
+            null,
+            "重新建立加密会话"
+         ],
+         "Generating private key.": [
+            null,
+            "正在生成私钥"
+         ],
+         "Your browser might become unresponsive.": [
+            null,
+            "您的浏览器可能会暂时无响应"
+         ],
+         "Could not verify this user's identify.": [
+            null,
+            "无法验证对方信息。"
+         ],
+         "Personal message": [
+            null,
+            "私信"
+         ],
+         "me": [
+            null,
+            "我"
+         ],
+         "is typing": [
+            null,
+            ""
+         ],
+         "has stopped typing": [
+            null,
+            ""
+         ],
+         "Show this menu": [
+            null,
+            "显示此项菜单"
+         ],
+         "Write in the third person": [
+            null,
+            "以第三者身份写"
+         ],
+         "Remove messages": [
+            null,
+            "移除消息"
+         ],
+         "Are you sure you want to clear the messages from this chat box?": [
+            null,
+            "你确定清除此次的聊天记录吗?"
+         ],
+         "Your message could not be sent": [
+            null,
+            "您的消息无法送出"
+         ],
+         "We received an unencrypted message": [
+            null,
+            "我们收到了一条未加密的信息"
+         ],
+         "We received an unreadable encrypted message": [
+            null,
+            "我们收到一条无法读取的信息"
+         ],
+         "This user has requested an encrypted session.": [
+            null,
+            "此用户请求了一个加密会话。"
+         ],
+         "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
+            null,
+            "这里是指纹。请与 %1$s 确认。\n\n您的 %2$s 指纹: %3$s\n\n%1$s 的指纹: %4$s\n\n如果确认符合,请点击OK,否则点击取消"
+         ],
+         "What is your security question?": [
+            null,
+            "您的安全问题是?"
+         ],
+         "What is the answer to the security question?": [
+            null,
+            "此安全问题的答案是?"
+         ],
+         "Invalid authentication scheme provided": [
+            null,
+            "非法的认证方式"
+         ],
+         "Your messages are not encrypted anymore": [
+            null,
+            "您的消息将不再被加密"
+         ],
+         "Your messages are not encrypted. Click here to enable OTR encryption.": [
+            null,
+            "您的消息未加密。点击这里来启用OTR加密"
+         ],
+         "End encrypted conversation": [
+            null,
+            "结束加密的会话"
+         ],
+         "Hide the list of participants": [
+            null,
+            ""
+         ],
+         "Refresh encrypted conversation": [
+            null,
+            "刷新加密的会话"
+         ],
+         "Start a call": [
+            null,
+            ""
+         ],
+         "Start encrypted conversation": [
+            null,
+            "开始加密的会话"
+         ],
+         "Verify with fingerprints": [
+            null,
+            "验证指纹"
+         ],
+         "Verify with SMP": [
+            null,
+            "验证SMP"
+         ],
+         "What's this?": [
+            null,
+            "这是什么?"
+         ],
+         "Online": [
+            null,
+            "在线"
+         ],
+         "Busy": [
+            null,
+            "忙碌中"
+         ],
+         "Away": [
+            null,
+            "离开"
+         ],
+         "Offline": [
+            null,
+            "离线"
+         ],
+         "Contact name": [
+            null,
+            "联系人名称"
+         ],
+         "Search": [
+            null,
+            "搜索"
+         ],
+         "Contact username": [
+            null,
+            "联系人姓名"
+         ],
+         "Add": [
+            null,
+            "添加"
+         ],
+         "Click to add new chat contacts": [
+            null,
+            "点击添加新联系人"
+         ],
+         "Add a contact": [
+            null,
+            "添加联系人"
+         ],
+         "No users found": [
+            null,
+            "未找到用户"
+         ],
+         "Click to add as a chat contact": [
+            null,
+            "点击添加为好友"
+         ],
+         "Room name": [
+            null,
+            "聊天室名称"
+         ],
+         "Nickname": [
+            null,
+            "昵称"
+         ],
+         "Server": [
+            null,
+            "服务器"
+         ],
+         "Join": [
+            null,
+            "加入"
+         ],
+         "Show rooms": [
+            null,
+            "显示所有聊天室"
+         ],
+         "Rooms": [
+            null,
+            "聊天室"
+         ],
+         "No rooms on %1$s": [
+            null,
+            "%1$s 上没有聊天室"
+         ],
+         "Rooms on %1$s": [
+            null,
+            "%1$s 上的聊天室"
+         ],
+         "Click to open this room": [
+            null,
+            "打开聊天室"
+         ],
+         "Show more information on this room": [
+            null,
+            "显示次聊天室的更多信息"
+         ],
+         "Description:": [
+            null,
+            "描述: "
+         ],
+         "Occupants:": [
+            null,
+            "成员:"
+         ],
+         "Features:": [
+            null,
+            "特性:"
+         ],
+         "Requires authentication": [
+            null,
+            "需要验证"
+         ],
+         "Hidden": [
+            null,
+            "隐藏的"
+         ],
+         "Requires an invitation": [
+            null,
+            "需要被邀请"
+         ],
+         "Moderated": [
+            null,
+            "发言受限"
+         ],
+         "Non-anonymous": [
+            null,
+            "非匿名"
+         ],
+         "Open room": [
+            null,
+            "打开聊天室"
+         ],
+         "Permanent room": [
+            null,
+            "永久聊天室"
+         ],
+         "Public": [
+            null,
+            "公开的"
+         ],
+         "Semi-anonymous": [
+            null,
+            "半匿名"
+         ],
+         "Temporary room": [
+            null,
+            "临时聊天室"
+         ],
+         "Unmoderated": [
+            null,
+            "无发言限制"
+         ],
+         "This user is a moderator": [
+            null,
+            "此用户是主持人"
+         ],
+         "This user can send messages in this room": [
+            null,
+            "此用户在这房间里可发消息"
+         ],
+         "This user can NOT send messages in this room": [
+            null,
+            "此用户不可在此房间发消息"
+         ],
+         "Invite...": [
+            null,
+            ""
+         ],
+         "You are about to invite %1$s to the chat room \"%2$s\". ": [
+            null,
+            ""
+         ],
+         "You may optionally include a message, explaining the reason for the invitation.": [
+            null,
+            ""
+         ],
+         "Message": [
+            null,
+            "信息"
+         ],
+         "Error: could not execute the command": [
+            null,
+            ""
+         ],
+         "Remove user's ability to post messages": [
+            null,
+            ""
+         ],
+         "Change your nickname": [
+            null,
+            ""
+         ],
+         "Allow muted user to post messages": [
+            null,
+            ""
+         ],
+         "Save": [
+            null,
+            "保存"
+         ],
+         "Cancel": [
+            null,
+            "取消"
+         ],
+         "An error occurred while trying to save the form.": [
+            null,
+            "保存表单是出错。"
+         ],
+         "This chatroom requires a password": [
+            null,
+            "此聊天室需要密码"
+         ],
+         "Password: ": [
+            null,
+            "密码:"
+         ],
+         "Submit": [
+            null,
+            "发送"
+         ],
+         "This room is not anonymous": [
+            null,
+            "此为非匿名聊天室"
+         ],
+         "This room now shows unavailable members": [
+            null,
+            "此聊天室显示不可用用户"
+         ],
+         "This room does not show unavailable members": [
+            null,
+            "此聊天室不显示不可用用户"
+         ],
+         "Non-privacy-related room configuration has changed": [
+            null,
+            "此聊天室设置(非私密性)已改变"
+         ],
+         "Room logging is now enabled": [
+            null,
+            "聊天室聊天记录已启用"
+         ],
+         "Room logging is now disabled": [
+            null,
+            "聊天室聊天记录已禁用"
+         ],
+         "This room is now non-anonymous": [
+            null,
+            "此聊天室非匿名"
+         ],
+         "This room is now semi-anonymous": [
+            null,
+            "此聊天室半匿名"
+         ],
+         "This room is now fully-anonymous": [
+            null,
+            "此聊天室完全匿名"
+         ],
+         "A new room has been created": [
+            null,
+            "新聊天室已创建"
+         ],
+         "You have been banned from this room": [
+            null,
+            "您已被此聊天室禁止入内"
+         ],
+         "You have been kicked from this room": [
+            null,
+            "您已被踢出次房间"
+         ],
+         "You have been removed from this room because of an affiliation change": [
+            null,
+            "由于关系变化,您已被移除此房间"
+         ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "您已被移除此房间因为此房间更改为只允许成员加入,而您非成员"
+         ],
+         "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+            null,
+            "由于服务不可用,您已被移除此房间。"
+         ],
+         "<strong>%1$s</strong> has been banned": [
+            null,
+            "<strong>%1$s</strong> 已被禁止"
+         ],
+         "<strong>%1$s</strong> has been kicked out": [
+            null,
+            "<strong>%1$s</strong> 已被踢出"
+         ],
+         "<strong>%1$s</strong> has been removed because of an affiliation change": [
+            null,
+            "由于关系解除、<strong>%1$s</strong> 已被移除"
+         ],
+         "<strong>%1$s</strong> has been removed for not being a member": [
+            null,
+            "由于不是成员、<strong>%1$s</strong> 已被移除"
+         ],
+         "The reason given is: \"": [
+            null,
+            ""
+         ],
+         "You are not on the member list of this room": [
+            null,
+            "您并非此房间成员"
+         ],
+         "No nickname was specified": [
+            null,
+            "未指定昵称"
+         ],
+         "You are not allowed to create new rooms": [
+            null,
+            "您可此创建新房间了"
+         ],
+         "Your nickname doesn't conform to this room's policies": [
+            null,
+            "您的昵称不符合此房间标准"
+         ],
+         "Your nickname is already taken": [
+            null,
+            "您的昵称已被占用"
+         ],
+         "This room does not (yet) exist": [
+            null,
+            "此房间不存在"
+         ],
+         "This room has reached it's maximum number of occupants": [
+            null,
+            "此房间人数已达上线"
+         ],
+         "Topic set by %1$s to: %2$s": [
+            null,
+            "%1$s 设置话题为: %2$s"
+         ],
+         "%1$s has invited you to join a chat room: %2$s": [
+            null,
+            ""
+         ],
+         "%1$s has invited you to join a chat room: %2$s, and left the following reason: \"%3$s\"": [
+            null,
+            ""
+         ],
+         "Minimized": [
+            null,
+            "最小化的"
+         ],
+         "Click to remove this contact": [
+            null,
+            "点击移除联系人"
+         ],
+         "Click to chat with this contact": [
+            null,
+            "点击与对方交谈"
+         ],
+         "Type to filter": [
+            null,
+            ""
+         ],
+         "I am %1$s": [
+            null,
+            "我现在%1$s"
+         ],
+         "Click here to write a custom status message": [
+            null,
+            "点击这里,填写状态信息"
+         ],
+         "Click to change your chat status": [
+            null,
+            "点击这里改变聊天状态"
+         ],
+         "Custom status": [
+            null,
+            "DIY状态"
+         ],
+         "online": [
+            null,
+            "在线"
+         ],
+         "busy": [
+            null,
+            "忙碌"
+         ],
+         "away for long": [
+            null,
+            "长时间离开"
+         ],
+         "away": [
+            null,
+            "离开"
+         ],
+         "Your XMPP provider's domain name:": [
+            null,
+            ""
+         ],
+         "Fetch registration form": [
+            null,
+            ""
+         ],
+         "Tip: A list of public XMPP providers is available": [
+            null,
+            ""
+         ],
+         "here": [
+            null,
+            ""
+         ],
+         "Register": [
+            null,
+            ""
+         ],
+         "Sorry, the given provider does not support in band account registration. Please try with a different provider.": [
+            null,
+            ""
+         ],
+         "Requesting a registration form from the XMPP server": [
+            null,
+            ""
+         ],
+         "Something went wrong while establishing a connection with \"%1$s\". Are you sure it exists?": [
+            null,
+            ""
+         ],
+         "Now logging you in": [
+            null,
+            ""
+         ],
+         "Registered successfully": [
+            null,
+            ""
+         ],
+         "Return": [
+            null,
+            ""
+         ],
+         "The provider rejected your registration attempt. ": [
+            null,
+            ""
+         ],
+         "Password:": [
+            null,
+            "密码:"
+         ],
+         "Log In": [
+            null,
+            "登录"
+         ],
+         "Sign in": [
+            null,
+            "登录"
+         ],
+         "Toggle chat": [
+            null,
+            "折叠聊天窗口"
+         ]
+      }
+   }
+};
\ No newline at end of file
diff --git a/xmpp/converse/builds/templates.js b/xmpp/converse/builds/templates.js
new file mode 100644 (file)
index 0000000..fdff3d9
--- /dev/null
@@ -0,0 +1,1140 @@
+this["templates"] = this["templates"] || {};
+
+this["templates"]["action"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<div class="chat-message ' +
+((__t = (extra_classes)) == null ? '' : __t) +
+'" data-isodate="' +
+((__t = (isodate)) == null ? '' : __t) +
+'">\n    <span class="chat-message-' +
+((__t = (sender)) == null ? '' : __t) +
+'">' +
+((__t = (time)) == null ? '' : __t) +
+' **' +
+((__t = (username)) == null ? '' : __t) +
+' </span>\n    <span class="chat-message-content">' +
+((__t = (message)) == null ? '' : __t) +
+'</span>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["add_contact_dropdown"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<dl class="add-converse-contact dropdown">\n    <dt id="xmpp-contact-search" class="fancy-dropdown">\n        <a class="toggle-xmpp-contact-form" href="#"\n            title="' +
+((__t = (label_click_to_chat)) == null ? '' : __t) +
+'">\n        <span class="icon-plus"></span>' +
+((__t = (label_add_contact)) == null ? '' : __t) +
+'</a>\n    </dt>\n    <dd class="search-xmpp" style="display:none"><ul></ul></dd>\n</dl>\n';
+
+}
+return __p
+};
+
+this["templates"]["add_contact_form"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<li>\n    <form class="add-xmpp-contact">\n        <input type="text"\n            name="identifier"\n            class="username"\n            placeholder="' +
+((__t = (label_contact_username)) == null ? '' : __t) +
+'"/>\n        <button type="submit">' +
+((__t = (label_add)) == null ? '' : __t) +
+'</button>\n    </form>\n</li>\n';
+
+}
+return __p
+};
+
+this["templates"]["change_status_message"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<form id="set-custom-xmpp-status">\n    <span class="input-button-group">\n        <input type="text" class="custom-xmpp-status" ' +
+((__t = (status_message)) == null ? '' : __t) +
+'\n            placeholder="' +
+((__t = (label_custom_status)) == null ? '' : __t) +
+'"/>\n        <button type="submit">' +
+((__t = (label_save)) == null ? '' : __t) +
+'</button>\n    </span>\n</form>\n';
+
+}
+return __p
+};
+
+this["templates"]["chat_status"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<div class="xmpp-status">\n    <a class="choose-xmpp-status ' +
+((__t = (chat_status)) == null ? '' : __t) +
+'"\n       data-value="' +
+((__t = (status_message)) == null ? '' : __t) +
+'"\n       href="#" title="' +
+((__t = (desc_change_status)) == null ? '' : __t) +
+'">\n\n        <span class="icon-' +
+((__t = (chat_status)) == null ? '' : __t) +
+'"></span>' +
+((__t = (status_message)) == null ? '' : __t) +
+'\n    </a>\n    <a class="change-xmpp-status-message icon-pencil"\n        href="#"\n        title="' +
+((__t = (desc_custom_status)) == null ? '' : __t) +
+'"></a>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["chatarea"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<div class="chat-area">\n    <div class="chat-content"></div>\n    <form class="sendXMPPMessage" action="" method="post">\n        ';
+ if (show_toolbar) { ;
+__p += '\n            <ul class="chat-toolbar no-text-select"></ul>\n        ';
+ } ;
+__p += '\n        <textarea type="text" class="chat-textarea" \n            placeholder="' +
+((__t = (label_message)) == null ? '' : __t) +
+'"/>\n    </form>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["chatbox"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<div class="box-flyout" ';
+ if (height) { ;
+__p += ' style="height: ' +
+((__t = (height)) == null ? '' : __t) +
+'px" ';
+ } ;
+__p += '>\n    <div class="dragresize"></div>\n    <div class="chat-head chat-head-chatbox">\n        <a class="close-chatbox-button icon-close"></a>\n        <a class="toggle-chatbox-button icon-minus"></a>\n        <div class="chat-title">\n            ';
+ if (url) { ;
+__p += '\n                <a href="' +
+((__t = (url)) == null ? '' : __t) +
+'" target="_blank" class="user">\n            ';
+ } ;
+__p += '\n                    ' +
+((__t = ( fullname )) == null ? '' : __t) +
+'\n            ';
+ if (url) { ;
+__p += '\n                </a>\n            ';
+ } ;
+__p += '\n        </div>\n        <p class="user-custom-message"><p/>\n    </div>\n    <div class="chat-body">\n        <div class="chat-content"></div>\n        <form class="sendXMPPMessage" action="" method="post">\n            ';
+ if (show_toolbar) { ;
+__p += '\n                <ul class="chat-toolbar no-text-select"></ul>\n            ';
+ } ;
+__p += '\n        <textarea\n            type="text"\n            class="chat-textarea"\n            placeholder="' +
+((__t = (label_personal_message)) == null ? '' : __t) +
+'"/>\n        </form>\n    </div>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["chatroom"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<div class="box-flyout" ';
+ if (height) { ;
+__p += ' style="height: ' +
+((__t = (height)) == null ? '' : __t) +
+'px" ';
+ } ;
+__p += '>\n    <div class="dragresize"></div>\n    <div class="chat-head chat-head-chatroom">\n        <a class="close-chatbox-button icon-close"></a>\n        <a class="toggle-chatbox-button icon-minus"></a>\n        <a class="configure-chatroom-button icon-wrench" style="display:none"></a>\n        <div class="chat-title"> ' +
+((__t = ( _.escape(name) )) == null ? '' : __t) +
+' </div>\n        <p class="chatroom-topic"><p/>\n    </div>\n    <div class="chat-body"><span class="spinner centered"/></div>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["chatroom_password_form"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<div class="chatroom-form-container">\n    <form class="chatroom-form">\n        <legend>' +
+((__t = (heading)) == null ? '' : __t) +
+'</legend>\n        <label>' +
+((__t = (label_password)) == null ? '' : __t) +
+'</label>\n        <input type="password" name="password"/>\n        <input type="submit" value="' +
+((__t = (label_submit)) == null ? '' : __t) +
+'"/>\n    </form>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["chatroom_sidebar"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<!-- <div class="participants"> -->\n<form class="room-invite">\n    <input class="invited-contact" placeholder="' +
+((__t = (label_invitation)) == null ? '' : __t) +
+'" type="text"/>\n</form>\n<label>' +
+((__t = (label_occupants)) == null ? '' : __t) +
+':</label>\n<ul class="participant-list"></ul>\n<!-- </div> -->\n';
+
+}
+return __p
+};
+
+this["templates"]["chatrooms_tab"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<li><a class="s" href="#chatrooms">' +
+((__t = (label_rooms)) == null ? '' : __t) +
+'</a></li>\n';
+
+}
+return __p
+};
+
+this["templates"]["chats_panel"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<div id="minimized-chats">\n    <a id="toggle-minimized-chats" href="#"></a>\n    <div class="minimized-chats-flyout"></div>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["choose_status"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<dl id="target" class="dropdown">\n    <dt id="fancy-xmpp-status-select" class="fancy-dropdown"></dt>\n    <dd><ul class="xmpp-status-menu"></ul></dd>\n</dl>\n';
+
+}
+return __p
+};
+
+this["templates"]["contacts_panel"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<form class="set-xmpp-status" action="" method="post">\n    <span id="xmpp-status-holder">\n        <select id="select-xmpp-status" style="display:none">\n            <option value="online">' +
+((__t = (label_online)) == null ? '' : __t) +
+'</option>\n            <option value="dnd">' +
+((__t = (label_busy)) == null ? '' : __t) +
+'</option>\n            <option value="away">' +
+((__t = (label_away)) == null ? '' : __t) +
+'</option>\n            <option value="offline">' +
+((__t = (label_offline)) == null ? '' : __t) +
+'</option>\n            ';
+ if (allow_logout)  { ;
+__p += '\n            <option value="logout">' +
+((__t = (label_logout)) == null ? '' : __t) +
+'</option>\n            ';
+ } ;
+__p += '\n        </select>\n    </span>\n</form>\n';
+
+}
+return __p
+};
+
+this["templates"]["contacts_tab"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<li><a class="s current" href="#users">' +
+((__t = (label_contacts)) == null ? '' : __t) +
+'</a></li>\n';
+
+}
+return __p
+};
+
+this["templates"]["controlbox"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<div class="box-flyout" ';
+ if (height) { ;
+__p += ' style="height: ' +
+((__t = (height)) == null ? '' : __t) +
+'px" ';
+ } ;
+__p += '>\n    <div class="dragresize"></div>\n    <div class="chat-head controlbox-head">\n        <ul id="controlbox-tabs"></ul>\n        <a class="close-chatbox-button icon-close"></a>\n    </div>\n    <div class="controlbox-panes"></div>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["controlbox_toggle"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<span class="conn-feedback">' +
+((__t = (label_toggle)) == null ? '' : __t) +
+'</span>\n<span style="display: none" id="online-count">(0)</span>\n';
+
+}
+return __p
+};
+
+this["templates"]["field"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<field var="' +
+((__t = (name)) == null ? '' : __t) +
+'">';
+ if (_.isArray(value)) { ;
+__p += '\n    ';
+ _.each(value,function(arrayValue) { ;
+__p += '<value>' +
+((__t = (arrayValue)) == null ? '' : __t) +
+'</value>';
+ }); ;
+__p += '\n';
+ } else { ;
+__p += '\n    <value>' +
+((__t = (value)) == null ? '' : __t) +
+'</value>\n';
+ } ;
+__p += '</field>\n';
+
+}
+return __p
+};
+
+this["templates"]["form_captcha"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+
+ if (label) { ;
+__p += '\n<label>\n    ' +
+((__t = (label)) == null ? '' : __t) +
+'\n</label>\n';
+ } ;
+__p += '\n<img src="data:' +
+((__t = (type)) == null ? '' : __t) +
+';base64,' +
+((__t = (data)) == null ? '' : __t) +
+'">\n<input name="' +
+((__t = (name)) == null ? '' : __t) +
+'" type="text" ';
+ if (required) { ;
+__p += ' class="required" ';
+ } ;
+__p += ' >\n\n\n';
+
+}
+return __p
+};
+
+this["templates"]["form_checkbox"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<label>' +
+((__t = (label)) == null ? '' : __t) +
+'</label>\n<input name="' +
+((__t = (name)) == null ? '' : __t) +
+'" type="' +
+((__t = (type)) == null ? '' : __t) +
+'" ' +
+((__t = (checked)) == null ? '' : __t) +
+'>\n';
+
+}
+return __p
+};
+
+this["templates"]["form_input"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+
+ if (label) { ;
+__p += '\n<label>\n    ' +
+((__t = (label)) == null ? '' : __t) +
+'\n</label>\n';
+ } ;
+__p += '\n<input name="' +
+((__t = (name)) == null ? '' : __t) +
+'" type="' +
+((__t = (type)) == null ? '' : __t) +
+'" \n    ';
+ if (value) { ;
+__p += ' value="' +
+((__t = (value)) == null ? '' : __t) +
+'" ';
+ } ;
+__p += '\n    ';
+ if (required) { ;
+__p += ' class="required" ';
+ } ;
+__p += ' >\n';
+
+}
+return __p
+};
+
+this["templates"]["form_select"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<label>' +
+((__t = (label)) == null ? '' : __t) +
+'</label>\n<select name="' +
+((__t = (name)) == null ? '' : __t) +
+'"  ';
+ if (multiple) { ;
+__p += ' multiple="multiple" ';
+ } ;
+__p += '>' +
+((__t = (options)) == null ? '' : __t) +
+'</select>\n';
+
+}
+return __p
+};
+
+this["templates"]["form_textarea"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<label class="label-ta">' +
+((__t = (label)) == null ? '' : __t) +
+'</label>\n<textarea name="' +
+((__t = (name)) == null ? '' : __t) +
+'">' +
+((__t = (value)) == null ? '' : __t) +
+'</textarea>\n';
+
+}
+return __p
+};
+
+this["templates"]["form_username"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+
+ if (label) { ;
+__p += '\n<label>\n    ' +
+((__t = (label)) == null ? '' : __t) +
+'\n</label>\n';
+ } ;
+__p += '\n<div class="input-group">\n    <input name="' +
+((__t = (name)) == null ? '' : __t) +
+'" type="' +
+((__t = (type)) == null ? '' : __t) +
+'"\n        ';
+ if (value) { ;
+__p += ' value="' +
+((__t = (value)) == null ? '' : __t) +
+'" ';
+ } ;
+__p += '\n        ';
+ if (required) { ;
+__p += ' class="required" ';
+ } ;
+__p += ' />\n    <span title="' +
+((__t = (domain)) == null ? '' : __t) +
+'">' +
+((__t = (domain)) == null ? '' : __t) +
+'</span>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["group_header"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<a href="#" class="group-toggle icon-' +
+((__t = (toggle_state)) == null ? '' : __t) +
+'" title="' +
+((__t = (desc_group_toggle)) == null ? '' : __t) +
+'">' +
+((__t = (label_group)) == null ? '' : __t) +
+'</a>\n';
+
+}
+return __p
+};
+
+this["templates"]["info"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<div class="chat-info">' +
+((__t = (message)) == null ? '' : __t) +
+'</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["login_panel"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<form id="converse-login" method="post">\n    ';
+ if (auto_login) { ;
+__p += '\n        <span class="spinner login-submit"/>\n    ';
+ } ;
+__p += '\n    ';
+ if (!auto_login) { ;
+__p += '\n        ';
+ if (authentication == LOGIN) { ;
+__p += '\n            <label>' +
+((__t = (label_username)) == null ? '' : __t) +
+'</label>\n            <input name="jid" placeholder="' +
+((__t = (placeholder_username)) == null ? '' : __t) +
+'">\n            <label>' +
+((__t = (label_password)) == null ? '' : __t) +
+'</label>\n            <input type="password" name="password" placeholder="' +
+((__t = (placeholder_password)) == null ? '' : __t) +
+'">\n            <input class="submit" type="submit" value="' +
+((__t = (label_login)) == null ? '' : __t) +
+'">\n            <span class="conn-feedback"></span>\n        ';
+ } ;
+__p += '\n        ';
+ if (authentication == ANONYMOUS) { ;
+__p += '\n            <input type="submit" class="submit login-anon" value="' +
+((__t = (label_anon_login)) == null ? '' : __t) +
+'"/>\n        ';
+ } ;
+__p += '\n        ';
+ if (authentication == PREBIND) { ;
+__p += '\n            <p>Disconnected.</p>\n        ';
+ } ;
+__p += '\n    ';
+ } ;
+__p += '\n</form>\n';
+
+}
+return __p
+};
+
+this["templates"]["login_tab"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<li><a class="current" href="#login-dialog">' +
+((__t = (label_sign_in)) == null ? '' : __t) +
+'</a></li>\n';
+
+}
+return __p
+};
+
+this["templates"]["message"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<div class="chat-message ' +
+((__t = (extra_classes)) == null ? '' : __t) +
+'" data-isodate="' +
+((__t = (isodate)) == null ? '' : __t) +
+'" data-msgid="' +
+((__t = (msgid)) == null ? '' : __t) +
+'">\n    <span class="chat-message-' +
+((__t = (sender)) == null ? '' : __t) +
+'">' +
+((__t = (time)) == null ? '' : __t) +
+' ' +
+((__t = (username)) == null ? '' : __t) +
+':&nbsp;</span>\n    <span class="chat-message-content">' +
+((__t = (message)) == null ? '' : __t) +
+'</span>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["new_day"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<time class="chat-date" data-isodate="' +
+((__t = (isodate)) == null ? '' : __t) +
+'">' +
+((__t = (datestring)) == null ? '' : __t) +
+'</time>\n';
+
+}
+return __p
+};
+
+this["templates"]["occupant"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<li class="' +
+((__t = (role)) == null ? '' : __t) +
+'"\n    ';
+ if (role === "moderator") { ;
+__p += '\n       title="' +
+((__t = (desc_moderator)) == null ? '' : __t) +
+'"\n    ';
+ } ;
+__p += '\n    ';
+ if (role === "participant") { ;
+__p += '\n       title="' +
+((__t = (desc_participant)) == null ? '' : __t) +
+'"\n    ';
+ } ;
+__p += '\n    ';
+ if (role === "visitor") { ;
+__p += '\n       title="' +
+((__t = (desc_visitor)) == null ? '' : __t) +
+'"\n    ';
+ } ;
+__p += '\n>' +
+((__t = (nick)) == null ? '' : __t) +
+'</li>\n';
+
+}
+return __p
+};
+
+this["templates"]["pending_contact"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+
+ if (allow_chat_pending_contacts)  { ;
+__p += '\n<a class="open-chat"href="#">\n';
+ } ;
+__p += '\n<span class="pending-contact-name" title="Name: ' +
+((__t = (fullname)) == null ? '' : __t) +
+'\nJID: ' +
+((__t = (jid)) == null ? '' : __t) +
+'">' +
+((__t = (fullname)) == null ? '' : __t) +
+'</span> \n';
+ if (allow_chat_pending_contacts)  { ;
+__p += '\n</a>\n';
+ } ;
+__p += '\n<a class="remove-xmpp-contact icon-remove" title="' +
+((__t = (desc_remove)) == null ? '' : __t) +
+'" href="#"></a>\n';
+
+}
+return __p
+};
+
+this["templates"]["pending_contacts"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<dt id="pending-xmpp-contacts"><a href="#" class="group-toggle icon-' +
+((__t = (toggle_state)) == null ? '' : __t) +
+'" title="' +
+((__t = (desc_group_toggle)) == null ? '' : __t) +
+'">' +
+((__t = (label_pending_contacts)) == null ? '' : __t) +
+'</a></dt>\n';
+
+}
+return __p
+};
+
+this["templates"]["register_panel"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<form id="converse-register">\n    <span class="reg-feedback"></span>\n    <label>' +
+((__t = (label_domain)) == null ? '' : __t) +
+'</label>\n    <input type="text" name="domain" placeholder="' +
+((__t = (domain_placeholder)) == null ? '' : __t) +
+'">\n    <p class="form-help">' +
+((__t = (help_providers)) == null ? '' : __t) +
+' <a href="' +
+((__t = (href_providers)) == null ? '' : __t) +
+'" class="url" target="_blank">' +
+((__t = (help_providers_link)) == null ? '' : __t) +
+'</a>.</p>\n    <input class="submit" type="submit" value="' +
+((__t = (label_register)) == null ? '' : __t) +
+'">\n</form>\n';
+
+}
+return __p
+};
+
+this["templates"]["register_tab"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<li><a class="s" href="#register">' +
+((__t = (label_register)) == null ? '' : __t) +
+'</a></li>\n';
+
+}
+return __p
+};
+
+this["templates"]["registration_form"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<p class="provider-title">' +
+((__t = (domain)) == null ? '' : __t) +
+'</p>\n<a href=\'https://xmpp.net/result.php?domain=' +
+((__t = (domain)) == null ? '' : __t) +
+'&amp;type=client\'>\n    <img class="provider-score" src=\'https://xmpp.net/badge.php?domain=' +
+((__t = (domain)) == null ? '' : __t) +
+'\' alt=\'xmpp.net score\' />\n</a>\n<p class="title">' +
+((__t = (title)) == null ? '' : __t) +
+'</p>\n<p class="instructions">' +
+((__t = (instructions)) == null ? '' : __t) +
+'</p>\n';
+
+}
+return __p
+};
+
+this["templates"]["registration_request"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<span class="spinner login-submit"/>\n<p class="info">' +
+((__t = (info_message)) == null ? '' : __t) +
+'</p>\n<button class="cancel hor_centered">' +
+((__t = (cancel)) == null ? '' : __t) +
+'</button>\n';
+
+}
+return __p
+};
+
+this["templates"]["requesting_contact"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+
+ if (allow_chat_pending_contacts)  { ;
+__p += '\n<a class="open-chat"href="#">\n';
+ } ;
+__p += '\n<span class="req-contact-name" title="Name: ' +
+((__t = (fullname)) == null ? '' : __t) +
+'\nJID: ' +
+((__t = (jid)) == null ? '' : __t) +
+'">' +
+((__t = (fullname)) == null ? '' : __t) +
+'</span>\n';
+ if (allow_chat_pending_contacts)  { ;
+__p += '\n</a>\n';
+ } ;
+__p += '\n<span class="request-actions">\n    <a class="accept-xmpp-request icon-checkmark" title="' +
+((__t = (desc_accept)) == null ? '' : __t) +
+'" href="#"></a>\n    <a class="decline-xmpp-request icon-close" title="' +
+((__t = (desc_decline)) == null ? '' : __t) +
+'" href="#"></a>\n</span>\n';
+
+}
+return __p
+};
+
+this["templates"]["requesting_contacts"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<dt id="xmpp-contact-requests"><a href="#" class="group-toggle icon-' +
+((__t = (toggle_state)) == null ? '' : __t) +
+'" title="' +
+((__t = (desc_group_toggle)) == null ? '' : __t) +
+'">' +
+((__t = (label_contact_requests)) == null ? '' : __t) +
+'</a></dt>\n';
+
+}
+return __p
+};
+
+this["templates"]["room_description"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<!-- FIXME: check markup in mockup -->\n<div class="room-info">\n<p class="room-info"><strong>' +
+((__t = (label_desc)) == null ? '' : __t) +
+'</strong> ' +
+((__t = (desc)) == null ? '' : __t) +
+'</p>\n<p class="room-info"><strong>' +
+((__t = (label_occ)) == null ? '' : __t) +
+'</strong> ' +
+((__t = (occ)) == null ? '' : __t) +
+'</p>\n<p class="room-info"><strong>' +
+((__t = (label_features)) == null ? '' : __t) +
+'</strong>\n    <ul>\n        ';
+ if (passwordprotected) { ;
+__p += '\n        <li class="room-info locked">' +
+((__t = (label_requires_auth)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (hidden) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_hidden)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (membersonly) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_requires_invite)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (moderated) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_moderated)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (nonanonymous) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_non_anon)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (open) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_open_room)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (persistent) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_permanent_room)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (publicroom) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_public)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (semianonymous) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_semi_anon)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (temporary) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_temp_room)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n        ';
+ if (unmoderated) { ;
+__p += '\n        <li class="room-info">' +
+((__t = (label_unmoderated)) == null ? '' : __t) +
+'</li>\n        ';
+ } ;
+__p += '\n    </ul>\n</p>\n</div>\n';
+
+}
+return __p
+};
+
+this["templates"]["room_item"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<dd class="available-chatroom">\n<a class="open-room" data-room-jid="' +
+((__t = (jid)) == null ? '' : __t) +
+'"\n   title="' +
+((__t = (open_title)) == null ? '' : __t) +
+'" href="#">' +
+((__t = (_.escape(name))) == null ? '' : __t) +
+'</a>\n<a class="room-info icon-room-info" data-room-jid="' +
+((__t = (jid)) == null ? '' : __t) +
+'"\n   title="' +
+((__t = (info_title)) == null ? '' : __t) +
+'" href="#">&nbsp;</a>\n</dd>\n';
+
+}
+return __p
+};
+
+this["templates"]["room_panel"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<form class="add-chatroom" action="" method="post">\n    <label>' +
+((__t = (label_room_name)) == null ? '' : __t) +
+'</label>\n    <input type="text" name="chatroom" class="new-chatroom-name"\n        placeholder="' +
+((__t = (label_room_name)) == null ? '' : __t) +
+'"/>\n    <label>' +
+((__t = (label_nickname)) == null ? '' : __t) +
+'</label>\n    <input type="text" name="nick" class="new-chatroom-nick"\n        placeholder="' +
+((__t = (label_nickname)) == null ? '' : __t) +
+'"/>\n    ';
+ if (server_input_type != 'hidden') { ;
+__p += '\n        <label' +
+((__t = (server_label_global_attr)) == null ? '' : __t) +
+'>' +
+((__t = (label_server)) == null ? '' : __t) +
+'</label>\n    ';
+ } ;
+__p += '\n    <input type="' +
+((__t = (server_input_type)) == null ? '' : __t) +
+'" name="server" class="new-chatroom-server"\n        placeholder="' +
+((__t = (label_server)) == null ? '' : __t) +
+'"/>\n    <div class="button-group">\n        <input type="submit" class="left" name="join" value="' +
+((__t = (label_join)) == null ? '' : __t) +
+'"/>\n        <input type="button" class="right" name="show" id="show-rooms" value="' +
+((__t = (label_show_rooms)) == null ? '' : __t) +
+'"/>\n    </div>\n</form>\n<dl id="available-chatrooms"></dl>\n';
+
+}
+return __p
+};
+
+this["templates"]["roster"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<span class="input-button-group">\n    <input style="display: none;" class="roster-filter" placeholder="' +
+((__t = (placeholder)) == null ? '' : __t) +
+'">\n    <select style="display: none;" class="filter-type">\n        <option value="contacts">' +
+((__t = (label_contacts)) == null ? '' : __t) +
+'</option>\n        <option value="groups">' +
+((__t = (label_groups)) == null ? '' : __t) +
+'</option>\n    </select>\n</span>\n';
+
+}
+return __p
+};
+
+this["templates"]["roster_item"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<a class="open-chat" title="' +
+((__t = (title_fullname)) == null ? '' : __t) +
+': ' +
+((__t = (fullname)) == null ? '' : __t) +
+'\nJID: ' +
+((__t = (jid)) == null ? '' : __t) +
+'\n' +
+((__t = (desc_chat)) == null ? '' : __t) +
+'" href="#"><span class="icon-' +
+((__t = (chat_status)) == null ? '' : __t) +
+'" title="' +
+((__t = (desc_status)) == null ? '' : __t) +
+'"></span>' +
+((__t = (fullname)) == null ? '' : __t) +
+'</a>\n';
+ if (allow_contact_removal) { ;
+__p += '\n<a class="remove-xmpp-contact icon-remove" title="' +
+((__t = (desc_remove)) == null ? '' : __t) +
+'" href="#"></a>\n';
+ } ;
+__p += '\n';
+
+}
+return __p
+};
+
+this["templates"]["search_contact"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<li>\n    <form class="search-xmpp-contact">\n        <input type="text"\n            name="identifier"\n            class="username"\n            placeholder="' +
+((__t = (label_contact_name)) == null ? '' : __t) +
+'"/>\n        <button type="submit">' +
+((__t = (label_search)) == null ? '' : __t) +
+'</button>\n    </form>\n</li>\n';
+
+}
+return __p
+};
+
+this["templates"]["select_option"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<option value="' +
+((__t = (value)) == null ? '' : __t) +
+'" ';
+ if (selected) { ;
+__p += ' selected="selected" ';
+ } ;
+__p += ' >' +
+((__t = (label)) == null ? '' : __t) +
+'</option>\n';
+
+}
+return __p
+};
+
+this["templates"]["status_option"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape;
+with (obj) {
+__p += '<li>\n    <a href="#" class="' +
+((__t = ( value )) == null ? '' : __t) +
+'" data-value="' +
+((__t = ( value )) == null ? '' : __t) +
+'">\n        <span class="icon-' +
+((__t = ( value )) == null ? '' : __t) +
+'"></span>\n        ' +
+((__t = ( text )) == null ? '' : __t) +
+'\n    </a>\n</li>\n';
+
+}
+return __p
+};
+
+this["templates"]["toggle_chats"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p +=
+((__t = (Minimized)) == null ? '' : __t) +
+' <span id="minimized-count">(' +
+((__t = (num_minimized)) == null ? '' : __t) +
+')</span>\n<span class="unread-message-count"\n    ';
+ if (!num_unread) { ;
+__p += ' style="display: none" ';
+ } ;
+__p += '\n    href="#">' +
+((__t = (num_unread)) == null ? '' : __t) +
+'</span>\n';
+
+}
+return __p
+};
+
+this["templates"]["toolbar"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+
+ if (show_emoticons)  { ;
+__p += '\n    <li class="toggle-smiley icon-happy" title="' +
+((__t = (label_insert_smiley)) == null ? '' : __t) +
+'">\n        <ul>\n            <li><a class="icon-smiley" href="#" data-emoticon=":)"></a></li>\n            <li><a class="icon-wink" href="#" data-emoticon=";)"></a></li>\n            <li><a class="icon-grin" href="#" data-emoticon=":D"></a></li>\n            <li><a class="icon-tongue" href="#" data-emoticon=":P"></a></li>\n            <li><a class="icon-cool" href="#" data-emoticon="8)"></a></li>\n            <li><a class="icon-evil" href="#" data-emoticon=">:)"></a></li>\n            <li><a class="icon-confused" href="#" data-emoticon=":S"></a></li>\n            <li><a class="icon-wondering" href="#" data-emoticon=":\\"></a></li>\n            <li><a class="icon-angry" href="#" data-emoticon=">:("></a></li>\n            <li><a class="icon-sad" href="#" data-emoticon=":("></a></li>\n            <li><a class="icon-shocked" href="#" data-emoticon=":O"></a></li>\n            <li><a class="icon-thumbs-up" href="#" data-emoticon="(^.^)b"></a></li>\n            <li><a class="icon-heart" href="#" data-emoticon="<3"></a></li>\n        </ul>\n    </li>\n';
+ } ;
+__p += '\n';
+ if (show_call_button)  { ;
+__p += '\n<li class="toggle-call"><a class="icon-phone" title="' +
+((__t = (label_start_call)) == null ? '' : __t) +
+'"></a></li>\n';
+ } ;
+__p += '\n';
+ if (show_participants_toggle)  { ;
+__p += '\n<li class="toggle-participants"><a class="icon-hide-users" title="' +
+((__t = (label_hide_participants)) == null ? '' : __t) +
+'"></a></li>\n';
+ } ;
+__p += '\n';
+ if (show_clear_button)  { ;
+__p += '\n<li class="toggle-clear"><a class="icon-remove" title="' +
+((__t = (label_clear)) == null ? '' : __t) +
+'"></a></li>\n';
+ } ;
+__p += '\n';
+ if (allow_otr)  { ;
+__p += '\n    <li class="toggle-otr ' +
+((__t = (otr_status_class)) == null ? '' : __t) +
+'" title="' +
+((__t = (otr_tooltip)) == null ? '' : __t) +
+'">\n        <span class="chat-toolbar-text">' +
+((__t = (otr_translated_status)) == null ? '' : __t) +
+'</span>\n        ';
+ if (otr_status == UNENCRYPTED) { ;
+__p += '\n            <span class="icon-unlocked"></span>\n        ';
+ } ;
+__p += '\n        ';
+ if (otr_status == UNVERIFIED) { ;
+__p += '\n            <span class="icon-lock"></span>\n        ';
+ } ;
+__p += '\n        ';
+ if (otr_status == VERIFIED) { ;
+__p += '\n            <span class="icon-lock"></span>\n        ';
+ } ;
+__p += '\n        ';
+ if (otr_status == FINISHED) { ;
+__p += '\n            <span class="icon-unlocked"></span>\n        ';
+ } ;
+__p += '\n        <ul>\n            ';
+ if (otr_status == UNENCRYPTED) { ;
+__p += '\n               <li><a class="start-otr" href="#">' +
+((__t = (label_start_encrypted_conversation)) == null ? '' : __t) +
+'</a></li>\n            ';
+ } ;
+__p += '\n            ';
+ if (otr_status != UNENCRYPTED) { ;
+__p += '\n               <li><a class="start-otr" href="#">' +
+((__t = (label_refresh_encrypted_conversation)) == null ? '' : __t) +
+'</a></li>\n               <li><a class="end-otr" href="#">' +
+((__t = (label_end_encrypted_conversation)) == null ? '' : __t) +
+'</a></li>\n               <li><a class="auth-otr" data-scheme="smp" href="#">' +
+((__t = (label_verify_with_smp)) == null ? '' : __t) +
+'</a></li>\n            ';
+ } ;
+__p += '\n            ';
+ if (otr_status == UNVERIFIED) { ;
+__p += '\n               <li><a class="auth-otr" data-scheme="fingerprint" href="#">' +
+((__t = (label_verify_with_fingerprints)) == null ? '' : __t) +
+'</a></li>\n            ';
+ } ;
+__p += '\n            <li><a href="http://www.cypherpunks.ca/otr/help/3.2.0/levels.php" target="_blank">' +
+((__t = (label_whats_this)) == null ? '' : __t) +
+'</a></li>\n        </ul>\n    </li>\n';
+ } ;
+__p += '\n';
+
+}
+return __p
+};
+
+this["templates"]["trimmed_chat"] = function(obj) {
+obj || (obj = {});
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
+with (obj) {
+__p += '<a class="close-chatbox-button icon-close"></a>\n<a class="chat-head-message-count" \n    ';
+ if (!num_unread) { ;
+__p += ' style="display: none" ';
+ } ;
+__p += '\n    href="#">' +
+((__t = (num_unread)) == null ? '' : __t) +
+'</a>\n<a href="#" class="restore-chat" title="' +
+((__t = (tooltip)) == null ? '' : __t) +
+'">\n    ' +
+((__t = ( title )) == null ? '' : __t) +
+'\n</a>\n';
+
+}
+return __p
+};
\ No newline at end of file
diff --git a/xmpp/converse/css/converse.css b/xmpp/converse/css/converse.css
new file mode 100644 (file)
index 0000000..7d8061a
--- /dev/null
@@ -0,0 +1,1291 @@
+/*!
+ * Converse.js (Web-based XMPP instant messaging client)
+ * http://conversejs.org
+ *
+ * Copyright (c) 2012-2014, JC Brand <jc@opkode.com>
+ * Licensed under the Mozilla Public License
+ */
+/*!
+ * Converse.js (Web-based XMPP instant messaging client)
+ * http://conversejs.org
+ *
+ * Copyright (c) 2012-2014, JC Brand <jc@opkode.com>
+ * Licensed under the Mozilla Public License
+ */
+@font-face {
+  font-family: 'Converse-js';
+  src: url("../fonticons/fonts/icomoon.eot?-mnoxh0");
+  src: url("../fonticons/fonts/icomoon.eot?#iefix-mnoxh0") format("embedded-opentype"), url("../fonticons/fonts/icomoon.woff?-mnoxh0") format("woff"), url("../fonticons/fonts/icomoon.ttf?-mnoxh0") format("truetype"), url("../fonticons/fonts/icomoon.svg?-mnoxh0#icomoon") format("svg");
+  font-weight: normal;
+  font-style: normal; }
+.icon-conversejs {
+  font-family: 'Converse-js';
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+  /* Better Font Rendering =========== */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale; }
+
+.icon-conversejs:before {
+  content: "\e600"; }
+
+#conversejs {
+  color: #6C4C44;
+  font-size: 14px;
+  bottom: 0;
+  direction: ltr;
+  height: 35px;
+  left: auto;
+  position: fixed;
+  right: 15px;
+  z-index: 30;
+  display: block;
+  width: auto;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  /* @group Tabs */
+  /* status dropdown styles */ }
+  #conversejs ::selection {
+    background-color: #E1E6E5; }
+  #conversejs ::-moz-selection {
+    background-color: #E1E6E5; }
+  #conversejs *, #conversejs *:before, #conversejs *:after {
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box; }
+  @media screen and (max-width: 480px) {
+    #conversejs {
+      margin: 0;
+      right: 10px;
+      left: 10px;
+      bottom: 5px; } }
+  #conversejs a, #conversejs a:visited {
+    text-decoration: none;
+    color: #444;
+    text-shadow: none; }
+  #conversejs ul li {
+    height: auto; }
+  #conversejs div, #conversejs span, #conversejs h1, #conversejs h2, #conversejs h3, #conversejs h4, #conversejs h5, #conversejs h6, #conversejs p, #conversejs blockquote,
+  #conversejs pre, #conversejs a, #conversejs em, #conversejs img, #conversejs strong, #conversejs dl, #conversejs dt, #conversejs dd, #conversejs ol, #conversejs ul, #conversejs li,
+  #conversejs fieldset, #conversejs form, #conversejs label, #conversejs legend, #conversejs table, #conversejs caption, #conversejs tbody,
+  #conversejs tfoot, #conversejs thead, #conversejs tr, #conversejs th, #conversejs td, #conversejs article, #conversejs aside, #conversejs canvas, #conversejs details,
+  #conversejs embed, #conversejs figure, #conversejs figcaption, #conversejs footer, #conversejs header, #conversejs hgroup, #conversejs menu,
+  #conversejs nav, #conversejs output, #conversejs ruby, #conversejs section, #conversejs summary, #conversejs time, #conversejs mark, #conversejs audio, #conversejs video {
+    margin: 0;
+    padding: 0;
+    border: 0;
+    font: inherit;
+    vertical-align: baseline; }
+  #conversejs textarea,
+  #conversejs input[type=submit], #conversejs input[type=button],
+  #conversejs input[type=text], #conversejs input[type=password],
+  #conversejs button {
+    font-size: 14px;
+    padding: 0.25em;
+    min-height: 0; }
+  #conversejs input[type=text] {
+    height: 26px; }
+  #conversejs strong {
+    font-weight: 700; }
+  #conversejs ol, #conversejs ul {
+    list-style: none; }
+  #conversejs li {
+    height: 10px; }
+  #conversejs ul, #conversejs ol, #conversejs dl {
+    font: inherit;
+    margin: 0; }
+  #conversejs [data-icon]:before {
+    content: attr(data-icon);
+    font-family: 'Converse-js';
+    font-variant: normal;
+    font-weight: normal;
+    line-height: 1;
+    speak: none;
+    text-transform: none;
+    /* Better Font Rendering =========== */
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale; }
+  #conversejs [class^="icon-"], #conversejs [class*=" icon-"] {
+    background-position: 14px 14px;
+    background-image: none;
+    font-family: 'Converse-js', sans-serif;
+    font-style: normal;
+    font-variant: normal;
+    font-weight: normal;
+    width: auto;
+    height: auto;
+    line-height: 1;
+    speak: none;
+    text-transform: none;
+    /* Better Font Rendering =========== */
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale; }
+  #conversejs .icon-address-book:before {
+    content: "\270f"; }
+  #conversejs .icon-angry:before {
+    content: "\e03f"; }
+  #conversejs .icon-attachment:before {
+    content: "\e032"; }
+  #conversejs .icon-away:before {
+    content: "\25fb"; }
+  #conversejs .icon-blocked:before {
+    content: "\2718"; }
+  #conversejs .icon-bold:before {
+    content: "\e04d"; }
+  #conversejs .icon-bubbles-2:before {
+    content: "\e016"; }
+  #conversejs .icon-bubbles-3:before {
+    content: "\e017"; }
+  #conversejs .icon-bubbles:before {
+    content: "\e015"; }
+  #conversejs .icon-camera-2:before {
+    content: "\2616"; }
+  #conversejs .icon-camera:before {
+    content: "\e003"; }
+  #conversejs .icon-cancel-circle:before {
+    content: "\e058"; }
+  #conversejs .icon-checkbox-checked:before {
+    content: "\2611"; }
+  #conversejs .icon-checkbox-partial:before {
+    content: "\2b28"; }
+  #conversejs .icon-checkbox-unchecked:before {
+    content: "\2b27"; }
+  #conversejs .icon-checkmark:before {
+    content: "\2713"; }
+  #conversejs .icon-close:before {
+    content: "\2715"; }
+  #conversejs .icon-closed:before {
+    content: "\25ba"; }
+  #conversejs .icon-cog:before {
+    content: "\e02f"; }
+  #conversejs .icon-cogs:before {
+    content: "\e022"; }
+  #conversejs .icon-confused:before {
+    content: "\2368"; }
+  #conversejs .icon-cool:before {
+    content: "\e040"; }
+  #conversejs .icon-dnd:before {
+    content: "\e004"; }
+  #conversejs .icon-envelop:before {
+    content: "\2709"; }
+  #conversejs .icon-evil:before {
+    content: "\261f"; }
+  #conversejs .icon-eye-blocked:before {
+    content: "\e031"; }
+  #conversejs .icon-eye:before {
+    content: "\e030"; }
+  #conversejs .icon-globe:before {
+    content: "\e033"; }
+  #conversejs .icon-grin:before {
+    content: "\e041"; }
+  #conversejs .icon-happy:before {
+    content: "\263b"; }
+  #conversejs .icon-headphones:before {
+    content: "\266c"; }
+  #conversejs .icon-heart:before {
+    content: "\2764"; }
+  #conversejs .icon-hide-users:before {
+    content: "\e01c"; }
+  #conversejs .icon-home:before {
+    content: "\e000"; }
+  #conversejs .icon-image:before {
+    content: "\2b14"; }
+  #conversejs .icon-info:before {
+    content: "\2360"; }
+  #conversejs .icon-italic:before {
+    content: "\e04f"; }
+  #conversejs .icon-key-2:before {
+    content: "\e029"; }
+  #conversejs .icon-key:before {
+    content: "\e028"; }
+  #conversejs .icon-lock-2:before {
+    content: "\e027"; }
+  #conversejs .icon-lock:before {
+    content: "\e026"; }
+  #conversejs .icon-logout:before {
+    content: "\e601"; }
+  #conversejs .icon-minus:before {
+    content: "\e05a"; }
+  #conversejs .icon-music:before {
+    content: "\266b"; }
+  #conversejs .icon-new-tab:before {
+    content: "\e053"; }
+  #conversejs .icon-newspaper:before {
+    content: "\e001"; }
+  #conversejs .icon-notebook:before {
+    content: "\2710"; }
+  #conversejs .icon-notification:before {
+    content: "\e01f"; }
+  #conversejs .icon-online:before {
+    content: "\25fc"; }
+  #conversejs .icon-chat:before {
+    content: "\25fc"; }
+  #conversejs .icon-opened:before {
+    content: "\25bc"; }
+  #conversejs .icon-pencil:before {
+    content: "\270e"; }
+  #conversejs .icon-phone-hang-up:before {
+    content: "\260e"; }
+  #conversejs .icon-phone:before {
+    content: "\260f"; }
+  #conversejs .icon-play:before {
+    content: "\25d9"; }
+  #conversejs .icon-plus:before {
+    content: "\271a"; }
+  #conversejs .icon-pushpin:before {
+    content: "\e012"; }
+  #conversejs .icon-quotes-left:before {
+    content: "\e01d"; }
+  #conversejs .icon-radio-checked:before {
+    content: "\2b26"; }
+  #conversejs .icon-radio-unchecked:before {
+    content: "\2b25"; }
+  #conversejs .icon-remove:before {
+    content: "\e02d"; }
+  #conversejs .icon-room-info:before {
+    content: "\e059"; }
+  #conversejs .icon-sad:before {
+    content: "\2639"; }
+  #conversejs .icon-search:before {
+    content: "\e021"; }
+  #conversejs .icon-shocked:before {
+    content: "\2364"; }
+  #conversejs .icon-show-users:before {
+    content: "\e01e"; }
+  #conversejs .icon-smiley:before {
+    content: "\263a"; }
+  #conversejs .icon-spell-check:before {
+    content: "\e045"; }
+  #conversejs .icon-spinner:before {
+    content: "\231b"; }
+  #conversejs .icon-strikethrough:before {
+    content: "\e050"; }
+  #conversejs .icon-thumbs-up:before {
+    content: "\261d"; }
+  #conversejs .icon-tongue:before {
+    content: "\e038"; }
+  #conversejs .icon-underline:before {
+    content: "\e04e"; }
+  #conversejs .icon-unlocked:before {
+    content: "\e025"; }
+  #conversejs .icon-user:before {
+    content: "\e01a"; }
+  #conversejs .icon-users:before {
+    content: "\e01b"; }
+  #conversejs .icon-volume-decrease:before {
+    content: "\e04b"; }
+  #conversejs .icon-volume-high:before {
+    content: "\e046"; }
+  #conversejs .icon-volume-increase:before {
+    content: "\e04c"; }
+  #conversejs .icon-volume-low:before {
+    content: "\e048"; }
+  #conversejs .icon-volume-medium:before {
+    content: "\e047"; }
+  #conversejs .icon-volume-mute-2:before {
+    content: "\e04a"; }
+  #conversejs .icon-volume-mute:before {
+    content: "\e049"; }
+  #conversejs .icon-warning:before {
+    content: "\26a0"; }
+  #conversejs .icon-wink:before {
+    content: "\e03a"; }
+  #conversejs .icon-wondering:before {
+    content: "\2369"; }
+  #conversejs .icon-wrench:before {
+    content: "\e024"; }
+  #conversejs .icon-xa:before {
+    content: "\e602"; }
+  #conversejs .icon-unavailable:before,
+  #conversejs .icon-offline:before {
+    content: "\e002"; }
+  #conversejs .icon-youtube:before {
+    content: "\e055"; }
+  #conversejs .icon-zoom-in:before {
+    content: "\e02b"; }
+  #conversejs .icon-zoom-out:before {
+    content: "\e02a"; }
+  #conversejs .no-text-select {
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none; }
+  #conversejs .emoticon {
+    font-size: 14px; }
+  #conversejs .left {
+    float: left; }
+  #conversejs .right {
+    float: right; }
+  #conversejs .hidden {
+    display: none; }
+  #conversejs .locked {
+    padding-right: 22px; }
+@-webkit-keyframes spin {
+  from {
+    -webkit-transform: rotate(0deg); }
+  to {
+    -webkit-transform: rotate(359deg); } }
+@-moz-keyframes spin {
+  from {
+    -moz-transform: rotate(0deg); }
+  to {
+    -moz-transform: rotate(359deg); } }
+@keyframes spin {
+  from {
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -ms-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    transform: rotate(0deg); }
+  to {
+    -webkit-transform: rotate(359deg);
+    -moz-transform: rotate(359deg);
+    -ms-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    transform: rotate(359deg); } }
+  #conversejs .spinner:before {
+    font-size: 24px;
+    font-family: 'Converse-js' !important;
+    content: "\231b"; }
+  #conversejs .spinner {
+    -webkit-animation: spin 2s infinite, linear;
+    -moz-animation: spin 2s infinite, linear;
+    animation: spin 2s infinite, linear;
+    display: block;
+    text-align: center;
+    margin: 5px; }
+  #conversejs .centered {
+    text-align: center;
+    display: block;
+    margin: 5em auto; }
+  #conversejs .hor_centered {
+    text-align: center;
+    display: block;
+    margin: 0 auto;
+    clear: both; }
+  #conversejs .toggle-controlbox,
+  #conversejs #minimized-chats {
+    border-top-left-radius: 4px;
+    border-top-right-radius: 4px;
+    float: right;
+    margin: 0 7px;
+    font-weight: bold; }
+  #conversejs .toggle-controlbox {
+    background-color: #555;
+    color: #0a0a0a;
+    height: 100%;
+    padding: 10px 8px 0 8px; }
+    #conversejs .toggle-controlbox span {
+      color: white; }
+  #conversejs .button-group,
+  #conversejs .input-button-group {
+    display: table; }
+  #conversejs .button-group {
+    width: 100%; }
+  #conversejs .input-button-group button,
+  #conversejs .input-button-group input {
+    display: table-cell; }
+  #conversejs #minimized-chats {
+    color: white;
+    display: none;
+    height: 100%;
+    padding: 0;
+    width: 130px; }
+    #conversejs #minimized-chats #toggle-minimized-chats {
+      border-top-left-radius: 4px;
+      border-top-right-radius: 4px;
+      background-color: #CCC;
+      position: relative;
+      padding: 10px 0 0 0;
+      display: block;
+      width: 100%;
+      height: 100%;
+      text-align: center; }
+    #conversejs #minimized-chats .unread-message-count,
+    #conversejs #minimized-chats .chat-head-message-count {
+      font-weight: bold;
+      background-color: #f6f6f6;
+      background-image: -webkit-linear-gradient(#f6f6f6 5%, #808080 100%);
+      background-image: linear-gradient(#f6f6f6 5%, #808080 100%);
+      border: 1px solid;
+      text-shadow: 1px 1px 0 #FAFAFA;
+      color: #681F2C;
+      border-radius: 5px;
+      padding: 2px 4px;
+      font-size: 16px;
+      text-align: center;
+      position: absolute;
+      right: 116px;
+      bottom: 10px; }
+    #conversejs #minimized-chats .box-flyout {
+      position: absolute;
+      display: block;
+      height: auto;
+      bottom: 35px;
+      margin-left: 0; }
+      #conversejs #minimized-chats .box-flyout .chat-head {
+        font-size: 100%;
+        border-radius: 4px;
+        padding: 3px 0 0 5px;
+        margin: 0 0 1px 0;
+        box-shadow: 1px 3px 5px 3px rgba(0, 0, 0, 0.4);
+        height: 24px;
+        width: 130px; }
+  #conversejs .chat-body {
+    background-color: white;
+    border-bottom-right-radius: 4px;
+    border-bottom-left-radius: 4px;
+    height: 289px;
+    height: -webkit-calc(100% - 44px);
+    height: calc(100% - 44px);
+    border-top: 0; }
+    #conversejs .chat-body p {
+      font-size: 14px;
+      color: #6C4C44;
+      padding: 5px;
+      margin: 0; }
+  #conversejs .tt-highlight {
+    background-color: #00230F; }
+  #conversejs .tt-suggestion p {
+    color: white;
+    text-shadow: rgba(0, 0, 0, 0.51) 0 -1px 0;
+    cursor: pointer;
+    font-size: 11px; }
+  #conversejs .tt-suggestion p:hover {
+    background-color: #00230F; }
+    #conversejs .tt-suggestion p:hover .tt-highlight {
+      background-color: #00230F;
+      background: #27774A; }
+  #conversejs .tt-dropdown-menu {
+    margin: 0 1px 0 1px;
+    width: 96px;
+    max-height: 250px;
+    overflow-x: hidden;
+    overflow-y: auto;
+    text-overflow: ellipsis;
+    background: #27774A;
+    border-bottom-right-radius: 4px;
+    border-bottom-left-radius: 4px; }
+  #conversejs .chat-blink {
+    background-color: #176679;
+    border-right: 1px solid #176679;
+    border-left: 1px solid #176679; }
+  #conversejs .chat-content {
+    position: relative;
+    padding: 8px;
+    font-size: 13px;
+    color: #666;
+    overflow-y: auto;
+    border: 0;
+    background-color: #ffffff;
+    line-height: 1.3em;
+    height: 206px;
+    height: calc(100% - 89px); }
+  #conversejs .chat-info {
+    color: #6C4C44; }
+  #conversejs .chat-error {
+    color: #681F2C;
+    font-weight: bold; }
+  #conversejs .chat-error,
+  #conversejs .chat-info,
+  #conversejs .chat-message {
+    padding: 2px 0; }
+  #conversejs .chat-message-room,
+  #conversejs .chat-message-them,
+  #conversejs .chat-message-me {
+    font-weight: bold;
+    white-space: nowrap;
+    max-width: 100px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    display: inline-block;
+    float: left;
+    padding-right: 3px; }
+  #conversejs .chat-message-content {
+    word-wrap: break-word; }
+  #conversejs .chat-message-room,
+  #conversejs .chat-message-them {
+    color: #6C4C44; }
+  #conversejs .chat-message-me {
+    color: #436F64; }
+  #conversejs .chat-event,
+  #conversejs .chat-date,
+  #conversejs .chat-info {
+    color: #808080; }
+  #conversejs li.chat-info {
+    padding-left: 10px; }
+  #conversejs .chat-date {
+    display: inline-block;
+    padding-top: 10px; }
+  #conversejs .not-implemented {
+    margin-top: 3em;
+    margin-left: 0.3em;
+    color: #808080; }
+  #conversejs .mentioned {
+    font-weight: bold; }
+  #conversejs .delayed .chat-message-them {
+    color: #FB5D50; }
+  #conversejs .delayed .chat-message-me {
+    color: #7EABBB; }
+  #conversejs .error {
+    color: red; }
+  #conversejs input.error {
+    border: 1px solid red; }
+  #conversejs .reg-feedback {
+    font-size: 85%; }
+  #conversejs .reg-feedback,
+  #conversejs #converse-login .conn-feedback {
+    display: block;
+    text-align: center;
+    width: 100%; }
+  #conversejs .chat-message-error {
+    color: #76797C;
+    font-size: 90%;
+    font-weight: normal; }
+  #conversejs a.restore-chat,
+  #conversejs .chat-title {
+    padding: 1px 0 1px 5px;
+    color: white;
+    font-weight: bold;
+    line-height: 15px;
+    display: block;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-shadow: rgba(0, 0, 0, 0.51) 0 -1px 0; }
+  #conversejs a.restore-chat:visited {
+    color: white; }
+  #conversejs .chat-title a {
+    color: white;
+    width: 100%;
+    text-overflow: ellipsis;
+    white-space: nowrap; }
+  #conversejs .chat-head-chatbox,
+  #conversejs .chat-head-chatroom {
+    height: 44px;
+    position: relative;
+    padding: 5px; }
+  #conversejs .chat-head-chatroom {
+    background-color: #555; }
+  #conversejs .chat-head-chatbox {
+    background-color: #555; }
+  #conversejs .user-custom-message,
+  #conversejs .chatroom-topic {
+    color: white;
+    font-size: 80%;
+    font-style: italic;
+    height: 1.3em;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    margin: 0;
+    padding: 1px 0 1px 5px; }
+  #conversejs .activated {
+    display: block !important; }
+  #conversejs a.subscribe-to-user {
+    padding-left: 2em;
+    font-weight: bold; }
+  #conversejs dl.add-converse-contact {
+    margin: 0 0.5em 0.75em 0.5em; }
+  #conversejs .fancy-dropdown {
+    border: 1px solid #EEE;
+    height: 25px;
+    text-align: left; }
+    #conversejs .fancy-dropdown .choose-xmpp-status {
+      width: 155px; }
+      #conversejs .fancy-dropdown .choose-xmpp-status span {
+        padding-right: 5px;
+        padding-left: 5px;
+        float: left; }
+    #conversejs .fancy-dropdown .choose-xmpp-status,
+    #conversejs .fancy-dropdown .toggle-xmpp-contact-form {
+      text-shadow: 0 1px 0 #ffffff;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+      display: inline; }
+    #conversejs .fancy-dropdown .toggle-xmpp-contact-form span {
+      float: left; }
+  #conversejs #fancy-xmpp-status-select a.change-xmpp-status-message {
+    float: right;
+    clear: right;
+    height: 22px;
+    width: 12px;
+    margin: 0px 5px 0 0;
+    color: #436F64; }
+  #conversejs ul#found-users {
+    padding: 10px 0 5px 5px;
+    border: 0; }
+  #conversejs form.search-xmpp-contact {
+    margin: 0;
+    padding-left: 5px;
+    padding: 0 0 5px 5px; }
+    #conversejs form.search-xmpp-contact input {
+      width: 8em; }
+  #conversejs a.configure-chatroom-button,
+  #conversejs a.toggle-chatbox-button,
+  #conversejs a.close-chatbox-button {
+    border-radius: 5px;
+    border: 1px solid #888;
+    color: white;
+    cursor: pointer;
+    display: inline-block;
+    float: right;
+    font-size: 10px;
+    margin: 0 0 0 3px;
+    padding-top: 3px;
+    padding-bottom: 3px;
+    padding-left: 2px;
+    padding-right: 3px;
+    text-decoration: none; }
+  #conversejs a.configure-chatroom-button:active,
+  #conversejs a.toggle-chatbox-button:active,
+  #conversejs a.close-chatbox-button:active {
+    position: relative;
+    top: 1px; }
+  #conversejs .chatroom-form-container {
+    height: 100%;
+    color: #6C4C44;
+    overflow-y: auto;
+    border-bottom-right-radius: 4px;
+    border-bottom-left-radius: 4px; }
+  #conversejs .chatroom-form {
+    padding: 1em; }
+    #conversejs .chatroom-form .instructions {
+      color: gray;
+      font-size: 95%; }
+    #conversejs .chatroom-form input {
+      width: 100%;
+      padding: 5px;
+      text-align: center; }
+    #conversejs .chatroom-form legend {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 10px 0 15px 0; }
+    #conversejs .chatroom-form label {
+      height: 30px;
+      font-weight: bold;
+      display: block;
+      clear: both; }
+      #conversejs .chatroom-form label label input, #conversejs .chatroom-form label label select {
+        float: right; }
+  #conversejs .requesting-xmpp-contact .request-actions {
+    margin-left: 0.5em;
+    float: right; }
+  #conversejs #converse-roster {
+    text-align: left;
+    width: 100%;
+    position: relative;
+    margin: 0.5em 0 0 0;
+    height: 194px;
+    height: calc(100% - 50px - 20px);
+    overflow: hidden;
+    /* (jQ addClass:) if input has value: */
+    /* (jQ addClass:) if mouse is over the 'x' input area*/ }
+    #conversejs #converse-roster.no-contact-requests {
+      height: calc(100% - 25px - 20px); }
+    #conversejs #converse-roster .filter-type {
+      display: table-cell;
+      float: right;
+      font-size: 14px;
+      height: 25px;
+      margin: 0 0 0.5em -1px;
+      padding: 0;
+      width: 84px; }
+    #conversejs #converse-roster .roster-filter {
+      float: left;
+      background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAABNSURBVHjaXI7BDcAwCAMvyQjMyQ6dAbZiKfqoUK34g2zJh1dENIC7M8pMAPYdzAVY3d0ajNz9aypS/b5R6o+ZPdqoKgCq6h80KH3xDgBqNR97p8oAGQAAAABJRU5ErkJggg==) no-repeat right -20px center;
+      border: 1px solid #999;
+      font-size: 14px;
+      height: 25px;
+      margin: 0 0 0.5em 7px;
+      padding: 0;
+      padding: 2px;
+      width: 103px; }
+    #conversejs #converse-roster .roster-filter.x {
+      background-position: right 3px center; }
+    #conversejs #converse-roster .roster-filter.onX {
+      cursor: pointer; }
+    #conversejs #converse-roster .roster-contacts {
+      margin: 0;
+      max-height: 195px;
+      max-height: calc(100% - 44px);
+      overflow-x: hidden;
+      overflow-y: auto;
+      padding-bottom: 15px; }
+    #conversejs #converse-roster .group-toggle {
+      color: #6C4C44;
+      display: block;
+      width: 100%; }
+    #conversejs #converse-roster dt {
+      display: none; }
+    #conversejs #converse-roster dd {
+      line-height: 16px;
+      padding: 4px 2px 0 4px;
+      height: 24px; }
+      #conversejs #converse-roster dd a, #conversejs #converse-roster dd span {
+        text-shadow: 0 1px 0 #FAFAFA;
+        display: inline-block;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+        margin-left: 3px; }
+      #conversejs #converse-roster dd span {
+        padding: 0 5px 0 0; }
+      #conversejs #converse-roster dd a.decline-xmpp-request {
+        margin-left: 5px; }
+      #conversejs #converse-roster dd a.remove-xmpp-contact {
+        float: right;
+        width: 22px;
+        margin: 0;
+        display: none;
+        color: #6C4C44; }
+    #conversejs #converse-roster dd:hover a.remove-xmpp-contact {
+      display: inline-block; }
+    #conversejs #converse-roster dd.odd {
+      background-color: #DCEAC5;
+      /* Make this difference */ }
+    #conversejs #converse-roster dd.current-xmpp-contact span {
+      font-size: 16px;
+      float: left;
+      color: #444; }
+    #conversejs #converse-roster dd a.open-chat {
+      width: 80%; }
+    #conversejs #converse-roster span.pending-contact-name {
+      width: 80%; }
+    #conversejs #converse-roster span.req-contact-name {
+      width: 69%;
+      padding: 0; }
+  #conversejs #available-chatrooms {
+    text-align: left; }
+  #conversejs #available-chatrooms dt,
+  #conversejs #converse-roster dt {
+    font-weight: normal;
+    color: #6C4C44;
+    border: none;
+    padding: 0.5em;
+    text-shadow: 0 1px 0 #FAFAFA; }
+  #conversejs .room-info {
+    font-size: 11px;
+    font-style: normal;
+    font-weight: normal; }
+  #conversejs li.room-info {
+    display: block;
+    margin-left: 5px; }
+  #conversejs div.room-info {
+    clear: left;
+    width: 100%; }
+  #conversejs p.room-info {
+    margin: 0;
+    padding: 0;
+    display: block;
+    white-space: normal; }
+  #conversejs a.room-info {
+    width: 15px;
+    display: none;
+    clear: right; }
+  #conversejs a.open-room {
+    float: left;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    overflow-x: hidden; }
+  #conversejs dd.available-chatroom {
+    border: none;
+    clear: both;
+    color: #6C4C44;
+    display: block;
+    font-weight: bold;
+    overflow: hidden;
+    padding: 0.25em 0.5em;
+    text-overflow: ellipsis;
+    text-shadow: 0 1px 0 #FAFAFA;
+    white-space: nowrap; }
+    #conversejs dd.available-chatroom a.open-room {
+      width: 150px; }
+    #conversejs dd.available-chatroom:hover {
+      background-color: #E1E6E5; }
+      #conversejs dd.available-chatroom:hover .room-info {
+        display: block;
+        font-size: 14px; }
+  #conversejs #converse-roster dd {
+    border: none;
+    clear: both;
+    color: #6C4C44;
+    display: block;
+    font-weight: bold;
+    overflow-y: hidden;
+    text-shadow: 0 1px 0 #FAFAFA; }
+  #conversejs .roster-group:hover,
+  #conversejs #converse-roster dd:hover {
+    background-color: #E1E6E5; }
+  #conversejs .chatbox,
+  #conversejs .chatroom {
+    height: 35px;
+    float: right;
+    margin: 0 7px;
+    display: block; }
+    @media screen and (max-width: 480px) {
+      #conversejs .chatbox,
+      #conversejs .chatroom {
+        margin: 0; } }
+  #conversejs .chatbox {
+    width: 200px; }
+    @media screen and (max-width: 480px) {
+      #conversejs .chatbox {
+        width: 100%; } }
+    #conversejs .chatbox .box-flyout {
+      z-index: 1;
+      width: 200px; }
+      @media screen and (max-width: 480px) {
+        #conversejs .chatbox .box-flyout {
+          width: 100%; } }
+    #conversejs .chatbox .dropdown a {
+      width: 148px;
+      display: inline-block;
+      line-height: 25px; }
+    #conversejs .chatbox .dropdown li {
+      list-style: none;
+      padding-left: 0; }
+    #conversejs .chatbox .dropdown dd ul {
+      padding: 0;
+      list-style: none;
+      position: absolute;
+      left: 0;
+      top: 0;
+      border: 1px solid #E5E9E8;
+      width: 100%;
+      z-index: 21;
+      background-color: #EEE; }
+      #conversejs .chatbox .dropdown dd ul li:hover {
+        background-color: #E1E6E5; }
+    #conversejs .chatbox .dropdown dd.search-xmpp ul {
+      box-shadow: 1px 4px 10px 1px rgba(0, 0, 0, 0.4); }
+      #conversejs .chatbox .dropdown dd.search-xmpp ul li:hover {
+        background-color: #EEE; }
+    #conversejs .chatbox .dropdown dt a span {
+      cursor: pointer;
+      display: block;
+      padding: 4px 7px 0 5px; }
+  #conversejs .chatroom {
+    width: 300px; }
+    #conversejs .chatroom .box-flyout {
+      width: 300px; }
+    @media screen and (max-width: 480px) {
+      #conversejs .chatroom {
+        width: 100%; }
+        #conversejs .chatroom .box-flyout {
+          width: 100%; } }
+    #conversejs .chatroom label {
+      margin-left: 2px;
+      font-size: 12px; }
+    #conversejs .chatroom .participant-list {
+      list-style: none; }
+      #conversejs .chatroom .participant-list li {
+        cursor: default;
+        display: block;
+        font-size: 12px;
+        font-weight: bold;
+        overflow: hidden;
+        padding: 2px 5px;
+        text-overflow: ellipsis;
+        white-space: nowrap; }
+        #conversejs .chatroom .participant-list li.moderator {
+          color: #8f2831; }
+    #conversejs .chatroom .chat-textarea {
+      border-bottom-right-radius: 0; }
+    #conversejs .chatroom .chat-area {
+      float: left;
+      height: 100%;
+      width: 200px; }
+    #conversejs .chatroom .invited-contact {
+      margin: -1px 0 0 -1px;
+      width: 100px;
+      border: 1px solid #999; }
+    #conversejs .chatroom .invited-contact.tt-input {
+      background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gkBCjE0uzKkOgAAAidJREFUKM+N0k+IEnEUB/D3cyscdagkWpHV0WGWREXm0AgOGkSJ07kh2UXYU5cOewm6Bp0KXG/tpSCv6hyEFQIhMEaE3yERYfwTOoqKGLQxDAbqYadLgu7J7/XxeY/3ez8EACDLsgljfMfj8ZxUKhXXYDAAnueBoqgyAMipVOovXAuSZdnUaDQeDofDs16vFyUIAjRNUwmCoG02G1AUdZ5IJN7GYrHfm3AvEAjcnUwmX0ajUdRqtV74fL6sruufKYoa6bp+fzabPUMI7ZfL5eImNHk8npNerxc1m80XHMe98fv9H3K5XDkSibxjWfb1arWaYoyPMMbCFqxUKi6CIODw8LDmdDq7oigaAACiKK5omv7KcdylpmlIkiTHFlRVFTRNUxVFqa/ROqIoGoqi5A3DgFartfU4Jp7ngSAI2uVyPZIk6dZmUZKk2w6H4xghBPF4HK7vWLbZbDCdTp+rqvpUkiS0RvV6/bTf7x8wDHMViURqm/AGAMgURZ232+1X1Wr102KxuEwmk3lZlo/7/f7BcrkkSZKs2e12tHXH/x/gHsY4jTE+0jQNGYYBCCFgGOaKJMkfjUaDZximGQ6HXzSbzZ+ZTMbY6oIxFgqFgqPT6YAgCMBxXM1ut6N0Op0fj8chi8XyjWXZ98Fg8DuCHZLNZh+USqWP8/n8idvt/hUKhV7u7QK9Xu8fmqanAJBQVXUfAGY7TQQAKBaLN8fjsdDtdh/run72Dzhf7XLe2UevAAAAAElFTkSuQmCC) no-repeat right 3px center; }
+    #conversejs .chatroom .participants {
+      float: right;
+      background-color: white;
+      overflow-y: auto;
+      overflow-x: hidden;
+      border-left: 1px solid #AAA;
+      border-bottom-right-radius: 4px;
+      width: 100px;
+      height: 100%; }
+      #conversejs .chatroom .participants label {
+        font-size: 12px;
+        font-style: italic;
+        margin: 5px;
+        display: block; }
+  #conversejs .chatroom-form,
+  #conversejs .controlbox-pane {
+    background-color: white;
+    border-bottom-left-radius: 4px;
+    border-bottom-right-radius: 4px;
+    border: 0;
+    font-size: 14px;
+    overflow-y: auto;
+    position: absolute;
+    text-align: center;
+    width: 100%;
+    height: 289px;
+    height: -webkit-calc(100% - 44px);
+    height: calc(100% - 44px); }
+  #conversejs .controlbox-pane {
+    overflow-y: hidden;
+    overflow-x: hidden; }
+    #conversejs .controlbox-pane dd {
+      margin-left: 0;
+      margin-bottom: 0; }
+      #conversejs .controlbox-pane dd.odd {
+        background-color: #DCEAC5; }
+  #conversejs #converse-register {
+    background: white; }
+    #conversejs #converse-register .title {
+      font-weight: bold; }
+    #conversejs #converse-register .info {
+      font-style: italic;
+      color: green;
+      font-size: 85%;
+      margin: 5px 0; }
+    #conversejs #converse-register .form-errors {
+      color: red;
+      display: none; }
+    #conversejs #converse-register .provider-title {
+      font-size: 22px; }
+    #conversejs #converse-register .provider-score {
+      width: 178px;
+      margin-bottom: 8px; }
+    #conversejs #converse-register .form-help .url {
+      font-weight: bold;
+      color: #436F64; }
+    #conversejs #converse-register .input-group {
+      display: table;
+      margin: auto;
+      width: 100%; }
+      #conversejs #converse-register .input-group span {
+        overflow-x: hidden;
+        text-overflow: ellipsis;
+        max-width: 110px; }
+      #conversejs #converse-register .input-group span, #conversejs #converse-register .input-group input[name=username] {
+        display: table-cell;
+        text-align: left; }
+    #conversejs #converse-register .instructions {
+      color: gray;
+      font-size: 85%; }
+      #conversejs #converse-register .instructions:hover {
+        color: #6C4C44; }
+  #conversejs #converse-register, #conversejs #converse-login {
+    margin: 2em 1em 1em 1em;
+    background: white; }
+    #conversejs #converse-register .login-submit, #conversejs #converse-register .submit, #conversejs #converse-login .login-submit, #conversejs #converse-login .submit {
+      height: 30px;
+      padding: 0px;
+      font-size: 14px; }
+    #conversejs #converse-register .submit, #conversejs #converse-login .submit {
+      margin: 1em 0; }
+    #conversejs #converse-register .login-anon, #conversejs #converse-login .login-anon {
+      height: auto;
+      white-space: normal; }
+    #conversejs #converse-register .cancel-submit, #conversejs #converse-register .save-submit, #conversejs #converse-login .cancel-submit, #conversejs #converse-login .save-submit {
+      width: 45%;
+      margin: 5px 3px 5px 3px; }
+    #conversejs #converse-register .cancel, #conversejs #converse-register .cancel-submit, #conversejs #converse-login .cancel, #conversejs #converse-login .cancel-submit {
+      color: #681F2C; }
+    #conversejs #converse-register .save-submit, #conversejs #converse-login .save-submit {
+      color: #436F64; }
+    #conversejs #converse-register input, #conversejs #converse-login input {
+      width: 100%;
+      height: 30px;
+      margin: 5px 0 10px 0;
+      padding-left: 0.5em; }
+  #conversejs .form-help {
+    color: gray;
+    font-size: 85%;
+    padding-top: 5px; }
+    #conversejs .form-help:hover {
+      color: #6C4C44; }
+  #conversejs .chatroom-form label,
+  #conversejs .controlbox-pane label,
+  #conversejs #converse-register label,
+  #conversejs #converse-login label {
+    font-size: 14px;
+    font-weight: bold;
+    height: auto;
+    margin: 4px; }
+  #conversejs form.add-chatroom {
+    background: none;
+    padding: 0.5em; }
+    #conversejs form.add-chatroom input[type=button],
+    #conversejs form.add-chatroom input[type=submit],
+    #conversejs form.add-chatroom input[type=text] {
+      margin: 0;
+      width: 100%;
+      padding: 0.25em; }
+    #conversejs form.add-chatroom span.spinner,
+    #conversejs form.add-chatroom input[type=button],
+    #conversejs form.add-chatroom input[type=submit] {
+      margin-top: 0.5em;
+      display: table-cell;
+      width: auto; }
+    #conversejs form.add-chatroom input[type=submit] {
+      color: #000; }
+  #conversejs select#select-xmpp-status {
+    float: right;
+    margin-right: 0.5em; }
+  #conversejs .chat-head {
+    border-top-left-radius: 4px;
+    border-top-right-radius: 4px;
+    color: #ffffff;
+    font-size: 100%;
+    margin: 0;
+    padding: 6px; }
+    #conversejs .chat-head.controlbox-head {
+      background-color: #555;
+      border-top-left-radius: 4px;
+      border-top-right-radius: 4px;
+      color: white;
+      height: 44px;
+      margin: 0;
+      padding: 6px 6px 6px 0; }
+    #conversejs .chat-head .avatar {
+      float: left; }
+    #conversejs .chat-head #controlbox-tabs {
+      text-align: center;
+      display: inline;
+      overflow: hidden;
+      font-size: 12px;
+      list-style-type: none;
+      /* single tab */ }
+      #conversejs .chat-head #controlbox-tabs a.current,
+      #conversejs .chat-head #controlbox-tabs a.current:hover {
+        box-shadow: none;
+        border-bottom: 0;
+        height: 44px;
+        cursor: default;
+        color: #6C4C44; }
+      #conversejs .chat-head #controlbox-tabs li {
+        float: left;
+        list-style: none;
+        padding-left: 0;
+        text-shadow: white 0 1px 0;
+        width: 38%; }
+        #conversejs .chat-head #controlbox-tabs li a {
+          background-color: white;
+          border-bottom: 1px solid #CCC;
+          border-top-left-radius: 4px;
+          border-top-right-radius: 4px;
+          box-shadow: inset 2px -2px 20px rgba(0, 0, 0, 0.3);
+          color: #888;
+          display: block;
+          font-size: 12px;
+          height: 43px;
+          line-height: 43px;
+          margin: 0;
+          text-align: center;
+          text-decoration: none; }
+        #conversejs .chat-head #controlbox-tabs li a:hover {
+          color: #6C4C44; }
+  #conversejs div#chatrooms {
+    overflow-y: auto; }
+  #conversejs form.sendXMPPMessage {
+    -moz-background-clip: padding;
+    -moz-border-radius: 4px;
+    -webkit-background-clip: padding-box;
+    -webkit-border-radius: 4px;
+    background-clip: padding-box;
+    background: white;
+    border-radius: 4px;
+    border-top-left-radius: 0;
+    border-top-right-radius: 0;
+    border-top: 1px solid #BBB;
+    border: 0;
+    margin: 0;
+    padding: 0;
+    position: relative;
+    height: 87px;
+    width: 200px; }
+    @media screen and (max-width: 480px) {
+      #conversejs form.sendXMPPMessage {
+        width: 100%; } }
+    #conversejs form.sendXMPPMessage .chat-textarea {
+      border-bottom-left-radius: 4px;
+      border-bottom-right-radius: 4px;
+      border: 0;
+      height: 62px;
+      padding: 0.5em;
+      width: 100%;
+      resize: none; }
+  #conversejs .chat-toolbar {
+    font-size: 14px;
+    margin: 0;
+    padding: 5px;
+    height: 25px;
+    display: block;
+    background-color: #EEE; }
+    #conversejs .chat-toolbar a {
+      color: #436F64; }
+    #conversejs .chat-toolbar .unencrypted a,
+    #conversejs .chat-toolbar .unencrypted {
+      color: #8f2831; }
+    #conversejs .chat-toolbar .unverified a,
+    #conversejs .chat-toolbar .unverified {
+      color: #cf5300; }
+    #conversejs .chat-toolbar .private a,
+    #conversejs .chat-toolbar .private {
+      color: #4b7003; }
+    #conversejs .chat-toolbar .toggle-participants,
+    #conversejs .chat-toolbar .toggle-clear,
+    #conversejs .chat-toolbar .toggle-otr {
+      float: right; }
+    #conversejs .chat-toolbar li {
+      display: inline-block;
+      list-style: none;
+      padding: 0 3px 0 3px;
+      cursor: pointer;
+      margin-top: 1px; }
+    #conversejs .chat-toolbar li:hover {
+      cursor: pointer; }
+    #conversejs .chat-toolbar ul {
+      background: #fff;
+      bottom: 100%;
+      box-shadow: -1px -1px 2px 0 rgba(0, 0, 0, 0.4);
+      display: none;
+      font-size: 12px;
+      margin: 0 0 1px 0;
+      position: absolute;
+      right: 0; }
+      #conversejs .chat-toolbar ul li {
+        cursor: pointer;
+        list-style: none;
+        position: relative; }
+        #conversejs .chat-toolbar ul li a:hover {
+          color: #8f2831; }
+    #conversejs .chat-toolbar .toggle-smiley {
+      color: #436F64;
+      padding-left: 5px; }
+      #conversejs .chat-toolbar .toggle-smiley ul li {
+        font-size: 14px;
+        padding: 5px;
+        z-index: 98; }
+      #conversejs .chat-toolbar .toggle-smiley ul li:hover {
+        background-color: #E1E6E5; }
+    #conversejs .chat-toolbar .toggle-otr ul li {
+      padding: 7px;
+      background-color: white;
+      display: block;
+      z-index: 99; }
+      #conversejs .chat-toolbar .toggle-otr ul li a {
+        -moz-transition: background-color 0.2s ease-in-out;
+        -webkit-transition: background-color 0.2s ease-in-out;
+        transition: background-color 0.2s ease-in-out;
+        display: block;
+        padding: 1px;
+        text-decoration: none; }
+    #conversejs .chat-toolbar .toggle-otr ul li:hover {
+      background-color: #E1E6E5; }
+  #conversejs .chat-toolbar-text {
+    font-size: 12px;
+    padding-right: 3px;
+    text-shadow: 0 1px 0 white; }
+  #conversejs #set-custom-xmpp-status {
+    float: left;
+    padding: 0; }
+    #conversejs #set-custom-xmpp-status input {
+      height: 26px;
+      width: -webkit-calc(100% - 40px);
+      width: calc(100% - 40px);
+      padding: 0 0 0 0.5em; }
+    #conversejs #set-custom-xmpp-status button {
+      height: 26px;
+      width: 40px;
+      padding: 1px; }
+  #conversejs .chat-textarea-chatbox-selected {
+    border: 1px solid #578308;
+    margin: 0; }
+  #conversejs .chat-textarea-chatroom-selected {
+    border: 2px solid #436F64;
+    margin: 0; }
+  #conversejs #controlbox {
+    display: none; }
+    #conversejs #controlbox div.xmpp-status {
+      display: inline; }
+  #conversejs .chatbox .dropdown {
+    background-color: #EEE; }
+    #conversejs .chatbox .dropdown dd {
+      position: relative; }
+  #conversejs .chatbox .dropdown dd,
+  #conversejs .dropdown dt,
+  #conversejs .dropdown ul {
+    margin: 0;
+    padding: 0; }
+  #conversejs .add-xmpp-contact {
+    background: none;
+    padding: 5px; }
+    #conversejs .add-xmpp-contact input {
+      margin: 0 0 1rem;
+      width: 100%; }
+    #conversejs .add-xmpp-contact button {
+      width: 100%; }
+  #conversejs .xmpp-status-menu {
+    text-align: left;
+    box-shadow: 1px 4px 10px 1px rgba(0, 0, 0, 0.4); }
+    #conversejs .xmpp-status-menu li {
+      padding: 2px; }
+      #conversejs .xmpp-status-menu li a {
+        width: 100%;
+        padding: 0 8px; }
+  #conversejs .xmpp-status-menu li a.logout,
+  #conversejs .xmpp-status-menu li a.logout span {
+    color: #681F2C; }
+  #conversejs .set-xmpp-status {
+    background: none;
+    padding: 0.75em 0.5em 0.5em 0.5em; }
+    #conversejs .set-xmpp-status .dropdown dd ul {
+      z-index: 22; }
+  #conversejs .minimized-chats-flyout,
+  #conversejs .box-flyout {
+    border-radius: 4px;
+    bottom: 6px;
+    box-shadow: 1px 3px 5px 3px rgba(0, 0, 0, 0.4);
+    display: block;
+    height: 400px;
+    position: absolute; }
+    @media screen and (max-width: 480px) {
+      #conversejs .minimized-chats-flyout,
+      #conversejs .box-flyout {
+        height: 400px; } }
+  #conversejs .minimized-chats-flyout {
+    border-radius: 4px;
+    bottom: 35px;
+    box-shadow: 1px 3px 5px 3px rgba(0, 0, 0, 0.4);
+    display: block;
+    position: absolute;
+    height: auto;
+    width: 130px; }
+    #conversejs .minimized-chats-flyout .chat-head-chatroom,
+    #conversejs .minimized-chats-flyout .chat-head {
+      border-radius: 4px;
+      width: 130px;
+      height: 35px;
+      margin-bottom: 1px; }
+  #conversejs .minimized-chats-flyout.minimized {
+    height: auto; }
+  #conversejs .dragresize {
+    position: absolute;
+    width: 200px;
+    height: 5px;
+    background: transparent;
+    border: 0;
+    top: 0;
+    margin-left: 0;
+    cursor: n-resize;
+    z-index: 20; }
+
+/*# sourceMappingURL=converse.css.map */
diff --git a/xmpp/converse/css/converse.min.css b/xmpp/converse/css/converse.min.css
new file mode 100644 (file)
index 0000000..cf46c1b
--- /dev/null
@@ -0,0 +1,18 @@
+/** Converse.js (Web-based XMPP instant messaging client) 
+* http://conversejs.org 
+* Copyright (c) 2012, Jan-Carel Brand <jc@opkode.com> 
+* Dual licensed under the MIT and GPL Licenses 
+*/
+/*!
+ * Converse.js (Web-based XMPP instant messaging client)
+ * http://conversejs.org
+ *
+ * Copyright (c) 2012-2014, JC Brand <jc@opkode.com>
+ * Licensed under the Mozilla Public License
+ *//*!
+ * Converse.js (Web-based XMPP instant messaging client)
+ * http://conversejs.org
+ *
+ * Copyright (c) 2012-2014, JC Brand <jc@opkode.com>
+ * Licensed under the Mozilla Public License
+ */@font-face{font-family:Converse-js;src:url(../fonticons/fonts/icomoon.eot?-mnoxh0);src:url(../fonticons/fonts/icomoon.eot?#iefix-mnoxh0) format("embedded-opentype"),url(../fonticons/fonts/icomoon.woff?-mnoxh0) format("woff"),url(../fonticons/fonts/icomoon.ttf?-mnoxh0) format("truetype"),url(../fonticons/fonts/icomoon.svg?-mnoxh0#icomoon) format("svg");font-weight:400;font-style:normal}.icon-conversejs{font-family:Converse-js;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-conversejs:before{content:"\e600"}#conversejs{color:#6C4C44;font-size:14px;bottom:0;direction:ltr;height:35px;left:auto;position:fixed;right:15px;z-index:30;display:block;width:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#conversejs ::selection{background-color:#E1E6E5}#conversejs ::-moz-selection{background-color:#E1E6E5}#conversejs *,#conversejs :after,#conversejs :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media screen and (max-width:480px){#conversejs{margin:0;right:10px;left:10px;bottom:5px}}#conversejs a,#conversejs a:visited{text-decoration:none;color:#436F64;text-shadow:none}#conversejs ul li{height:auto}#conversejs a,#conversejs article,#conversejs aside,#conversejs audio,#conversejs blockquote,#conversejs canvas,#conversejs caption,#conversejs dd,#conversejs details,#conversejs div,#conversejs dl,#conversejs dt,#conversejs em,#conversejs embed,#conversejs fieldset,#conversejs figcaption,#conversejs figure,#conversejs footer,#conversejs form,#conversejs h1,#conversejs h2,#conversejs h3,#conversejs h4,#conversejs h5,#conversejs h6,#conversejs header,#conversejs hgroup,#conversejs img,#conversejs label,#conversejs legend,#conversejs li,#conversejs mark,#conversejs menu,#conversejs nav,#conversejs ol,#conversejs output,#conversejs p,#conversejs pre,#conversejs ruby,#conversejs section,#conversejs span,#conversejs strong,#conversejs summary,#conversejs table,#conversejs tbody,#conversejs td,#conversejs tfoot,#conversejs th,#conversejs thead,#conversejs time,#conversejs tr,#conversejs ul,#conversejs video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}#conversejs button,#conversejs input[type=button],#conversejs input[type=password],#conversejs input[type=submit],#conversejs input[type=text],#conversejs textarea{font-size:14px;padding:.25em;min-height:0}#conversejs input[type=text]{height:26px}#conversejs strong{font-weight:700}#conversejs ol,#conversejs ul{list-style:none}#conversejs li{height:10px}#conversejs dl,#conversejs ol,#conversejs ul{font:inherit;margin:0}#conversejs [data-icon]:before{content:attr(data-icon);font-family:Converse-js;font-variant:normal;font-weight:400;line-height:1;speak:none;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#conversejs [class*=" icon-"],#conversejs [class^=icon-]{background-position:14px 14px;background-image:none;font-family:Converse-js;font-style:normal;font-variant:normal;font-weight:400;width:auto;height:auto;line-height:1;speak:none;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#conversejs .icon-address-book:before{content:"\270f"}#conversejs .icon-angry:before{content:"\e03f"}#conversejs .icon-attachment:before{content:"\e032"}#conversejs .icon-away:before{content:"\25fb"}#conversejs .icon-blocked:before{content:"\2718"}#conversejs .icon-bold:before{content:"\e04d"}#conversejs .icon-bubbles-2:before{content:"\e016"}#conversejs .icon-bubbles-3:before{content:"\e017"}#conversejs .icon-bubbles:before{content:"\e015"}#conversejs .icon-camera-2:before{content:"\2616"}#conversejs .icon-camera:before{content:"\e003"}#conversejs .icon-cancel-circle:before{content:"\e058"}#conversejs .icon-checkbox-checked:before{content:"\2611"}#conversejs .icon-checkbox-partial:before{content:"\2b28"}#conversejs .icon-checkbox-unchecked:before{content:"\2b27"}#conversejs .icon-checkmark:before{content:"\2713"}#conversejs .icon-close:before{content:"\2715"}#conversejs .icon-closed:before{content:"\25ba"}#conversejs .icon-cog:before{content:"\e02f"}#conversejs .icon-cogs:before{content:"\e022"}#conversejs .icon-confused:before{content:"\2368"}#conversejs .icon-cool:before{content:"\e040"}#conversejs .icon-dnd:before{content:"\e004"}#conversejs .icon-envelop:before{content:"\2709"}#conversejs .icon-evil:before{content:"\261f"}#conversejs .icon-eye-blocked:before{content:"\e031"}#conversejs .icon-eye:before{content:"\e030"}#conversejs .icon-globe:before{content:"\e033"}#conversejs .icon-grin:before{content:"\e041"}#conversejs .icon-happy:before{content:"\263b"}#conversejs .icon-headphones:before{content:"\266c"}#conversejs .icon-heart:before{content:"\2764"}#conversejs .icon-hide-users:before{content:"\e01c"}#conversejs .icon-home:before{content:"\e000"}#conversejs .icon-image:before{content:"\2b14"}#conversejs .icon-info:before{content:"\2360"}#conversejs .icon-italic:before{content:"\e04f"}#conversejs .icon-key-2:before{content:"\e029"}#conversejs .icon-key:before{content:"\e028"}#conversejs .icon-lock-2:before{content:"\e027"}#conversejs .icon-lock:before{content:"\e026"}#conversejs .icon-logout:before{content:"\e601"}#conversejs .icon-minus:before{content:"\e05a"}#conversejs .icon-music:before{content:"\266b"}#conversejs .icon-new-tab:before{content:"\e053"}#conversejs .icon-newspaper:before{content:"\e001"}#conversejs .icon-notebook:before{content:"\2710"}#conversejs .icon-notification:before{content:"\e01f"}#conversejs .icon-chat:before,#conversejs .icon-online:before{content:"\25fc"}#conversejs .icon-opened:before{content:"\25bc"}#conversejs .icon-pencil:before{content:"\270e"}#conversejs .icon-phone-hang-up:before{content:"\260e"}#conversejs .icon-phone:before{content:"\260f"}#conversejs .icon-play:before{content:"\25d9"}#conversejs .icon-plus:before{content:"\271a"}#conversejs .icon-pushpin:before{content:"\e012"}#conversejs .icon-quotes-left:before{content:"\e01d"}#conversejs .icon-radio-checked:before{content:"\2b26"}#conversejs .icon-radio-unchecked:before{content:"\2b25"}#conversejs .icon-remove:before{content:"\e02d"}#conversejs .icon-room-info:before{content:"\e059"}#conversejs .icon-sad:before{content:"\2639"}#conversejs .icon-search:before{content:"\e021"}#conversejs .icon-shocked:before{content:"\2364"}#conversejs .icon-show-users:before{content:"\e01e"}#conversejs .icon-smiley:before{content:"\263a"}#conversejs .icon-spell-check:before{content:"\e045"}#conversejs .icon-spinner:before{content:"\231b"}#conversejs .icon-strikethrough:before{content:"\e050"}#conversejs .icon-thumbs-up:before{content:"\261d"}#conversejs .icon-tongue:before{content:"\e038"}#conversejs .icon-underline:before{content:"\e04e"}#conversejs .icon-unlocked:before{content:"\e025"}#conversejs .icon-user:before{content:"\e01a"}#conversejs .icon-users:before{content:"\e01b"}#conversejs .icon-volume-decrease:before{content:"\e04b"}#conversejs .icon-volume-high:before{content:"\e046"}#conversejs .icon-volume-increase:before{content:"\e04c"}#conversejs .icon-volume-low:before{content:"\e048"}#conversejs .icon-volume-medium:before{content:"\e047"}#conversejs .icon-volume-mute-2:before{content:"\e04a"}#conversejs .icon-volume-mute:before{content:"\e049"}#conversejs .icon-warning:before{content:"\26a0"}#conversejs .icon-wink:before{content:"\e03a"}#conversejs .icon-wondering:before{content:"\2369"}#conversejs .icon-wrench:before{content:"\e024"}#conversejs .icon-xa:before{content:"\e602"}#conversejs .icon-offline:before,#conversejs .icon-unavailable:before{content:"\e002"}#conversejs .icon-youtube:before{content:"\e055"}#conversejs .icon-zoom-in:before{content:"\e02b"}#conversejs .icon-zoom-out:before{content:"\e02a"}#conversejs .no-text-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#conversejs .emoticon{font-size:14px}#conversejs .left{float:left}#conversejs .right{float:right}#conversejs .hidden{display:none}#conversejs .locked{padding-right:22px}@-webkit-keyframes spin{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(359deg)}}@-moz-keyframes spin{from{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(359deg)}}@keyframes spin{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);-moz-transform:rotate(359deg);-ms-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}#conversejs .spinner:before{font-size:24px;font-family:Converse-js!important;content:"\231b"}#conversejs .spinner{-webkit-animation:spin 2s infinite,linear;-moz-animation:spin 2s infinite,linear;animation:spin 2s infinite,linear;display:block;text-align:center;margin:5px}#conversejs .centered{text-align:center;display:block;margin:5em auto}#conversejs .hor_centered{text-align:center;display:block;margin:0 auto;clear:both}#conversejs #minimized-chats,#conversejs .toggle-controlbox{border-top-left-radius:4px;border-top-right-radius:4px;float:right;margin:0 7px;font-weight:700}#conversejs .toggle-controlbox{background-color:#436F64;color:#0a0a0a;height:100%;padding:10px 8px 0}#conversejs .toggle-controlbox span{color:#fff}#conversejs .button-group,#conversejs .input-button-group{display:table}#conversejs .button-group{width:100%}#conversejs .input-button-group button,#conversejs .input-button-group input{display:table-cell}#conversejs #minimized-chats{color:#fff;display:none;height:100%;padding:0;width:130px}#conversejs #minimized-chats #toggle-minimized-chats{border-top-left-radius:4px;border-top-right-radius:4px;background-color:ivory;position:relative;padding:10px 0 0;display:block;width:100%;height:100%;text-align:center}#conversejs #minimized-chats .chat-head-message-count,#conversejs #minimized-chats .unread-message-count{font-weight:700;background-color:#f6f6f6;background-image:-webkit-linear-gradient(#f6f6f6 5%,gray 100%);background-image:linear-gradient(#f6f6f6 5%,gray 100%);border:1px solid;text-shadow:1px 1px 0 #FAFAFA;color:#681F2C;border-radius:5px;padding:2px 4px;font-size:16px;text-align:center;position:absolute;right:116px;bottom:10px}#conversejs #minimized-chats .box-flyout{position:absolute;display:block;height:auto;bottom:35px;margin-left:0}#conversejs #minimized-chats .box-flyout .chat-head{font-size:100%;border-radius:4px;padding:3px 0 0 5px;margin:0 0 1px;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);height:24px;width:130px}#conversejs .chat-body{background-color:#fff;border-bottom-right-radius:4px;border-bottom-left-radius:4px;height:289px;height:-webkit-calc(100% - 44px);height:calc(100% - 44px);border-top:0}#conversejs .chat-body p{font-size:14px;color:#6C4C44;padding:5px;margin:0}#conversejs .tt-highlight{background-color:#00230F}#conversejs .tt-suggestion p{color:#fff;text-shadow:rgba(0,0,0,.51)0 -1px 0;cursor:pointer;font-size:11px}#conversejs .tt-suggestion p:hover{background-color:#00230F}#conversejs .tt-suggestion p:hover .tt-highlight{background:#27774A}#conversejs .tt-dropdown-menu{margin:0 1px;width:96px;max-height:250px;overflow-x:hidden;overflow-y:auto;text-overflow:ellipsis;background:#27774A;border-bottom-right-radius:4px;border-bottom-left-radius:4px}#conversejs .chat-blink{background-color:#176679;border-right:1px solid #176679;border-left:1px solid #176679}#conversejs .chat-content{position:relative;padding:8px;font-size:13px;color:#6C4C44;overflow-y:auto;border:0;background-color:#fff;line-height:1.3em;height:206px;height:calc(100% - 89px)}#conversejs .chat-error{color:#681F2C;font-weight:700}#conversejs .chat-error,#conversejs .chat-info,#conversejs .chat-message{padding:2px 0}#conversejs .chat-message-me,#conversejs .chat-message-room,#conversejs .chat-message-them{font-weight:700;white-space:nowrap;max-width:100px;text-overflow:ellipsis;overflow:hidden;display:inline-block;float:left;padding-right:3px}#conversejs .chat-message-content{word-wrap:break-word}#conversejs .chat-message-room,#conversejs .chat-message-them{color:#346121}#conversejs .chat-message-me{color:#436F64}#conversejs .chat-date,#conversejs .chat-event,#conversejs .chat-info{color:gray}#conversejs li.chat-info{padding-left:10px}#conversejs .chat-date{display:inline-block;padding-top:10px}#conversejs .not-implemented{margin-top:3em;margin-left:.3em;color:gray}#conversejs .mentioned{font-weight:700}#conversejs .delayed .chat-message-them{color:#FB5D50}#conversejs .delayed .chat-message-me{color:#7EABBB}#conversejs .error{color:red}#conversejs input.error{border:1px solid red}#conversejs .reg-feedback{font-size:85%}#conversejs #converse-login .conn-feedback,#conversejs .reg-feedback{display:block;text-align:center;width:100%}#conversejs .chat-message-error{color:#76797C;font-size:90%;font-weight:400}#conversejs .chat-title,#conversejs a.restore-chat{padding:1px 0 1px 5px;color:#fff;font-weight:700;line-height:15px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:rgba(0,0,0,.51)0 -1px 0}#conversejs a.restore-chat:visited{color:#fff}#conversejs .chat-title a{color:#fff;width:100%;text-overflow:ellipsis;white-space:nowrap}#conversejs .chat-head-chatbox,#conversejs .chat-head-chatroom{height:44px;position:relative;padding:5px}#conversejs .chat-head-chatroom{background-color:#346121}#conversejs .chat-head-chatbox{background-color:#436F64}#conversejs .chatroom-topic,#conversejs .user-custom-message{color:#fff;font-size:80%;font-style:italic;height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;padding:1px 0 1px 5px}#conversejs .activated{display:block!important}#conversejs a.subscribe-to-user{padding-left:2em;font-weight:700}#conversejs dl.add-converse-contact{margin:0 .5em .75em}#conversejs .fancy-dropdown{border:1px solid #E5E9E8;height:25px;text-align:left}#conversejs .fancy-dropdown .choose-xmpp-status{width:155px}#conversejs .fancy-dropdown .choose-xmpp-status span{padding-right:5px;padding-left:5px;float:left}#conversejs .fancy-dropdown .choose-xmpp-status,#conversejs .fancy-dropdown .toggle-xmpp-contact-form{text-shadow:0 1px 0 #fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline}#conversejs .fancy-dropdown .toggle-xmpp-contact-form span{float:left}#conversejs #fancy-xmpp-status-select a.change-xmpp-status-message{float:right;clear:right;height:22px;width:12px;margin:0 5px 0 0;color:#436F64}#conversejs ul#found-users{padding:10px 0 5px 5px;border:0}#conversejs form.search-xmpp-contact{margin:0;padding:0 0 5px 5px}#conversejs form.search-xmpp-contact input{width:8em}#conversejs a.close-chatbox-button,#conversejs a.configure-chatroom-button,#conversejs a.toggle-chatbox-button{border-radius:5px;border:1px solid #888;color:#fff;cursor:pointer;display:inline-block;float:right;font-size:10px;margin:0 0 0 3px;padding-top:3px;padding-bottom:3px;padding-left:2px;padding-right:3px;text-decoration:none}#conversejs a.close-chatbox-button:active,#conversejs a.configure-chatroom-button:active,#conversejs a.toggle-chatbox-button:active{position:relative;top:1px}#conversejs .chatroom-form-container{height:100%;color:#6C4C44;overflow-y:auto;border-bottom-right-radius:4px;border-bottom-left-radius:4px}#conversejs .chatroom-form{padding:1em}#conversejs .chatroom-form .instructions{color:gray;font-size:95%}#conversejs .chatroom-form input{width:100%;padding:5px;text-align:center}#conversejs .chatroom-form legend{font-size:16px;font-weight:700;margin:10px 0 15px}#conversejs .chatroom-form label{display:block;clear:both}#conversejs .chatroom-form label label input,#conversejs .chatroom-form label label select{float:right}#conversejs .requesting-xmpp-contact .request-actions{margin-left:.5em;float:right}#conversejs #converse-roster{text-align:left;width:100%;position:relative;margin:.5em 0 0;height:194px;height:calc(100% - 50px - 20px);overflow:hidden}#conversejs #converse-roster.no-contact-requests{height:calc(100% - 25px - 20px)}#conversejs #converse-roster .filter-type{display:table-cell;float:right;font-size:14px;height:25px;margin:0 0 .5em -1px;padding:0;width:84px}#conversejs #converse-roster .roster-filter{float:left;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAABNSURBVHjaXI7BDcAwCAMvyQjMyQ6dAbZiKfqoUK34g2zJh1dENIC7M8pMAPYdzAVY3d0ajNz9aypS/b5R6o+ZPdqoKgCq6h80KH3xDgBqNR97p8oAGQAAAABJRU5ErkJggg==) no-repeat right -20px center;border:1px solid #999;font-size:14px;height:25px;margin:0 0 .5em 7px;padding:0;padding:2px;width:103px}#conversejs #converse-roster .roster-filter.x{background-position:right 3px center}#conversejs #converse-roster .roster-filter.onX{cursor:pointer}#conversejs #converse-roster .roster-contacts{margin:0;max-height:195px;max-height:calc(100% - 26px);overflow-x:hidden;overflow-y:auto;padding-bottom:15px}#conversejs #converse-roster .group-toggle{color:#6C4C44;display:block;width:100%}#conversejs #converse-roster dt{display:none}#conversejs #converse-roster dd{line-height:16px;padding:4px 2px 0 4px;height:24px}#conversejs #converse-roster dd a,#conversejs #converse-roster dd span{text-shadow:0 1px 0 #FAFAFA;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-left:3px}#conversejs #converse-roster dd span{padding:0 5px 0 0}#conversejs #converse-roster dd a.decline-xmpp-request{margin-left:5px}#conversejs #converse-roster dd a.remove-xmpp-contact{float:right;width:22px;margin:0;display:none;color:#6C4C44}#conversejs #converse-roster dd:hover a.remove-xmpp-contact{display:inline-block}#conversejs #converse-roster dd.odd{background-color:#DCEAC5}#conversejs #converse-roster dd.current-xmpp-contact span{font-size:16px;float:left;color:#436F64}#conversejs #converse-roster dd a.open-chat,#conversejs #converse-roster span.pending-contact-name{width:80%}#conversejs #converse-roster span.req-contact-name{width:69%;padding:0}#conversejs #available-chatrooms{text-align:left}#conversejs #available-chatrooms dt,#conversejs #converse-roster dt{font-weight:400;color:#6C4C44;border:none;padding:.5em;text-shadow:0 1px 0 #FAFAFA}#conversejs .room-info{font-size:11px;font-style:normal;font-weight:400}#conversejs li.room-info{display:block;margin-left:5px}#conversejs div.room-info{clear:left;width:100%}#conversejs p.room-info{margin:0;padding:0;display:block;white-space:normal}#conversejs a.room-info{width:15px;display:none;clear:right}#conversejs a.open-room{float:left;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden}#conversejs dd.available-chatroom{border:none;clear:both;color:#6C4C44;display:block;font-weight:700;overflow:hidden;padding:.25em .5em;text-overflow:ellipsis;text-shadow:0 1px 0 #FAFAFA;white-space:nowrap}#conversejs dd.available-chatroom a.open-room{width:150px}#conversejs dd.available-chatroom:hover{background-color:#E1E6E5}#conversejs dd.available-chatroom:hover .room-info{display:block;font-size:14px}#conversejs #converse-roster dd{border:none;clear:both;color:#6C4C44;display:block;font-weight:700;overflow-y:hidden;text-shadow:0 1px 0 #FAFAFA}#conversejs #converse-roster dd:hover,#conversejs .roster-group:hover{background-color:#E1E6E5}#conversejs .chatbox,#conversejs .chatroom{height:35px;float:right;margin:0 7px;display:block}@media screen and (max-width:480px){#conversejs .chatbox,#conversejs .chatroom{margin:0}}#conversejs .chatbox{width:200px}@media screen and (max-width:480px){#conversejs .chatbox{width:100%}}#conversejs .chatbox .box-flyout{z-index:1;width:200px}@media screen and (max-width:480px){#conversejs .chatbox .box-flyout{width:100%}}#conversejs .chatbox .dropdown a{width:148px;display:inline-block;line-height:25px}#conversejs .chatbox .dropdown li{list-style:none;padding-left:0}#conversejs .chatbox .dropdown dd ul{padding:0;list-style:none;position:absolute;left:0;top:0;border:1px solid #E5E9E8;width:100%;z-index:21;background-color:beige}#conversejs .chatbox .dropdown dd ul li:hover{background-color:#E1E6E5}#conversejs .chatbox .dropdown dd.search-xmpp ul{box-shadow:1px 4px 10px 1px rgba(0,0,0,.4)}#conversejs .chatbox .dropdown dd.search-xmpp ul li:hover{background-color:beige}#conversejs .chatbox .dropdown dt a span{cursor:pointer;display:block;padding:4px 7px 0 5px}#conversejs .chatroom,#conversejs .chatroom .box-flyout{width:300px}@media screen and (max-width:480px){#conversejs .chatroom,#conversejs .chatroom .box-flyout{width:100%}}#conversejs .chatroom label{margin-left:2px;font-size:12px}#conversejs .chatroom .participant-list{list-style:none}#conversejs .chatroom .participant-list li{cursor:default;display:block;font-size:12px;font-weight:700;overflow:hidden;padding:2px 5px;text-overflow:ellipsis;white-space:nowrap}#conversejs .chatroom .participant-list li.moderator{color:#8f2831}#conversejs .chatroom .chat-textarea{border-bottom-right-radius:0}#conversejs .chatroom .chat-area{float:left;height:100%;width:200px}#conversejs .chatroom .invited-contact{margin:-1px 0 0 -1px;width:100px;border:1px solid #999}#conversejs .chatroom .invited-contact.tt-input{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gkBCjE0uzKkOgAAAidJREFUKM+N0k+IEnEUB/D3cyscdagkWpHV0WGWREXm0AgOGkSJ07kh2UXYU5cOewm6Bp0KXG/tpSCv6hyEFQIhMEaE3yERYfwTOoqKGLQxDAbqYadLgu7J7/XxeY/3ez8EACDLsgljfMfj8ZxUKhXXYDAAnueBoqgyAMipVOovXAuSZdnUaDQeDofDs16vFyUIAjRNUwmCoG02G1AUdZ5IJN7GYrHfm3AvEAjcnUwmX0ajUdRqtV74fL6sruufKYoa6bp+fzabPUMI7ZfL5eImNHk8npNerxc1m80XHMe98fv9H3K5XDkSibxjWfb1arWaYoyPMMbCFqxUKi6CIODw8LDmdDq7oigaAACiKK5omv7KcdylpmlIkiTHFlRVFTRNUxVFqa/ROqIoGoqi5A3DgFartfU4Jp7ngSAI2uVyPZIk6dZmUZKk2w6H4xghBPF4HK7vWLbZbDCdTp+rqvpUkiS0RvV6/bTf7x8wDHMViURqm/AGAMgURZ232+1X1Wr102KxuEwmk3lZlo/7/f7BcrkkSZKs2e12tHXH/x/gHsY4jTE+0jQNGYYBCCFgGOaKJMkfjUaDZximGQ6HXzSbzZ+ZTMbY6oIxFgqFgqPT6YAgCMBxXM1ut6N0Op0fj8chi8XyjWXZ98Fg8DuCHZLNZh+USqWP8/n8idvt/hUKhV7u7QK9Xu8fmqanAJBQVXUfAGY7TQQAKBaLN8fjsdDtdh/run72Dzhf7XLe2UevAAAAAElFTkSuQmCC) no-repeat right 3px center}#conversejs .chatroom .participants{float:right;background-color:#fff;overflow-y:auto;overflow-x:hidden;border-left:1px solid #AAA;border-bottom-right-radius:4px;width:100px;height:100%}#conversejs .chatroom .participants label{font-size:12px;font-style:italic;margin:5px;display:block}#conversejs .chatroom-form,#conversejs .controlbox-pane{background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border:0;font-size:14px;overflow-y:auto;position:absolute;text-align:center;width:100%;height:289px;height:-webkit-calc(100% - 44px);height:calc(100% - 44px)}#conversejs .controlbox-pane{overflow-y:hidden;overflow-x:hidden}#conversejs .controlbox-pane dd{margin-left:0;margin-bottom:0}#conversejs .controlbox-pane dd.odd{background-color:#DCEAC5}#conversejs #converse-register .title{font-weight:700}#conversejs #converse-register .info{font-style:italic;color:green;font-size:85%;margin:5px 0}#conversejs #converse-register .form-errors{color:red;display:none}#conversejs #converse-register .provider-title{font-size:22px}#conversejs #converse-register .provider-score{width:178px;margin-bottom:8px}#conversejs #converse-register .form-help .url{font-weight:700;color:#436F64}#conversejs #converse-register .input-group{display:table;margin:auto;width:100%}#conversejs #converse-register .input-group span{overflow-x:hidden;text-overflow:ellipsis;max-width:110px}#conversejs #converse-register .input-group input[name=username],#conversejs #converse-register .input-group span{display:table-cell;text-align:left}#conversejs #converse-register .instructions{color:gray;font-size:85%}#conversejs #converse-register .instructions:hover{color:#6C4C44}#conversejs #converse-login,#conversejs #converse-register{margin:2em 1em 1em;background:#fff}#conversejs #converse-login .login-submit,#conversejs #converse-login .submit,#conversejs #converse-register .login-submit,#conversejs #converse-register .submit{height:30px;padding:0;font-size:14px}#conversejs #converse-login .submit,#conversejs #converse-register .submit{margin:1em 0}#conversejs #converse-login .login-anon,#conversejs #converse-register .login-anon{height:auto;white-space:normal}#conversejs #converse-login .cancel-submit,#conversejs #converse-login .save-submit,#conversejs #converse-register .cancel-submit,#conversejs #converse-register .save-submit{width:45%;margin:5px 3px}#conversejs #converse-login .cancel,#conversejs #converse-login .cancel-submit,#conversejs #converse-register .cancel,#conversejs #converse-register .cancel-submit{color:#681F2C}#conversejs #converse-login .save-submit,#conversejs #converse-register .save-submit{color:#436F64}#conversejs #converse-login input,#conversejs #converse-register input{width:100%;height:30px;margin:5px 0 10px;padding-left:.5em}#conversejs .form-help{color:gray;font-size:85%;padding-top:5px}#conversejs .form-help:hover{color:#6C4C44}#conversejs #converse-login label,#conversejs #converse-register label,#conversejs .chatroom-form label,#conversejs .controlbox-pane label{font-size:14px;font-weight:700;height:auto;margin:4px}#conversejs form.add-chatroom{background:0 0;padding:.5em}#conversejs form.add-chatroom input[type=button],#conversejs form.add-chatroom input[type=submit],#conversejs form.add-chatroom input[type=text]{margin:0;width:100%;padding:.25em}#conversejs form.add-chatroom input[type=button],#conversejs form.add-chatroom input[type=submit],#conversejs form.add-chatroom span.spinner{margin-top:.5em;display:table-cell;width:auto}#conversejs form.add-chatroom input[type=submit]{color:#436F64}#conversejs select#select-xmpp-status{float:right;margin-right:.5em}#conversejs .chat-head{border-top-left-radius:4px;border-top-right-radius:4px;color:#fff;font-size:100%;margin:0;padding:6px}#conversejs .chat-head.controlbox-head{background-color:#436F64;border-top-left-radius:4px;border-top-right-radius:4px;color:#fff;height:44px;margin:0;padding:6px 6px 6px 0}#conversejs .chat-head .avatar{float:left}#conversejs .chat-head #controlbox-tabs{text-align:center;display:inline;overflow:hidden;font-size:12px;list-style-type:none}#conversejs .chat-head #controlbox-tabs a.current,#conversejs .chat-head #controlbox-tabs a.current:hover{box-shadow:none;border-bottom:0;height:44px;cursor:default;color:#6C4C44}#conversejs .chat-head #controlbox-tabs li{float:left;list-style:none;padding-left:0;text-shadow:#fff 0 1px 0;width:38%}#conversejs .chat-head #controlbox-tabs li a{background-color:#fff;border-bottom:1px solid #CCC;border-top-left-radius:4px;border-top-right-radius:4px;box-shadow:inset 2px -2px 20px rgba(0,0,0,.3);color:#888;display:block;font-size:12px;height:43px;line-height:43px;margin:0;text-align:center;text-decoration:none}#conversejs .chat-head #controlbox-tabs li a:hover{color:#6C4C44}#conversejs div#chatrooms{overflow-y:auto}#conversejs form.sendXMPPMessage{-moz-background-clip:padding;-moz-border-radius:4px;-webkit-background-clip:padding-box;-webkit-border-radius:4px;background:#fff;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0;border:0;margin:0;padding:0;position:relative;height:87px;width:200px}@media screen and (max-width:480px){#conversejs form.sendXMPPMessage{width:100%}}#conversejs form.sendXMPPMessage .chat-textarea{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border:0;height:62px;padding:.5em;width:100%;resize:none}#conversejs .chat-toolbar{font-size:14px;margin:0;padding:5px;height:25px;display:block;background-color:beige}#conversejs .chat-toolbar a{color:#436F64}#conversejs .chat-toolbar .unencrypted,#conversejs .chat-toolbar .unencrypted a{color:#8f2831}#conversejs .chat-toolbar .unverified,#conversejs .chat-toolbar .unverified a{color:#cf5300}#conversejs .chat-toolbar .private,#conversejs .chat-toolbar .private a{color:#4b7003}#conversejs .chat-toolbar .toggle-clear,#conversejs .chat-toolbar .toggle-otr,#conversejs .chat-toolbar .toggle-participants{float:right}#conversejs .chat-toolbar li{display:inline-block;list-style:none;padding:0 3px;cursor:pointer;margin-top:1px}#conversejs .chat-toolbar li:hover{cursor:pointer}#conversejs .chat-toolbar ul{background:#fff;bottom:100%;box-shadow:-1px -1px 2px 0 rgba(0,0,0,.4);display:none;font-size:12px;margin:0 0 1px;position:absolute;right:0}#conversejs .chat-toolbar ul li{cursor:pointer;list-style:none;position:relative}#conversejs .chat-toolbar ul li a:hover{color:#8f2831}#conversejs .chat-toolbar .toggle-smiley{color:#436F64;padding-left:5px}#conversejs .chat-toolbar .toggle-smiley ul li{font-size:14px;padding:5px;z-index:98}#conversejs .chat-toolbar .toggle-smiley ul li:hover{background-color:#E1E6E5}#conversejs .chat-toolbar .toggle-otr ul li{padding:7px;background-color:#fff;display:block;z-index:99}#conversejs .chat-toolbar .toggle-otr ul li a{-moz-transition:background-color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;display:block;padding:1px;text-decoration:none}#conversejs .chat-toolbar .toggle-otr ul li:hover{background-color:#E1E6E5}#conversejs .chat-toolbar-text{font-size:12px;padding-right:3px;text-shadow:0 1px 0 #fff}#conversejs #set-custom-xmpp-status{float:left;padding:0}#conversejs #set-custom-xmpp-status input{height:26px;width:-webkit-calc(100% - 40px);width:calc(100% - 40px);padding:0 0 0 .5em}#conversejs #set-custom-xmpp-status button{height:26px;width:40px;padding:1px}#conversejs .chat-textarea-chatbox-selected{border:1px solid #578308;margin:0}#conversejs .chat-textarea-chatroom-selected{border:2px solid #436F64;margin:0}#conversejs #controlbox{display:none}#conversejs #controlbox div.xmpp-status{display:inline}#conversejs .chatbox .dropdown{background-color:beige}#conversejs .chatbox .dropdown dd{position:relative}#conversejs .chatbox .dropdown dd,#conversejs .dropdown dt,#conversejs .dropdown ul{margin:0;padding:0}#conversejs .add-xmpp-contact{background:0 0;padding:5px}#conversejs .add-xmpp-contact input{margin:0 0 1rem;width:100%}#conversejs .add-xmpp-contact button{width:100%}#conversejs .xmpp-status-menu{text-align:left;box-shadow:1px 4px 10px 1px rgba(0,0,0,.4)}#conversejs .xmpp-status-menu li{padding:2px}#conversejs .xmpp-status-menu li a{width:100%;padding:0 8px}#conversejs .xmpp-status-menu li a.logout,#conversejs .xmpp-status-menu li a.logout span{color:#681F2C}#conversejs .set-xmpp-status{background:0 0;padding:.75em .5em .5em}#conversejs .set-xmpp-status .dropdown dd ul{z-index:22}#conversejs .box-flyout,#conversejs .minimized-chats-flyout{border-radius:4px;bottom:6px;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);display:block;height:400px;position:absolute}@media screen and (max-width:480px){#conversejs .box-flyout,#conversejs .minimized-chats-flyout{height:400px}}#conversejs .minimized-chats-flyout{border-radius:4px;bottom:35px;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);display:block;position:absolute;height:auto;width:130px}#conversejs .minimized-chats-flyout .chat-head,#conversejs .minimized-chats-flyout .chat-head-chatroom{border-radius:4px;width:130px;height:35px;margin-bottom:1px}#conversejs .minimized-chats-flyout.minimized{height:auto}#conversejs .dragresize{position:absolute;width:200px;height:5px;background:0 0;border:0;top:0;margin-left:0;cursor:n-resize;z-index:20}
\ No newline at end of file
diff --git a/xmpp/converse/css/images/arrow.svg b/xmpp/converse/css/images/arrow.svg
new file mode 100644 (file)
index 0000000..54ce35b
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="12px" viewBox="0 0 24 12" zoomAndPan="disable">\r
+       <line x1="0" y1="0" x2="12" y2="12" style="stroke:#ccc;stroke-width:1.5" />\r
+       <line x1="24" y1="0" x2="12" y2="12" style="stroke:#ccc;stroke-width:1.5" />\r
+</svg>
\ No newline at end of file
diff --git a/xmpp/converse/css/images/bgbl.svg b/xmpp/converse/css/images/bgbl.svg
new file mode 100644 (file)
index 0000000..d3e960b
--- /dev/null
@@ -0,0 +1,26 @@
+<!--\r
+       Tessellate 1.0 by HTML5 UP\r
+       html5up.net | @n33co\r
+       Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)\r
+-->\r
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="1000px" viewBox="0 0 1000 1000" zoomAndPan="disable">\r
+    <style type="text/css"><![CDATA[\r
+               line\r
+               {\r
+                       stroke: rgba(255,255,255,0.1);\r
+                       stroke-width: 0.85px;\r
+               }\r
+    ]]></style>\r
+       <line x1="-180" y1="0" x2="820" y2="1000" />\r
+       <line x1="-380" y1="0" x2="620" y2="1000" />\r
+       <line x1="-530" y1="0" x2="470" y2="1000" />\r
+       <line x1="-655" y1="0" x2="345" y2="1000" />\r
+       <line x1="-755" y1="0" x2="245" y2="1000" />\r
+       <line x1="-830" y1="0" x2="170" y2="1000" />\r
+       <line x1="-880" y1="0" x2="120" y2="1000" />\r
+       <line x1="-920" y1="0" x2="80" y2="1000" />\r
+       <line x1="-950" y1="0" x2="50" y2="1000" />\r
+       <line x1="-970" y1="0" x2="30" y2="1000" />\r
+       <line x1="-985" y1="0" x2="15" y2="1000" />\r
+       <line x1="-995" y1="0" x2="5" y2="1000" />\r
+</svg>
\ No newline at end of file
diff --git a/xmpp/converse/css/images/bgtr.svg b/xmpp/converse/css/images/bgtr.svg
new file mode 100644 (file)
index 0000000..b0b7d47
--- /dev/null
@@ -0,0 +1,26 @@
+<!--\r
+       Tessellate 1.0 by HTML5 UP\r
+       html5up.net | @n33co\r
+       Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)\r
+-->\r
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="1000px" viewBox="0 0 1000 1000" zoomAndPan="disable">\r
+    <style type="text/css"><![CDATA[\r
+               line\r
+               {\r
+                       stroke: rgba(255,255,255,0.1);\r
+                       stroke-width: 0.85px;\r
+               }\r
+    ]]></style>\r
+       <line x1="180" y1="0" x2="1180" y2="1000" />\r
+       <line x1="380" y1="0" x2="1380" y2="1000" />\r
+       <line x1="530" y1="0" x2="1530" y2="1000" />\r
+       <line x1="655" y1="0" x2="1655" y2="1000" />\r
+       <line x1="755" y1="0" x2="1775" y2="1000" />\r
+       <line x1="830" y1="0" x2="1830" y2="1000" />\r
+       <line x1="880" y1="0" x2="1880" y2="1000" />\r
+       <line x1="920" y1="0" x2="1920" y2="1000" />\r
+       <line x1="950" y1="0" x2="1970" y2="1000" />\r
+       <line x1="970" y1="0" x2="1970" y2="1000" />\r
+       <line x1="985" y1="0" x2="1985" y2="1000" />\r
+       <line x1="995" y1="0" x2="1995" y2="1000" />\r
+</svg>
\ No newline at end of file
diff --git a/xmpp/converse/css/images/bitcoin_qr_code.png b/xmpp/converse/css/images/bitcoin_qr_code.png
new file mode 100644 (file)
index 0000000..7ba47ef
Binary files /dev/null and b/xmpp/converse/css/images/bitcoin_qr_code.png differ
diff --git a/xmpp/converse/css/images/dark-arrow.svg b/xmpp/converse/css/images/dark-arrow.svg
new file mode 100644 (file)
index 0000000..addd619
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="12px" viewBox="0 0 24 12" zoomAndPan="disable">\r
+       <line x1="0" y1="0" x2="12" y2="12" style="stroke:rgba(255,255,255,0.65);stroke-width:1" />\r
+       <line x1="24" y1="0" x2="12" y2="12" style="stroke:rgba(255,255,255,0.65);stroke-width:1" />\r
+</svg>
\ No newline at end of file
diff --git a/xmpp/converse/css/images/header.jpg b/xmpp/converse/css/images/header.jpg
new file mode 100644 (file)
index 0000000..1bab8ad
Binary files /dev/null and b/xmpp/converse/css/images/header.jpg differ
diff --git a/xmpp/converse/css/images/overlay.png b/xmpp/converse/css/images/overlay.png
new file mode 100644 (file)
index 0000000..2141c78
Binary files /dev/null and b/xmpp/converse/css/images/overlay.png differ
diff --git a/xmpp/converse/css/images/user.png b/xmpp/converse/css/images/user.png
new file mode 100644 (file)
index 0000000..f6a362d
Binary files /dev/null and b/xmpp/converse/css/images/user.png differ
diff --git a/xmpp/converse/css/theme.css b/xmpp/converse/css/theme.css
new file mode 100644 (file)
index 0000000..5bfd30a
--- /dev/null
@@ -0,0 +1,351 @@
+body {
+  width: 100%;
+  height: 100%;
+  font-family: "Lora", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  color: #ffffff;
+  background-color: #211018;
+}
+html {
+  width: 100%;
+  height: 100%;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  margin: 0 0 35px;
+  font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-weight: 700;
+  letter-spacing: 1px;
+}
+h1 {
+  text-transform: uppercase;
+}
+p {
+  margin: 0 0 25px;
+  font-size: 18px;
+  line-height: 1.5;
+}
+@media (min-width: 767px) {
+  p {
+    margin: 0 0 35px;
+    font-size: 20px;
+    line-height: 1.6;
+  }
+}
+a {
+  color: #82B397;
+  -webkit-transition: all 0.2s ease-in-out;
+  -moz-transition: all 0.2s ease-in-out;
+  transition: all 0.2s ease-in-out;
+}
+a:hover,
+a:focus {
+  text-decoration: none;
+  color: #00aaff;
+}
+.light {
+  font-weight: 400;
+}
+.navbar {
+  margin-bottom: 0;
+  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
+  text-transform: uppercase;
+  font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  background-color: #211018;
+}
+.navbar-brand {
+  font-weight: 700;
+}
+.navbar-brand:focus {
+  outline: none;
+}
+.navbar-custom a {
+  color: #ffffff;
+}
+.navbar-custom .nav li a {
+  -webkit-transition: background 0.3s ease-in-out;
+  -moz-transition: background 0.3s ease-in-out;
+  transition: background 0.3s ease-in-out;
+}
+.navbar-custom .nav li a:hover,
+.navbar-custom .nav li a:focus,
+.navbar-custom .nav li.active {
+  outline: none;
+  background-color: rgba(255, 255, 255, 0.2);
+}
+.navbar-toggle {
+  padding: 4px 6px;
+  font-size: 16px;
+  color: #ffffff;
+}
+.navbar-toggle:focus,
+.navbar-toggle:active {
+  outline: none;
+}
+@media (min-width: 767px) {
+  .navbar {
+    padding: 20px 0;
+    border-bottom: none;
+    letter-spacing: 1px;
+    background: transparent;
+    -webkit-transition: background 0.5s ease-in-out, padding 0.5s ease-in-out;
+    -moz-transition: background 0.5s ease-in-out, padding 0.5s ease-in-out;
+    transition: background 0.5s ease-in-out, padding 0.5s ease-in-out;
+  }
+  .top-nav-collapse {
+    padding: 0;
+    background-color: #211018;
+  }
+  .navbar-custom.top-nav-collapse {
+    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
+  }
+}
+.features-section,
+.outro,
+.intro {
+  display: table;
+  width: 100%;
+  height: 100%;
+  padding: 100px 0;
+  text-align: center;
+  color: #fff;
+}
+.intro {
+  background: url(images/header.jpg) no-repeat bottom center scroll;
+  background-color: #211018;
+  -webkit-background-size: cover;
+  -moz-background-size: cover;
+  background-size: cover;
+  -o-background-size: cover;
+}
+.features-section {
+  background: url('images/bgtr.svg') top right no-repeat, url('images/bgbl.svg') bottom left no-repeat, url('images/bgbl.svg') bottom left no-repeat, url('images/overlay.png'), linear-gradient(45deg, #85505f, #384955, #655361);
+}
+.features-section a {
+  color: #82B397;
+}
+.outro {
+  background: url('images/bgtr.svg') top right no-repeat, url('images/bgbl.svg') bottom left no-repeat, url('images/overlay.png'), linear-gradient(45deg, #384955, #655361, #85505f);
+}
+.intro-body {
+  display: table-cell;
+  vertical-align: middle;
+}
+.brand-heading {
+  font-size: 40px;
+}
+.intro-text {
+  font-size: 18px;
+}
+@media (min-width: 767px) {
+  .intro {
+    height: 100%;
+    padding: 0;
+  }
+  .brand-heading {
+    font-size: 100px;
+  }
+  .intro-text {
+    font-size: 25px;
+  }
+}
+.btn-circle {
+  width: 70px;
+  height: 70px;
+  margin-top: 15px;
+  padding: 7px 16px;
+  border: 2px solid #ffffff;
+  border-radius: 35px;
+  font-size: 40px;
+  color: #ffffff;
+  background: transparent;
+  -webkit-transition: background 0.3s ease-in-out;
+  -moz-transition: background 0.3s ease-in-out;
+  transition: background 0.3s ease-in-out;
+}
+.btn-circle:hover,
+.btn-circle:focus {
+  outline: none;
+  color: #ffffff;
+  background: rgba(255, 255, 255, 0.1);
+}
+.page-scroll .btn-circle i.animated {
+  -webkit-transition-property: -webkit-transform;
+  -webkit-transition-duration: 1s;
+  -moz-transition-property: -moz-transform;
+  -moz-transition-duration: 1s;
+}
+.page-scroll .btn-circle:hover i.animated {
+  -webkit-animation-name: pulse;
+  -moz-animation-name: pulse;
+  -webkit-animation-duration: 1.5s;
+  -moz-animation-duration: 1.5s;
+  -webkit-animation-iteration-count: infinite;
+  -moz-animation-iteration-count: infinite;
+  -webkit-animation-timing-function: linear;
+  -moz-animation-timing-function: linear;
+}
+/*
+@-webkit-keyframes pulse {
+  0 {
+    -webkit-transform: scale(1);
+    transform: scale(1);
+  }
+  50% {
+    -webkit-transform: scale(1.2);
+    transform: scale(1.2);
+  }
+  100% {
+    -webkit-transform: scale(1);
+    transform: scale(1);
+  }
+}
+@-moz-keyframes pulse {
+  0 {
+    -moz-transform: scale(1);
+    transform: scale(1);
+  }
+  50% {
+    -moz-transform: scale(1.2);
+    transform: scale(1.2);
+  }
+  100% {
+    -moz-transform: scale(1);
+    transform: scale(1);
+  }
+}
+*/
+.content-section {
+  padding-top: 100px;
+}
+.donate-section {
+  width: 100%;
+  padding: 50px 0;
+  color: #ffffff;
+  background-color: #211018;
+}
+.donate-section p.bitcoin-header {
+  margin: 0 0 5px;
+}
+@media (min-width: 767px) {
+  .content-section {
+    padding-top: 150px;
+    padding-bottom: 50px;
+  }
+  .donate-section {
+    padding: 100px 0;
+  }
+}
+.btn {
+  text-transform: uppercase;
+  font-family: FontAwesome;
+  font-weight: 400;
+  -webkit-transition: all 0.3s ease-in-out;
+  -moz-transition: all 0.3s ease-in-out;
+  transition: all 0.3s ease-in-out;
+}
+.btn-default {
+  border: 1px solid #82B397;
+  color: #82B397;
+  background-color: transparent;
+}
+.btn-default:hover,
+.btn-default:focus {
+  border: 1px solid #82B397;
+  outline: none;
+  color: #211018;
+  background-color: #82B397;
+}
+.btn-huge {
+  padding: 25px;
+  font-size: 26px;
+}
+.banner-social-buttons {
+  position: absolute;
+  bottom: 4em;
+  left: 0;
+}
+@media (max-width: 1199px) {
+  ul.banner-social-buttons {
+    margin-top: 15px;
+  }
+}
+@media (max-width: 767px) {
+  ul.banner-social-buttons > li {
+    display: block;
+    margin-bottom: 20px;
+    padding: 0;
+  }
+  ul.banner-social-buttons > li:last-child {
+    margin-bottom: 0;
+  }
+}
+::-moz-selection {
+  text-shadow: none;
+  background: #fcfcfc;
+  background: rgba(255, 255, 255, 0.2);
+}
+::selection {
+  text-shadow: none;
+  background: #fcfcfc;
+  background: rgba(255, 255, 255, 0.2);
+}
+img::selection {
+  background: transparent;
+}
+img::-moz-selection {
+  background: transparent;
+}
+body {
+  webkit-tap-highlight-color: rgba(255, 255, 255, 0.2);
+}
+ul.contact,
+ul.integration,
+ul.screencasts,
+ul.features {
+  text-align: left;
+  font-size: 19px;
+}
+.feature-icon {
+  display: inline-block;
+  position: relative;
+  padding-bottom: 5em;
+  margin-bottom: 2.75em;
+  cursor: default;
+  color: #fff;
+}
+.feature-icon .fa {
+  display: inline-block;
+  width: 2em;
+  height: 2em;
+  font-size: 4em;
+  border-radius: 100%;
+  box-shadow: inset 0 0 0 1px white;
+  color: white;
+  line-height: 2.1em;
+}
+.feature-icon:before {
+  content: '';
+  background: white;
+  position: absolute;
+  bottom: 0;
+  left: 50%;
+  margin-left: -0.325em;
+  width: 0.65em;
+  height: 0.65em;
+  display: block;
+  border-radius: 100%;
+}
+.feature-icon:after {
+  content: '';
+  position: absolute;
+  left: 50%;
+  bottom: 0.65em;
+  width: 1px;
+  height: 4.35em;
+  background: white;
+  margin-left: -0.5px;
+}
diff --git a/xmpp/converse/fonticons/Read Me.txt b/xmpp/converse/fonticons/Read Me.txt
new file mode 100644 (file)
index 0000000..cd97d24
--- /dev/null
@@ -0,0 +1,5 @@
+Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures.
+
+You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects.
+
+You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu > Manage Projects) to retrieve your icon selection.
diff --git a/xmpp/converse/fonticons/demo-files/demo.css b/xmpp/converse/fonticons/demo-files/demo.css
new file mode 100644 (file)
index 0000000..b814098
--- /dev/null
@@ -0,0 +1,150 @@
+body {
+       padding: 0;
+       margin: 0;
+       font-family: sans-serif;
+       font-size: 1em;
+       line-height: 1.5;
+       color: #555;
+       background: #fff;
+}
+h1 {
+       font-size: 1.5em;
+       font-weight: normal;
+}
+small {
+       font-size: .66666667em;
+}
+a {
+       color: #e74c3c;
+       text-decoration: none;
+}
+a:hover, a:focus {
+       box-shadow: 0 1px #e74c3c;
+}
+.bshadow0, input {
+       box-shadow: inset 0 -2px #e7e7e7;
+}
+input:hover {
+       box-shadow: inset 0 -2px #ccc;
+}
+input, fieldset {
+       font-size: 1em;
+       margin: 0;
+       padding: 0;
+       border: 0;
+}
+input {
+       color: inherit;
+       line-height: 1.5;
+       height: 1.5em;
+       padding: .25em 0;
+}
+input:focus {
+       outline: none;
+       box-shadow: inset 0 -2px #449fdb;
+}
+.glyph {
+       font-size: 16px;
+       width: 15em;
+       padding-bottom: 1em;
+       margin-right: 4em;
+       margin-bottom: 1em;
+       float: left;
+       overflow: hidden;
+}
+.liga {
+       width: 80%;
+       width: calc(100% - 2.5em);
+}
+.talign-right {
+       text-align: right;
+}
+.talign-center {
+       text-align: center;
+}
+.bgc1 {
+       background: #f1f1f1;
+}
+.fgc1 {
+       color: #999;
+}
+.fgc0 {
+       color: #000;
+}
+p {
+       margin-top: 1em;
+       margin-bottom: 1em;
+}
+.mvm {
+       margin-top: .75em;
+       margin-bottom: .75em;
+}
+.mtn {
+       margin-top: 0;
+}
+.mtl, .mal {
+       margin-top: 1.5em;
+}
+.mbl, .mal {
+       margin-bottom: 1.5em;
+}
+.mal, .mhl {
+       margin-left: 1.5em;
+       margin-right: 1.5em;
+}
+.mhmm {
+       margin-left: 1em;
+       margin-right: 1em;
+}
+.mls {
+       margin-left: .25em;
+}
+.ptl {
+       padding-top: 1.5em;
+}
+.pbs, .pvs {
+       padding-bottom: .25em;
+}
+.pvs, .pts {
+       padding-top: .25em;
+}
+.unit {
+       float: left;
+}
+.unitRight {
+       float: right;
+}
+.size1of2 {
+       width: 50%;
+}
+.size1of1 {
+       width: 100%;
+}
+.clearfix:before, .clearfix:after {
+       content: " ";
+       display: table;
+}
+.clearfix:after {
+       clear: both;
+}
+.hidden-true {
+       display: none;
+}
+.textbox0 {
+       width: 3em;
+       background: #f1f1f1;
+       padding: .25em .5em;
+       line-height: 1.5;
+       height: 1.5em;
+}
+#testDrive {
+       display: block;
+       padding-top: 24px;
+       line-height: 1.5;
+}
+.fs0 {
+       font-size: 16px;
+}
+.fs1 {
+       font-size: 32px;
+}
diff --git a/xmpp/converse/fonticons/demo-files/demo.js b/xmpp/converse/fonticons/demo-files/demo.js
new file mode 100644 (file)
index 0000000..e72f449
--- /dev/null
@@ -0,0 +1,30 @@
+if (!('boxShadow' in document.body.style)) {
+       document.body.setAttribute('class', 'noBoxShadow');
+}
+
+document.body.addEventListener("click", function(e) {
+       var target = e.target;
+       if (target.tagName === "INPUT" &&
+               target.getAttribute('class').indexOf('liga') === -1) {
+               target.select();
+       }
+});
+
+(function() {
+       var fontSize = document.getElementById('fontSize'),
+               testDrive = document.getElementById('testDrive'),
+               testText = document.getElementById('testText');
+       function updateTest() {
+               testDrive.innerHTML = testText.value || String.fromCharCode(160);
+               if (window.icomoonLiga) {
+                       window.icomoonLiga(testDrive);
+               }
+       }
+       function updateSize() {
+               testDrive.style.fontSize = fontSize.value + 'px';
+       }
+       fontSize.addEventListener('change', updateSize, false);
+       testText.addEventListener('input', updateTest, false);
+       testText.addEventListener('change', updateTest, false);
+       updateSize();
+}());
diff --git a/xmpp/converse/fonticons/demo.html b/xmpp/converse/fonticons/demo.html
new file mode 100644 (file)
index 0000000..9e3bf0e
--- /dev/null
@@ -0,0 +1,1511 @@
+<!doctype html>
+<html>
+<head>
+       <meta charset="utf-8">
+       <title>IcoMoon Demo</title>
+       <meta name="description" content="An Icon Font Generated By IcoMoon.io">
+       <meta name="viewport" content="width=device-width">
+       <link rel="stylesheet" href="demo-files/demo.css">
+       <link rel="stylesheet" href="style.css"></head>
+<body>
+       <div class="bgc1 clearfix">
+               <h1 class="mhmm mvm"><span class="fgc1">Font Name:</span> icomoon <small class="fgc1">(Glyphs:&nbsp;92)</small></h1>
+       </div>
+       <div class="clearfix mhl ptl">
+               <h1 class="mvm mtn fgc1">Grid Size: 16</h1>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-xa">
+                               
+                               </span>
+                               <span class="mls"> icon-xa</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e602" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe602;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-conversejs">
+                               
+                               </span>
+                               <span class="mls"> icon-conversejs</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e600" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe600;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-closed">
+                               
+                               </span>
+                               <span class="mls"> icon-closed</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="25ba" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x25ba;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-opened">
+                               
+                               </span>
+                               <span class="mls"> icon-opened</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="25bc" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x25bc;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-checkmark">
+                               
+                               </span>
+                               <span class="mls"> icon-checkmark</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2713" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2713;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-home">
+                               
+                               </span>
+                               <span class="mls"> icon-home</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e000" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe000;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-pencil">
+                               
+                               </span>
+                               <span class="mls"> icon-pencil</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="270e" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x270e;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-camera">
+                               
+                               </span>
+                               <span class="mls"> icon-camera</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e003" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe003;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-camera-2">
+                               
+                               </span>
+                               <span class="mls"> icon-camera-2</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2616" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2616;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-play">
+                               
+                               </span>
+                               <span class="mls"> icon-play</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="25d9" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x25d9;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-music">
+                               
+                               </span>
+                               <span class="mls"> icon-music</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="266b" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x266b;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-headphones">
+                               
+                               </span>
+                               <span class="mls"> icon-headphones</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="266c" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x266c;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-phone">
+                               
+                               </span>
+                               <span class="mls"> icon-phone</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="260f" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x260f;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-phone-hang-up">
+                               
+                               </span>
+                               <span class="mls"> icon-phone-hang-up</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="260e" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x260e;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-address-book">
+                               
+                               </span>
+                               <span class="mls"> icon-address-book</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="270f" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x270f;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-notebook">
+                               
+                               </span>
+                               <span class="mls"> icon-notebook</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2710" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2710;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-envelop">
+                               
+                               </span>
+                               <span class="mls"> icon-envelop</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2709" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2709;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-pushpin">
+                               
+                               </span>
+                               <span class="mls"> icon-pushpin</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e012" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe012;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-online">
+                               
+                               </span>
+                               <span class="mls"> icon-online</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="25fc" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x25fc;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-away">
+                               
+                               </span>
+                               <span class="mls"> icon-away</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="25fb" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x25fb;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-bubbles">
+                               
+                               </span>
+                               <span class="mls"> icon-bubbles</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e015" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe015;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-bubbles2">
+                               
+                               </span>
+                               <span class="mls"> icon-bubbles2</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e016" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe016;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-bubbles3">
+                               
+                               </span>
+                               <span class="mls"> icon-bubbles3</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e017" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe017;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-user">
+                               
+                               </span>
+                               <span class="mls"> icon-user</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e01a" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe01a;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-hide-users">
+                               
+                               </span>
+                               <span class="mls"> icon-hide-users</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e01c" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe01c;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-show-users">
+                               
+                               </span>
+                               <span class="mls"> icon-show-users</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e01e" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe01e;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-users">
+                               
+                               </span>
+                               <span class="mls"> icon-users</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e01b" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe01b;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-quotes-left">
+                               
+                               </span>
+                               <span class="mls"> icon-quotes-left</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e01d" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe01d;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-spinner">
+                               
+                               </span>
+                               <span class="mls"> icon-spinner</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="231b" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x231b;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-search">
+                               
+                               </span>
+                               <span class="mls"> icon-search</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e021" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe021;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-cogs">
+                               
+                               </span>
+                               <span class="mls"> icon-cogs</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e022" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe022;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-wrench">
+                               
+                               </span>
+                               <span class="mls"> icon-wrench</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e024" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe024;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-unlocked">
+                               
+                               </span>
+                               <span class="mls"> icon-unlocked</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e025" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe025;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-lock">
+                               
+                               </span>
+                               <span class="mls"> icon-lock</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e026" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe026;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-lock-2">
+                               
+                               </span>
+                               <span class="mls"> icon-lock-2</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e027" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe027;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-key">
+                               
+                               </span>
+                               <span class="mls"> icon-key</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e028" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe028;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-key-2">
+                               
+                               </span>
+                               <span class="mls"> icon-key-2</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e029" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe029;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-zoomout">
+                               
+                               </span>
+                               <span class="mls"> icon-zoomout</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e02a" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe02a;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-zoomin">
+                               
+                               </span>
+                               <span class="mls"> icon-zoomin</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e02b" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe02b;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-cog">
+                               
+                               </span>
+                               <span class="mls"> icon-cog</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e02f" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe02f;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-remove">
+                               
+                               </span>
+                               <span class="mls"> icon-remove</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e02d" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe02d;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-eye">
+                               
+                               </span>
+                               <span class="mls"> icon-eye</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e030" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe030;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-eye-blocked">
+                               
+                               </span>
+                               <span class="mls"> icon-eye-blocked</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e031" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe031;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-attachment">
+                               
+                               </span>
+                               <span class="mls"> icon-attachment</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e032" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe032;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-globe">
+                               
+                               </span>
+                               <span class="mls"> icon-globe</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e033" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe033;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-heart">
+                               
+                               </span>
+                               <span class="mls"> icon-heart</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2764" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2764;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-happy">
+                               
+                               </span>
+                               <span class="mls"> icon-happy</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="263b" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x263b;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-thumbs-up">
+                               
+                               </span>
+                               <span class="mls"> icon-thumbs-up</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="261d" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x261d;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-smiley">
+                               
+                               </span>
+                               <span class="mls"> icon-smiley</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="263a" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x263a;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-tongue">
+                               
+                               </span>
+                               <span class="mls"> icon-tongue</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e038" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe038;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-sad">
+                               
+                               </span>
+                               <span class="mls"> icon-sad</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2639" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2639;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-wink">
+                               
+                               </span>
+                               <span class="mls"> icon-wink</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e03a" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe03a;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-wondering">
+                               
+                               </span>
+                               <span class="mls"> icon-wondering</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2369" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2369;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-confused">
+                               
+                               </span>
+                               <span class="mls"> icon-confused</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2368" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2368;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-shocked">
+                               
+                               </span>
+                               <span class="mls"> icon-shocked</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2364" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2364;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-evil">
+                               
+                               </span>
+                               <span class="mls"> icon-evil</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="261f" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x261f;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-angry">
+                               
+                               </span>
+                               <span class="mls"> icon-angry</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e03f" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe03f;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-cool">
+                               
+                               </span>
+                               <span class="mls"> icon-cool</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e040" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe040;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-grin">
+                               
+                               </span>
+                               <span class="mls"> icon-grin</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e041" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe041;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-info">
+                               
+                               </span>
+                               <span class="mls"> icon-info</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2360" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2360;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-notification">
+                               
+                               </span>
+                               <span class="mls"> icon-notification</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e01f" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe01f;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-warning">
+                               
+                               </span>
+                               <span class="mls"> icon-warning</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="26a0" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x26a0;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-spell-check">
+                               
+                               </span>
+                               <span class="mls"> icon-spell-check</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e045" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe045;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-volume-high">
+                               
+                               </span>
+                               <span class="mls"> icon-volume-high</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e046" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe046;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-volume-medium">
+                               
+                               </span>
+                               <span class="mls"> icon-volume-medium</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e047" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe047;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-volume-low">
+                               
+                               </span>
+                               <span class="mls"> icon-volume-low</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e048" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe048;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-volume-mute">
+                               
+                               </span>
+                               <span class="mls"> icon-volume-mute</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e049" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe049;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-volume-mute2">
+                               
+                               </span>
+                               <span class="mls"> icon-volume-mute2</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e04a" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe04a;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-volume-decrease">
+                               
+                               </span>
+                               <span class="mls"> icon-volume-decrease</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e04b" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe04b;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-volume-increase">
+                               
+                               </span>
+                               <span class="mls"> icon-volume-increase</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e04c" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe04c;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-bold">
+                               
+                               </span>
+                               <span class="mls"> icon-bold</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e04d" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe04d;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-underline">
+                               
+                               </span>
+                               <span class="mls"> icon-underline</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e04e" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe04e;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-italic">
+                               
+                               </span>
+                               <span class="mls"> icon-italic</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e04f" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe04f;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-strikethrough">
+                               
+                               </span>
+                               <span class="mls"> icon-strikethrough</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e050" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe050;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-newtab">
+                               
+                               </span>
+                               <span class="mls"> icon-newtab</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e053" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe053;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-youtube">
+                               
+                               </span>
+                               <span class="mls"> icon-youtube</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e055" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe055;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-close">
+                               
+                               </span>
+                               <span class="mls"> icon-close</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2715" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2715;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-blocked">
+                               
+                               </span>
+                               <span class="mls"> icon-blocked</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2718" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2718;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-cancel-circle">
+                               
+                               </span>
+                               <span class="mls"> icon-cancel-circle</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e058" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe058;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-minus">
+                               
+                               </span>
+                               <span class="mls"> icon-minus</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e05a" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe05a;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-plus">
+                               
+                               </span>
+                               <span class="mls"> icon-plus</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="271a" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x271a;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-checkbox-checked">
+                               
+                               </span>
+                               <span class="mls"> icon-checkbox-checked</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2611" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2611;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-checkbox-unchecked">
+                               
+                               </span>
+                               <span class="mls"> icon-checkbox-unchecked</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2b27" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2b27;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-checkbox-partial">
+                               
+                               </span>
+                               <span class="mls"> icon-checkbox-partial</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2b28" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2b28;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-radio-checked">
+                               
+                               </span>
+                               <span class="mls"> icon-radio-checked</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2b26" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2b26;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-radio-unchecked">
+                               
+                               </span>
+                               <span class="mls"> icon-radio-unchecked</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2b25" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2b25;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-room-info">
+                               
+                               </span>
+                               <span class="mls"> icon-room-info</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e059" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe059;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-newspaper">
+                               
+                               </span>
+                               <span class="mls"> icon-newspaper</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e001" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe001;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-image">
+                               
+                               </span>
+                               <span class="mls"> icon-image</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="2b14" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#x2b14;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-offline">
+                               
+                               </span>
+                               <span class="mls"> icon-offline</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e002" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe002;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-busy">
+                               
+                               </span>
+                               <span class="mls"> icon-busy</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e004" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe004;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+               <div class="glyph fs1">
+                       <div class="clearfix bshadow0 pbs">
+                               <span class="icon-exit">
+                               
+                               </span>
+                               <span class="mls"> icon-exit</span>
+                       </div>
+                       <fieldset class="fs0 size1of1 clearfix hidden-false">
+                               <input type="text" readonly value="e601" class="unit size1of2" />
+                               <input type="text" maxlength="1" readonly value="&#xe601;" class="unitRight size1of2 talign-right" />
+                       </fieldset>
+                       <div class="fs0 bshadow0 clearfix hidden-false">
+                               <span class="unit pvs fgc1">liga: </span>
+                               <input type="text" readonly value="" class="liga unitRight" />
+                       </div>
+               </div>
+       </div>
+
+       <!--[if gt IE 8]><!-->
+       <div class="mhl clearfix mbl">
+               <h1>Font Test Drive</h1>
+               <label>
+                       Font Size: <input id="fontSize" type="number" class="textbox0 mbm"
+                       min="8" value="48" />
+                       px
+               </label>
+               <input id="testText" type="text" class="phl size1of1 mvl"
+               placeholder="Type some text to test..." value=""/>
+               </label>
+               <div id="testDrive" class="icon-">&nbsp;
+               </div>
+       </div>
+       <!--<![endif]-->
+       <div class="bgc1 clearfix">
+               <p class="mhl">Generated by <a href="https://icomoon.io/app">IcoMoon</a></p>
+       </div>
+
+       <script src="demo-files/demo.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/xmpp/converse/fonticons/fonts/icomoon.eot b/xmpp/converse/fonticons/fonts/icomoon.eot
new file mode 100644 (file)
index 0000000..95922f9
Binary files /dev/null and b/xmpp/converse/fonticons/fonts/icomoon.eot differ
diff --git a/xmpp/converse/fonticons/fonts/icomoon.svg b/xmpp/converse/fonticons/fonts/icomoon.svg
new file mode 100644 (file)
index 0000000..9b18c55
--- /dev/null
@@ -0,0 +1,102 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="icomoon" horiz-adv-x="512">
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
+<glyph unicode="&#x231b;" d="M192 416c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM327.765 359.765c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM416 224c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32s-32-14.327-32-32zM359.765 88.235c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32s-32-14.327-32-32zM224.001 32c0 0 0 0 0 0 0-17.673 14.327-32 32-32s32 14.327 32 32c0 0 0 0 0 0s0 0 0 0c0 17.673-14.327 32-32 32s-32-14.327-32-32c0 0 0 0 0 0zM88.236 88.235c0 0 0 0 0 0 0-17.673 14.327-32 32-32s32 14.327 32 32c0 0 0 0 0 0s0 0 0 0c0 17.673-14.327 32-32 32s-32-14.327-32-32c0 0 0 0 0 0zM72.236 359.765c0 0 0 0 0 0 0-26.51 21.49-48 48-48s48 21.49 48 48c0 0 0 0 0 0s0 0 0 0c0 26.51-21.49 48-48 48s-48-21.49-48-48c0 0 0 0 0 0zM28 224c0-19.882 16.117-36 36-36s36 16.118 36 36c0 19.882-16.118 36-36 36s-36-16.118-36-36z" />
+<glyph unicode="&#x2360;" d="M256 480c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM256 16c-114.875 0-208 93.125-208 208s93.125 208 208 208 208-93.125 208-208-93.125-208-208-208zM224 352h64v-64h-64zM320 96h-128v32h32v96h-32v32h96v-128h32z" />
+<glyph unicode="&#x2364;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM192 128c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM320 304c0-26.51 14.327-48 32-48s32 21.49 32 48c0 26.51-14.327 48-32 48s-32-21.49-32-48zM128 304c0-26.51 14.327-48 32-48s32 21.49 32 48c0 26.51-14.327 48-32 48s-32-21.49-32-48z" />
+<glyph unicode="&#x2368;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM128 320c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32s-32-14.327-32-32zM320 320c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32s-32-14.327-32-32zM363.053 160h32.432c4.623-36.253-16.226-72.265-51.979-85.28-41.452-15.088-87.45 6.358-102.54 47.808-9.054 24.872-36.653 37.741-61.524 28.686-22.781-8.294-35.478-32.149-30.494-55.212h-32.43c-4.621 36.254 16.225 72.264 51.978 85.28 41.452 15.089 87.451-6.358 102.541-47.807 9.052-24.874 36.653-37.741 61.522-28.686 22.781 8.292 35.478 32.149 30.494 55.211z" />
+<glyph unicode="&#x2369;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM372.87 179.19l11.244-38.388-218.504-64.001-11.244 38.388zM128 320c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM320 320c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32z" />
+<glyph unicode="&#x25ba;" d="M96 416l320-192-320-192z" />
+<glyph unicode="&#x25bc;" d="M448 384l-192-320-192 320z" />
+<glyph unicode="&#x25d9;" d="M490.594 399.946c-71.816 10.325-151.166 16.054-234.593 16.054-83.43 0-162.778-5.729-234.597-16.054-13.765-53.863-21.404-113.375-21.404-175.946 0-62.57 7.639-122.083 21.404-175.945 71.819-10.326 151.168-16.055 234.597-16.055 83.427 0 162.776 5.729 234.593 16.055 13.766 53.862 21.406 113.375 21.406 175.945 0 62.571-7.64 122.083-21.406 175.946zM192.001 128v192l160-96-160-96z" />
+<glyph unicode="&#x25fb;" d="M256 384c-27.466 0-53.994-4.331-78.847-12.871-23.356-8.027-44.153-19.372-61.814-33.722-33.107-26.899-51.339-61.492-51.339-97.407 0-20.149 5.594-39.689 16.626-58.076 11.376-18.96 28.491-36.293 49.494-50.126 15.178-9.996 25.39-25.974 28.088-43.947 0.9-5.992 1.464-12.044 1.685-18.062 3.735 3.097 7.375 6.423 10.94 9.988 12.077 12.076 28.39 18.745 45.251 18.745 2.684 0 5.381-0.168 8.078-0.512 10.487-1.333 21.199-2.010 31.838-2.010 27.467 0 53.994 4.33 78.847 12.871 23.356 8.027 44.153 19.372 61.814 33.722 33.107 26.898 51.339 61.492 51.339 97.407s-18.232 70.508-51.339 97.407c-17.661 14.349-38.458 25.695-61.814 33.722-24.853 8.54-51.38 12.871-78.847 12.871zM256 448v0c141.385 0 256-93.125 256-208s-114.615-208-256-208c-13.578 0-26.905 0.867-39.912 2.522-54.989-54.989-120.625-64.85-184.088-66.298v13.458c34.268 16.789 64 47.37 64 82.318 0 4.877-0.379 9.665-1.082 14.348-57.898 38.132-94.918 96.377-94.918 161.652 0 114.875 114.615 208 256 208z" />
+<glyph unicode="&#x25fc;" d="M256 448c141.385 0 256-93.125 256-208s-114.615-208-256-208c-13.578 0-26.905 0.867-39.912 2.522-54.989-54.989-120.625-64.85-184.088-66.298v13.458c34.268 16.789 64 47.37 64 82.318 0 4.877-0.379 9.665-1.082 14.348-57.898 38.132-94.918 96.377-94.918 161.652 0 114.875 114.615 208 256 208z" />
+<glyph unicode="&#x260e;" d="M508.689 192.003c4.002-27.741 6.608-65.696-5.832-80.223-20.571-24.022-150.856-24.022-150.856 24.021 0 24.199 21.428 40.067 0.856 64.089-20.236 23.631-56.513 24.015-96.857 24.021-40.343-0.006-76.621-0.39-96.857-24.021-20.571-24.023 0.857-39.89 0.857-64.089 0-48.043-130.285-48.043-150.857-24.022-12.439 14.527-9.834 52.482-5.831 80.223 3.080 18.519 10.862 38.498 35.774 63.997 0 0.001 0.001 0.001 0.001 0.002 37.369 34.871 93.923 63.369 214.913 63.984v0.015c0.672 0 1.332-0.005 2-0.007 0.669 0.002 1.328 0.007 2 0.007v-0.014c120.99-0.615 177.544-29.113 214.913-63.984 0.001-0.001 0.001-0.002 0.001-0.002 24.912-25.498 32.695-45.477 35.775-63.997z" />
+<glyph unicode="&#x260f;" d="M352 160c-32-32-32-64-64-64s-64 32-96 64-64 64-64 96 32 32 64 64-64 128-96 128-96-96-96-96c0-64 65.75-193.75 128-256s192-128 256-128c0 0 96 64 96 96s-96 128-128 96z" />
+<glyph unicode="&#x2611;" d="M0 480v-512h512v512h-512zM480 0h-448v448h448v-448zM384 368l-160-160-96 96-64-64 160-160 224 224-64 64z" />
+<glyph unicode="&#x2616;" d="M192 336c0-44.183 35.817-80 80-80s80 35.817 80 80c0 44.183-35.817 80-80 80s-80-35.817-80-80zM0 336c0-44.183 35.817-80 80-80s80 35.817 80 80c0 44.183-35.817 80-80 80s-80-35.817-80-80zM384 176v48c0 17.6-14.4 32-32 32h-320c-17.6 0-32-14.4-32-32v-160c0-17.6 14.4-32 32-32h320c17.6 0 32 14.4 32 32v48l128-80v224l-128-80zM320 96h-256v96h256v-96z" />
+<glyph unicode="&#x261d;" d="M464 192c36.5 0 16-96-16-96 16 0 0-80-32-80 0-32-32-48-64-48-135.176 0-87.632 33.825-224 48v256c120.461 36.134 240 126.712 240 208 26.5 0 96-32 0-192 0 0 80 0 96 0 48 0 32-96 0-96zM96 272v-256h32v-16h-64c-17.6 0-32 21.6-32 48v192c0 26.4 14.4 48 32 48h64v-16h-32z" />
+<glyph unicode="&#x261f;" d="M319.998 256c-17.673 0-32 14.327-31.999 32.001 0 0.585 0.018 1.165 0.049 1.742 1.016 23.727 22.606 39.473 40.796 48.569 17.371 8.685 34.551 13.030 35.274 13.211 8.573 2.144 17.259-3.069 19.403-11.642 2.142-8.573-3.070-17.259-11.642-19.403-8.813-2.225-19.261-6.060-28.468-10.675 5.324-5.715 8.587-13.376 8.587-21.803 0-17.673-14.327-32-32-32zM140.121 320.478c-8.572 2.143-13.784 10.83-11.641 19.402s10.83 13.786 19.403 11.642c0.722-0.181 17.903-4.525 35.274-13.211 18.191-9.095 39.78-24.842 40.796-48.569 0.031-0.577 0.049-1.158 0.049-1.742 0-17.673-14.327-32-32-32s-32 14.327-32 32c0 8.427 3.263 16.088 8.587 21.803-9.207 4.615-19.656 8.45-28.468 10.675zM256 112c40.777 0 76.462 21.796 96.049 54.37l41.164-24.698c-27.981-46.535-78.958-77.672-137.213-77.672s-109.232 31.137-137.213 77.672l41.164 24.698c19.587-32.574 55.271-54.37 96.049-54.37zM512 448c0 22.758-4.762 44.4-13.326 64-16.788-38.418-48.224-68.966-87.247-84.589-43.097 32.98-96.968 52.589-155.427 52.589s-112.33-19.609-155.427-52.589c-39.024 15.623-70.459 46.171-87.247 84.589-8.564-19.6-13.326-41.242-13.326-64 0-36.787 12.425-70.664 33.294-97.689-21.185-37.271-33.294-80.375-33.294-126.311 0-141.385 114.615-256 256-256s256 114.615 256 256c0 45.936-12.109 89.040-33.294 126.311 20.869 27.025 33.294 60.902 33.294 97.689zM256 16c-114.875 0-208 93.125-208 208s93.125 208 208 208 208-93.125 208-208-93.125-208-208-208z" />
+<glyph unicode="&#x2639;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM128 320c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM320 320c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM159.951 89.63l-41.164 24.698c27.981 46.535 78.958 77.672 137.213 77.672s109.231-31.137 137.213-77.672l-41.164-24.698c-19.587 32.574-55.271 54.37-96.049 54.37-40.779 0-76.462-21.796-96.049-54.37z" />
+<glyph unicode="&#x263a;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM128 320c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM320 320c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM352.049 166.37l41.164-24.698c-27.981-46.535-78.958-77.672-137.213-77.672s-109.232 31.137-137.213 77.672l41.164 24.698c19.587-32.574 55.271-54.37 96.049-54.37s76.462 21.796 96.049 54.37z" />
+<glyph unicode="&#x263b;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM256 180.62c57.975 0 113.115 15.403 160 42.46-7.287-89.219-76.564-159.080-160-159.080-83.434 0-152.711 69.936-160 159.152 46.885-27.056 102.025-42.532 160-42.532zM128 304c0-26.51 14.327-48 32-48s32 21.49 32 48c0 26.51-14.327 48-32 48s-32-21.49-32-48zM320 304c0-26.51 14.327-48 32-48s32 21.49 32 48c0 26.51-14.327 48-32 48s-32-21.49-32-48z" />
+<glyph unicode="&#x266b;" d="M160 384l352 96v-368c0-44.183-50.145-80-112-80s-112 35.817-112 80c0 44.183 50.145 80 112 80 17.179 0 33.451-2.766 48-7.703v164.794l-224-61.091v-240c0-44.183-50.144-80-112-80s-112 35.817-112 80c0 44.183 50.144 80 112 80 17.179 0 33.451-2.766 48-7.703v263.703z" />
+<glyph unicode="&#x266c;" d="M96 190.857v-221.715c5.227-0.748 10.567-1.143 16-1.143h16v224.001h-16c-5.433 0-10.773-0.395-16-1.143zM384 192v-224h16c5.434 0 10.773 0.395 16 1.143v221.714c-5.227 0.748-10.566 1.143-16 1.143h-16zM512 224c0 141.385-114.615 256-256 256s-256-114.615-256-256c0-30.709 5.414-60.153 15.328-87.437-9.736-16.601-15.328-35.926-15.328-56.563 0-44.677 26.163-83.239 64-101.216v202.432c-10.063-4.781-19.29-11.030-27.429-18.452-2.996 14.61-4.571 29.739-4.571 45.236 0 123.712 100.288 224 224 224s224-100.288 224-224c0-15.497-1.574-30.626-4.571-45.236-8.14 7.422-17.365 13.671-27.429 18.452v-202.432c37.838 17.977 64 56.539 64 101.216 0 20.637-5.592 39.962-15.328 56.563 9.914 27.284 15.328 56.728 15.328 87.437z" />
+<glyph unicode="&#x26a0;" d="M256 400.638l-172.417-368.638h344.834l-172.417 368.638zM256 480v0c11.035 0 22.070-7.441 30.442-22.324l218.536-435.556c16.745-29.766 2.5-54.12-31.651-54.12h-434.654c-34.152 0-48.395 24.354-31.652 54.12l218.537 435.556c8.372 14.883 19.407 22.324 30.442 22.324zM224 96c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32s-32-14.327-32-32zM256 288c17.673 0 32-14.327 32-32l-10-96h-44l-10 96c0 17.673 14.327 32 32 32z" />
+<glyph unicode="&#x2709;" d="M464 416h-416c-26.4 0-48-21.6-48-48v-320c0-26.4 21.6-48 48-48h416c26.4 0 48 21.6 48 48v320c0 26.4-21.6 48-48 48zM199.37 204.814l-135.37-105.446v250.821l135.37-145.375zM88.19 352h335.62l-167.81-126-167.81 126zM204.644 199.151l51.356-55.151 51.355 55.151 105.277-135.151h-313.264l105.276 135.151zM312.63 204.814l135.37 145.375v-250.821l-135.37 105.446z" />
+<glyph unicode="&#x270e;" d="M432 480c44.182 0 80-35.817 80-80 0-18.010-5.955-34.629-16-48l-32-32-112 112 32 32c13.371 10.045 29.989 16 48 16zM32 112l-32-144 144 32 296 296-112 112-296-296zM357.789 298.211l-224-224-27.578 27.578 224 224 27.578-27.578z" />
+<glyph unicode="&#x270f;" d="M480 352c17.673 0 32 14.327 32 32v64h-64v32h-416c-17.6 0-32-14.399-32-32v-448c0-17.6 14.398-32 32-32h416v128h32c17.673 0 32 14.327 32 32v64h-64v32h32c17.673 0 32 14.327 32 32v64h-64v32h32zM288 351.835c35.255 0 63.835-28.58 63.835-63.835s-28.58-63.835-63.835-63.835c-35.255 0-63.835 28.58-63.835 63.835s28.58 63.835 63.835 63.835zM128 0h-32v448h32v-448zM384 96h-192v32c0 35.347 28.654 64 64 64v0h64c35.348 0 64-28.653 64-64v-32z" />
+<glyph unicode="&#x2710;" d="M449.18 448h-385.18v-64h-46.82c-8.8 0-17.18-6.264-17.18-15.064v-32c0-8.8 8.38-16.936 17.18-16.936h46.82v-32h-46.82c-8.8 0-17.18-6.264-17.18-15.064v-32c0-8.8 8.38-16.936 17.18-16.936h46.82v-32h-46.82c-8.8 0-17.18-6.264-17.18-15.064v-32c0-8.799 8.38-16.936 17.18-16.936h46.82v-32h-46.82c-8.8 0-17.18-6.264-17.18-15.064v-32c0-8.8 8.38-16.936 17.18-16.936h46.82v-64h385.18c17.674 0 30.82 15.263 30.82 32.936v416c0 17.673-13.146 31.064-30.82 31.064zM160 0h-64v32h17.18c8.8 0 14.82 8.136 14.82 16.936v32c0 8.801-6.021 15.064-14.82 15.064h-17.18v32h17.18c8.8 0 14.82 8.136 14.82 16.936v32c0 8.801-6.021 15.064-14.82 15.064h-17.18v32h17.18c8.8 0 14.82 8.136 14.82 16.936v32c0 8.801-6.021 15.064-14.82 15.064h-17.18v32h17.18c8.8 0 14.82 8.136 14.82 16.936v32c0 8.801-6.020 15.064-14.82 15.064h-17.18v32h64v-416z" />
+<glyph unicode="&#x2713;" d="M432 416l-240-240-112 112-80-80 192-192 320 320z" />
+<glyph unicode="&#x2715;" d="M507.331 68.67c-0.002 0.002-0.004 0.004-0.006 0.005l-155.322 155.325 155.322 155.325c0.002 0.002 0.004 0.003 0.006 0.005 1.672 1.673 2.881 3.627 3.656 5.708 2.123 5.688 0.912 12.341-3.662 16.915l-73.373 73.373c-4.574 4.573-11.225 5.783-16.914 3.66-2.080-0.775-4.035-1.984-5.709-3.655 0-0.002-0.002-0.003-0.004-0.005l-155.324-155.326-155.324 155.325c-0.002 0.002-0.003 0.003-0.005 0.005-1.673 1.671-3.627 2.88-5.707 3.655-5.69 2.124-12.341 0.913-16.915-3.66l-73.374-73.374c-4.574-4.574-5.784-11.226-3.661-16.914 0.776-2.080 1.985-4.036 3.656-5.708 0.002-0.001 0.003-0.003 0.005-0.005l155.325-155.324-155.325-155.326c-0.001-0.002-0.003-0.003-0.004-0.005-1.671-1.673-2.88-3.627-3.657-5.707-2.124-5.688-0.913-12.341 3.661-16.915l73.374-73.373c4.575-4.574 11.226-5.784 16.915-3.661 2.080 0.776 4.035 1.985 5.708 3.656 0.001 0.002 0.003 0.003 0.005 0.005l155.324 155.325 155.324-155.325c0.002-0.001 0.004-0.003 0.006-0.004 1.674-1.672 3.627-2.881 5.707-3.657 5.689-2.123 12.342-0.913 16.914 3.661l73.373 73.374c4.574 4.574 5.785 11.227 3.662 16.915-0.776 2.080-1.985 4.034-3.657 5.707z" />
+<glyph unicode="&#x2718;" d="M0 224c0-141.385 114.615-256 256-256s256 114.615 256 256-114.614 256-256 256c-141.385 0-256-114.615-256-256zM448 224c0-36.618-10.256-70.84-28.044-99.956l-263.911 263.912c29.115 17.789 63.337 28.044 99.955 28.044 106.038 0 192-85.961 192-192zM64 224c0 36.618 10.256 70.839 28.045 99.956l263.911-263.912c-29.117-17.789-63.338-28.044-99.956-28.044-106.038 0-192 85.961-192 192z" />
+<glyph unicode="&#x271a;" d="M496 288h-176v176c0 8.836-7.164 16-16 16h-96c-8.836 0-16-7.164-16-16v-176h-176c-8.836 0-16-7.164-16-16v-96c0-8.836 7.164-16 16-16h176v-176c0-8.836 7.164-16 16-16h96c8.836 0 16 7.164 16 16v176h176c8.836 0 16 7.164 16 16v96c0 8.836-7.164 16-16 16z" />
+<glyph unicode="&#x2764;" d="M512 300.922c0 81.229-65.85 147.078-147.078 147.078-43.181 0-82.015-18.609-108.922-48.245-26.907 29.636-65.741 48.245-108.922 48.245-81.229 0-147.078-65.849-147.078-147.078 0-43.181 18.609-82.015 48.245-108.922h-0.245l160-160c16-16 32-32 48-32s32 16 48 32l160 160h-0.245c29.636 26.907 48.245 65.741 48.245 108.922zM420.734 239.384l-161.989-162.129c-0.839-0.839-1.766-1.766-2.745-2.74-0.98 0.975-1.907 1.901-2.745 2.74l-161.989 162.128c-17.583 15.964-27.266 37.819-27.266 61.539 0 45.809 37.269 83.078 83.078 83.078 23.72 0 45.575-9.683 61.538-27.266l47.384-52.19 47.384 52.189c15.964 17.584 37.818 27.267 61.538 27.267 45.809 0 83.078-37.269 83.078-83.078 0-23.72-9.684-45.575-27.266-61.538z" />
+<glyph unicode="&#x2b14;" d="M448 384h-384v-320h384v320zM512 448v0-448h-512v448h512zM416 96h-320v64l96 160 131.5-160 92.5 64v-32zM320 304c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.51-21.49 48-48 48s-48-21.49-48-48z" />
+<glyph unicode="&#x2b25;" d="M256 480c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM256 32c-106.039 0-192 85.961-192 192s85.961 192 192 192c106.039 0 192-85.961 192-192s-85.961-192-192-192z" />
+<glyph unicode="&#x2b26;" d="M256 480c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM256 32c-106.039 0-192 85.961-192 192s85.961 192 192 192c106.039 0 192-85.961 192-192s-85.961-192-192-192zM160 224c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96s-96-42.981-96-96z" />
+<glyph unicode="&#x2b27;" d="M0 480v-512h512v512h-512zM480 0h-448v448h448v-448z" />
+<glyph unicode="&#x2b28;" d="M0 480v-512h512v512h-512zM480 0h-448v448h448v-448zM128 352h256v-256h-256z" />
+<glyph unicode="&#xe000;" d="M512 184.778l-256 198.713-256-198.714v81.019l256 198.713 256-198.714zM448 192v-192h-128v128h-128v-128h-128v192l192 144z" />
+<glyph unicode="&#xe001;" d="M448 352v64h-448v-352c0-17.673 14.327-32 32-32h432c26.511 0 48 21.489 48 48v272h-64zM416 64h-384v320h384v-320zM64 320h320v-32h-320zM256 256h128v-32h-128zM256 192h128v-32h-128zM256 128h96v-32h-96zM64 256h160v-160h-160z" />
+<glyph unicode="&#xe002;" d="M256 448c-141.382 0-256-93.106-256-208.004 0-65.249 37.368-123.33 95.271-161.451 0.698-4.701 0.729-9.658 0.729-14.545 0-34.956-29.743-65.404-64-82.184v-13.816c63.465 1.443 129.008 11.21 184.002 66.18 13.009-1.652 26.43-2.18 39.998-2.18 141.382 0 256 93.13 256 207.996 0 114.898-114.618 208.004-256 208.004zM162.909 382.542c1.575 0.325 3.576-0.156 5.089-0.722 1.109-0.411 2.017-1.288 2.909-2.188l82.913-82.905 82.905 82.905c0.9 0.9 1.808 1.777 2.909 2.188 3.049 1.133 7.006 0.248 9.457-2.188l39.277-39.268c2.428-2.452 2.583-5.694 1.45-8.728-0.411-1.109-0.558-2.017-1.45-2.909l-83.643-82.913 83.643-82.905c0.892-0.892 1.039-1.8 1.45-2.909 1.141-3.041 0.993-7.005-1.45-9.456l-39.277-39.269c-2.451-2.436-6.423-2.591-9.457-1.459-1.101 0.411-2.009 0.559-2.909 1.459l-82.905 82.905-82.913-82.905c-0.892-0.9-1.8-1.048-2.909-1.459-3.041-1.14-7.005-0.993-9.449 1.459l-38.547 39.269c-2.436 2.451-3.313 6.423-2.18 9.456 0.403 1.109 1.28 2.017 2.18 2.909l82.905 82.905-82.905 82.913c-0.9 0.892-1.777 1.8-2.18 2.909-1.148 3.041-0.271 6.276 2.18 8.728l38.547 39.268c1.218 1.218 2.785 2.592 4.36 2.91z" />
+<glyph unicode="&#xe003;" d="M152 176c0-57.438 46.562-104 104-104s104 46.562 104 104-46.562 104-104 104-104-46.562-104-104zM480 352h-112c-8 32-16 64-48 64h-128c-32 0-40-32-48-64h-112c-17.6 0-32-14.4-32-32v-288c0-17.6 14.4-32 32-32h448c17.6 0 32 14.4 32 32v288c0 17.6-14.4 32-32 32zM256 34c-78.425 0-142 63.574-142 142s63.575 142 142 142c78.426 0 142-63.575 142-142s-63.573-142-142-142zM480 256h-64v32h64v-32z" />
+<glyph unicode="&#xe004;" d="M256 448c-141.382 0-256-93.106-256-208.004 0-65.249 37.368-123.33 95.271-161.451 0.698-4.701 0.729-9.658 0.729-14.545 0-34.956-29.743-65.404-64-82.184v-13.816c63.465 1.443 129.008 11.21 184.002 66.18 13.009-1.652 26.43-2.18 39.998-2.18 141.382 0 256 93.13 256 207.996 0 114.898-114.618 208.004-256 208.004zM77.816 288h347.64c6.408 0 11.637-5.229 11.637-11.636v-69.819c0-6.407-5.229-11.636-11.637-11.636h-347.64c-6.408 0-11.636 5.229-11.636 11.636v69.819c0 6.407 5.228 11.636 11.636 11.636z" />
+<glyph unicode="&#xe012;" d="M272 480l-48-48 48-48-112-128h-112l88-88-136-180.308v-19.692h19.692l180.308 136 88-88v112l128 112 48-48 48 48-240 240zM224 208l-32 32 112 112 32-32-112-112z" />
+<glyph unicode="&#xe015;" d="M544 29.417c0-22.75 13.014-42.454 32-52.092v-7.969c-5.313-0.727-10.736-1.112-16.25-1.112-34.004 0-64.674 14.264-86.361 37.132-13.111-3.491-27.001-5.376-41.389-5.376-79.529 0-144 57.308-144 128s64.471 128 144 128c79.529 0 144-57.308 144-128 0-27.674-9.882-53.296-26.678-74.233-3.412-7.412-5.322-15.656-5.322-24.35zM115.339 369.407c-33.107-26.899-51.339-61.492-51.339-97.407 0-20.149 5.594-39.689 16.626-58.075 11.376-18.96 28.491-36.293 49.494-50.126 15.178-9.996 25.39-25.974 28.088-43.947 0.9-5.992 1.464-12.044 1.685-18.062 3.735 3.097 7.375 6.423 10.94 9.988 12.077 12.076 28.39 18.745 45.251 18.745 2.684 0 5.381-0.168 8.078-0.512 10.474-1.331 21.172-2.008 31.797-2.010v-64c-13.564 0.001-26.877 0.869-39.871 2.521-54.989-54.989-120.625-64.85-184.088-66.298v13.458c34.268 16.789 64 47.37 64 82.318 0 4.877-0.379 9.665-1.082 14.348-57.898 38.132-94.918 96.377-94.918 161.652 0 114.875 114.615 208 256 208 139.229 0 252.496-90.307 255.918-202.76-20.548 9.158-42.92 14.711-66.131 16.289-5.765 28.034-22.701 54.408-49.126 75.878-17.661 14.349-38.458 25.695-61.814 33.722-24.853 8.54-51.38 12.871-78.847 12.871s-53.994-4.331-78.847-12.871c-23.356-8.027-44.153-19.372-61.814-33.722z" horiz-adv-x="576" />
+<glyph unicode="&#xe016;" d="M240 480v0c132.548 0 240-86.957 240-194.224s-107.452-194.224-240-194.224c-12.729 0-25.223 0.81-37.417 2.355-51.553-51.347-111.086-60.554-170.583-61.907v12.567c32.126 15.677 58 44.233 58 76.867 0 4.553-0.356 9.024-1.015 13.397-54.279 35.607-88.985 89.994-88.985 150.945 0 107.267 107.452 194.224 240 194.224zM498 44.657c0-27.971 18.157-52.449 46-65.886v-10.771c-51.563 1.159-98.893 9.051-143.571 53.063-10.57-1.325-21.397-2.020-32.429-2.020-47.735 0-91.704 12.879-126.807 34.52 72.337 0.253 140.63 23.427 192.417 65.336 26.104 21.126 46.697 45.913 61.207 73.674 15.383 29.433 23.183 60.791 23.183 93.203 0 5.224-0.225 10.418-0.629 15.584 36.285-29.967 58.629-70.811 58.629-115.838 0-52.244-30.079-98.861-77.12-129.382-0.571-3.748-0.88-7.58-0.88-11.483z" horiz-adv-x="576" />
+<glyph unicode="&#xe017;" d="M240 416c-25.333 0-49.791-3.975-72.693-11.814-21.462-7.347-40.557-17.718-56.751-30.823-30.022-24.295-46.556-55.401-46.556-87.587 0-17.995 5.033-35.474 14.96-51.949 10.343-17.17 25.949-32.897 45.13-45.479 15.22-9.984 25.468-25.976 28.181-43.975 0.451-2.995 0.815-6.003 1.090-9.016 1.361 1.26 2.712 2.557 4.057 3.897 12.069 12.020 28.344 18.656 45.161 18.656 2.674 0 5.359-0.168 8.047-0.509 9.68-1.226 19.562-1.848 29.374-1.848 25.333 0 49.79 3.974 72.692 11.814 21.463 7.346 40.558 17.717 56.752 30.822 30.023 24.295 46.556 55.401 46.556 87.587s-16.533 63.291-46.556 87.587c-16.194 13.106-35.289 23.476-56.752 30.823-22.902 7.839-47.359 11.814-72.692 11.814zM240 480v0c132.548 0 240-86.957 240-194.224s-107.452-194.224-240-194.224c-12.729 0-25.223 0.81-37.417 2.355-51.553-51.347-111.086-60.554-170.583-61.907v12.567c32.126 15.677 58 44.233 58 76.867 0 4.553-0.356 9.024-1.015 13.397-54.279 35.607-88.985 89.994-88.985 150.945 0 107.267 107.452 194.224 240 194.224zM498 44.657c0-27.971 18.157-52.449 46-65.886v-10.771c-51.563 1.159-98.893 9.051-143.571 53.063-10.57-1.325-21.397-2.020-32.429-2.020-47.735 0-91.704 12.879-126.807 34.52 72.337 0.253 140.63 23.427 192.417 65.336 26.104 21.126 46.697 45.913 61.207 73.674 15.383 29.433 23.183 60.791 23.183 93.203 0 5.224-0.225 10.418-0.629 15.584 36.285-29.967 58.629-70.811 58.629-115.838 0-52.244-30.079-98.861-77.12-129.382-0.571-3.748-0.88-7.58-0.88-11.483z" horiz-adv-x="576" />
+<glyph unicode="&#xe01a;" d="M424-32h-336c-13.255 0-24 10.745-24 24 0 34.431 14.534 76.102 38.879 111.471 20.346 29.559 45.342 51.81 72.339 64.805-11.899 10.822-22.147 24.013-30.254 39.061-13 24.131-19.873 52.024-19.873 80.664 0 39.803 13.102 77.411 36.893 105.895 24.832 29.73 58.221 46.104 94.016 46.104s69.184-16.374 94.017-46.105c23.79-28.484 36.893-66.091 36.893-105.895 0-28.64-6.872-56.533-19.872-80.664-8.107-15.048-18.355-28.239-30.255-39.061 26.997-12.995 51.993-35.246 72.339-64.805 24.344-35.368 38.878-77.039 38.878-111.47 0-13.255-10.745-24-24-24zM115.037 16h281.926c-4.613 19.67-14.26 41.192-27.381 60.255-20.727 30.113-46.588 49.811-72.819 55.463-11.053 2.382-18.944 12.155-18.944 23.462v17.146c0 8.63 4.633 16.595 12.135 20.861 29.739 16.916 48.956 54.133 48.956 94.813 0 57.346-37.192 104-82.909 104s-82.909-46.654-82.909-104c0-40.68 19.217-77.896 48.957-94.813 7.501-4.267 12.134-12.231 12.134-20.861v-17.146c0-11.307-7.892-21.080-18.944-23.462-26.231-5.652-52.092-25.35-72.82-55.463-13.123-19.063-22.768-40.585-27.382-60.255z" />
+<glyph unicode="&#xe01b;" d="M488-32h-336c-13.255 0-24 10.745-24 24 0 34.431 14.534 76.102 38.879 111.471 20.346 29.559 45.342 51.81 72.339 64.805-11.899 10.822-22.147 24.013-30.254 39.061-13 24.131-19.873 52.024-19.873 80.664 0 39.803 13.102 77.411 36.893 105.895 24.832 29.73 58.221 46.104 94.016 46.104s69.184-16.374 94.017-46.105c23.79-28.484 36.893-66.091 36.893-105.895 0-28.64-6.872-56.533-19.872-80.664-8.107-15.048-18.355-28.239-30.255-39.061 26.997-12.995 51.993-35.246 72.339-64.805 24.344-35.368 38.878-77.039 38.878-111.47 0-13.255-10.745-24-24-24zM179.037 16h281.926c-4.613 19.67-14.26 41.192-27.381 60.255-20.727 30.113-46.588 49.811-72.819 55.463-11.053 2.382-18.944 12.155-18.944 23.462v17.146c0 8.63 4.633 16.595 12.135 20.861 29.739 16.916 48.956 54.133 48.956 94.813 0 57.346-37.192 104-82.909 104s-82.909-46.654-82.909-104c0-40.68 19.217-77.896 48.957-94.813 7.501-4.267 12.134-12.231 12.134-20.861v-17.146c0-11.307-7.892-21.080-18.944-23.462-26.231-5.652-52.092-25.35-72.82-55.463-13.123-19.063-22.768-40.585-27.382-60.255zM98.557 48h-47.52c4.614 19.67 14.259 41.192 27.38 60.255 20.728 30.113 46.589 49.811 72.82 55.463 11.053 2.382 18.944 12.155 18.944 23.462v17.146c0 8.63-4.633 16.595-12.134 20.861-29.74 16.917-48.957 54.133-48.957 94.813 0 57.346 37.192 104 82.909 104 3.127 0 6.213-0.226 9.251-0.651 13.179 14.667 28.117 26.587 44.321 35.502-16.596 8.616-34.75 13.149-53.571 13.149-35.795 0-69.184-16.374-94.017-46.105-23.79-28.484-36.892-66.092-36.892-105.895 0-28.64 6.872-56.533 19.873-80.664 8.107-15.048 18.355-28.238 30.254-39.061-26.997-12.995-51.993-35.246-72.339-64.805-24.345-35.368-38.879-77.039-38.879-111.47 0-13.255 10.745-24 24-24h66.193c0.738 15.513 3.599 31.706 8.364 48z" />
+<glyph unicode="&#xe01c;" d="M461.118-32h-317.491c-12.525 0-22.678 10.153-22.678 22.678 0 32.534 13.733 71.91 36.738 105.331 19.225 27.93 42.844 48.956 68.354 61.235-11.244 10.226-20.927 22.69-28.588 36.909-12.284 22.801-18.779 49.159-18.779 76.221 0 37.611 12.381 73.147 34.861 100.062 23.464 28.092 55.014 43.564 88.837 43.564s65.373-15.472 88.838-43.565c22.48-26.915 34.861-62.45 34.861-100.062 0-27.063-6.493-53.419-18.777-76.221-7.661-14.219-17.344-26.683-28.589-36.909 25.51-12.279 49.129-33.305 68.354-61.235 23.003-33.42 36.736-72.796 36.736-105.329 0-12.525-10.153-22.678-22.678-22.678zM169.175 13.356h266.396c-4.359 18.587-13.474 38.923-25.873 56.936-19.586 28.454-44.022 47.067-68.808 52.408-10.444 2.251-17.901 11.486-17.901 22.17v16.202c0 8.154 4.378 15.681 11.466 19.712 28.101 15.984 46.26 51.151 46.26 89.59 0 54.187-35.144 98.271-78.342 98.271s-78.342-44.084-78.342-98.271c0-38.439 18.159-73.605 46.26-89.59 7.088-4.032 11.466-11.558 11.466-19.712v-16.202c0-10.684-7.457-19.919-17.901-22.169-24.786-5.341-49.222-23.954-68.808-52.408-12.4-18.013-21.514-38.349-25.874-56.936zM93.128 43.593h-44.903c4.36 18.587 13.474 38.923 25.872 56.936 19.586 28.454 44.023 47.067 68.809 52.408 10.444 2.251 17.9 11.486 17.9 22.169v16.202c0 8.154-4.378 15.681-11.465 19.712-28.102 15.985-46.26 51.151-46.26 89.59 0 54.187 35.144 98.271 78.342 98.271 2.954 0 5.871-0.213 8.742-0.615 12.453 13.859 26.568 25.123 41.88 33.547-15.682 8.142-32.836 12.424-50.62 12.424-33.823 0-65.373-15.472-88.838-43.565-22.48-26.915-34.86-62.451-34.86-100.062 0-27.063 6.493-53.419 18.778-76.221 7.66-14.219 17.344-26.683 28.588-36.909-25.51-12.279-49.129-33.305-68.354-61.235-23.004-33.42-36.737-72.796-36.737-105.329 0-12.525 10.153-22.678 22.678-22.678h62.547c0.698 14.659 3.401 29.959 7.903 45.356zM363.512 444.513v-27.615c0-2.542 2.061-4.603 4.603-4.603h138.077c2.542 0 4.603 2.061 4.603 4.603v27.615c0 2.542-2.061 4.603-4.603 4.603h-138.077c-2.542 0-4.603-2.061-4.603-4.603z" />
+<glyph unicode="&#xe01d;" d="M112.5 256c61.856 0 112-50.145 112-112s-50.144-112-112-112-112 50.144-112 112l-0.5 16c0 123.712 100.288 224 224 224v-64c-42.737 0-82.917-16.643-113.137-46.863-5.817-5.818-11.126-12.008-15.915-18.51 5.719 0.9 11.58 1.373 17.552 1.373zM400.5 256c61.855 0 112-50.145 112-112s-50.145-112-112-112-112 50.144-112 112l-0.5 16c0 123.712 100.288 224 224 224v-64c-42.737 0-82.917-16.643-113.137-46.863-5.818-5.818-11.127-12.008-15.916-18.51 5.72 0.9 11.58 1.373 17.553 1.373z" />
+<glyph unicode="&#xe01e;" d="M461.118-32h-317.491c-12.525 0-22.678 10.153-22.678 22.678 0 32.534 13.733 71.91 36.738 105.331 19.225 27.93 42.844 48.956 68.354 61.235-11.244 10.226-20.927 22.69-28.588 36.909-12.284 22.801-18.779 49.159-18.779 76.221 0 37.611 12.381 73.147 34.861 100.062 23.464 28.092 55.014 43.564 88.837 43.564s65.373-15.472 88.838-43.565c22.48-26.915 34.861-62.45 34.861-100.062 0-27.063-6.493-53.419-18.777-76.221-7.661-14.219-17.344-26.683-28.589-36.909 25.51-12.279 49.129-33.305 68.354-61.235 23.003-33.42 36.736-72.796 36.736-105.329 0-12.525-10.153-22.678-22.678-22.678zM169.175 13.356h266.396c-4.359 18.587-13.474 38.923-25.873 56.936-19.586 28.454-44.022 47.067-68.808 52.408-10.444 2.251-17.901 11.486-17.901 22.17v16.202c0 8.154 4.378 15.681 11.466 19.712 28.101 15.984 46.26 51.151 46.26 89.59 0 54.187-35.144 98.271-78.342 98.271s-78.342-44.084-78.342-98.271c0-38.439 18.159-73.605 46.26-89.59 7.088-4.032 11.466-11.558 11.466-19.712v-16.202c0-10.684-7.457-19.919-17.901-22.169-24.786-5.341-49.222-23.954-68.808-52.408-12.4-18.013-21.514-38.349-25.874-56.936zM93.128 43.593h-44.903c4.36 18.587 13.474 38.923 25.872 56.936 19.586 28.454 44.023 47.067 68.809 52.408 10.444 2.251 17.9 11.486 17.9 22.169v16.202c0 8.154-4.378 15.681-11.465 19.712-28.102 15.985-46.26 51.151-46.26 89.59 0 54.187 35.144 98.271 78.342 98.271 2.954 0 5.871-0.213 8.742-0.615 12.453 13.859 26.568 25.123 41.88 33.547-15.682 8.142-32.836 12.424-50.62 12.424-33.823 0-65.373-15.472-88.838-43.565-22.48-26.915-34.86-62.451-34.86-100.062 0-27.063 6.493-53.419 18.778-76.221 7.66-14.219 17.344-26.683 28.588-36.909-25.51-12.279-49.129-33.305-68.354-61.235-23.004-33.42-36.737-72.796-36.737-105.329 0-12.525 10.153-22.678 22.678-22.678h62.547c0.698 14.659 3.401 29.959 7.903 45.356zM512.211 429.587h-48.225v48.225c0 2.421-1.963 4.384-4.384 4.384h-26.305c-2.421 0-4.384-1.963-4.384-4.384v-48.225h-48.225c-2.421 0-4.384-1.963-4.384-4.384v-26.304c0-2.421 1.963-4.384 4.384-4.384h48.225v-48.225c0-2.421 1.963-4.384 4.384-4.384h26.305c2.421 0 4.384 1.963 4.384 4.384v48.225h48.225c2.421 0 4.384 1.963 4.384 4.384v26.305c0 2.421-1.963 4.384-4.384 4.384z" />
+<glyph unicode="&#xe01f;" d="M256 432c-55.559 0-107.792-21.636-147.078-60.922s-60.922-91.519-60.922-147.078c0-55.559 21.636-107.792 60.922-147.078s91.519-60.922 147.078-60.922c55.559 0 107.792 21.636 147.078 60.922s60.922 91.519 60.922 147.078c0 55.559-21.636 107.792-60.922 147.078s-91.519 60.922-147.078 60.922zM256 480v0c141.385 0 256-114.615 256-256s-114.615-256-256-256c-141.385 0-256 114.615-256 256s114.615 256 256 256zM224 128h64v-64h-64zM224 384h64v-192h-64z" />
+<glyph unicode="&#xe021;" d="M496.131 44.302l-121.276 103.147c-12.537 11.283-25.945 16.463-36.776 15.963 28.628 33.534 45.921 77.039 45.921 124.588 0 106.039-85.961 192-192 192s-192-85.961-192-192 85.961-192 192-192c47.549 0 91.054 17.293 124.588 45.922-0.5-10.831 4.68-24.239 15.963-36.776l103.147-121.276c17.661-19.623 46.511-21.277 64.11-3.678s15.946 46.449-3.677 64.11zM192 160c-70.692 0-128 57.308-128 128s57.308 128 128 128 128-57.308 128-128-57.307-128-128-128z" />
+<glyph unicode="&#xe022;" d="M181.861 118.974l20.649 28.908-22.627 22.628-28.909-20.648c-5.361 2.997-11.102 5.387-17.133 7.096l-5.841 35.042h-32l-5.84-35.043c-6.031-1.709-11.772-4.099-17.133-7.096l-28.909 20.649-22.628-22.628 20.649-28.908c-2.997-5.36-5.387-11.103-7.096-17.133l-35.043-5.841v-32l35.043-5.841c1.709-6.030 4.099-11.772 7.096-17.133l-20.649-28.908 22.627-22.628 28.909 20.648c5.361-2.997 11.102-5.387 17.133-7.096l5.841-35.042h32l5.84 35.043c6.031 1.709 11.772 4.099 17.133 7.096l28.909-20.648 22.627 22.628-20.649 28.908c2.997 5.36 5.387 11.103 7.096 17.133l35.044 5.84v32l-35.043 5.841c-1.709 6.030-4.099 11.772-7.096 17.133zM112 48c-17.674 0-32 14.327-32 32s14.326 32 32 32 32-14.327 32-32-14.326-32-32-32zM512 288v32l-33.691 6.125c-0.621 4.023-1.416 7.989-2.362 11.895l28.779 18.55-12.246 29.564-33.472-7.234c-2.107 3.455-4.363 6.81-6.746 10.065l19.503 28.171-22.628 22.627-28.171-19.503c-3.256 2.383-6.61 4.638-10.065 6.747l7.234 33.472-29.564 12.247-18.55-28.779c-3.906 0.946-7.872 1.741-11.895 2.362l-6.126 33.691h-32l-6.126-33.691c-4.023-0.621-7.988-1.416-11.895-2.362l-18.549 28.779-29.564-12.246 7.234-33.472c-3.455-2.108-6.81-4.364-10.065-6.747l-28.171 19.503-22.627-22.627 19.503-28.171c-2.383-3.255-4.639-6.61-6.747-10.065l-33.472 7.234-12.246-29.564 28.779-18.55c-0.946-3.906-1.741-7.871-2.362-11.895l-33.692-6.126v-32l33.691-6.125c0.621-4.023 1.416-7.989 2.362-11.895l-28.779-18.55 12.246-29.564 33.472 7.234c2.108-3.455 4.364-6.809 6.747-10.065l-19.503-28.171 22.627-22.628 28.171 19.503c3.255-2.383 6.61-4.638 10.065-6.746l-7.234-33.472 29.564-12.246 18.551 28.779c3.905-0.946 7.871-1.741 11.894-2.362l6.126-33.692h32l6.126 33.691c4.022 0.621 7.988 1.416 11.895 2.362l18.55-28.779 29.564 12.246-7.234 33.472c3.455 2.108 6.81 4.363 10.065 6.746l28.171-19.503 22.628 22.628-19.503 28.171c2.383 3.256 4.638 6.61 6.746 10.065l33.472-7.234 12.246 29.565-28.779 18.55c0.946 3.906 1.741 7.871 2.362 11.895l33.691 6.125zM336 234.4c-38.439 0-69.6 31.161-69.6 69.6s31.16 69.6 69.6 69.6 69.6-31.161 69.6-69.6c0-38.439-31.16-69.6-69.6-69.6z" />
+<glyph unicode="&#xe024;" d="M501.467 71.062l-230.276 197.38c10.724 20.149 16.809 43.141 16.809 67.558 0 79.529-64.471 144-144 144-14.547 0-28.586-2.166-41.823-6.177l83.195-83.195c12.445-12.445 12.445-32.81 0-45.255l-50.745-50.745c-12.445-12.445-32.81-12.445-45.255 0l-83.195 83.195c-4.011-13.237-6.177-27.276-6.177-41.823 0-79.529 64.471-144 144-144 24.417 0 47.409 6.085 67.558 16.81l197.38-230.276c11.454-13.362 31.008-14.113 43.452-1.669l50.746 50.746c12.444 12.444 11.693 31.997-1.669 43.451z" />
+<glyph unicode="&#xe025;" d="M384 448h-64c-52.935 0-96-43.065-96-96v-96h-200c-13.2 0-24-10.8-24-24v-240c0-13.2 10.8-24 24-24h272c13.2 0 24 10.8 24 24v240c0 13.2-10.8 24-24 24h-8v96c0 17.645 14.355 32 32 32h64c17.645 0 32-14.355 32-32v-96h64v96c0 52.935-43.065 96-96 96zM192 32h-64l13.92 69.6c-8.404 5.766-13.92 15.437-13.92 26.4 0 17.673 14.327 32 32 32s32-14.327 32-32c0-10.963-5.516-20.634-13.92-26.4l13.92-69.6z" />
+<glyph unicode="&#xe026;" d="M416 256h-32v96c0 70.692-57.308 128-128 128s-128-57.308-128-128v-96h-32c-17.6 0-32-14.4-32-32v-224c0-17.6 14.4-32 32-32h320c17.6 0 32 14.4 32 32v224c0 17.6-14.4 32-32 32zM256 64c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM320 256h-128v96c0 35.29 28.71 64 64 64s64-28.71 64-64v-96z" />
+<glyph unicode="&#xe027;" d="M296 256h-8v96c0 52.935-43.065 96-96 96h-64c-52.935 0-96-43.065-96-96v-96h-8c-13.2 0-24-10.8-24-24v-240c0-13.2 10.8-24 24-24h272c13.2 0 24 10.8 24 24v240c0 13.2-10.8 24-24 24zM192 32h-64l13.92 69.6c-8.404 5.766-13.92 15.437-13.92 26.4 0 17.673 14.327 32 32 32s32-14.327 32-32c0-10.963-5.516-20.634-13.92-26.4l13.92-69.6zM224 256h-128v96c0 17.645 14.355 32 32 32h64c17.645 0 32-14.355 32-32v-96z" />
+<glyph unicode="&#xe028;" d="M352 480c-88.365 0-160-71.634-160-160 0-10.013 0.929-19.808 2.688-29.312l-194.688-194.688v-96c0-17.673 14.327-32 32-32h32v32h64v64h64v64h64l41.521 41.521c17.005-6.158 35.348-9.521 54.479-9.521 88.365 0 160 71.634 160 160s-71.635 160-160 160zM399.937 319.937c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z" />
+<glyph unicode="&#xe029;" d="M501.066 322.879l-50.553 50.552c-12.396 12.397-32.685 32.684-45.081 45.082l-50.553 50.552c-12.396 12.397-34.477 14.583-49.065 4.858l-138.219-92.146c-14.588-9.726-20.109-30.514-12.268-46.195l35.243-70.487c1.077-2.153 2.323-4.448 3.695-6.83l-178.265-178.265-16-112h96v32h64v64h64v64h64v35.593c3.198-1.906 6.267-3.608 9.096-5.022l70.485-35.244c15.683-7.841 36.47-2.319 46.195 12.269l92.147 138.22c9.727 14.586 7.539 36.665-4.857 49.063zM75.314 52.687l-22.627 22.627 155.786 155.785 22.627-22.627-155.786-155.785zM458.51 268.118l-22.628-22.628c-6.223-6.222-16.404-6.222-22.627 0l-135.765 135.765c-6.223 6.222-6.223 16.405 0 22.627l22.628 22.628c6.223 6.222 16.404 6.222 22.627 0l135.765-135.765c6.223-6.222 6.223-16.405 0-22.627z" />
+<glyph unicode="&#xe02a;" d="M496.131 44.302l-121.276 103.147c-12.537 11.283-25.945 16.463-36.776 15.963 28.628 33.534 45.921 77.039 45.921 124.588 0 106.039-85.961 192-192 192s-192-85.961-192-192 85.961-192 192-192c47.549 0 91.054 17.293 124.588 45.922-0.5-10.831 4.68-24.239 15.963-36.776l103.147-121.276c17.661-19.623 46.511-21.277 64.11-3.678s15.946 46.449-3.677 64.11zM192 160c-70.692 0-128 57.308-128 128s57.308 128 128 128 128-57.308 128-128-57.307-128-128-128zM96 320h192v-64h-192z" />
+<glyph unicode="&#xe02b;" d="M496.131 44.302l-121.276 103.147c-12.537 11.283-25.945 16.463-36.776 15.963 28.628 33.534 45.921 77.039 45.921 124.588 0 106.039-85.961 192-192 192s-192-85.961-192-192 85.961-192 192-192c47.549 0 91.054 17.293 124.588 45.922-0.5-10.831 4.68-24.239 15.963-36.776l103.147-121.276c17.661-19.623 46.511-21.277 64.11-3.678s15.946 46.449-3.677 64.11zM192 160c-70.692 0-128 57.308-128 128s57.308 128 128 128 128-57.308 128-128-57.307-128-128-128zM224 384h-64v-64h-64v-64h64v-64h64v64h64v64h-64z" />
+<glyph unicode="&#xe02d;" d="M400 416h-288c-26.51 0-48-21.49-48-48v-16h384v16c0 26.51-21.49 48-48 48zM316.16 448l7.058-50.5h-134.436l7.057 50.5h120.321zM320 480h-128c-13.2 0-25.495-10.696-27.321-23.769l-9.357-66.962c-1.827-13.073 7.478-23.769 20.678-23.769h160c13.2 0 22.505 10.696 20.679 23.769l-9.357 66.962c-1.827 13.073-14.122 23.769-27.322 23.769v0zM408 320h-304c-17.6 0-30.696-14.341-29.103-31.869l26.206-288.263c1.593-17.527 17.297-31.868 34.897-31.868h240c17.6 0 33.304 14.341 34.897 31.868l26.205 288.263c1.594 17.528-11.502 31.869-29.102 31.869zM192 32h-48l-16 224h64v-224zM288 32h-64v224h64v-224zM368 32h-48v224h64l-16-224z" />
+<glyph unicode="&#xe02f;" d="M512 175.953v96.094l-73.387 12.231c-2.979 9.066-6.611 17.834-10.847 26.25l43.227 60.517-67.948 67.949-60.413-43.152c-8.455 4.277-17.269 7.944-26.384 10.951l-12.201 73.207h-96.094l-12.201-73.208c-9.115-3.007-17.929-6.674-26.383-10.951l-60.414 43.152-67.949-67.949 43.227-60.518c-4.235-8.415-7.867-17.183-10.846-26.249l-73.387-12.23v-96.094l73.559-12.26c2.98-8.984 6.605-17.674 10.821-26.015l-43.374-60.724 67.949-67.948 60.827 43.447c8.301-4.175 16.945-7.764 25.882-10.717l12.289-73.736h96.094l12.289 73.737c8.937 2.953 17.581 6.542 25.883 10.716l60.826-43.446 67.948 67.948-43.372 60.723c4.216 8.341 7.839 17.031 10.82 26.016l73.559 12.259zM256 160c-35.346 0-64 28.653-64 64s28.654 64 64 64c35.347 0 64-28.654 64-64s-28.653-64-64-64z" />
+<glyph unicode="&#xe030;" d="M256 384c-111.659 0-208.441-65.021-256-160 47.559-94.979 144.341-160 256-160 111.657 0 208.439 65.021 256 160-47.558 94.979-144.343 160-256 160zM382.225 299.148c30.081-19.187 55.571-44.887 74.717-75.148-19.146-30.261-44.637-55.961-74.718-75.149-37.797-24.108-81.445-36.851-126.224-36.851-44.78 0-88.428 12.743-126.225 36.852-30.080 19.186-55.57 44.886-74.717 75.148 19.146 30.262 44.637 55.962 74.717 75.148 1.959 1.25 3.938 2.461 5.929 3.65-4.979-13.664-7.704-28.411-7.704-43.798 0-70.692 57.308-128 128-128s128 57.308 128 128c0 15.387-2.725 30.134-7.704 43.799 1.99-1.189 3.969-2.401 5.929-3.651zM256 275c0-26.51-21.49-48-48-48s-48 21.49-48 48 21.49 48 48 48 48-21.49 48-48z" />
+<glyph unicode="&#xe031;" d="M419.661 331.792c38.822-27.515 70.685-64.546 92.339-107.792-47.561-94.979-144.343-160-256-160-31.283 0-61.396 5.106-89.589 14.542l38.978 38.978c16.529-3.65 33.486-5.52 50.611-5.52 44.779 0 88.427 12.743 126.223 36.852 30.081 19.188 55.572 44.888 74.718 75.149-18.526 29.283-43.007 54.275-71.825 73.247l34.545 34.544zM256 131c-11.362 0-22.376 1.488-32.864 4.267l156.593 156.592c2.781-10.486 4.271-21.497 4.271-32.859 0-70.692-57.308-128-128-128zM480 480h-26.869l-109.806-109.806c-27.538 8.962-56.877 13.806-87.325 13.806-111.659 0-208.441-65.021-256-160 21.329-42.596 52.564-79.154 90.597-106.534l-90.597-90.597v-26.869h26.869l453.131 453.131v26.869zM208 323c24.022 0 43.923-17.647 47.446-40.685l-54.762-54.762c-23.037 3.524-40.684 23.425-40.684 47.447 0 26.51 21.49 48 48 48zM55.058 224c19.146 30.262 44.637 55.962 74.717 75.148 1.959 1.25 3.938 2.461 5.929 3.65-4.979-13.664-7.704-28.411-7.704-43.798 0-29.262 9.825-56.224 26.349-77.781l-29.275-29.275c-28.036 18.821-51.877 43.386-70.016 72.056z" />
+<glyph unicode="&#xe032;" d="M348.916 316.476l-32.476 32.461-162.405-162.371c-26.907-26.896-26.907-70.524 0-97.422 26.902-26.896 70.53-26.896 97.437 0l194.886 194.854c44.857 44.831 44.857 117.531 0 162.363-44.833 44.852-117.556 44.852-162.391 0l-204.615-204.589c-0.145-0.152-0.306-0.288-0.438-0.423-62.551-62.548-62.551-163.928 0-226.453 62.527-62.528 163.934-62.528 226.494 0 0.137 0.137 0.258 0.284 0.41 0.438l0.016-0.017 139.666 139.646-32.493 32.46-139.665-139.631c-0.148-0.134-0.282-0.285-0.423-0.422-44.537-44.529-116.99-44.529-161.538 0-44.531 44.521-44.531 116.961 0 161.489 0.152 0.152 0.302 0.291 0.444 0.423l-0.023 0.030 204.64 204.583c26.856 26.869 70.572 26.869 97.443 0 26.856-26.867 26.856-70.574 0-97.42l-194.886-194.85c-8.968-8.961-23.527-8.961-32.486 0-8.947 8.943-8.947 23.516 0 32.46l162.403 162.391z" />
+<glyph unicode="&#xe033;" d="M240 448c-132.548 0-240-107.452-240-240s107.452-240 240-240c132.549 0 240 107.451 240 240s-107.451 240-240 240zM375.795 128c4.29 20.227 6.998 41.696 7.879 64h63.723c-1.668-22.098-6.812-43.557-15.34-64h-56.262zM104.205 288c-4.29-20.227-6.998-41.696-7.879-64h-63.722c1.668 22.097 6.811 43.557 15.339 64h56.262zM343.018 288c4.807-20.481 7.699-41.927 8.64-64h-95.658v64h87.018zM256 320v93.669c7.295-2.123 14.522-5.685 21.614-10.685 13.291-9.37 26.006-23.804 36.77-41.743 7.441-12.401 13.876-26.208 19.248-41.242h-77.632zM165.616 361.242c10.764 17.939 23.478 32.374 36.77 41.743 7.091 5 14.319 8.562 21.614 10.685v-93.67h-77.632c5.373 15.033 11.808 28.84 19.248 41.242zM224 288v-64h-95.657c0.94 22.073 3.833 43.519 8.639 64h87.018zM47.944 128c-8.528 20.443-13.671 41.902-15.339 64h63.722c0.881-22.304 3.589-43.773 7.879-64h-56.262zM128.343 192h95.657v-64h-87.018c-4.806 20.48-7.699 41.927-8.639 64zM224 96v-93.67c-7.294 2.123-14.522 5.686-21.614 10.685-13.292 9.37-26.007 23.805-36.77 41.743-7.441 12.402-13.875 26.209-19.249 41.242h77.633zM314.384 54.758c-10.764-17.938-23.479-32.373-36.77-41.743-7.092-4.999-14.319-8.562-21.614-10.685v93.67h77.633c-5.373-15.033-11.808-28.84-19.249-41.242zM256 128v64h95.657c-0.94-22.073-3.833-43.52-8.64-64h-87.017zM383.674 224c-0.881 22.304-3.589 43.773-7.879 64h56.262c8.528-20.443 13.672-41.903 15.34-64h-63.723zM415.329 320h-47.95c-9.319 29.381-22.188 55.147-37.658 75.714 21.268-10.17 40.529-23.808 57.357-40.636 10.74-10.739 20.181-22.469 28.251-35.078zM92.922 355.078c16.829 16.829 36.090 30.466 57.357 40.636-15.471-20.567-28.338-46.333-37.658-75.714h-47.949c8.069 12.609 17.511 24.339 28.25 35.078zM64.672 96h47.949c9.32-29.381 22.188-55.147 37.659-75.715-21.268 10.17-40.529 23.808-57.357 40.637-10.74 10.739-20.182 22.469-28.251 35.078zM387.078 60.922c-16.828-16.829-36.090-30.467-57.357-40.637 15.471 20.567 28.339 46.334 37.658 75.715h47.95c-8.070-12.609-17.511-24.339-28.251-35.078z" />
+<glyph unicode="&#xe038;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM128 320c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM320 320c0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32zM384 192v-32h-32v-48c0-26.51-21.49-48-48-48s-48 21.49-48 48v48h-128v32h256z" />
+<glyph unicode="&#xe03a;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM271.37 124.486c70.124 13.853 124.555 45.771 144.227 88.297-10.827-83.978-80.759-148.783-165.425-148.783-59.621 0-111.929 32.141-141.446 80.474 35.205-27.529 97.267-32.904 162.644-19.988zM320 304c0-26.51 14.327-48 32-48s32 21.49 32 48c0 26.51-14.327 48-32 48s-32-21.49-32-48zM176 294.25c-20.898 0-38.667-7.828-45.258-18.75-1.77 2.933-2.742 16.087-2.742 19.375 0 15.533 21.49 28.125 48 28.125s48-12.592 48-28.125c0-3.288-0.972-16.442-2.742-19.375-6.591 10.922-24.36 18.75-45.258 18.75z" />
+<glyph unicode="&#xe03f;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM352.049 89.63c-19.587 32.574-55.272 54.37-96.049 54.37s-76.462-21.796-96.049-54.37l-41.164 24.698c27.98 46.535 78.958 77.672 137.213 77.672s109.232-31.137 137.213-77.672l-41.164-24.698zM383.521 339.88c2.142-8.572-3.070-17.259-11.641-19.402-8.813-2.225-19.261-6.060-28.468-10.675 5.324-5.715 8.587-13.376 8.587-21.803 0-17.673-14.327-32-32-32s-32 14.327-32 32c0 0.585 0.018 1.165 0.049 1.742 1.016 23.727 22.606 39.473 40.796 48.569 17.371 8.685 34.551 13.030 35.274 13.211 8.573 2.144 17.259-3.069 19.403-11.642zM128.479 339.88c2.144 8.573 10.83 13.786 19.403 11.642 0.723-0.181 17.903-4.526 35.274-13.211 18.19-9.096 39.78-24.842 40.796-48.569 0.031-0.577 0.049-1.157 0.049-1.742 0-17.673-14.327-32-32-32s-32 14.327-32 32c0 8.427 3.263 16.088 8.587 21.803-9.207 4.615-19.655 8.45-28.468 10.675-8.571 2.143-13.783 10.83-11.641 19.402z" />
+<glyph unicode="&#xe040;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM400 352c8.8 0 16-7.2 16-16v-48c0-17.6-14.4-32-32-32h-64c-17.6 0-32 14.4-32 32h-64c0-17.6-14.4-32-32-32h-64c-17.6 0-32 14.4-32 32v48c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-16h64v16c0 8.8 7.2 16 16 16h96zM256 96c46.604 0 87.386 24.909 109.773 62.139l27.44-16.467c-27.983-46.535-78.958-77.672-137.213-77.672-24.229 0-47.192 5.398-67.77 15.041l16.581 27.639c15.677-6.857 32.982-10.68 51.189-10.68z" />
+<glyph unicode="&#xe041;" d="M256-32c141.385 0 256 114.615 256 256s-114.615 256-256 256-256-114.615-256-256 114.615-256 256-256zM256 432c114.875 0 208-93.125 208-208s-93.125-208-208-208-208 93.125-208 208 93.125 208 208 208zM96 224v-32c0-70.4 57.6-128 128-128h64c70.4 0 128 57.6 128 128v32h-320zM192 101.506c-13.269 4.729-25.462 12.411-35.772 22.723-18.203 18.201-28.228 42.27-28.228 67.771h64v-90.494zM288 96h-64v96h64v-96zM355.772 124.229c-10.312-10.312-22.505-17.994-35.772-22.723v90.494h64c0-25.501-10.024-49.57-28.228-67.771zM112.676 288c0.001 0 0 0 0 0 4.884 0 9.054 3.528 9.862 8.345 3.079 18.342 18.834 31.655 37.462 31.655s34.383-13.313 37.462-31.655c0.808-4.816 4.978-8.345 9.861-8.345 4.884 0 9.054 3.528 9.862 8.344 0.541 3.218 0.814 6.467 0.814 9.656 0 31.981-26.019 58-58 58s-58-26.019-58-58c0-3.189 0.274-6.438 0.814-9.656 0.81-4.816 4.98-8.344 9.863-8.344zM304.676 288c0.001 0 0 0 0 0 4.885 0 9.056 3.528 9.862 8.345 3.079 18.342 18.834 31.655 37.462 31.655s34.383-13.313 37.462-31.655c0.808-4.816 4.979-8.345 9.861-8.345s9.054 3.528 9.861 8.344c0.541 3.218 0.814 6.467 0.814 9.656 0 31.981-26.019 58-58 58s-58-26.019-58-58c0-3.189 0.272-6.438 0.813-9.656 0.812-4.816 4.982-8.344 9.865-8.344z" />
+<glyph unicode="&#xe045;" d="M64 352h64v-96h32v192c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32v-192h32v96zM64 448h64v-64h-64v64zM480 448v32h-96c-17.601 0-32-14.4-32-32v-160c0-17.6 14.399-32 32-32h96v32h-96v160h96zM320 400v48c0 17.6-14.4 32-32 32h-96v-224h96c17.6 0 32 14.4 32 32v48c0 17.6-4.4 32-22 32 17.6 0 22 14.4 22 32zM288 288h-64v64h64v-64zM288 384h-64v64h64v-64zM416 192l-208-224-112 144 41 35 71-74 176 151z" />
+<glyph unicode="&#xe046;" d="M445.020 18.98c-6.143 0-12.284 2.343-16.971 7.029-9.372 9.373-9.372 24.568 0 33.941 43.819 43.821 67.952 102.080 67.952 164.050 0 61.969-24.133 120.229-67.952 164.049-9.372 9.373-9.372 24.569 0 33.941s24.569 9.372 33.941 0c52.885-52.886 82.011-123.2 82.011-197.99s-29.126-145.104-82.011-197.99c-4.686-4.687-10.828-7.030-16.97-7.030zM359.765 64.235c-6.143 0-12.284 2.343-16.971 7.029-9.372 9.372-9.372 24.568 0 33.941 65.503 65.503 65.503 172.085 0 237.588-9.372 9.373-9.372 24.569 0 33.941 9.372 9.371 24.569 9.372 33.941 0 40.797-40.796 63.265-95.038 63.265-152.734s-22.468-111.938-63.265-152.735c-4.686-4.687-10.828-7.030-16.97-7.030zM274.51 109.49c-6.143 0-12.284 2.343-16.971 7.029-9.373 9.373-9.373 24.568 0 33.941 40.55 40.55 40.55 106.529 0 147.078-9.373 9.373-9.373 24.569 0 33.941s24.568 9.372 33.941 0c59.265-59.265 59.265-155.696 0-214.961-4.686-4.685-10.828-7.028-16.97-7.028zM200.666 440.666c12.834 12.834 23.334 8.484 23.334-9.666v-414c0-18.15-10.5-22.499-23.334-9.665l-120.666 120.665h-80v192h80l120.666 120.666z" horiz-adv-x="544" />
+<glyph unicode="&#xe047;" d="M359.765 64.235c-6.143 0-12.284 2.343-16.971 7.029-9.372 9.372-9.372 24.568 0 33.941 65.503 65.503 65.503 172.085 0 237.588-9.372 9.373-9.372 24.569 0 33.941 9.372 9.371 24.569 9.372 33.941 0 40.797-40.796 63.265-95.038 63.265-152.734s-22.468-111.938-63.265-152.735c-4.686-4.687-10.828-7.030-16.97-7.030zM274.51 109.49c-6.143 0-12.284 2.343-16.971 7.029-9.373 9.373-9.373 24.568 0 33.941 40.55 40.55 40.55 106.529 0 147.078-9.373 9.373-9.373 24.569 0 33.941s24.568 9.372 33.941 0c59.265-59.265 59.265-155.696 0-214.961-4.686-4.685-10.828-7.028-16.97-7.028zM200.666 440.666c12.834 12.834 23.334 8.484 23.334-9.666v-414c0-18.15-10.5-22.499-23.334-9.665l-120.666 120.665h-80v192h80l120.666 120.666z" />
+<glyph unicode="&#xe048;" d="M274.51 109.49c-6.143 0-12.284 2.343-16.971 7.029-9.373 9.373-9.373 24.568 0 33.941 40.55 40.55 40.55 106.529 0 147.078-9.373 9.373-9.373 24.569 0 33.941s24.568 9.372 33.941 0c59.265-59.265 59.265-155.696 0-214.961-4.686-4.685-10.828-7.028-16.97-7.028zM200.666 440.666c12.834 12.834 23.334 8.484 23.334-9.666v-414c0-18.15-10.5-22.499-23.334-9.665l-120.666 120.665h-80v192h80l120.666 120.666z" />
+<glyph unicode="&#xe049;" d="M200.666 440.666c12.834 12.834 23.334 8.484 23.334-9.666v-414c0-18.15-10.5-22.499-23.334-9.665l-120.666 120.665h-80v192h80l120.666 120.666zM480 170.426v-42.426h-42.426l-53.574 53.574-53.574-53.574h-42.426v42.426l53.574 53.574-53.574 53.574v42.426h42.426l53.574-53.574 53.574 53.574h42.426v-42.426l-53.574-53.574z" />
+<glyph unicode="&#xe04a;" d="M200.666 440.666c12.834 12.834 23.334 8.484 23.334-9.666v-414c0-18.15-10.5-22.499-23.334-9.665l-120.666 120.665h-80v192h80l120.666 120.666z" />
+<glyph unicode="&#xe04b;" d="M214.082 448.041c5.988 0 9.918-5.939 9.919-17.041v-414c0-11.103-3.928-17.041-9.918-17.041-3.802 0-8.434 2.394-13.417 7.376l-120.666 120.665h-80v192h80l120.666 120.666c4.983 4.983 9.614 7.375 13.416 7.375zM256 256h256v-64h-256z" />
+<glyph unicode="&#xe04c;" d="M214.082 448.041c5.988 0 9.918-5.939 9.919-17.041v-414c0-11.103-3.928-17.041-9.918-17.041-3.802 0-8.434 2.394-13.417 7.376l-120.666 120.665h-80v192h80l120.666 120.666c4.983 4.983 9.614 7.375 13.416 7.375zM512 192h-96v-96h-64v96h-96v64h96v96h64v-96h96z" />
+<glyph unicode="&#xe04d;" d="M353.94 237.674c18.749 22.271 30.060 51.004 30.060 82.326 0 70.58-57.421 128-128 128h-160v-448h192c70.579 0 128 57.421 128 128 0 46.478-24.899 87.248-62.060 109.674zM192 384h50.75c27.984 0 50.75-28.71 50.75-64s-22.766-64-50.75-64h-50.75v128zM271.5 64h-79.5v128h79.5c29.225 0 53-28.71 53-64s-23.775-64-53-64z" />
+<glyph unicode="&#xe04e;" d="M352 448h64v-208c0-79.529-71.634-144-160-144s-160 64.471-160 144v208h64v-208c0-20.083 9.119-39.352 25.677-54.253 18.448-16.602 43.423-25.747 70.323-25.747s51.875 9.145 70.323 25.747c16.558 14.901 25.677 34.17 25.677 54.253v208zM96 64h320v-64h-320z" />
+<glyph unicode="&#xe04f;" d="M448 448v-32h-64l-160-384h64v-32h-224v32h64l160 384h-64v32z" />
+<glyph unicode="&#xe050;" d="M512 224v-32h-117.253c13.752-19.255 21.253-41.346 21.253-64 0-35.439-18.33-69.513-50.29-93.482-29.679-22.259-68.642-34.518-109.71-34.518-41.069 0-80.031 12.259-109.71 34.518-31.96 23.969-50.29 58.043-50.29 93.482h64c0-34.691 43.963-64 96-64s96 29.309 96 64c0 34.691-43.963 64-96 64h-256v32h149.759c-1.169 0.827-2.328 1.662-3.469 2.518-31.96 23.97-50.29 58.043-50.29 93.482s18.33 69.512 50.29 93.482c29.679 22.259 68.641 34.518 109.71 34.518 41.068 0 80.031-12.259 109.71-34.518 31.96-23.97 50.29-58.043 50.29-93.482h-64c0 34.691-43.963 64-96 64s-96-29.309-96-64c0-34.691 43.963-64 96-64 39.489 0 77.027-11.339 106.241-32h149.759z" />
+<glyph unicode="&#xe053;" d="M96 448v-384h384v384h-384zM448 96h-320v320h320v-320zM64 32v320l-32 32v-384h384l-32 32zM214.627 137.373l96 96 73.373-73.373v192h-192l73.373-73.373-96-96z" />
+<glyph unicode="&#xe055;" d="M416 416h-320c-52.8 0-96-43.2-96-96v-192c0-52.8 43.2-96 96-96h320c52.8 0 96 43.2 96 96v192c0 52.8-43.2 96-96 96zM480 128c0-16.989-6.687-33.031-18.827-45.173-12.142-12.14-28.183-18.827-45.173-18.827h-320c-16.989 0-33.031 6.687-45.172 18.827-12.141 12.142-18.828 28.184-18.828 45.173v192c0 16.989 6.687 33.031 18.828 45.172s28.183 18.828 45.172 18.828h320c16.989 0 33.031-6.687 45.173-18.828s18.827-28.183 18.827-45.172v-192zM192 96l160 128-160 128z" />
+<glyph unicode="&#xe058;" d="M256 480c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM384 306.745l-82.744-82.745 82.744-82.744v-45.256h-45.256l-82.744 82.744-82.745-82.744h-45.255v45.256l82.745 82.744-82.745 82.745v45.255h45.255l82.745-82.745 82.744 82.745h45.256v-45.255z" />
+<glyph unicode="&#xe059;" d="M256 480c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM224 384h64v-64h-64v64zM320 64h-128v32h32v128h-32v32h96v-160h32v-32z" />
+<glyph unicode="&#xe05a;" d="M0 272v-96c0-8.836 7.164-16 16-16h480c8.836 0 16 7.164 16 16v96c0 8.836-7.164 16-16 16h-480c-8.836 0-16-7.164-16-16z" />
+<glyph unicode="&#xe600;" d="M39.349 399.017c-17.206 0-31.051-13.844-31.051-31.051v-361.923c0-17.207 13.845-31.068 31.051-31.068h323.589c17.207 0 31.068 13.861 31.068 31.068v361.923c0 17.207-13.861 31.051-31.068 31.051h-323.589zM46.803 392.288h309.317c16.698 0 30.151-13.454 30.151-30.151v-118.928l-46.498-52.778h-269.841l-5.207-4.325-47.364-54.733-0.761 83.5 0.242 2.526c-0.109 1.043-0.173 2.092-0.173 3.166v141.571c0 16.698 13.437 30.152 30.134 30.152zM274.731 341.379c-27.38 0-49.578-22.182-49.578-49.561s22.198-49.578 49.578-49.578c27.38 0 49.578 22.198 49.578 49.578s-22.199 49.561-49.578 49.561zM125.65 133.691c0.425 0.010 0.853 0 1.28 0 27.38 0 49.56-22.181 49.56-49.56s-22.181-49.578-49.56-49.578c-27.38 0-49.578 22.199-49.578 49.578 0 26.952 21.51 48.882 48.298 49.56z" horiz-adv-x="410" />
+<glyph unicode="&#xe601;" d="M384 160v64h-160v64h160v64l96-96zM352 192v-128h-160v-96l-192 96v416h352v-160h-32v128h-256l128-64v-288h128v96z" />
+<glyph unicode="&#xe602;" d="M353.825-31.334c-7.731 0.603-18.904 2.467-26.955 4.5-31.274 7.894-61.113 27.811-80.623 53.813l-4.316 5.753-6.785 0.453c-3.732 0.249-9.418 0.76-12.637 1.137l-5.853 0.684-4.602-4.351c-42.045-39.748-93.922-58.769-167.866-61.551l-11.84-0.445v14.216l3.395 1.834c13.346 7.21 24.137 15.128 33.861 24.846 12.21 12.202 19.795 24.279 23.617 37.604 2.056 7.17 3.198 16.551 2.683 22.043-0.975 10.388-0.341 9.2-7.671 14.407-17.231 12.243-36.264 30.14-47.508 44.673-15.707 20.301-27.456 42.712-33.645 64.178-10.544 36.57-8.728 76.714 5.058 111.801 35.493 90.334 141.651 150.144 257.076 144.836 36.486-1.678 67.24-8.061 98.589-20.464 70.337-27.826 121.201-80.164 138.156-142.162 4.647-16.993 6.614-33.061 6.051-49.422-0.656-19.032-3.22-33.797-8.839-50.891l-2.351-7.154 1.998-5.519c12.073-33.353 12.431-69.262 1.027-103.235-3.092-9.213-11.693-26.695-17.157-34.877-14.281-21.379-32.64-38.055-55.062-50.013-23.134-12.337-52.597-18.66-77.8-16.696v0zM377.786 8.294c11.009 1.305 24.373 5.429 35.034 10.81 19.764 9.974 38.827 29.211 48.958 49.404 25.974 51.769 9.822 114.569-37.703 146.593-11.748 7.916-25.447 13.569-40.299 16.629-10.827 2.231-29.448 2.262-40.399 0.069-73.502-14.72-112.105-95.584-78.077-163.556 12.747-25.462 36.724-46.281 63.726-55.334 15.912-5.334 30.803-6.743 48.76-4.614v0zM375.29 80.832l-30.783 31.428v84.055h37.938v-67.702l24.959-25.536c13.728-14.045 24.952-25.75 24.943-26.012s-5.924-6.592-13.145-14.067l-13.13-13.591-30.783 31.428zM168.934 79.403c2.823 2.651 7.016 6.212 9.318 7.912 9.934 7.339 23.738 12.284 34.286 12.284h3.566l-0.527 5.169c-0.906 8.889-0.505 29.149 0.744 37.519 4.928 33.042 18.965 61.7 41.608 84.95 12.924 13.27 25.206 22.282 40.984 30.072 19.443 9.6 37.712 14.121 59.903 14.825 29.371 0.931 55.94-6.053 81.034-21.303l7.155-4.348v2.429c-0.006 3.828-1.878 14.427-3.697 20.908-6.327 22.552-20.584 44.728-39.897 62.057-30.675 27.524-68.606 44.101-116.477 50.902-10.048 1.428-39.526 2.019-50.95 1.022-46.279-4.039-86.225-19.189-119.439-45.298-6.522-5.127-21.262-20.093-26.063-26.464-27.791-36.876-33.073-78.923-14.783-117.696 10.785-22.863 29.244-43.615 53.472-60.116 10.876-7.408 18.928-16.449 24.006-26.957 3.623-7.498 5.441-14.452 6.362-24.327 0.394-4.229 0.855-8.399 1.024-9.265 0.303-1.552 0.329-1.557 1.774-0.336 0.806 0.682 3.776 3.409 6.599 6.060h-0.002z" />
+</font></defs></svg>
\ No newline at end of file
diff --git a/xmpp/converse/fonticons/fonts/icomoon.ttf b/xmpp/converse/fonticons/fonts/icomoon.ttf
new file mode 100644 (file)
index 0000000..d129eac
Binary files /dev/null and b/xmpp/converse/fonticons/fonts/icomoon.ttf differ
diff --git a/xmpp/converse/fonticons/fonts/icomoon.woff b/xmpp/converse/fonticons/fonts/icomoon.woff
new file mode 100644 (file)
index 0000000..e13ea16
Binary files /dev/null and b/xmpp/converse/fonticons/fonts/icomoon.woff differ
diff --git a/xmpp/converse/fonticons/selection.json b/xmpp/converse/fonticons/selection.json
new file mode 100644 (file)
index 0000000..2bd9c5e
--- /dev/null
@@ -0,0 +1,2641 @@
+{
+       "IcoMoonType": "selection",
+       "icons": [
+               {
+                       "icon": {
+                               "paths": [
+                                       "M707.65 1022.668c-15.462-1.205-37.808-4.935-53.91-9-62.549-15.789-122.227-55.622-161.245-107.627l-8.633-11.506-13.569-0.906c-7.463-0.498-18.837-1.521-25.275-2.273l-11.707-1.368-9.204 8.701c-84.090 79.496-187.844 117.539-335.732 123.102l-23.679 0.891v-28.432l6.79-3.668c26.691-14.42 48.275-30.257 67.723-49.691 24.421-24.403 39.59-48.557 47.233-75.209 4.112-14.339 6.396-33.103 5.365-44.086-1.949-20.776-0.683-18.399-15.342-28.814-34.463-24.487-72.529-60.281-95.017-89.346-31.414-40.602-54.911-85.423-67.29-128.356-21.089-73.139-17.456-153.429 10.116-223.602 70.987-180.669 283.303-300.288 514.152-289.672 72.971 3.356 134.479 16.122 197.177 40.927 140.674 55.653 242.402 160.329 276.312 284.324 9.295 33.985 13.229 66.123 12.102 98.844-1.311 38.064-6.44 67.595-17.677 101.781l-4.703 14.308 3.996 11.038c24.147 66.705 24.862 138.525 2.055 206.47-6.185 18.426-23.386 53.39-34.315 69.753-28.561 42.758-65.281 76.111-110.123 100.026-46.267 24.674-105.195 37.32-155.601 33.392v-0zM755.572 943.412c22.017-2.611 48.745-10.858 70.068-21.619 39.527-19.948 77.654-58.422 97.916-98.807 51.947-103.537 19.643-229.137-75.406-293.186-23.496-15.833-50.894-27.138-80.598-33.257-21.654-4.461-58.896-4.525-80.798-0.138-147.005 29.44-224.209 191.169-156.153 327.112 25.493 50.923 73.448 92.563 127.451 110.667 31.824 10.668 61.607 13.487 97.519 9.228v-0zM750.58 798.336l-61.566-62.856v-168.109h75.876v135.404l49.919 51.073c27.455 28.090 49.904 51.501 49.887 52.025s-11.848 13.184-26.29 28.135l-26.259 27.183-61.566-62.856zM337.868 801.194c5.646-5.302 14.032-12.423 18.636-15.824 19.868-14.677 47.475-24.568 68.573-24.568h7.132l-1.054-10.338c-1.812-17.779-1.009-58.299 1.488-75.038 9.857-66.084 37.93-123.4 83.217-169.9 25.848-26.54 50.412-44.565 81.968-60.145 38.886-19.199 75.424-28.242 119.805-29.649 58.742-1.863 111.879 12.106 162.069 42.605l14.31 8.696v-4.858c-0.012-7.657-3.756-28.854-7.393-41.817-12.654-45.103-41.169-89.455-79.793-124.113-61.35-55.049-137.213-88.203-232.954-101.804-20.097-2.855-79.053-4.037-101.899-2.043-92.558 8.079-172.45 38.378-238.879 90.596-13.045 10.255-42.524 40.186-52.126 52.928-55.583 73.752-66.146 157.847-29.566 235.392 21.571 45.727 58.488 87.231 106.944 120.232 21.753 14.815 37.855 32.897 48.011 53.915 7.245 14.995 10.882 28.903 12.723 48.653 0.788 8.459 1.71 16.797 2.048 18.53 0.605 3.104 0.659 3.114 3.547 0.671 1.613-1.364 7.552-6.819 13.198-12.121h-0.005z"
+                               ],
+                               "attrs": [
+                                       {}
+                               ],
+                               "isMulticolor": false,
+                               "grid": 16,
+                               "tags": [
+                                       "bubble",
+                                       "comment",
+                                       "chat",
+                                       "talk"
+                               ]
+                       },
+                       "attrs": [
+                               {}
+                       ],
+                       "properties": {
+                               "order": 1,
+                               "id": 456,
+                               "prevSize": 32,
+                               "code": 58882,
+                               "name": "xa"
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 0
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M78.697 161.965c-34.413 0-62.102 27.689-62.102 62.102v723.845c0 34.413 27.689 62.137 62.102 62.137h647.178c34.413 0 62.137-27.723 62.137-62.137v-723.845c0-34.413-27.723-62.102-62.137-62.102h-647.178zM93.606 175.423h618.635c33.396 0 60.303 26.908 60.303 60.303v237.857l-92.997 105.556h-539.683l-10.414 8.65-94.727 109.466-1.522-167.001 0.484-5.052c-0.218-2.087-0.346-4.185-0.346-6.332v-283.143c0-33.396 26.874-60.303 60.268-60.303zM549.461 277.243c-54.759 0-99.156 44.363-99.156 99.121s44.397 99.156 99.156 99.156c54.759 0 99.156-44.397 99.156-99.156s-44.397-99.121-99.156-99.121zM251.301 692.618c0.85-0.021 1.705 0 2.56 0 54.759 0 99.121 44.363 99.121 99.121s-44.363 99.156-99.121 99.156c-54.759 0-99.156-44.397-99.156-99.156 0-53.903 43.020-97.763 96.596-99.121z"
+                               ],
+                               "attrs": [
+                                       {
+                                               "opacity": 1,
+                                               "visibility": false
+                                       }
+                               ],
+                               "width": 820,
+                               "grid": 16,
+                               "tags": [
+                                       "conversejs"
+                               ]
+                       },
+                       "attrs": [
+                               {
+                                       "opacity": 1,
+                                       "visibility": false
+                               }
+                       ],
+                       "properties": {
+                               "order": 2,
+                               "id": 455,
+                               "prevSize": 32,
+                               "code": 58880,
+                               "name": "conversejs",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 1
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M192 128l640 384-640 384z"
+                               ],
+                               "tags": [
+                                       "play",
+                                       "media control",
+                                       "audio"
+                               ],
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "order": 3,
+                               "id": 451,
+                               "prevSize": 32,
+                               "code": 9658,
+                               "name": "closed",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 2
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M896 192l-384 640-384-640z"
+                               ],
+                               "tags": [
+                                       "opened"
+                               ],
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 266,
+                               "order": 4,
+                               "prevSize": 32,
+                               "code": 9660,
+                               "name": "opened",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 3
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M864 128l-480 480-224-224-160 160 384 384 640-640z"
+                               ],
+                               "tags": [
+                                       "checkmark",
+                                       "tick",
+                                       "correct",
+                                       "accept",
+                                       "ok"
+                               ],
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "order": 5,
+                               "id": 85,
+                               "prevSize": 32,
+                               "code": 10003,
+                               "name": "checkmark",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 4
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1024 590.444l-512-397.426-512 397.428v-162.038l512-397.426 512 397.428zM896 576v384h-256v-256h-256v256h-256v-384l384-288z"
+                               ],
+                               "tags": [
+                                       "home",
+                                       "house",
+                                       "building"
+                               ],
+                               "defaultCode": 57344,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 0,
+                               "order": 6,
+                               "prevSize": 32,
+                               "code": 57344,
+                               "name": "home",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 5
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M864 0c88.364 0 160 71.634 160 160 0 36.020-11.91 69.258-32 96l-64 64-224-224 64-64c26.742-20.090 59.978-32 96-32zM64 736l-64 288 288-64 592-592-224-224-592 592zM715.578 363.578l-448 448-55.156-55.156 448-448 55.156 55.156z"
+                               ],
+                               "tags": [
+                                       "pencil",
+                                       "write",
+                                       "edit",
+                                       "blog",
+                                       "note"
+                               ],
+                               "defaultCode": 9998,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 1,
+                               "order": 7,
+                               "prevSize": 32,
+                               "code": 9998,
+                               "name": "pencil",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 6
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M304 608c0 114.876 93.124 208 208 208s208-93.124 208-208-93.124-208-208-208-208 93.124-208 208zM960 256h-224c-16-64-32-128-96-128h-256c-64 0-80 64-96 128h-224c-35.2 0-64 28.8-64 64v576c0 35.2 28.8 64 64 64h896c35.2 0 64-28.8 64-64v-576c0-35.2-28.8-64-64-64zM512 892c-156.85 0-284-127.148-284-284 0-156.85 127.15-284 284-284 156.852 0 284 127.15 284 284 0 156.852-127.146 284-284 284zM960 448h-128v-64h128v64z"
+                               ],
+                               "tags": [
+                                       "camera",
+                                       "photo",
+                                       "picture",
+                                       "image"
+                               ],
+                               "defaultCode": 57347,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 2,
+                               "order": 8,
+                               "prevSize": 32,
+                               "code": 57347,
+                               "name": "camera",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 7
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 288c0 88.366 71.634 160 160 160s160-71.634 160-160c0-88.366-71.634-160-160-160s-160 71.634-160 160zM0 288c0 88.366 71.634 160 160 160s160-71.634 160-160c0-88.366-71.634-160-160-160s-160 71.634-160 160zM768 608v-96c0-35.2-28.8-64-64-64h-640c-35.2 0-64 28.8-64 64v320c0 35.2 28.8 64 64 64h640c35.2 0 64-28.8 64-64v-96l256 160v-448l-256 160zM640 768h-512v-192h512v192z"
+                               ],
+                               "tags": [
+                                       "camera",
+                                       "video",
+                                       "media",
+                                       "film",
+                                       "movie"
+                               ],
+                               "defaultCode": 9750,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 3,
+                               "order": 9,
+                               "prevSize": 32,
+                               "code": 9750,
+                               "name": "camera-2",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 8
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M981.188 160.108c-143.632-20.65-302.332-32.108-469.186-32.108-166.86 0-325.556 11.458-469.194 32.108-27.53 107.726-42.808 226.75-42.808 351.892 0 125.14 15.278 244.166 42.808 351.89 143.638 20.652 302.336 32.11 469.194 32.11 166.854 0 325.552-11.458 469.186-32.11 27.532-107.724 42.812-226.75 42.812-351.89 0-125.142-15.28-244.166-42.812-351.892zM384.002 704v-384l320 192-320 192z"
+                               ],
+                               "tags": [
+                                       "play",
+                                       "video",
+                                       "movie"
+                               ],
+                               "defaultCode": 9689,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 4,
+                               "order": 10,
+                               "prevSize": 32,
+                               "code": 9689,
+                               "name": "play",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 9
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M320 192l704-192v736c0 88.366-100.29 160-224 160s-224-71.634-224-160c0-88.366 100.29-160 224-160 34.358 0 66.902 5.532 96 15.406v-329.588l-448 122.182v480c0 88.366-100.288 160-224 160s-224-71.634-224-160c0-88.366 100.288-160 224-160 34.358 0 66.902 5.532 96 15.406v-527.406z"
+                               ],
+                               "tags": [
+                                       "music",
+                                       "song",
+                                       "audio",
+                                       "sound"
+                               ],
+                               "defaultCode": 9835,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 5,
+                               "order": 11,
+                               "prevSize": 32,
+                               "code": 9835,
+                               "name": "music",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 10
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M192 578.286v443.43c10.454 1.496 21.134 2.286 32 2.286h32v-448.002h-32c-10.866 0-21.546 0.79-32 2.286zM768 576v448h32c10.868 0 21.546-0.79 32-2.286v-443.428c-10.454-1.496-21.132-2.286-32-2.286h-32zM1024 512c0-282.77-229.23-512-512-512s-512 229.23-512 512c0 61.418 10.828 120.306 30.656 174.874-19.472 33.202-30.656 71.852-30.656 113.126 0 89.354 52.326 166.478 128 202.432v-404.864c-20.126 9.562-38.58 22.060-54.858 36.904-5.992-29.22-9.142-59.478-9.142-90.472 0-247.424 200.576-448 448-448s448 200.576 448 448c0 30.994-3.148 61.252-9.142 90.472-16.28-14.844-34.73-27.342-54.858-36.904v404.864c75.676-35.954 128-113.078 128-202.432 0-41.274-11.184-79.924-30.656-113.126 19.828-54.568 30.656-113.456 30.656-174.874z"
+                               ],
+                               "tags": [
+                                       "headphones",
+                                       "headset",
+                                       "music",
+                                       "song",
+                                       "audio"
+                               ],
+                               "defaultCode": 9836,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 6,
+                               "order": 12,
+                               "prevSize": 32,
+                               "code": 9836,
+                               "name": "headphones",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 11
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 640c-64 64-64 128-128 128s-128-64-192-128-128-128-128-192 64-64 128-128-128-256-192-256-192 192-192 192c0 128 131.5 387.5 256 512s384 256 512 256c0 0 192-128 192-192s-192-256-256-192z"
+                               ],
+                               "tags": [
+                                       "phone",
+                                       "contact",
+                                       "telephone",
+                                       "support",
+                                       "call"
+                               ],
+                               "defaultCode": 9743,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 7,
+                               "order": 13,
+                               "prevSize": 32,
+                               "code": 9743,
+                               "name": "phone",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 12
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1017.378 575.994c8.004 55.482 13.216 131.392-11.664 160.446-41.142 48.044-301.712 48.044-301.712-48.042 0-48.398 42.856-80.134 1.712-128.178-40.472-47.262-113.026-48.030-193.714-48.042-80.686 0.012-153.242 0.78-193.714 48.042-41.142 48.046 1.714 79.78 1.714 128.178 0 96.086-260.57 96.086-301.714 48.044-24.878-29.054-19.668-104.964-11.662-160.446 6.16-37.038 21.724-76.996 71.548-127.994 0-0.002 0.002-0.002 0.002-0.004 74.738-69.742 187.846-126.738 429.826-127.968v-0.030c1.344 0 2.664 0.010 4 0.014 1.338-0.004 2.656-0.014 4-0.014v0.028c241.98 1.23 355.088 58.226 429.826 127.968 0.002 0.002 0.002 0.004 0.002 0.004 49.824 50.996 65.39 90.954 71.55 127.994z"
+                               ],
+                               "tags": [
+                                       "phone-hang-up",
+                                       "contact",
+                                       "telephone",
+                                       "support",
+                                       "call"
+                               ],
+                               "defaultCode": 9742,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 8,
+                               "order": 14,
+                               "prevSize": 32,
+                               "code": 9742,
+                               "name": "phone-hang-up",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 13
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M960 256c35.346 0 64-28.654 64-64v-128h-128v-64h-832c-35.2 0-64 28.798-64 64v896c0 35.2 28.796 64 64 64h832v-256h64c35.346 0 64-28.654 64-64v-128h-128v-64h64c35.346 0 64-28.654 64-64v-128h-128v-64h64zM576 256.33c70.51 0 127.67 57.16 127.67 127.67s-57.16 127.67-127.67 127.67c-70.51 0-127.67-57.16-127.67-127.67s57.16-127.67 127.67-127.67zM256 960h-64v-896h64v896zM768 768h-384v-64c0-70.694 57.308-128 128-128v0h128c70.696 0 128 57.306 128 128v64z"
+                               ],
+                               "tags": [
+                                       "address-book",
+                                       "book",
+                                       "contacts"
+                               ],
+                               "defaultCode": 9999,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 9,
+                               "order": 15,
+                               "prevSize": 32,
+                               "code": 9999,
+                               "name": "address-book",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 14
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M898.36 64h-770.36v128h-93.64c-17.6 0-34.36 12.528-34.36 30.128v64c0 17.6 16.76 33.872 34.36 33.872h93.64v64h-93.64c-17.6 0-34.36 12.528-34.36 30.128v64c0 17.6 16.76 33.872 34.36 33.872h93.64v64h-93.64c-17.6 0-34.36 12.528-34.36 30.128v64c0 17.598 16.76 33.872 34.36 33.872h93.64v64h-93.64c-17.6 0-34.36 12.528-34.36 30.128v64c0 17.6 16.76 33.872 34.36 33.872h93.64v128h770.36c35.348 0 61.64-30.526 61.64-65.872v-832c0-35.346-26.292-62.128-61.64-62.128zM320 960h-128v-64h34.36c17.6 0 29.64-16.272 29.64-33.872v-64c0-17.602-12.042-30.128-29.64-30.128h-34.36v-64h34.36c17.6 0 29.64-16.272 29.64-33.872v-64c0-17.602-12.042-30.128-29.64-30.128h-34.36v-64h34.36c17.6 0 29.64-16.272 29.64-33.872v-64c0-17.602-12.042-30.128-29.64-30.128l-34.36 0v-64h34.36c17.6 0 29.64-16.272 29.64-33.872v-64c0-17.602-12.040-30.128-29.64-30.128h-34.36v-64h128v832z"
+                               ],
+                               "tags": [
+                                       "notebook",
+                                       "notes",
+                                       "book",
+                                       "journal"
+                               ],
+                               "defaultCode": 10000,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 10,
+                               "order": 16,
+                               "prevSize": 32,
+                               "code": 10000,
+                               "name": "notebook",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 15
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M928 128h-832c-52.8 0-96 43.2-96 96v640c0 52.8 43.2 96 96 96h832c52.8 0 96-43.2 96-96v-640c0-52.8-43.2-96-96-96zM398.74 550.372l-270.74 210.892v-501.642l270.74 290.75zM176.38 256h671.24l-335.62 252-335.62-252zM409.288 561.698l102.712 110.302 102.71-110.302 210.554 270.302h-626.528l210.552-270.302zM625.26 550.372l270.74-290.75v501.642l-270.74-210.892z"
+                               ],
+                               "tags": [
+                                       "envelop",
+                                       "mail",
+                                       "email",
+                                       "contact",
+                                       "letter"
+                               ],
+                               "defaultCode": 9993,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 11,
+                               "order": 17,
+                               "prevSize": 32,
+                               "code": 9993,
+                               "name": "envelop",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 16
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M544 0l-96 96 96 96-224 256h-224l176 176-272 360.616v39.384h39.384l360.616-272 176 176v-224l256-224 96 96 96-96-480-480zM448 544l-64-64 224-224 64 64-224 224z"
+                               ],
+                               "tags": [
+                                       "pushpin",
+                                       "pin"
+                               ],
+                               "defaultCode": 57362,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 12,
+                               "order": 18,
+                               "prevSize": 32,
+                               "code": 57362,
+                               "name": "pushpin",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 17
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 64c282.77 0 512 186.25 512 416 0 229.752-229.23 416-512 416-27.156 0-53.81-1.734-79.824-5.044-109.978 109.978-241.25 129.7-368.176 132.596v-26.916c68.536-33.578 128-94.74 128-164.636 0-9.754-0.758-19.33-2.164-28.696-115.796-76.264-189.836-192.754-189.836-323.304 0-229.75 229.23-416 512-416z"
+                               ],
+                               "tags": [
+                                       "bubble",
+                                       "comment",
+                                       "chat",
+                                       "talk"
+                               ],
+                               "defaultCode": 9724,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 13,
+                               "order": 19,
+                               "prevSize": 32,
+                               "code": 9724,
+                               "name": "online",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 18
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 192c-54.932 0-107.988 8.662-157.694 25.742-46.712 16.054-88.306 38.744-123.628 67.444-66.214 53.798-102.678 122.984-102.678 194.814 0 40.298 11.188 79.378 33.252 116.152 22.752 37.92 56.982 72.586 98.988 100.252 30.356 19.992 50.78 51.948 56.176 87.894 1.8 11.984 2.928 24.088 3.37 36.124 7.47-6.194 14.75-12.846 21.88-19.976 24.154-24.152 56.78-37.49 90.502-37.49 5.368 0 10.762 0.336 16.156 1.024 20.974 2.666 42.398 4.020 63.676 4.020 54.934 0 107.988-8.66 157.694-25.742 46.712-16.054 88.306-38.744 123.628-67.444 66.214-53.796 102.678-122.984 102.678-194.814s-36.464-141.016-102.678-194.814c-35.322-28.698-76.916-51.39-123.628-67.444-49.706-17.080-102.76-25.742-157.694-25.742zM512 64v0c282.77 0 512 186.25 512 416 0 229.752-229.23 416-512 416-27.156 0-53.81-1.734-79.824-5.044-109.978 109.978-241.25 129.7-368.176 132.596v-26.916c68.536-33.578 128-94.74 128-164.636 0-9.754-0.758-19.33-2.164-28.696-115.796-76.264-189.836-192.754-189.836-323.304 0-229.75 229.23-416 512-416z"
+                               ],
+                               "tags": [
+                                       "bubble",
+                                       "comment",
+                                       "chat",
+                                       "talk"
+                               ],
+                               "defaultCode": 9723,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 14,
+                               "order": 20,
+                               "prevSize": 32,
+                               "code": 9723,
+                               "name": "away",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 19
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1088 901.166c0 45.5 26.028 84.908 64 104.184v15.938c-10.626 1.454-21.472 2.224-32.5 2.224-68.008 0-129.348-28.528-172.722-74.264-26.222 6.982-54.002 10.752-82.778 10.752-159.058 0-288-114.616-288-256s128.942-256 288-256c159.058 0 288 114.616 288 256 0 55.348-19.764 106.592-53.356 148.466-6.824 14.824-10.644 31.312-10.644 48.7zM230.678 221.186c-66.214 53.798-102.678 122.984-102.678 194.814 0 40.298 11.188 79.378 33.252 116.15 22.752 37.92 56.982 72.586 98.988 100.252 30.356 19.992 50.78 51.948 56.176 87.894 1.8 11.984 2.928 24.088 3.37 36.124 7.47-6.194 14.75-12.846 21.88-19.976 24.154-24.152 56.78-37.49 90.502-37.49 5.368 0 10.762 0.336 16.156 1.024 20.948 2.662 42.344 4.016 63.594 4.020v128c-27.128-0.002-53.754-1.738-79.742-5.042-109.978 109.978-241.25 129.7-368.176 132.596v-26.916c68.536-33.578 128-94.74 128-164.636 0-9.754-0.758-19.33-2.164-28.696-115.796-76.264-189.836-192.754-189.836-323.304 0-229.75 229.23-416 512-416 278.458 0 504.992 180.614 511.836 405.52-41.096-18.316-85.84-29.422-132.262-32.578-11.53-56.068-45.402-108.816-98.252-151.756-35.322-28.698-76.916-51.39-123.628-67.444-49.706-17.080-102.76-25.742-157.694-25.742-54.932 0-107.988 8.662-157.694 25.742-46.712 16.054-88.306 38.744-123.628 67.444z"
+                               ],
+                               "width": 1152,
+                               "tags": [
+                                       "bubbles",
+                                       "comments",
+                                       "chat",
+                                       "talk"
+                               ],
+                               "defaultCode": 57365,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 15,
+                               "order": 21,
+                               "prevSize": 32,
+                               "code": 57365,
+                               "name": "bubbles",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 20
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M480 0v0c265.096 0 480 173.914 480 388.448s-214.904 388.448-480 388.448c-25.458 0-50.446-1.62-74.834-4.71-103.106 102.694-222.172 121.108-341.166 123.814v-25.134c64.252-31.354 116-88.466 116-153.734 0-9.106-0.712-18.048-2.030-26.794-108.558-71.214-177.97-179.988-177.97-301.89 0-214.534 214.904-388.448 480-388.448zM996 870.686c0 55.942 36.314 104.898 92 131.772v21.542c-103.126-2.318-197.786-18.102-287.142-106.126-21.14 2.65-42.794 4.040-64.858 4.040-95.47 0-183.408-25.758-253.614-69.040 144.674-0.506 281.26-46.854 384.834-130.672 52.208-42.252 93.394-91.826 122.414-147.348 30.766-58.866 46.366-121.582 46.366-186.406 0-10.448-0.45-20.836-1.258-31.168 72.57 59.934 117.258 141.622 117.258 231.676 0 104.488-60.158 197.722-154.24 258.764-1.142 7.496-1.76 15.16-1.76 22.966z"
+                               ],
+                               "width": 1152,
+                               "tags": [
+                                       "bubbles",
+                                       "comments",
+                                       "chat",
+                                       "talk"
+                               ],
+                               "defaultCode": 57366,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 16,
+                               "order": 22,
+                               "prevSize": 32,
+                               "code": 57366,
+                               "name": "bubbles2",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 21
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M480 128c-50.666 0-99.582 7.95-145.386 23.628-42.924 14.694-81.114 35.436-113.502 61.646-60.044 48.59-93.112 110.802-93.112 175.174 0 35.99 10.066 70.948 29.92 103.898 20.686 34.34 51.898 65.794 90.26 90.958 30.44 19.968 50.936 51.952 56.362 87.95 0.902 5.99 1.63 12.006 2.18 18.032 2.722-2.52 5.424-5.114 8.114-7.794 24.138-24.040 56.688-37.312 90.322-37.312 5.348 0 10.718 0.336 16.094 1.018 19.36 2.452 39.124 3.696 58.748 3.696 50.666 0 99.58-7.948 145.384-23.628 42.926-14.692 81.116-35.434 113.504-61.644 60.046-48.59 93.112-110.802 93.112-175.174s-33.066-126.582-93.112-175.174c-32.388-26.212-70.578-46.952-113.504-61.646-45.804-15.678-94.718-23.628-145.384-23.628zM480 0v0c265.096 0 480 173.914 480 388.448s-214.904 388.448-480 388.448c-25.458 0-50.446-1.62-74.834-4.71-103.106 102.694-222.172 121.108-341.166 123.814v-25.134c64.252-31.354 116-88.466 116-153.734 0-9.106-0.712-18.048-2.030-26.794-108.558-71.214-177.97-179.988-177.97-301.89 0-214.534 214.904-388.448 480-388.448zM996 870.686c0 55.942 36.314 104.898 92 131.772v21.542c-103.126-2.318-197.786-18.102-287.142-106.126-21.14 2.65-42.794 4.040-64.858 4.040-95.47 0-183.408-25.758-253.614-69.040 144.674-0.506 281.26-46.854 384.834-130.672 52.208-42.252 93.394-91.826 122.414-147.348 30.766-58.866 46.366-121.582 46.366-186.406 0-10.448-0.45-20.836-1.258-31.168 72.57 59.934 117.258 141.622 117.258 231.676 0 104.488-60.158 197.722-154.24 258.764-1.142 7.496-1.76 15.16-1.76 22.966z"
+                               ],
+                               "width": 1152,
+                               "tags": [
+                                       "bubbles",
+                                       "comments",
+                                       "chat",
+                                       "talk"
+                               ],
+                               "defaultCode": 57367,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 17,
+                               "order": 23,
+                               "prevSize": 32,
+                               "code": 57367,
+                               "name": "bubbles3",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 22
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M848 1024h-672c-26.51 0-48-21.49-48-48 0-68.862 29.068-152.204 77.758-222.942 40.692-59.118 90.684-103.62 144.678-129.61-23.798-21.644-44.294-48.026-60.508-78.122-26-48.262-39.746-104.048-39.746-161.328 0-79.606 26.204-154.822 73.786-211.79 49.664-59.46 116.442-92.208 188.032-92.208s138.368 32.748 188.034 92.21c47.58 56.968 73.786 132.182 73.786 211.79 0 57.28-13.744 113.066-39.744 161.328-16.214 30.096-36.71 56.478-60.51 78.122 53.994 25.99 103.986 70.492 144.678 129.61 48.688 70.736 77.756 154.078 77.756 222.94 0 26.51-21.49 48-48 48zM230.074 928h563.852c-9.226-39.34-28.52-82.384-54.762-120.51-41.454-60.226-93.176-99.622-145.638-110.926-22.106-4.764-37.888-24.31-37.888-46.924v-34.292c0-17.26 9.266-33.19 24.27-41.722 59.478-33.832 97.912-108.266 97.912-189.626 0-114.692-74.384-208-165.818-208-91.432 0-165.818 93.308-165.818 208 0 81.36 38.434 155.792 97.914 189.626 15.002 8.534 24.268 24.462 24.268 41.722v34.292c0 22.614-15.784 42.16-37.888 46.924-52.462 11.304-104.184 50.7-145.64 110.926-26.246 38.126-45.536 81.17-54.764 120.51z"
+                               ],
+                               "tags": [
+                                       "user",
+                                       "profile",
+                                       "avatar",
+                                       "person",
+                                       "talk",
+                                       "member"
+                               ],
+                               "defaultCode": 57370,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 18,
+                               "order": 24,
+                               "prevSize": 32,
+                               "code": 57370,
+                               "name": "user",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 23
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M922.237 1024h-634.983c-25.050 0-45.356-20.306-45.356-45.356 0-65.069 27.467-143.82 73.475-210.661 38.45-55.861 85.689-97.912 136.708-122.47-22.487-20.452-41.854-45.38-57.175-73.819-24.568-45.603-37.557-98.317-37.557-152.441 0-75.221 24.761-146.294 69.722-200.124 46.928-56.185 110.028-87.129 177.674-87.129s130.746 30.944 177.676 87.131c44.959 53.83 69.722 124.901 69.722 200.124 0 54.125-12.987 106.838-37.555 152.441-15.321 28.438-34.688 53.367-57.177 73.819 51.020 24.558 98.258 66.609 136.708 122.47 46.006 66.84 73.473 145.591 73.473 210.659 0 25.050-20.306 45.356-45.356 45.356zM338.35 933.288h532.792c-8.718-37.173-26.949-77.846-51.745-113.872-39.171-56.908-88.043-94.134-137.616-104.816-20.888-4.502-35.801-22.971-35.801-44.339v-32.403c0-16.309 8.756-31.362 22.933-39.424 56.202-31.968 92.519-102.302 92.519-179.18 0-108.374-70.287-196.542-156.684-196.542s-156.684 88.168-156.684 196.542c0 76.878 36.317 147.21 92.52 179.18 14.176 8.064 22.931 23.115 22.931 39.424v32.403c0 21.368-14.915 39.838-35.801 44.339-49.572 10.681-98.445 47.907-137.617 104.816-24.8 36.026-43.028 76.699-51.747 113.872zM186.256 872.814h-89.805c8.72-37.173 26.947-77.846 51.744-113.872 39.172-56.908 88.045-94.134 137.617-104.816 20.888-4.502 35.801-22.971 35.801-44.339v-32.403c0-16.309-8.756-31.362-22.931-39.424-56.204-31.97-92.52-102.302-92.52-179.18 0-108.374 70.287-196.542 156.684-196.542 5.909 0 11.742 0.427 17.483 1.23 24.906-27.718 53.136-50.245 83.759-67.093-31.364-16.283-65.672-24.849-101.24-24.849-67.646 0-130.746 30.944-177.676 87.131-44.959 53.83-69.72 124.903-69.72 200.124 0 54.125 12.987 106.838 37.557 152.441 15.321 28.438 34.688 53.365 57.175 73.819-51.020 24.558-98.258 66.609-136.708 122.47-46.008 66.84-73.475 145.591-73.475 210.659 0 25.050 20.306 45.356 45.356 45.356h125.094c1.395-29.317 6.802-59.919 15.807-90.712z",
+                                       "M727.023 70.974v55.231c0 5.084 4.122 9.205 9.205 9.205h276.154c5.084 0 9.205-4.122 9.205-9.205v-55.231c0-5.084-4.122-9.205-9.205-9.205h-276.154c-5.084 0-9.205 4.122-9.205 9.205z"
+                               ],
+                               "tags": [
+                                       "users",
+                                       "people",
+                                       "group",
+                                       "team",
+                                       "members",
+                                       "community"
+                               ],
+                               "defaultCode": 57371,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "order": 25,
+                               "id": 453,
+                               "prevSize": 32,
+                               "code": 57372,
+                               "name": "hide-users",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 24
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M922.237 1024h-634.983c-25.050 0-45.356-20.306-45.356-45.356 0-65.069 27.467-143.82 73.475-210.661 38.45-55.861 85.689-97.912 136.708-122.47-22.487-20.452-41.854-45.38-57.175-73.819-24.568-45.603-37.557-98.317-37.557-152.441 0-75.221 24.761-146.294 69.722-200.124 46.928-56.185 110.028-87.129 177.674-87.129s130.746 30.944 177.676 87.131c44.959 53.83 69.722 124.901 69.722 200.124 0 54.125-12.987 106.838-37.555 152.441-15.321 28.438-34.688 53.367-57.177 73.819 51.020 24.558 98.258 66.609 136.708 122.47 46.006 66.84 73.473 145.591 73.473 210.659 0 25.050-20.306 45.356-45.356 45.356zM338.35 933.288h532.792c-8.718-37.173-26.949-77.846-51.745-113.872-39.171-56.908-88.043-94.134-137.616-104.816-20.888-4.502-35.801-22.971-35.801-44.339v-32.403c0-16.309 8.756-31.362 22.933-39.424 56.202-31.968 92.519-102.302 92.519-179.18 0-108.374-70.287-196.542-156.684-196.542s-156.684 88.168-156.684 196.542c0 76.878 36.317 147.21 92.52 179.18 14.176 8.064 22.931 23.115 22.931 39.424v32.403c0 21.368-14.915 39.838-35.801 44.339-49.572 10.681-98.445 47.907-137.617 104.816-24.8 36.026-43.028 76.699-51.747 113.872zM186.256 872.814h-89.805c8.72-37.173 26.947-77.846 51.744-113.872 39.172-56.908 88.045-94.134 137.617-104.816 20.888-4.502 35.801-22.971 35.801-44.339v-32.403c0-16.309-8.756-31.362-22.931-39.424-56.204-31.97-92.52-102.302-92.52-179.18 0-108.374 70.287-196.542 156.684-196.542 5.909 0 11.742 0.427 17.483 1.23 24.906-27.718 53.136-50.245 83.759-67.093-31.364-16.283-65.672-24.849-101.24-24.849-67.646 0-130.746 30.944-177.676 87.131-44.959 53.83-69.72 124.903-69.72 200.124 0 54.125 12.987 106.838 37.557 152.441 15.321 28.438 34.688 53.365 57.175 73.819-51.020 24.558-98.258 66.609-136.708 122.47-46.008 66.84-73.475 145.591-73.475 210.659 0 25.050 20.306 45.356 45.356 45.356h125.094c1.395-29.317 6.802-59.919 15.807-90.712z",
+                                       "M1024.421 100.827h-96.45v-96.45c0-4.842-3.926-8.768-8.768-8.768h-52.609c-4.842 0-8.768 3.926-8.768 8.768v96.45h-96.45c-4.842 0-8.768 3.926-8.768 8.768v52.609c0 4.842 3.926 8.768 8.768 8.768h96.45v96.45c0 4.842 3.926 8.768 8.768 8.768h52.609c4.842 0 8.768-3.926 8.768-8.768v-96.45h96.45c4.842 0 8.768-3.926 8.768-8.768v-52.609c0-4.842-3.926-8.768-8.768-8.768z"
+                               ],
+                               "tags": [
+                                       "users",
+                                       "people",
+                                       "group",
+                                       "team",
+                                       "members",
+                                       "community"
+                               ],
+                               "defaultCode": 57371,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "order": 26,
+                               "id": 452,
+                               "prevSize": 32,
+                               "code": 57374,
+                               "name": "show-users",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 25
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M976 1024h-672c-26.51 0-48-21.49-48-48 0-68.862 29.068-152.204 77.758-222.942 40.692-59.118 90.684-103.62 144.678-129.61-23.798-21.644-44.294-48.026-60.508-78.122-26-48.262-39.746-104.048-39.746-161.328 0-79.606 26.204-154.822 73.786-211.79 49.664-59.46 116.442-92.208 188.032-92.208s138.368 32.748 188.034 92.21c47.58 56.968 73.786 132.182 73.786 211.79 0 57.28-13.744 113.066-39.744 161.328-16.214 30.096-36.71 56.478-60.51 78.122 53.994 25.99 103.986 70.492 144.678 129.61 48.688 70.736 77.756 154.078 77.756 222.94 0 26.51-21.49 48-48 48zM358.074 928h563.852c-9.226-39.34-28.52-82.384-54.762-120.51-41.454-60.226-93.176-99.622-145.638-110.926-22.106-4.764-37.888-24.31-37.888-46.924v-34.292c0-17.26 9.266-33.19 24.27-41.722 59.478-33.832 97.912-108.266 97.912-189.626 0-114.692-74.384-208-165.818-208s-165.818 93.308-165.818 208c0 81.36 38.434 155.792 97.914 189.626 15.002 8.534 24.268 24.462 24.268 41.722v34.292c0 22.614-15.784 42.16-37.888 46.924-52.462 11.304-104.184 50.7-145.64 110.926-26.246 38.126-45.536 81.17-54.764 120.51zM197.114 864h-95.040c9.228-39.34 28.518-82.384 54.76-120.51 41.456-60.226 93.178-99.622 145.64-110.926 22.106-4.764 37.888-24.31 37.888-46.924v-34.292c0-17.26-9.266-33.19-24.268-41.722-59.48-33.834-97.914-108.266-97.914-189.626 0-114.692 74.384-208 165.818-208 6.254 0 12.426 0.452 18.502 1.302 26.358-29.334 56.234-53.174 88.642-71.004-33.192-17.232-69.5-26.298-107.142-26.298-71.59 0-138.368 32.748-188.034 92.21-47.58 56.968-73.784 132.184-73.784 211.79 0 57.28 13.744 113.066 39.746 161.328 16.214 30.096 36.71 56.476 60.508 78.122-53.994 25.99-103.986 70.492-144.678 129.61-48.69 70.736-77.758 154.078-77.758 222.94 0 26.51 21.49 48 48 48h132.386c1.476-31.026 7.198-63.412 16.728-96z"
+                               ],
+                               "tags": [
+                                       "users",
+                                       "people",
+                                       "group",
+                                       "team",
+                                       "members",
+                                       "community"
+                               ],
+                               "defaultCode": 57371,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 19,
+                               "order": 27,
+                               "prevSize": 32,
+                               "code": 57371,
+                               "name": "users",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 26
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M225 448c123.712 0 224 100.29 224 224 0 123.712-100.288 224-224 224s-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.634 11.636-22.252 24.016-31.83 37.020 11.438-1.8 23.16-2.746 35.104-2.746zM801 448c123.71 0 224 100.29 224 224 0 123.712-100.29 224-224 224s-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.636 11.636-22.254 24.016-31.832 37.020 11.44-1.8 23.16-2.746 35.106-2.746z"
+                               ],
+                               "tags": [
+                                       "quotes-left",
+                                       "ldquo"
+                               ],
+                               "defaultCode": 57373,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 20,
+                               "order": 28,
+                               "prevSize": 32,
+                               "code": 57373,
+                               "name": "quotes-left",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 27
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 128c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM655.53 240.47c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM832 512c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM719.53 783.53c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM448.002 896c-0 0-0 0-0 0 0 35.346 28.654 64 64 64s64-28.654 64-64c0-0 0-0 0-0s0-0 0-0c0-35.346-28.654-64-64-64s-64 28.654-64 64c0 0 0 0 0 0zM176.472 783.53c-0 0-0 0-0 0 0 35.346 28.654 64 64 64s64-28.654 64-64c0-0 0-0 0-0s0-0 0-0c0-35.346-28.654-64-64-64s-64 28.654-64 64c0 0 0 0 0 0zM144.472 240.47c-0 0-0 0-0 0 0 53.019 42.981 96 96 96s96-42.981 96-96c0-0 0-0 0-0s0-0 0-0c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 0 0 0 0 0zM56 512c0 39.765 32.235 72 72 72s72-32.235 72-72c0-39.765-32.235-72-72-72s-72 32.235-72 72z"
+                               ],
+                               "tags": [
+                                       "spinner",
+                                       "loading",
+                                       "busy",
+                                       "wait",
+                                       "wheel"
+                               ],
+                               "defaultCode": 8987,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 21,
+                               "order": 29,
+                               "prevSize": 32,
+                               "code": 8987,
+                               "name": "spinner",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 28
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M992.262 871.396l-242.552-206.294c-25.074-22.566-51.89-32.926-73.552-31.926 57.256-67.068 91.842-154.078 91.842-249.176 0-212.078-171.922-384-384-384-212.076 0-384 171.922-384 384s171.922 384 384 384c95.098 0 182.108-34.586 249.176-91.844-1 21.662 9.36 48.478 31.926 73.552l206.294 242.552c35.322 39.246 93.022 42.554 128.22 7.356s31.892-92.898-7.354-128.22zM384 640c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.614 256-256 256z"
+                               ],
+                               "tags": [
+                                       "search",
+                                       "magnifier",
+                                       "lookup",
+                                       "find"
+                               ],
+                               "defaultCode": 57377,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 22,
+                               "order": 30,
+                               "prevSize": 32,
+                               "code": 57377,
+                               "name": "search",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 29
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M363.722 722.052l41.298-57.816-45.254-45.256-57.818 41.296c-10.722-5.994-22.204-10.774-34.266-14.192l-11.682-70.084h-64l-11.68 70.086c-12.062 3.418-23.544 8.198-34.266 14.192l-57.818-41.298-45.256 45.256 41.298 57.816c-5.994 10.72-10.774 22.206-14.192 34.266l-70.086 11.682v64l70.086 11.682c3.418 12.060 8.198 23.544 14.192 34.266l-41.298 57.816 45.254 45.256 57.818-41.296c10.722 5.994 22.204 10.774 34.266 14.192l11.682 70.084h64l11.68-70.086c12.062-3.418 23.544-8.198 34.266-14.192l57.818 41.296 45.254-45.256-41.298-57.816c5.994-10.72 10.774-22.206 14.192-34.266l70.088-11.68v-64l-70.086-11.682c-3.418-12.060-8.198-23.544-14.192-34.266zM224 864c-35.348 0-64-28.654-64-64s28.652-64 64-64 64 28.654 64 64-28.652 64-64 64zM1024 384v-64l-67.382-12.25c-1.242-8.046-2.832-15.978-4.724-23.79l57.558-37.1-24.492-59.128-66.944 14.468c-4.214-6.91-8.726-13.62-13.492-20.13l39.006-56.342-45.256-45.254-56.342 39.006c-6.512-4.766-13.22-9.276-20.13-13.494l14.468-66.944-59.128-24.494-37.1 57.558c-7.812-1.892-15.744-3.482-23.79-4.724l-12.252-67.382h-64l-12.252 67.382c-8.046 1.242-15.976 2.832-23.79 4.724l-37.098-57.558-59.128 24.492 14.468 66.944c-6.91 4.216-13.62 8.728-20.13 13.494l-56.342-39.006-45.254 45.254 39.006 56.342c-4.766 6.51-9.278 13.22-13.494 20.13l-66.944-14.468-24.492 59.128 57.558 37.1c-1.892 7.812-3.482 15.742-4.724 23.79l-67.384 12.252v64l67.382 12.25c1.242 8.046 2.832 15.978 4.724 23.79l-57.558 37.1 24.492 59.128 66.944-14.468c4.216 6.91 8.728 13.618 13.494 20.13l-39.006 56.342 45.254 45.256 56.342-39.006c6.51 4.766 13.22 9.276 20.13 13.492l-14.468 66.944 59.128 24.492 37.102-57.558c7.81 1.892 15.742 3.482 23.788 4.724l12.252 67.384h64l12.252-67.382c8.044-1.242 15.976-2.832 23.79-4.724l37.1 57.558 59.128-24.492-14.468-66.944c6.91-4.216 13.62-8.726 20.13-13.492l56.342 39.006 45.256-45.256-39.006-56.342c4.766-6.512 9.276-13.22 13.492-20.13l66.944 14.468 24.492-59.13-57.558-37.1c1.892-7.812 3.482-15.742 4.724-23.79l67.382-12.25zM672 491.2c-76.878 0-139.2-62.322-139.2-139.2s62.32-139.2 139.2-139.2 139.2 62.322 139.2 139.2c0 76.878-62.32 139.2-139.2 139.2z"
+                               ],
+                               "tags": [
+                                       "cogs",
+                                       "settings",
+                                       "gears",
+                                       "generate",
+                                       "control",
+                                       "options"
+                               ],
+                               "defaultCode": 57378,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 23,
+                               "order": 31,
+                               "prevSize": 32,
+                               "code": 57378,
+                               "name": "cogs",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 30
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1002.934 817.876l-460.552-394.76c21.448-40.298 33.618-86.282 33.618-135.116 0-159.058-128.942-288-288-288-29.094 0-57.172 4.332-83.646 12.354l166.39 166.39c24.89 24.89 24.89 65.62 0 90.51l-101.49 101.49c-24.89 24.89-65.62 24.89-90.51 0l-166.39-166.39c-8.022 26.474-12.354 54.552-12.354 83.646 0 159.058 128.942 288 288 288 48.834 0 94.818-12.17 135.116-33.62l394.76 460.552c22.908 26.724 62.016 28.226 86.904 3.338l101.492-101.492c24.888-24.888 23.386-63.994-3.338-86.902z"
+                               ],
+                               "tags": [
+                                       "wrench",
+                                       "settings",
+                                       "control",
+                                       "tool",
+                                       "options",
+                                       "preferences",
+                                       "fix"
+                               ],
+                               "defaultCode": 57380,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 24,
+                               "order": 32,
+                               "prevSize": 32,
+                               "code": 57380,
+                               "name": "wrench",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 31
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M768 64h-128c-105.87 0-192 86.13-192 192v192h-400c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h544c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48h-16v-192c0-35.29 28.71-64 64-64h128c35.29 0 64 28.71 64 64v192h128v-192c0-105.87-86.13-192-192-192zM384 896h-128l27.84-139.2c-16.808-11.532-27.84-30.874-27.84-52.8 0-35.346 28.654-64 64-64s64 28.654 64 64c0 21.926-11.032 41.268-27.84 52.8l27.84 139.2z"
+                               ],
+                               "tags": [
+                                       "unlocked",
+                                       "lock"
+                               ],
+                               "defaultCode": 57381,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 25,
+                               "order": 33,
+                               "prevSize": 32,
+                               "code": 57381,
+                               "name": "unlocked",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 32
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M832 448h-64v-192c0-141.384-114.616-256-256-256s-256 114.616-256 256v192h-64c-35.2 0-64 28.8-64 64v448c0 35.2 28.8 64 64 64h640c35.2 0 64-28.8 64-64v-448c0-35.2-28.8-64-64-64zM512 832c-35.346 0-64-28.654-64-64s28.654-64 64-64 64 28.654 64 64-28.654 64-64 64zM640 448h-256v-192c0-70.58 57.42-128 128-128s128 57.42 128 128v192z"
+                               ],
+                               "tags": [
+                                       "lock",
+                                       "secure",
+                                       "private",
+                                       "encrypted"
+                               ],
+                               "defaultCode": 57382,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 26,
+                               "order": 34,
+                               "prevSize": 32,
+                               "code": 57382,
+                               "name": "lock",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 33
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M592 448h-16v-192c0-105.87-86.13-192-192-192h-128c-105.87 0-192 86.13-192 192v192h-16c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h544c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48zM384 896h-128l27.84-139.2c-16.808-11.532-27.84-30.874-27.84-52.8 0-35.346 28.654-64 64-64s64 28.654 64 64c0 21.926-11.032 41.268-27.84 52.8l27.84 139.2zM448 448h-256v-192c0-35.29 28.71-64 64-64h128c35.29 0 64 28.71 64 64v192z"
+                               ],
+                               "tags": [
+                                       "lock",
+                                       "secure",
+                                       "private",
+                                       "encrypted"
+                               ],
+                               "defaultCode": 57383,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 27,
+                               "order": 35,
+                               "prevSize": 32,
+                               "code": 57383,
+                               "name": "lock-2",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 34
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 0c-176.73 0-320 143.268-320 320 0 20.026 1.858 39.616 5.376 58.624l-389.376 389.376v192c0 35.346 28.654 64 64 64h64v-64h128v-128h128v-128h128l83.042-83.042c34.010 12.316 70.696 19.042 108.958 19.042 176.73 0 320-143.268 320-320s-143.27-320-320-320zM799.874 320.126c-53.020 0-96-42.98-96-96s42.98-96 96-96 96 42.98 96 96-42.98 96-96 96z"
+                               ],
+                               "tags": [
+                                       "key",
+                                       "password",
+                                       "login",
+                                       "log in",
+                                       "signin",
+                                       "sign in"
+                               ],
+                               "defaultCode": 57384,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 28,
+                               "order": 36,
+                               "prevSize": 32,
+                               "code": 57384,
+                               "name": "key",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 35
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1002.132 314.242l-101.106-101.104c-24.792-24.794-65.37-65.368-90.162-90.164l-101.106-101.104c-24.792-24.794-68.954-29.166-98.13-9.716l-276.438 184.292c-29.176 19.452-40.218 61.028-24.536 92.39l70.486 140.974c2.154 4.306 4.646 8.896 7.39 13.66l-356.53 356.53-32 224h192v-64h128v-128h128v-128h128v-71.186c6.396 3.812 12.534 7.216 18.192 10.044l140.97 70.488c31.366 15.682 72.94 4.638 92.39-24.538l184.294-276.44c19.454-29.172 15.078-73.33-9.714-98.126zM150.628 854.626l-45.254-45.254 311.572-311.57 45.254 45.254-311.572 311.57zM917.020 423.764l-45.256 45.256c-12.446 12.444-32.808 12.444-45.254 0l-271.53-271.53c-12.446-12.444-12.446-32.81 0-45.254l45.256-45.256c12.446-12.444 32.808-12.444 45.254 0l271.53 271.53c12.446 12.444 12.446 32.81 0 45.254z"
+                               ],
+                               "tags": [
+                                       "key",
+                                       "password",
+                                       "login",
+                                       "log in",
+                                       "signin",
+                                       "sign in"
+                               ],
+                               "defaultCode": 57385,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 29,
+                               "order": 37,
+                               "prevSize": 32,
+                               "code": 57385,
+                               "name": "key-2",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 36
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M992.262 871.396l-242.552-206.294c-25.074-22.566-51.89-32.926-73.552-31.926 57.256-67.068 91.842-154.078 91.842-249.176 0-212.078-171.922-384-384-384-212.076 0-384 171.922-384 384s171.922 384 384 384c95.098 0 182.108-34.586 249.176-91.844-1 21.662 9.36 48.478 31.926 73.552l206.294 242.552c35.322 39.246 93.022 42.554 128.22 7.356s31.892-92.898-7.354-128.22zM384 640c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.614 256-256 256zM192 320h384v128h-384z"
+                               ],
+                               "tags": [
+                                       "zoom out",
+                                       "smaller",
+                                       "scale",
+                                       "reduce"
+                               ],
+                               "defaultCode": 57386,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 30,
+                               "order": 38,
+                               "prevSize": 32,
+                               "code": 57386,
+                               "name": "zoomout",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 37
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M992.262 871.396l-242.552-206.294c-25.074-22.566-51.89-32.926-73.552-31.926 57.256-67.068 91.842-154.078 91.842-249.176 0-212.078-171.922-384-384-384-212.076 0-384 171.922-384 384s171.922 384 384 384c95.098 0 182.108-34.586 249.176-91.844-1 21.662 9.36 48.478 31.926 73.552l206.294 242.552c35.322 39.246 93.022 42.554 128.22 7.356s31.892-92.898-7.354-128.22zM384 640c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.614 256-256 256zM448 192h-128v128h-128v128h128v128h128v-128h128v-128h-128z"
+                               ],
+                               "tags": [
+                                       "zoom in",
+                                       "enlarge",
+                                       "scale"
+                               ],
+                               "defaultCode": 57387,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 31,
+                               "order": 39,
+                               "prevSize": 32,
+                               "code": 57387,
+                               "name": "zoomin",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 38
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1024 608.094v-192.188l-146.774-24.462c-5.958-18.132-13.222-35.668-21.694-52.5l86.454-121.034-135.896-135.898-120.826 86.304c-16.91-8.554-34.538-15.888-52.768-21.902l-24.402-146.414h-192.188l-24.402 146.416c-18.23 6.014-35.858 13.348-52.766 21.902l-120.828-86.304-135.898 135.898 86.454 121.036c-8.47 16.83-15.734 34.366-21.692 52.498l-146.774 24.46v192.188l147.118 24.52c5.96 17.968 13.21 35.348 21.642 52.030l-86.748 121.448 135.898 135.896 121.654-86.894c16.602 8.35 33.89 15.528 51.764 21.434l24.578 147.472h192.188l24.578-147.474c17.874-5.906 35.162-13.084 51.766-21.432l121.652 86.892 135.896-135.896-86.744-121.446c8.432-16.682 15.678-34.062 21.64-52.032l147.118-24.518zM512 640c-70.692 0-128-57.306-128-128 0-70.692 57.308-128 128-128 70.694 0 128 57.308 128 128 0 70.694-57.306 128-128 128z"
+                               ],
+                               "tags": [
+                                       "cog",
+                                       "preferences",
+                                       "settings",
+                                       "gear",
+                                       "generate",
+                                       "control",
+                                       "options"
+                               ],
+                               "defaultCode": 57391,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 32,
+                               "order": 40,
+                               "prevSize": 32,
+                               "code": 57391,
+                               "name": "cog",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 39
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M800 128h-576c-53.020 0-96 42.98-96 96v32h768v-32c0-53.020-42.98-96-96-96zM632.32 64l14.116 101h-268.872l14.114-101h240.642zM640 0h-256c-26.4 0-50.99 21.392-54.642 47.538l-18.714 133.924c-3.654 26.146 14.956 47.538 41.356 47.538h320c26.4 0 45.010-21.392 41.358-47.538l-18.714-133.924c-3.654-26.146-28.244-47.538-54.644-47.538v0zM816 320h-608c-35.2 0-61.392 28.682-58.206 63.738l52.412 576.526c3.186 35.054 34.594 63.736 69.794 63.736h480c35.2 0 66.608-28.682 69.794-63.736l52.41-576.526c3.188-35.056-23.004-63.738-58.204-63.738zM384 896h-96l-32-448h128v448zM576 896h-128v-448h128v448zM736 896h-96v-448h128l-32 448z"
+                               ],
+                               "tags": [
+                                       "remove",
+                                       "delete",
+                                       "trashcan",
+                                       "recycle bin",
+                                       "bin",
+                                       "dispose"
+                               ],
+                               "defaultCode": 57389,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 33,
+                               "order": 41,
+                               "prevSize": 32,
+                               "code": 57389,
+                               "name": "remove",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 40
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 192c-223.318 0-416.882 130.042-512 320 95.118 189.958 288.682 320 512 320 223.314 0 416.878-130.042 512-320-95.116-189.958-288.686-320-512-320zM764.45 361.704c60.162 38.374 111.142 89.774 149.434 150.296-38.292 60.522-89.274 111.922-149.436 150.298-75.594 48.216-162.89 73.702-252.448 73.702-89.56 0-176.856-25.486-252.45-73.704-60.16-38.372-111.14-89.772-149.434-150.296 38.292-60.524 89.274-111.924 149.434-150.296 3.918-2.5 7.876-4.922 11.858-7.3-9.958 27.328-15.408 56.822-15.408 87.596 0 141.384 114.616 256 256 256s256-114.616 256-256c0-30.774-5.45-60.268-15.408-87.598 3.98 2.378 7.938 4.802 11.858 7.302zM512 410c0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96 96 42.98 96 96z"
+                               ],
+                               "tags": [
+                                       "eye",
+                                       "views",
+                                       "vision",
+                                       "visit"
+                               ],
+                               "defaultCode": 57392,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 35,
+                               "order": 42,
+                               "prevSize": 32,
+                               "code": 57392,
+                               "name": "eye",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 41
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M839.322 296.416c77.644 55.030 141.37 129.092 184.678 215.584-95.122 189.958-288.686 320-512 320-62.566 0-122.792-10.212-179.178-29.084l77.956-77.956c33.058 7.3 66.972 11.040 101.222 11.040 89.558 0 176.854-25.486 252.446-73.704 60.162-38.376 111.144-89.776 149.436-150.298-37.052-58.566-86.014-108.55-143.65-146.494l69.090-69.088zM512 698c-22.724 0-44.752-2.976-65.728-8.534l313.186-313.184c5.562 20.972 8.542 42.994 8.542 65.718 0 141.384-114.616 256-256 256zM960 0h-53.738l-219.612 219.612c-55.076-17.924-113.754-27.612-174.65-27.612-223.318 0-416.882 130.042-512 320 42.658 85.192 105.128 158.308 181.194 213.068l-181.194 181.194v53.738h53.738l906.262-906.262v-53.738zM416 314c48.044 0 87.846 35.294 94.892 81.37l-109.524 109.524c-46.074-7.048-81.368-46.85-81.368-94.894 0-53.020 42.98-96 96-96zM110.116 512c38.292-60.524 89.274-111.924 149.434-150.296 3.918-2.5 7.876-4.922 11.858-7.3-9.958 27.328-15.408 56.822-15.408 87.596 0 58.524 19.65 112.448 52.698 155.562l-58.55 58.55c-56.072-37.642-103.754-86.772-140.032-144.112z"
+                               ],
+                               "tags": [
+                                       "eye-blocked",
+                                       "views",
+                                       "vision",
+                                       "visit",
+                                       "banned",
+                                       "blocked",
+                                       "forbidden",
+                                       "private"
+                               ],
+                               "defaultCode": 57393,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 36,
+                               "order": 43,
+                               "prevSize": 32,
+                               "code": 57393,
+                               "name": "eye-blocked",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 42
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M697.832 327.048l-64.952-64.922-324.81 324.742c-53.814 53.792-53.814 141.048 0 194.844 53.804 53.792 141.060 53.792 194.874 0l389.772-389.708c89.714-89.662 89.714-235.062 0-324.726-89.666-89.704-235.112-89.704-324.782 0l-409.23 409.178c-0.29 0.304-0.612 0.576-0.876 0.846-125.102 125.096-125.102 327.856 0 452.906 125.054 125.056 327.868 125.056 452.988 0 0.274-0.274 0.516-0.568 0.82-0.876l0.032 0.034 279.332-279.292-64.986-64.92-279.33 279.262c-0.296 0.268-0.564 0.57-0.846 0.844-89.074 89.058-233.98 89.058-323.076 0-89.062-89.042-89.062-233.922 0-322.978 0.304-0.304 0.604-0.582 0.888-0.846l-0.046-0.060 409.28-409.166c53.712-53.738 141.144-53.738 194.886 0 53.712 53.734 53.712 141.148 0 194.84l-389.772 389.7c-17.936 17.922-47.054 17.922-64.972 0-17.894-17.886-17.894-47.032 0-64.92l324.806-324.782z"
+                               ],
+                               "tags": [
+                                       "attachment",
+                                       "paperclip"
+                               ],
+                               "defaultCode": 57394,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 37,
+                               "order": 44,
+                               "prevSize": 32,
+                               "code": 57394,
+                               "name": "attachment",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 43
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M480 64c-265.096 0-480 214.904-480 480 0 265.098 214.904 480 480 480 265.098 0 480-214.902 480-480 0-265.096-214.902-480-480-480zM751.59 704c8.58-40.454 13.996-83.392 15.758-128h127.446c-3.336 44.196-13.624 87.114-30.68 128h-112.524zM208.41 384c-8.58 40.454-13.996 83.392-15.758 128h-127.444c3.336-44.194 13.622-87.114 30.678-128h112.524zM686.036 384c9.614 40.962 15.398 83.854 17.28 128h-191.316v-128h174.036zM512 320v-187.338c14.59 4.246 29.044 11.37 43.228 21.37 26.582 18.74 52.012 47.608 73.54 83.486 14.882 24.802 27.752 52.416 38.496 82.484l-155.264-0zM331.232 237.516c21.528-35.878 46.956-64.748 73.54-83.486 14.182-10 28.638-17.124 43.228-21.37l-0 187.34h-155.264c10.746-30.066 23.616-57.68 38.496-82.484zM448 384v128h-191.314c1.88-44.146 7.666-87.038 17.278-128h174.036zM95.888 704c-17.056-40.886-27.342-83.804-30.678-128h127.444c1.762 44.608 7.178 87.546 15.758 128h-112.524zM256.686 576h191.314v128h-174.036c-9.612-40.96-15.398-83.854-17.278-128zM448 768v187.34c-14.588-4.246-29.044-11.372-43.228-21.37-26.584-18.74-52.014-47.61-73.54-83.486-14.882-24.804-27.75-52.418-38.498-82.484h155.266zM628.768 850.484c-21.528 35.876-46.958 64.746-73.54 83.486-14.184 9.998-28.638 17.124-43.228 21.37l-0-187.34h155.266c-10.746 30.066-23.616 57.68-38.498 82.484zM512 704v-128h191.314c-1.88 44.146-7.666 87.040-17.28 128h-174.034zM767.348 512c-1.762-44.608-7.178-87.546-15.758-128h112.524c17.056 40.886 27.344 83.806 30.68 128h-127.446zM830.658 320h-95.9c-18.638-58.762-44.376-110.294-75.316-151.428 42.536 20.34 81.058 47.616 114.714 81.272 21.48 21.478 40.362 44.938 56.502 70.156zM185.844 249.844c33.658-33.658 72.18-60.932 114.714-81.272-30.942 41.134-56.676 92.666-75.316 151.428h-95.898c16.138-25.218 35.022-48.678 56.5-70.156zM129.344 768h95.898c18.64 58.762 44.376 110.294 75.318 151.43-42.536-20.34-81.058-47.616-114.714-81.274-21.48-21.478-40.364-44.938-56.502-70.156zM774.156 838.156c-33.656 33.658-72.18 60.934-114.714 81.274 30.942-41.134 56.678-92.668 75.316-151.43h95.9c-16.14 25.218-35.022 48.678-56.502 70.156z"
+                               ],
+                               "tags": [
+                                       "globe",
+                                       "web",
+                                       "internet",
+                                       "network",
+                                       "sphere"
+                               ],
+                               "defaultCode": 57395,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 38,
+                               "order": 45,
+                               "prevSize": 32,
+                               "code": 57395,
+                               "name": "globe",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 44
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1024 358.156c0-162.458-131.7-294.156-294.156-294.156-86.362 0-164.030 37.218-217.844 96.49-53.814-59.272-131.482-96.49-217.844-96.49-162.458 0-294.156 131.698-294.156 294.156 0 86.362 37.218 164.030 96.49 217.844h-0.49l320 320c32 32 64 64 96 64s64-32 96-64l320-320h-0.49c59.272-53.814 96.49-131.482 96.49-217.844zM841.468 481.232l-323.978 324.258c-1.678 1.678-3.532 3.532-5.49 5.48-1.96-1.95-3.814-3.802-5.49-5.48l-323.978-324.256c-35.166-31.928-54.532-75.638-54.532-123.078 0-91.618 74.538-166.156 166.156-166.156 47.44 0 91.15 19.366 123.076 54.532l94.768 104.38 94.768-104.378c31.928-35.168 75.636-54.534 123.076-54.534 91.618 0 166.156 74.538 166.156 166.156 0 47.44-19.368 91.15-54.532 123.076z"
+                               ],
+                               "tags": [
+                                       "heart",
+                                       "like",
+                                       "love",
+                                       "favorite"
+                               ],
+                               "defaultCode": 10084,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 39,
+                               "order": 46,
+                               "prevSize": 32,
+                               "code": 10084,
+                               "name": "heart",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 45
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM512 598.76c115.95 0 226.23-30.806 320-84.92-14.574 178.438-153.128 318.16-320 318.16-166.868 0-305.422-139.872-320-318.304 93.77 54.112 204.050 85.064 320 85.064zM256 352c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96zM640 352c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96z"
+                               ],
+                               "tags": [
+                                       "happy",
+                                       "emoticon",
+                                       "smiley",
+                                       "face"
+                               ],
+                               "defaultCode": 9787,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 40,
+                               "order": 47,
+                               "prevSize": 32,
+                               "code": 9787,
+                               "name": "happy",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 46
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M928 576c73 0 32 192-32 192 32 0 0 160-64 160 0 64-64 96-128 96-270.352 0-175.264-67.65-448-96v-512c240.922-72.268 480-253.424 480-416 53 0 192 64 0 384 0 0 160 0 192 0 96 0 64 192 0 192zM192 416v512h64v32h-128c-35.2 0-64-43.2-64-96v-384c0-52.8 28.8-96 64-96h128v32h-64z"
+                               ],
+                               "tags": [
+                                       "thumbs-up",
+                                       "up",
+                                       "like",
+                                       "rate",
+                                       "vote up"
+                               ],
+                               "defaultCode": 9757,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 41,
+                               "order": 48,
+                               "prevSize": 32,
+                               "code": 9757,
+                               "name": "thumbs-up",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 47
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM256 320c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM640 320c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM704.098 627.26l82.328 49.396c-55.962 93.070-157.916 155.344-274.426 155.344s-218.464-62.274-274.426-155.344l82.328-49.396c39.174 65.148 110.542 108.74 192.098 108.74s152.924-43.592 192.098-108.74z"
+                               ],
+                               "tags": [
+                                       "smiley",
+                                       "emoticon",
+                                       "face"
+                               ],
+                               "defaultCode": 9786,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 42,
+                               "order": 49,
+                               "prevSize": 32,
+                               "code": 9786,
+                               "name": "smiley",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 48
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM256 320c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM640 320c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM768 576v64h-64v96c0 53.020-42.98 96-96 96s-96-42.98-96-96v-96h-256v-64h512z"
+                               ],
+                               "tags": [
+                                       "tongue",
+                                       "emoticon",
+                                       "smiley",
+                                       "face"
+                               ],
+                               "defaultCode": 57400,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 43,
+                               "order": 50,
+                               "prevSize": 32,
+                               "code": 57400,
+                               "name": "tongue",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 49
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM256 320c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM640 320c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM319.902 780.74l-82.328-49.396c55.962-93.070 157.916-155.344 274.426-155.344 116.508 0 218.462 62.274 274.426 155.344l-82.328 49.396c-39.174-65.148-110.542-108.74-192.098-108.74-81.558 0-152.924 43.592-192.098 108.74z"
+                               ],
+                               "tags": [
+                                       "sad",
+                                       "emoticon",
+                                       "smiley",
+                                       "face"
+                               ],
+                               "defaultCode": 9785,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 44,
+                               "order": 51,
+                               "prevSize": 32,
+                               "code": 9785,
+                               "name": "sad",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 50
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM542.74 711.028c140.248-27.706 249.11-91.542 288.454-176.594-21.654 167.956-161.518 297.566-330.85 297.566-119.242 0-223.858-64.282-282.892-160.948 70.41 55.058 194.534 65.808 325.288 39.976zM640 352c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96zM352 371.5c-41.796 0-77.334 15.656-90.516 37.5-3.54-5.866-5.484-32.174-5.484-38.75 0-31.066 42.98-56.25 96-56.25s96 25.184 96 56.25c0 6.576-1.944 32.884-5.484 38.75-13.182-21.844-48.72-37.5-90.516-37.5z"
+                               ],
+                               "tags": [
+                                       "wink",
+                                       "emoticon",
+                                       "smiley",
+                                       "face"
+                               ],
+                               "defaultCode": 57402,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 45,
+                               "order": 52,
+                               "prevSize": 32,
+                               "code": 57402,
+                               "name": "wink",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 51
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM745.74 601.62l22.488 76.776-437.008 128.002-22.488-76.776zM256 320c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM640 320c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64z"
+                               ],
+                               "tags": [
+                                       "wondering",
+                                       "emoticon",
+                                       "smiley",
+                                       "face",
+                                       "question"
+                               ],
+                               "defaultCode": 9065,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 46,
+                               "order": 53,
+                               "prevSize": 32,
+                               "code": 9065,
+                               "name": "wondering",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 52
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM256 320c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM640 320c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM726.106 640h64.864c9.246 72.506-32.452 144.53-103.958 170.56-82.904 30.176-174.9-12.716-205.080-95.616-18.108-49.744-73.306-75.482-123.048-57.372-45.562 16.588-70.956 64.298-60.988 110.424h-64.86c-9.242-72.508 32.45-144.528 103.956-170.56 82.904-30.178 174.902 12.716 205.082 95.614 18.104 49.748 73.306 75.482 123.044 57.372 45.562-16.584 70.956-64.298 60.988-110.422z"
+                               ],
+                               "tags": [
+                                       "confused",
+                                       "emoticon",
+                                       "smiley",
+                                       "face",
+                                       "bewildered"
+                               ],
+                               "defaultCode": 9064,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 47,
+                               "order": 54,
+                               "prevSize": 32,
+                               "code": 9064,
+                               "name": "confused",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 53
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM384 704c0-70.692 57.308-128 128-128s128 57.308 128 128c0 70.692-57.308 128-128 128s-128-57.308-128-128zM640 352c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96zM256 352c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96z"
+                               ],
+                               "tags": [
+                                       "shocked",
+                                       "emoticon",
+                                       "smiley",
+                                       "face"
+                               ],
+                               "defaultCode": 9060,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 48,
+                               "order": 55,
+                               "prevSize": 32,
+                               "code": 9060,
+                               "name": "shocked",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 54
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M639.996 448c-35.346 0-64-28.654-63.998-64.002 0-1.17 0.036-2.33 0.098-3.484 2.032-47.454 45.212-78.946 81.592-97.138 34.742-17.37 69.102-26.060 70.548-26.422 17.146-4.288 34.518 6.138 38.806 23.284 4.284 17.146-6.14 34.518-23.284 38.806-17.626 4.45-38.522 12.12-56.936 21.35 10.648 11.43 17.174 26.752 17.174 43.606 0 35.346-28.654 64-64 64zM280.242 319.044c-17.144-4.286-27.568-21.66-23.282-38.804 4.286-17.146 21.66-27.572 38.806-23.284 1.444 0.362 35.806 9.050 70.548 26.422 36.382 18.19 79.56 49.684 81.592 97.138 0.062 1.154 0.098 2.316 0.098 3.484 0 35.346-28.654 64-64 64s-64-28.654-64-64c0-16.854 6.526-32.176 17.174-43.606-18.414-9.23-39.312-16.9-56.936-21.35zM512 736c81.554 0 152.924-43.592 192.098-108.74l82.328 49.396c-55.962 93.070-157.916 155.344-274.426 155.344s-218.464-62.274-274.426-155.344l82.328-49.396c39.174 65.148 110.542 108.74 192.098 108.74zM1024 64c0-45.516-9.524-88.8-26.652-128-33.576 76.836-96.448 137.932-174.494 169.178-86.194-65.96-193.936-105.178-310.854-105.178s-224.66 39.218-310.854 105.178c-78.048-31.246-140.918-92.342-174.494-169.178-17.128 39.2-26.652 82.484-26.652 128 0 73.574 24.85 141.328 66.588 195.378-42.37 74.542-66.588 160.75-66.588 252.622 0 282.77 229.23 512 512 512s512-229.23 512-512c0-91.872-24.218-178.080-66.588-252.622 41.738-54.050 66.588-121.804 66.588-195.378zM512 928c-229.75 0-416-186.25-416-416s186.25-416 416-416 416 186.25 416 416-186.25 416-416 416z"
+                               ],
+                               "tags": [
+                                       "evil",
+                                       "emoticon",
+                                       "smiley",
+                                       "face"
+                               ],
+                               "defaultCode": 9759,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 49,
+                               "order": 56,
+                               "prevSize": 32,
+                               "code": 9759,
+                               "name": "evil",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 55
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM704.098 780.74c-39.174-65.148-110.544-108.74-192.098-108.74-81.556 0-152.924 43.592-192.098 108.74l-82.328-49.396c55.96-93.070 157.916-155.344 274.426-155.344 116.508 0 218.464 62.274 274.426 155.344l-82.328 49.396zM767.042 280.24c4.284 17.144-6.14 34.518-23.282 38.804-17.626 4.45-38.522 12.12-56.936 21.35 10.648 11.43 17.174 26.752 17.174 43.606 0 35.346-28.654 64-64 64s-64-28.654-64-64c0-1.17 0.036-2.33 0.098-3.484 2.032-47.454 45.212-78.946 81.592-97.138 34.742-17.37 69.102-26.060 70.548-26.422 17.146-4.288 34.518 6.138 38.806 23.284zM256.958 280.24c4.288-17.146 21.66-27.572 38.806-23.284 1.446 0.362 35.806 9.052 70.548 26.422 36.38 18.192 79.56 49.684 81.592 97.138 0.062 1.154 0.098 2.314 0.098 3.484 0 35.346-28.654 64-64 64s-64-28.654-64-64c0-16.854 6.526-32.176 17.174-43.606-18.414-9.23-39.31-16.9-56.936-21.35-17.142-4.286-27.566-21.66-23.282-38.804z"
+                               ],
+                               "tags": [
+                                       "angry",
+                                       "emoticon",
+                                       "smiley",
+                                       "face",
+                                       "rage"
+                               ],
+                               "defaultCode": 57407,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 50,
+                               "order": 57,
+                               "prevSize": 32,
+                               "code": 57407,
+                               "name": "angry",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 56
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM800 256c17.6 0 32 14.4 32 32v96c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64h-128c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-96c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32v32h128v-32c0-17.6 14.4-32 32-32h192zM512 768c93.208 0 174.772-49.818 219.546-124.278l54.88 32.934c-55.966 93.070-157.916 155.344-274.426 155.344-48.458 0-94.384-10.796-135.54-30.082l33.162-55.278c31.354 13.714 65.964 21.36 102.378 21.36z"
+                               ],
+                               "tags": [
+                                       "cool",
+                                       "emoticon",
+                                       "smiley",
+                                       "face"
+                               ],
+                               "defaultCode": 57408,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 51,
+                               "order": 58,
+                               "prevSize": 32,
+                               "code": 57408,
+                               "name": "cool",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 57
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 1024c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 96c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM192 512v64c0 140.8 115.2 256 256 256h128c140.8 0 256-115.2 256-256v-64h-640zM384 756.988c-26.538-9.458-50.924-24.822-71.544-45.446-36.406-36.402-56.456-84.54-56.456-135.542h128v180.988zM576 768h-128v-192h128v192zM711.544 711.542c-20.624 20.624-45.010 35.988-71.544 45.446v-180.988h128c0 51.002-20.048 99.14-56.456 135.542zM225.352 384c0.002 0 0 0 0 0 9.768 0 18.108-7.056 19.724-16.69 6.158-36.684 37.668-63.31 74.924-63.31s68.766 26.626 74.924 63.31c1.616 9.632 9.956 16.69 19.722 16.69 9.768 0 18.108-7.056 19.724-16.688 1.082-6.436 1.628-12.934 1.628-19.312 0-63.962-52.038-116-116-116s-116 52.038-116 116c0 6.378 0.548 12.876 1.628 19.312 1.62 9.632 9.96 16.688 19.726 16.688zM609.352 384c0.002 0 0 0 0 0 9.77 0 18.112-7.056 19.724-16.69 6.158-36.684 37.668-63.31 74.924-63.31s68.766 26.626 74.924 63.31c1.616 9.632 9.958 16.69 19.722 16.69s18.108-7.056 19.722-16.688c1.082-6.436 1.628-12.934 1.628-19.312 0-63.962-52.038-116-116-116s-116 52.038-116 116c0 6.378 0.544 12.876 1.626 19.312 1.624 9.632 9.964 16.688 19.73 16.688z"
+                               ],
+                               "tags": [
+                                       "grin",
+                                       "emoticon",
+                                       "smiley",
+                                       "face"
+                               ],
+                               "defaultCode": 57409,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 52,
+                               "order": 59,
+                               "prevSize": 32,
+                               "code": 57409,
+                               "name": "grin",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 58
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512 512-229.23 512-512-229.23-512-512-512zM512 928c-229.75 0-416-186.25-416-416s186.25-416 416-416 416 186.25 416 416-186.25 416-416 416zM448 256h128v128h-128zM640 768h-256v-64h64v-192h-64v-64h192v256h64z"
+                               ],
+                               "tags": [
+                                       "info",
+                                       "information"
+                               ],
+                               "defaultCode": 9056,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 53,
+                               "order": 60,
+                               "prevSize": 32,
+                               "code": 9056,
+                               "name": "info",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 59
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 96c-111.118 0-215.584 43.272-294.156 121.844s-121.844 183.038-121.844 294.156c0 111.118 43.272 215.584 121.844 294.156s183.038 121.844 294.156 121.844c111.118 0 215.584-43.272 294.156-121.844s121.844-183.038 121.844-294.156c0-111.118-43.272-215.584-121.844-294.156s-183.038-121.844-294.156-121.844zM512 0v0c282.77 0 512 229.23 512 512s-229.23 512-512 512c-282.77 0-512-229.23-512-512s229.23-512 512-512zM448 704h128v128h-128zM448 192h128v384h-128z"
+                               ],
+                               "tags": [
+                                       "notification",
+                                       "warning",
+                                       "notice",
+                                       "note",
+                                       "exclamation"
+                               ],
+                               "defaultCode": 57375,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 54,
+                               "order": 61,
+                               "prevSize": 32,
+                               "code": 57375,
+                               "name": "notification",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 60
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 158.724l-344.834 737.276h689.668l-344.834-737.276zM512 0v0c22.070 0 44.14 14.882 60.884 44.648l437.072 871.112c33.49 59.532 5 108.24-63.302 108.24h-869.308c-68.304 0-96.79-48.708-63.304-108.24l437.074-871.112c16.744-29.766 38.814-44.648 60.884-44.648zM448 768c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM512 384c35.346 0 64 28.654 64 64l-20 192h-88l-20-192c0-35.346 28.654-64 64-64z"
+                               ],
+                               "tags": [
+                                       "warning",
+                                       "sign"
+                               ],
+                               "defaultCode": 9888,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 55,
+                               "order": 62,
+                               "prevSize": 32,
+                               "code": 9888,
+                               "name": "warning",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 61
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M128 256h128v192h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192zM128 64h128v128h-128v-128zM960 64v-64h-192c-35.202 0-64 28.8-64 64v320c0 35.2 28.798 64 64 64h192v-64h-192v-320h192zM640 160v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64zM576 384h-128v-128h128v128zM576 192h-128v-128h128v128zM832 576l-416 448-224-288 82-70 142 148 352-302z"
+                               ],
+                               "tags": [
+                                       "spell-check",
+                                       "correct"
+                               ],
+                               "defaultCode": 57413,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 56,
+                               "order": 63,
+                               "prevSize": 32,
+                               "code": 57413,
+                               "name": "spell-check",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 62
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M890.040 922.040c-12.286 0-24.568-4.686-33.942-14.058-18.744-18.746-18.744-49.136 0-67.882 87.638-87.642 135.904-204.16 135.904-328.1 0-123.938-48.266-240.458-135.904-328.098-18.744-18.746-18.744-49.138 0-67.882s49.138-18.744 67.882 0c105.77 105.772 164.022 246.4 164.022 395.98 0 149.582-58.252 290.208-164.022 395.98-9.372 9.374-21.656 14.060-33.94 14.060zM719.53 831.53c-12.286 0-24.568-4.686-33.942-14.058-18.744-18.744-18.744-49.136 0-67.882 131.006-131.006 131.006-344.17 0-475.176-18.744-18.746-18.744-49.138 0-67.882 18.744-18.742 49.138-18.744 67.882 0 81.594 81.592 126.53 190.076 126.53 305.468 0 115.39-44.936 223.876-126.53 305.47-9.372 9.374-21.656 14.060-33.94 14.060zM549.020 741.020c-12.286 0-24.568-4.686-33.942-14.058-18.746-18.746-18.746-49.136 0-67.882 81.1-81.1 81.1-213.058 0-294.156-18.746-18.746-18.746-49.138 0-67.882s49.136-18.744 67.882 0c118.53 118.53 118.53 311.392 0 429.922-9.372 9.37-21.656 14.056-33.94 14.056zM401.332 78.668c25.668-25.668 46.668-16.968 46.668 19.332v828c0 36.3-21 44.998-46.668 19.33l-241.332-241.33h-160v-384h160l241.332-241.332z"
+                               ],
+                               "width": 1088,
+                               "tags": [
+                                       "volume-high",
+                                       "speaker",
+                                       "media control",
+                                       "audio"
+                               ],
+                               "defaultCode": 57414,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 57,
+                               "order": 64,
+                               "prevSize": 32,
+                               "code": 57414,
+                               "name": "volume-high",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 63
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M719.53 831.53c-12.286 0-24.568-4.686-33.942-14.058-18.744-18.744-18.744-49.136 0-67.882 131.006-131.006 131.006-344.17 0-475.176-18.744-18.746-18.744-49.138 0-67.882 18.744-18.742 49.138-18.744 67.882 0 81.594 81.592 126.53 190.076 126.53 305.468 0 115.39-44.936 223.876-126.53 305.47-9.372 9.374-21.656 14.060-33.94 14.060zM549.020 741.020c-12.286 0-24.568-4.686-33.942-14.058-18.746-18.746-18.746-49.136 0-67.882 81.1-81.1 81.1-213.058 0-294.156-18.746-18.746-18.746-49.138 0-67.882s49.136-18.744 67.882 0c118.53 118.53 118.53 311.392 0 429.922-9.372 9.37-21.656 14.056-33.94 14.056zM401.332 78.668c25.668-25.668 46.668-16.968 46.668 19.332v828c0 36.3-21 44.998-46.668 19.33l-241.332-241.33h-160v-384h160l241.332-241.332z"
+                               ],
+                               "tags": [
+                                       "volume-medium",
+                                       "speaker",
+                                       "media control",
+                                       "audio"
+                               ],
+                               "defaultCode": 57415,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 58,
+                               "order": 65,
+                               "prevSize": 32,
+                               "code": 57415,
+                               "name": "volume-medium",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 64
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M549.020 741.020c-12.286 0-24.568-4.686-33.942-14.058-18.746-18.746-18.746-49.136 0-67.882 81.1-81.1 81.1-213.058 0-294.156-18.746-18.746-18.746-49.138 0-67.882s49.136-18.744 67.882 0c118.53 118.53 118.53 311.392 0 429.922-9.372 9.37-21.656 14.056-33.94 14.056zM401.332 78.668c25.668-25.668 46.668-16.968 46.668 19.332v828c0 36.3-21 44.998-46.668 19.33l-241.332-241.33h-160v-384h160l241.332-241.332z"
+                               ],
+                               "tags": [
+                                       "volume-low",
+                                       "speaker",
+                                       "media control",
+                                       "audio"
+                               ],
+                               "defaultCode": 57416,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 59,
+                               "order": 66,
+                               "prevSize": 32,
+                               "code": 57416,
+                               "name": "volume-low",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 65
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M401.332 78.668c25.668-25.668 46.668-16.968 46.668 19.332v828c0 36.3-21 44.998-46.668 19.33l-241.332-241.33h-160v-384h160l241.332-241.332zM960 619.148v84.852h-84.852l-107.148-107.148-107.148 107.148h-84.852v-84.852l107.148-107.148-107.148-107.148v-84.852h84.852l107.148 107.148 107.148-107.148h84.852v84.852l-107.148 107.148z"
+                               ],
+                               "tags": [
+                                       "volume-mute",
+                                       "speaker",
+                                       "media control",
+                                       "audio",
+                                       "mute"
+                               ],
+                               "defaultCode": 57417,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 60,
+                               "order": 67,
+                               "prevSize": 32,
+                               "code": 57417,
+                               "name": "volume-mute",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 66
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M401.332 78.668c25.668-25.668 46.668-16.968 46.668 19.332v828c0 36.3-21 44.998-46.668 19.33l-241.332-241.33h-160v-384h160l241.332-241.332z"
+                               ],
+                               "tags": [
+                                       "volume-mute",
+                                       "speaker",
+                                       "media control",
+                                       "audio",
+                                       "mute"
+                               ],
+                               "defaultCode": 57418,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 61,
+                               "order": 68,
+                               "prevSize": 32,
+                               "code": 57418,
+                               "name": "volume-mute2",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 67
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M428.164 63.918c11.976 0 19.836 11.878 19.838 34.082v828c0 22.206-7.856 34.082-19.836 34.082-7.604 0-16.868-4.788-26.834-14.752l-241.332-241.33h-160v-384h160l241.332-241.332c9.966-9.966 19.228-14.75 26.832-14.75zM512 448h512v128h-512z"
+                               ],
+                               "tags": [
+                                       "volume-decrease",
+                                       "speaker",
+                                       "media control",
+                                       "audio"
+                               ],
+                               "defaultCode": 57419,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 62,
+                               "order": 69,
+                               "prevSize": 32,
+                               "code": 57419,
+                               "name": "volume-decrease",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 68
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M428.164 63.918c11.976 0 19.836 11.878 19.838 34.082v828c0 22.206-7.856 34.082-19.836 34.082-7.604 0-16.868-4.788-26.834-14.752l-241.332-241.33h-160v-384h160l241.332-241.332c9.966-9.966 19.228-14.75 26.832-14.75zM1024 576h-192v192h-128v-192h-192v-128h192v-192h128v192h192z"
+                               ],
+                               "tags": [
+                                       "volume-increase",
+                                       "speaker",
+                                       "media control",
+                                       "audio"
+                               ],
+                               "defaultCode": 57420,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 63,
+                               "order": 70,
+                               "prevSize": 32,
+                               "code": 57420,
+                               "name": "volume-increase",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 69
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M707.88 484.652c37.498-44.542 60.12-102.008 60.12-164.652 0-141.16-114.842-256-256-256h-320v896h384c141.158 0 256-114.842 256-256 0-92.956-49.798-174.496-124.12-219.348zM384 192h101.5c55.968 0 101.5 57.42 101.5 128s-45.532 128-101.5 128h-101.5v-256zM543 832h-159v-256h159c58.45 0 106 57.42 106 128s-47.55 128-106 128z"
+                               ],
+                               "tags": [
+                                       "bold",
+                                       "wysiwyg"
+                               ],
+                               "defaultCode": 57421,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 64,
+                               "order": 71,
+                               "prevSize": 32,
+                               "code": 57421,
+                               "name": "bold",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 70
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 64h128v416c0 159.058-143.268 288-320 288-176.73 0-320-128.942-320-288v-416h128v416c0 40.166 18.238 78.704 51.354 108.506 36.896 33.204 86.846 51.494 140.646 51.494s103.75-18.29 140.646-51.494c33.116-29.802 51.354-68.34 51.354-108.506v-416zM192 832h640v128h-640z"
+                               ],
+                               "tags": [
+                                       "underline",
+                                       "wysiwyg"
+                               ],
+                               "defaultCode": 57422,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 65,
+                               "order": 72,
+                               "prevSize": 32,
+                               "code": 57422,
+                               "name": "underline",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 71
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M896 64v64h-128l-320 768h128v64h-448v-64h128l320-768h-128v-64z"
+                               ],
+                               "tags": [
+                                       "italic",
+                                       "wysiwyg"
+                               ],
+                               "defaultCode": 57423,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 66,
+                               "order": 73,
+                               "prevSize": 32,
+                               "code": 57423,
+                               "name": "italic",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 72
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1024 512v64h-234.506c27.504 38.51 42.506 82.692 42.506 128 0 70.878-36.66 139.026-100.58 186.964-59.358 44.518-137.284 69.036-219.42 69.036-82.138 0-160.062-24.518-219.42-69.036-63.92-47.938-100.58-116.086-100.58-186.964h128c0 69.382 87.926 128 192 128s192-58.618 192-128c0-69.382-87.926-128-192-128h-512v-64h299.518c-2.338-1.654-4.656-3.324-6.938-5.036-63.92-47.94-100.58-116.086-100.58-186.964s36.66-139.024 100.58-186.964c59.358-44.518 137.282-69.036 219.42-69.036 82.136 0 160.062 24.518 219.42 69.036 63.92 47.94 100.58 116.086 100.58 186.964h-128c0-69.382-87.926-128-192-128s-192 58.618-192 128c0 69.382 87.926 128 192 128 78.978 0 154.054 22.678 212.482 64h299.518z"
+                               ],
+                               "tags": [
+                                       "strikethrough",
+                                       "wysiwyg"
+                               ],
+                               "defaultCode": 57424,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 67,
+                               "order": 74,
+                               "prevSize": 32,
+                               "code": 57424,
+                               "name": "strikethrough",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 73
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M192 64v768h768v-768h-768zM896 768h-640v-640h640v640zM128 896v-640l-64-64v768h768l-64-64zM429.254 685.254l192-192 146.746 146.746v-384h-384l146.746 146.746-192 192z"
+                               ],
+                               "tags": [
+                                       "new tab",
+                                       "external",
+                                       "outside",
+                                       "popout",
+                                       "link",
+                                       "blank"
+                               ],
+                               "defaultCode": 57427,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 68,
+                               "order": 75,
+                               "prevSize": 32,
+                               "code": 57427,
+                               "name": "newtab",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 74
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M832 128h-640c-105.6 0-192 86.4-192 192v384c0 105.6 86.4 192 192 192h640c105.6 0 192-86.4 192-192v-384c0-105.6-86.4-192-192-192zM960 704c0 33.978-13.374 66.062-37.654 90.346-24.284 24.28-56.366 37.654-90.346 37.654h-640c-33.978 0-66.062-13.374-90.344-37.654-24.282-24.284-37.656-56.368-37.656-90.346v-384c0-33.978 13.374-66.062 37.656-90.344s56.366-37.656 90.344-37.656h640c33.978 0 66.062 13.374 90.346 37.656 24.282 24.282 37.654 56.366 37.654 90.344v384zM384 768l320-256-320-256z"
+                               ],
+                               "tags": [
+                                       "youtube",
+                                       "social"
+                               ],
+                               "defaultCode": 57429,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 69,
+                               "order": 76,
+                               "prevSize": 32,
+                               "code": 57429,
+                               "name": "youtube",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 75
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1014.662 822.66c-0.004-0.004-0.008-0.008-0.012-0.010l-310.644-310.65 310.644-310.65c0.004-0.004 0.008-0.006 0.012-0.010 3.344-3.346 5.762-7.254 7.312-11.416 4.246-11.376 1.824-24.682-7.324-33.83l-146.746-146.746c-9.148-9.146-22.45-11.566-33.828-7.32-4.16 1.55-8.070 3.968-11.418 7.31 0 0.004-0.004 0.006-0.008 0.010l-310.648 310.652-310.648-310.65c-0.004-0.004-0.006-0.006-0.010-0.010-3.346-3.342-7.254-5.76-11.414-7.31-11.38-4.248-24.682-1.826-33.83 7.32l-146.748 146.748c-9.148 9.148-11.568 22.452-7.322 33.828 1.552 4.16 3.97 8.072 7.312 11.416 0.004 0.002 0.006 0.006 0.010 0.010l310.65 310.648-310.65 310.652c-0.002 0.004-0.006 0.006-0.008 0.010-3.342 3.346-5.76 7.254-7.314 11.414-4.248 11.376-1.826 24.682 7.322 33.83l146.748 146.746c9.15 9.148 22.452 11.568 33.83 7.322 4.16-1.552 8.070-3.97 11.416-7.312 0.002-0.004 0.006-0.006 0.010-0.010l310.648-310.65 310.648 310.65c0.004 0.002 0.008 0.006 0.012 0.008 3.348 3.344 7.254 5.762 11.414 7.314 11.378 4.246 24.684 1.826 33.828-7.322l146.746-146.748c9.148-9.148 11.57-22.454 7.324-33.83-1.552-4.16-3.97-8.068-7.314-11.414z"
+                               ],
+                               "tags": [
+                                       "close",
+                                       "cancel",
+                                       "quit",
+                                       "remove",
+                                       "cross"
+                               ],
+                               "defaultCode": 10005,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 70,
+                               "order": 77,
+                               "prevSize": 32,
+                               "code": 10005,
+                               "name": "close",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 76
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 512c0 282.77 229.23 512 512 512 282.772 0 512-229.23 512-512s-229.228-512-512-512c-282.77 0-512 229.23-512 512zM896 512c0 73.236-20.512 141.68-56.088 199.912l-527.822-527.824c58.23-35.578 126.674-56.088 199.91-56.088 212.076 0 384 171.922 384 384zM128 512c0-73.236 20.512-141.678 56.090-199.912l527.822 527.824c-58.234 35.578-126.676 56.088-199.912 56.088-212.076 0-384-171.922-384-384z"
+                               ],
+                               "tags": [
+                                       "blocked",
+                                       "cancel",
+                                       "stop",
+                                       "forbidden",
+                                       "denied",
+                                       "banned"
+                               ],
+                               "defaultCode": 10008,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 71,
+                               "order": 78,
+                               "prevSize": 32,
+                               "code": 10008,
+                               "name": "blocked",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 77
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512 512-229.23 512-512-229.23-512-512-512zM768 346.51l-165.488 165.49 165.488 165.488v90.512h-90.512l-165.488-165.488-165.49 165.488h-90.51v-90.512l165.49-165.488-165.49-165.49v-90.51h90.51l165.49 165.49 165.488-165.49h90.512v90.51z"
+                               ],
+                               "tags": [
+                                       "cancel-circle",
+                                       "close",
+                                       "remove",
+                                       "delete"
+                               ],
+                               "defaultCode": 57432,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 72,
+                               "order": 79,
+                               "prevSize": 32,
+                               "code": 57432,
+                               "name": "cancel-circle",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 78
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 416v192c0 17.672 14.328 32 32 32h960c17.672 0 32-14.328 32-32v-192c0-17.672-14.328-32-32-32h-960c-17.672 0-32 14.328-32 32z"
+                               ],
+                               "tags": [
+                                       "minus",
+                                       "minimize",
+                                       "subtract"
+                               ],
+                               "defaultCode": 57434,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 73,
+                               "order": 80,
+                               "prevSize": 32,
+                               "code": 57434,
+                               "name": "minus",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 79
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M992 384h-352v-352c0-17.672-14.328-32-32-32h-192c-17.672 0-32 14.328-32 32v352h-352c-17.672 0-32 14.328-32 32v192c0 17.672 14.328 32 32 32h352v352c0 17.672 14.328 32 32 32h192c17.672 0 32-14.328 32-32v-352h352c17.672 0 32-14.328 32-32v-192c0-17.672-14.328-32-32-32z"
+                               ],
+                               "tags": [
+                                       "plus",
+                                       "add",
+                                       "sum"
+                               ],
+                               "defaultCode": 10010,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 74,
+                               "order": 81,
+                               "prevSize": 32,
+                               "code": 10010,
+                               "name": "plus",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 80
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 0v1024h1024v-1024h-1024zM960 960h-896v-896h896v896zM768 224l-320 320-192-192-128 128 320 320 448-448-128-128z"
+                               ],
+                               "tags": [
+                                       "checkbox-checked",
+                                       "tick",
+                                       "checked",
+                                       "selected"
+                               ],
+                               "defaultCode": 9745,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 75,
+                               "order": 82,
+                               "prevSize": 32,
+                               "code": 9745,
+                               "name": "checkbox-checked",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 81
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 0v1024h1024v-1024h-1024zM960 960h-896v-896h896v896z"
+                               ],
+                               "tags": [
+                                       "checkbox-unchecked",
+                                       "unchecked",
+                                       "square"
+                               ],
+                               "defaultCode": 11047,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 76,
+                               "order": 83,
+                               "prevSize": 32,
+                               "code": 11047,
+                               "name": "checkbox-unchecked",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 82
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 0v1024h1024v-1024h-1024zM960 960h-896v-896h896v896zM256 256h512v512h-512z"
+                               ],
+                               "tags": [
+                                       "checkbox-partial",
+                                       "partial"
+                               ],
+                               "defaultCode": 11048,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 77,
+                               "order": 84,
+                               "prevSize": 32,
+                               "code": 11048,
+                               "name": "checkbox-partial",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 83
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512 512-229.23 512-512-229.23-512-512-512zM512 896c-212.078 0-384-171.922-384-384s171.922-384 384-384c212.078 0 384 171.922 384 384s-171.922 384-384 384zM320 512c0 106.039 85.961 192 192 192s192-85.961 192-192c0-106.039-85.961-192-192-192s-192 85.961-192 192z"
+                               ],
+                               "tags": [
+                                       "radio-checked"
+                               ],
+                               "defaultCode": 11046,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 78,
+                               "order": 85,
+                               "prevSize": 32,
+                               "code": 11046,
+                               "name": "radio-checked",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 84
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512 512-229.23 512-512-229.23-512-512-512zM512 896c-212.078 0-384-171.922-384-384s171.922-384 384-384c212.078 0 384 171.922 384 384s-171.922 384-384 384z"
+                               ],
+                               "tags": [
+                                       "radio-unchecked",
+                                       "circle"
+                               ],
+                               "defaultCode": 11045,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 79,
+                               "order": 86,
+                               "prevSize": 32,
+                               "code": 11045,
+                               "name": "radio-unchecked",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 85
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512 512-229.23 512-512-229.23-512-512-512zM448 192h128v128h-128v-128zM640 832h-256v-64h64v-256h-64v-64h192v320h64v64z"
+                               ],
+                               "tags": [
+                                       "info",
+                                       "information"
+                               ],
+                               "defaultCode": 57433,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 80,
+                               "order": 87,
+                               "prevSize": 32,
+                               "code": 57433,
+                               "name": "room-info",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 86
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M896 256v-128h-896v704c0 35.346 28.654 64 64 64h864c53.022 0 96-42.978 96-96v-544h-128zM832 832h-768v-640h768v640zM128 320h640v64h-640zM512 448h256v64h-256zM512 576h256v64h-256zM512 704h192v64h-192zM128 448h320v320h-320z"
+                               ],
+                               "tags": [
+                                       "newspaper",
+                                       "paper"
+                               ],
+                               "defaultCode": 57345,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 81,
+                               "order": 88,
+                               "prevSize": 32,
+                               "code": 57345,
+                               "name": "newspaper",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 87
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M896 192h-768v640h768v-640zM1024 64v0 896h-1024v-896h1024zM832 768h-640v-128l192-320 263 320 185-128v64zM640 352c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96z"
+                               ],
+                               "tags": [
+                                       "image",
+                                       "picture",
+                                       "photo",
+                                       "graphic"
+                               ],
+                               "defaultCode": 11028,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 82,
+                               "order": 89,
+                               "prevSize": 32,
+                               "code": 11028,
+                               "name": "image",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 88
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 64c-282.764 0-512 186.212-512 416.008 0 130.498 74.736 246.66 190.542 322.902 1.396 9.402 1.458 19.316 1.458 29.090 0 69.912-59.486 130.808-128 164.368v27.632c126.93-2.886 258.016-22.42 368.004-132.36 26.018 3.304 52.86 4.36 79.996 4.36 282.764 0 512-186.26 512-415.992 0-229.796-229.236-416.008-512-416.008zM325.818 194.916c3.15-0.65 7.152 0.312 10.178 1.444 2.218 0.822 4.034 2.576 5.818 4.376l165.826 165.81 165.81-165.81c1.8-1.8 3.616-3.554 5.818-4.376 6.098-2.266 14.012-0.496 18.914 4.376l78.554 78.536c4.856 4.904 5.166 11.388 2.9 17.456-0.822 2.218-1.116 4.034-2.9 5.818l-167.286 165.826 167.286 165.81c1.784 1.784 2.078 3.6 2.9 5.818 2.282 6.082 1.986 14.010-2.9 18.912l-78.554 78.538c-4.902 4.872-12.846 5.182-18.914 2.918-2.202-0.822-4.018-1.118-5.818-2.918l-165.81-165.81-165.826 165.81c-1.784 1.8-3.6 2.096-5.818 2.918-6.082 2.28-14.010 1.986-18.898-2.918l-77.094-78.538c-4.872-4.902-6.626-12.846-4.36-18.912 0.806-2.218 2.56-4.034 4.36-5.818l165.81-165.81-165.81-165.826c-1.8-1.784-3.554-3.6-4.36-5.818-2.296-6.082-0.542-12.552 4.36-17.456l77.094-78.536c2.436-2.436 5.57-5.184 8.72-5.82z"
+                               ],
+                               "tags": [
+                                       "offline"
+                               ],
+                               "defaultCode": 57346,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 83,
+                               "order": 90,
+                               "prevSize": 32,
+                               "code": 57346,
+                               "name": "offline",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 89
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 64c-282.764 0-512 186.212-512 416.008 0 130.498 74.736 246.66 190.542 322.902 1.396 9.402 1.458 19.316 1.458 29.090 0 69.912-59.486 130.808-128 164.368v27.632c126.93-2.886 258.016-22.42 368.004-132.36 26.018 3.304 52.86 4.36 79.996 4.36 282.764 0 512-186.26 512-415.992 0-229.796-229.236-416.008-512-416.008zM155.632 384h695.28c12.816 0 23.274 10.458 23.274 23.272v139.638c0 12.814-10.458 23.272-23.274 23.272h-695.28c-12.816 0-23.272-10.458-23.272-23.272v-139.638c0-12.814 10.456-23.272 23.272-23.272z"
+                               ],
+                               "tags": [
+                                       "busy"
+                               ],
+                               "defaultCode": 57348,
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "order": 91,
+                               "id": 454,
+                               "prevSize": 32,
+                               "code": 57348,
+                               "name": "busy",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 90
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M768 640v-128h-320v-128h320v-128l192 192zM704 576v256h-320v192l-384-192v-832h704v320h-64v-256h-512l256 128v576h256v-192z"
+                               ],
+                               "tags": [
+                                       "exit",
+                                       "sign out",
+                                       "log out",
+                                       "quit",
+                                       "close",
+                                       "logout"
+                               ],
+                               "grid": 16,
+                               "attrs": []
+                       },
+                       "attrs": [],
+                       "properties": {
+                               "id": 260,
+                               "order": 92,
+                               "prevSize": 32,
+                               "code": 58881,
+                               "name": "exit",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "setId": 1,
+                       "iconIdx": 91
+               }
+       ],
+       "height": 1024,
+       "metadata": {
+               "name": "icomoon"
+       },
+       "preferences": {
+               "fontPref": {
+                       "prefix": "icon-",
+                       "metadata": {
+                               "fontFamily": "icomoon",
+                               "majorVersion": 1,
+                               "minorVersion": 0
+                       },
+                       "showGlyphs": true,
+                       "metrics": {
+                               "emSize": 512,
+                               "baseline": 6.25,
+                               "whitespace": 50
+                       },
+                       "resetPoint": 58880,
+                       "showQuickUse": true,
+                       "quickUsageToken": false,
+                       "showMetrics": true,
+                       "showMetadata": true,
+                       "ie7": false,
+                       "includeMetadata": false,
+                       "embed": false,
+                       "cssVars": false,
+                       "showSelector": true,
+                       "showVersion": true,
+                       "postfix": "",
+                       "selector": "",
+                       "classSelector": ".conversejs"
+               },
+               "imagePref": {
+                       "color": 0,
+                       "height": 32,
+                       "columns": 16,
+                       "margin": 16,
+                       "png": false,
+                       "sprites": true
+               },
+               "historySize": 100,
+               "showCodes": true,
+               "gridSize": 16,
+               "showLiga": true,
+               "showGrid": true,
+               "showGlyphs": true,
+               "showQuickUse": true,
+               "search": "",
+               "showQuickUse2": true,
+               "showSVGs": true
+       }
+}
\ No newline at end of file
diff --git a/xmpp/converse/fonticons/style.css b/xmpp/converse/fonticons/style.css
new file mode 100644 (file)
index 0000000..692252b
--- /dev/null
@@ -0,0 +1,301 @@
+@font-face {
+       font-family: 'icomoon';
+       src:url('fonts/icomoon.eot?dvaucx');
+       src:url('fonts/icomoon.eot?#iefixdvaucx') format('embedded-opentype'),
+               url('fonts/icomoon.ttf?dvaucx') format('truetype'),
+               url('fonts/icomoon.woff?dvaucx') format('woff'),
+               url('fonts/icomoon.svg?dvaucx#icomoon') format('svg');
+       font-weight: normal;
+       font-style: normal;
+}
+
+[class^="icon-"], [class*=" icon-"] {
+       font-family: 'icomoon';
+       speak: none;
+       font-style: normal;
+       font-weight: normal;
+       font-variant: normal;
+       text-transform: none;
+       line-height: 1;
+
+       /* Better Font Rendering =========== */
+       -webkit-font-smoothing: antialiased;
+       -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-xa:before {
+       content: "\e602";
+}
+.icon-conversejs:before {
+       content: "\e600";
+}
+.icon-closed:before {
+       content: "\25ba";
+}
+.icon-opened:before {
+       content: "\25bc";
+}
+.icon-checkmark:before {
+       content: "\2713";
+}
+.icon-home:before {
+       content: "\e000";
+}
+.icon-pencil:before {
+       content: "\270e";
+}
+.icon-camera:before {
+       content: "\e003";
+}
+.icon-camera-2:before {
+       content: "\2616";
+}
+.icon-play:before {
+       content: "\25d9";
+}
+.icon-music:before {
+       content: "\266b";
+}
+.icon-headphones:before {
+       content: "\266c";
+}
+.icon-phone:before {
+       content: "\260f";
+}
+.icon-phone-hang-up:before {
+       content: "\260e";
+}
+.icon-address-book:before {
+       content: "\270f";
+}
+.icon-notebook:before {
+       content: "\2710";
+}
+.icon-envelop:before {
+       content: "\2709";
+}
+.icon-pushpin:before {
+       content: "\e012";
+}
+.icon-online:before {
+       content: "\25fc";
+}
+.icon-away:before {
+       content: "\25fb";
+}
+.icon-bubbles:before {
+       content: "\e015";
+}
+.icon-bubbles2:before {
+       content: "\e016";
+}
+.icon-bubbles3:before {
+       content: "\e017";
+}
+.icon-user:before {
+       content: "\e01a";
+}
+.icon-hide-users:before {
+       content: "\e01c";
+}
+.icon-show-users:before {
+       content: "\e01e";
+}
+.icon-users:before {
+       content: "\e01b";
+}
+.icon-quotes-left:before {
+       content: "\e01d";
+}
+.icon-spinner:before {
+       content: "\231b";
+}
+.icon-search:before {
+       content: "\e021";
+}
+.icon-cogs:before {
+       content: "\e022";
+}
+.icon-wrench:before {
+       content: "\e024";
+}
+.icon-unlocked:before {
+       content: "\e025";
+}
+.icon-lock:before {
+       content: "\e026";
+}
+.icon-lock-2:before {
+       content: "\e027";
+}
+.icon-key:before {
+       content: "\e028";
+}
+.icon-key-2:before {
+       content: "\e029";
+}
+.icon-zoomout:before {
+       content: "\e02a";
+}
+.icon-zoomin:before {
+       content: "\e02b";
+}
+.icon-cog:before {
+       content: "\e02f";
+}
+.icon-remove:before {
+       content: "\e02d";
+}
+.icon-eye:before {
+       content: "\e030";
+}
+.icon-eye-blocked:before {
+       content: "\e031";
+}
+.icon-attachment:before {
+       content: "\e032";
+}
+.icon-globe:before {
+       content: "\e033";
+}
+.icon-heart:before {
+       content: "\2764";
+}
+.icon-happy:before {
+       content: "\263b";
+}
+.icon-thumbs-up:before {
+       content: "\261d";
+}
+.icon-smiley:before {
+       content: "\263a";
+}
+.icon-tongue:before {
+       content: "\e038";
+}
+.icon-sad:before {
+       content: "\2639";
+}
+.icon-wink:before {
+       content: "\e03a";
+}
+.icon-wondering:before {
+       content: "\2369";
+}
+.icon-confused:before {
+       content: "\2368";
+}
+.icon-shocked:before {
+       content: "\2364";
+}
+.icon-evil:before {
+       content: "\261f";
+}
+.icon-angry:before {
+       content: "\e03f";
+}
+.icon-cool:before {
+       content: "\e040";
+}
+.icon-grin:before {
+       content: "\e041";
+}
+.icon-info:before {
+       content: "\2360";
+}
+.icon-notification:before {
+       content: "\e01f";
+}
+.icon-warning:before {
+       content: "\26a0";
+}
+.icon-spell-check:before {
+       content: "\e045";
+}
+.icon-volume-high:before {
+       content: "\e046";
+}
+.icon-volume-medium:before {
+       content: "\e047";
+}
+.icon-volume-low:before {
+       content: "\e048";
+}
+.icon-volume-mute:before {
+       content: "\e049";
+}
+.icon-volume-mute2:before {
+       content: "\e04a";
+}
+.icon-volume-decrease:before {
+       content: "\e04b";
+}
+.icon-volume-increase:before {
+       content: "\e04c";
+}
+.icon-bold:before {
+       content: "\e04d";
+}
+.icon-underline:before {
+       content: "\e04e";
+}
+.icon-italic:before {
+       content: "\e04f";
+}
+.icon-strikethrough:before {
+       content: "\e050";
+}
+.icon-newtab:before {
+       content: "\e053";
+}
+.icon-youtube:before {
+       content: "\e055";
+}
+.icon-close:before {
+       content: "\2715";
+}
+.icon-blocked:before {
+       content: "\2718";
+}
+.icon-cancel-circle:before {
+       content: "\e058";
+}
+.icon-minus:before {
+       content: "\e05a";
+}
+.icon-plus:before {
+       content: "\271a";
+}
+.icon-checkbox-checked:before {
+       content: "\2611";
+}
+.icon-checkbox-unchecked:before {
+       content: "\2b27";
+}
+.icon-checkbox-partial:before {
+       content: "\2b28";
+}
+.icon-radio-checked:before {
+       content: "\2b26";
+}
+.icon-radio-unchecked:before {
+       content: "\2b25";
+}
+.icon-room-info:before {
+       content: "\e059";
+}
+.icon-newspaper:before {
+       content: "\e001";
+}
+.icon-image:before {
+       content: "\2b14";
+}
+.icon-offline:before {
+       content: "\e002";
+}
+.icon-busy:before {
+       content: "\e004";
+}
+.icon-exit:before {
+       content: "\e601";
+}
diff --git a/xmpp/converse/sounds/README b/xmpp/converse/sounds/README
new file mode 100644 (file)
index 0000000..d2b2466
--- /dev/null
@@ -0,0 +1,5 @@
+Sound credit:
+=============
+
+Message received notification sound by Alastair Cameron
+https://www.freesound.org/people/cameronmusic
diff --git a/xmpp/converse/sounds/msg_received.mp3 b/xmpp/converse/sounds/msg_received.mp3
new file mode 100644 (file)
index 0000000..b68cc1c
Binary files /dev/null and b/xmpp/converse/sounds/msg_received.mp3 differ
diff --git a/xmpp/converse/sounds/msg_received.ogg b/xmpp/converse/sounds/msg_received.ogg
new file mode 100644 (file)
index 0000000..0ea653e
Binary files /dev/null and b/xmpp/converse/sounds/msg_received.ogg differ
diff --git a/xmpp/templates/admin.tpl b/xmpp/templates/admin.tpl
new file mode 100644 (file)
index 0000000..29987c4
--- /dev/null
@@ -0,0 +1,3 @@
+{{include file="field_input.tpl" field=$bosh_proxy}}
+{{include file="field_checkbox.tpl" field=$central_userbase}}
+<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
diff --git a/xmpp/xmpp.php b/xmpp/xmpp.php
new file mode 100644 (file)
index 0000000..7ac7eb3
--- /dev/null
@@ -0,0 +1,179 @@
+<?php
+/**
+ * Name: XMPP (Jabber)
+ * Description: Embedded XMPP (Jabber) client
+ * Version: 0.1
+ * Author: Michael Vogel <https://pirati.ca/profile/heluecht>
+ */
+
+function xmpp_install() {
+       register_hook('page_end', 'addon/xmpp/xmpp.php', 'xmpp_script');
+       register_hook('logged_in', 'addon/xmpp/xmpp.php', 'xmpp_login');
+}
+
+function xmpp_uninstall() {
+       unregister_hook('page_end', 'addon/xmpp/xmpp.php', 'xmpp_script');
+       unregister_hook('logged_in', 'addon/xmpp/xmpp.php', 'xmpp_login');
+}
+
+function xmpp_login($a,$b) {
+       if (!$_SESSION["allow_api"]) {
+               $password = substr(random_string(),0,16);
+               set_pconfig(local_user(), "xmpp", "password", $password);
+       }
+}
+
+function xmpp_plugin_admin(&$a, &$o){
+        $t = get_markup_template("admin.tpl", "addon/xmpp/");
+
+        $o = replace_macros($t, array(
+                '$submit' => t('Save Settings'),
+                '$bosh_proxy'       => array('bosh_proxy', t('BOSH proxy'),            get_config('xmpp', 'bosh_proxy'), ''),
+                '$central_userbase' => array('central_userbase', t('Use central userbase'), get_config('xmpp', 'central_userbase'), t('If enabled, users will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the "auth_ejabberd.php" script.')),
+        ));
+}
+
+function xmpp_plugin_admin_post(&$a){
+        $bosh_proxy       = ((x($_POST,'bosh_proxy')) ?       trim($_POST['bosh_proxy']) : '');
+        $central_userbase = ((x($_POST,'central_userbase')) ? intval($_POST['central_userbase']) : false);
+        set_config('xmpp','bosh_proxy',$bosh_proxy);
+        set_config('xmpp','central_userbase',$central_userbase);
+        info( t('Settings updated.'). EOL );
+}
+
+function xmpp_script(&$a,&$s) {
+       xmpp_converse($a,$s);
+       //xmpp_jappix($a,$s);
+}
+
+function xmpp_converse(&$a,&$s) {
+       if (!local_user())
+               return;
+
+       if ($_GET["mode"] == "minimal")
+               return;
+
+       $a->page['htmlhead'] .= '<link type="text/css" rel="stylesheet" media="screen" href="addon/xmpp/converse/css/converse.css" />'."\n";
+       $a->page['htmlhead'] .= '<script src="addon/xmpp/converse/builds/converse.min.js"></script>'."\n";
+
+       $bosh_proxy = get_config("xmpp", "bosh_proxy");
+
+       if (get_config("xmpp", "central_userbase")) {
+               $password = get_pconfig(local_user(), "xmpp", "password");
+
+               if ($password == "") {
+                       $password = substr(random_string(),0,16);
+                       set_pconfig(local_user(), "xmpp", "password", $password);
+               }
+
+               $jid = $a->user["nickname"]."@".$a->get_hostname()."/converse-".substr(random_string(),0,5);;
+
+               $auto_login = "auto_login: true,
+                       authentication: 'login',
+                       jid: '$jid',
+                       password: '$password',
+                       allow_logout: true,
+                       auto_list_rooms: true,";
+       } else
+               $auto_login = "";
+
+       if (in_array($a->argv[0], array("manage", "logout")))
+               $additional_commands = "converse.user.logout();\n";
+       else
+               $additional_commands = "";
+
+       $on_ready = "";
+       //$on_ready = "converse.rooms.open(['support@conference.pirati.ca']);\n";
+
+//  converse.contacts.add('ike@jabber.piratenpartei.de');
+
+       $initialize = "converse.initialize({
+                                       bosh_service_url: '$bosh_proxy',
+                                       keepalive: true,
+                                       message_carbons: false,
+                                       forward_messages: false,
+                                       play_sounds: true,
+                                       sounds_path: 'addon/xmpp/converse/sounds/',
+                                       roster_groups: false,
+                                       show_controlbox_by_default: false,
+                                       show_toolbar: true,
+                                       allow_contact_removal: false,
+                                       allow_registration: false,
+                                       hide_offline_users: true,
+                                       allow_chat_pending_contacts: false,
+                                       allow_dragresize: true,
+                                       auto_away: 0,
+                                       auto_xa: 0,
+                                       csi_waiting_time: 300,
+                                       auto_reconnect: true,
+                                       $auto_login
+                                       xhr_user_search: false
+                               });\n";
+
+       $a->page['htmlhead'] .= "<script>
+                                       require(['converse'], function (converse) {
+                                               $initialize
+                                               converse.listen.on('ready', function (event) {
+                                                       $on_ready
+                                               });
+                                               $additional_commands
+                                       });
+                               </script>";
+}
+
+function xmpp_jappix(&$a,&$s) {
+       if (!local_user())
+               return;
+
+       if ($_GET["mode"] == "minimal")
+               return;
+
+       $bosh_proxy = get_config("xmpp", "bosh_proxy");
+
+       if (get_config("xmpp", "central_userbase")) {
+               $password = get_pconfig(local_user(), "xmpp", "password");
+
+               if ($password == "") {
+                       $password = substr(random_string(),0,16);
+                       set_pconfig(local_user(), "xmpp", "password", $password);
+               }
+
+               $user = $a->user["nickname"];
+               $domain = $a->get_hostname();
+
+               $auto_login = "auto_login: true,
+                       authentication: 'login',
+                       jid: '$jid',
+                       password: '$password',
+                       allow_logout: false,";
+       } else
+               $auto_login = "";
+
+       //$a->page['htmlhead'] .= "<script type='text/javascript' src='//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>";
+
+       $a->page['htmlhead'] .= "<script type='text/javascript' src='addon/xmpp/jappix/javascripts/mini.js'></script>
+                                       <script type='text/javascript'>
+                                               jQuery(document).ready(function() {
+                                                       JAPPIX_STATIC = 'addon/xmpp/jappix/';
+                                                       HOST_BOSH = '$bosh_proxy'
+
+                                                       JappixMini.launch({
+                                                          connection: {
+                                                            user: '$user',
+                                                            password: '$password',
+                                                            domain: '$domain'
+                                                          },
+                                                          application: {
+                                                            network: {
+                                                              autoconnect: true
+                                                            },
+                                                            interface: {
+                                                              showpane: false
+                                                            }
+                                                          }
+                                                       });
+                                               });
+                               </script>";
+}
+
+?>