PageSourceSearch

https://pbx.io/portal/js/basicJS.php?version=1766098087&ver=44.4.6

js pbx.io collected 2026-10-08 11:49:16 UTC 3,103,189 bytes, 31,983 lines download raw bytes

1(function() {
2
3	var dfs = {"am_pm":["AM","PM"],"day_name":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"day_short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"era":["BC","AD"],"era_name":["Before Christ","Anno Domini"],"month_name":["January","February","March","April","May","June","July","August","September","October","November","December"],"month_short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"order_full":"MDY","order_long":"MDY","order_medium":"MDY","order_short":"MDY"};
4	var nfs = {"decimal_separator":".","grouping_separator":",","minus":"-"};
5	var df = {SHORT_PADDED_CENTURY:function(d){if(d){return(((d.getMonth()+101)+'').substring(1)+'/'+((d.getDate()+101)+'').substring(1)+'/'+d.getFullYear());}},SHORT:function(d){if(d){return((d.getMonth()+1)+'/'+d.getDate()+'/'+(d.getFullYear()+'').substring(2));}},SHORT_NOYEAR:function(d){if(d){return((d.getMonth()+1)+'/'+d.getDate());}},SHORT_NODAY:function(d){if(d){return((d.getMonth()+1)+' '+(d.getFullYear()+'').substring(2));}},MEDIUM:function(d){if(d){return(dfs.month_short[d.getMonth()]+' '+d.getDate()+','+' '+d.getFullYear());}},MEDIUM_NOYEAR:function(d){if(d){return(dfs.month_short[d.getMonth()]+' '+d.getDate());}},MEDIUM_WEEKDAY_NOYEAR:function(d){if(d){return(dfs.day_short[d.getDay()]+' '+dfs.month_short[d.getMonth()]+' '+d.getDate());}},LONG_NODAY:function(d){if(d){return(dfs.month_name[d.getMonth()]+' '+d.getFullYear());}},LONG:function(d){if(d){return(dfs.month_name[d.getMonth()]+' '+d.getDate()+','+' '+d.getFullYear());}},FULL:function(d){if(d){return(dfs.day_name[d.getDay()]+','+' '+dfs.month_name[d.getMonth()]+' '+d.getDate()+','+' '+d.getFullYear());}}};
6	
7	window.icu = window.icu || new Object();
8	var icu = window.icu;	
9		
10	icu.getCountry = function() { return "US" };
11	icu.getCountryName = function() { return "United States" };
12	icu.getDateFormat = function(formatCode) { var retVal = {}; retVal.format = df[formatCode]; return retVal; };
13	icu.getDateFormats = function() { return df; };
14	icu.getDateFormatSymbols = function() { return dfs; };
15	icu.getDecimalFormat = function(places) { var retVal = {}; retVal.format = function(n) { var ns = n < 0 ? Math.abs(n).toFixed(places) : n.toFixed(places); var ns2 = ns.split('.'); s = ns2[0]; var d = ns2[1]; var rgx = /(\d+)(\d{3})/;while(rgx.test(s)){s = s.replace(rgx, '$1' + nfs["grouping_separator"] + '$2');} return (n < 0 ? nfs["minus"] : "") + s + nfs["decimal_separator"] + d;}; return retVal; };
16	icu.getDecimalFormatSymbols = function() { return nfs; };
17	icu.getIntegerFormat = function() { var retVal = {}; retVal.format = function(i) { var s = i < 0 ? Math.abs(i).toString() : i.toString(); var rgx = /(\d+)(\d{3})/;while(rgx.test(s)){s = s.replace(rgx, '$1' + nfs["grouping_separator"] + '$2');} return i < 0 ? nfs["minus"] + s : s;}; return retVal; };
18	icu.getLanguage = function() { return "en" };
19	icu.getLanguageName = function() { return "English" };
20	icu.getLocale = function() { return "en-US" };
21	icu.getLocaleName = function() { return "English (United States)" };
22
23})();
24�(function() {
25
26	var translate = function(text)
27	{
28		var xlate = translateLookup(text);
29		
30		if (typeof xlate == "function")
31		{
32			xlate = xlate.apply(this, arguments);
33		}
34		else if (arguments.length > 1)
35		{
36			var aps = Array.prototype.slice;
37			var args = aps.call( arguments, 1 );
38  
39			xlate = formatter(xlate, args);
40		}
41		
42		return xlate;
43	};
44	
45	// I want it available explicity as well as via the object
46	translate.translate = translate;
47	
48	//from https://gist.github.com/776196 via http://davedash.com/2010/11/19/pythonic-string-formatting-in-javascript/ 
49	var defaultFormatter = (function() {
50		var re = /\{([^}]+)\}/g;
51		return function(s, args) {
52			return s.replace(re, function(_, match){ return args[match]; });
53		}
54	}());
55	var formatter = defaultFormatter;
56	translate.setFormatter = function(newFormatter)
57	{
58		formatter = newFormatter;
59	};
60	
61	translate.format = function()
62	{
63		var aps = Array.prototype.slice;
64		var s = arguments[0];
65		var args = aps.call( arguments, 1 );
66  
67		return formatter(s, args);
68	};
69
70	var dynoTrans = null;
71	translate.setDynamicTranslator = function(newDynoTrans)
72	{
73		dynoTrans = newDynoTrans;
74	};
75
76	var translation = null;
77	translate.setTranslation = function(newTranslation)
78	{
79		translation = newTranslation;
80	};
81	
82	function translateLookup(target)
83	{
84		if (translation == null || target == null)
85		{
86			return target;
87		}
88		
89		if (target in translation == false)
90		{
91			if (dynoTrans != null)
92			{
93				return dynoTrans(target);
94			}
95			return target;
96		}
97		
98		var result = translation[target];
99		if (result == null)
100		{
101			return target;
102		}
103		
104		return result;
105	};
106	
107	window._ = translate;
108
109})();
110
111�if(typeof i18nJSON !== 'undefined'  && i18nJSON ) {
112  _.setTranslation(i18nJSON);
113} else {
114  console.log('i18nJSON is not available. Translation of JavaScript strings will fail.');
115}
116
117�!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t),e=(n>>16)+(t>>16)+(r>>16);return e<<16|65535&r}function r(n,t){return n<<t|n>>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<<r%32,n[(r+64>>>9<<4)+14]=r;var e,i,a,h,d,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e<n.length;e+=16)i=l,a=g,h=v,d=m,l=o(l,g,v,m,n[e],7,-680876936),m=o(m,l,g,v,n[e+1],12,-389564586),v=o(v,m,l,g,n[e+2],17,606105819),g=o(g,v,m,l,n[e+3],22,-1044525330),l=o(l,g,v,m,n[e+4],7,-176418897),m=o(m,l,g,v,n[e+5],12,1200080426),v=o(v,m,l,g,n[e+6],17,-1473231341),g=o(g,v,m,l,n[e+7],22,-45705983),l=o(l,g,v,m,n[e+8],7,1770035416),m=o(m,l,g,v,n[e+9],12,-1958414417),v=o(v,m,l,g,n[e+10],17,-42063),g=o(g,v,m,l,n[e+11],22,-1990404162),l=o(l,g,v,m,n[e+12],7,1804603682),m=o(m,l,g,v,n[e+13],12,-40341101),v=o(v,m,l,g,n[e+14],17,-1502002290),g=o(g,v,m,l,n[e+15],22,1236535329),l=u(l,g,v,m,n[e+1],5,-165796510),m=u(m,l,g,v,n[e+6],9,-1069501632),v=u(v,m,l,g,n[e+11],14,643717713),g=u(g,v,m,l,n[e],20,-373897302),l=u(l,g,v,m,n[e+5],5,-701558691),m=u(m,l,g,v,n[e+10],9,38016083),v=u(v,m,l,g,n[e+15],14,-660478335),g=u(g,v,m,l,n[e+4],20,-405537848),l=u(l,g,v,m,n[e+9],5,568446438),m=u(m,l,g,v,n[e+14],9,-1019803690),v=u(v,m,l,g,n[e+3],14,-187363961),g=u(g,v,m,l,n[e+8],20,1163531501),l=u(l,g,v,m,n[e+13],5,-1444681467),m=u(m,l,g,v,n[e+2],9,-51403784),v=u(v,m,l,g,n[e+7],14,1735328473),g=u(g,v,m,l,n[e+12],20,-1926607734),l=c(l,g,v,m,n[e+5],4,-378558),m=c(m,l,g,v,n[e+8],11,-2022574463),v=c(v,m,l,g,n[e+11],16,1839030562),g=c(g,v,m,l,n[e+14],23,-35309556),l=c(l,g,v,m,n[e+1],4,-1530992060),m=c(m,l,g,v,n[e+4],11,1272893353),v=c(v,m,l,g,n[e+7],16,-155497632),g=c(g,v,m,l,n[e+10],23,-1094730640),l=c(l,g,v,m,n[e+13],4,681279174),m=c(m,l,g,v,n[e],11,-358537222),v=c(v,m,l,g,n[e+3],16,-722521979),g=c(g,v,m,l,n[e+6],23,76029189),l=c(l,g,v,m,n[e+9],4,-640364487),m=c(m,l,g,v,n[e+12],11,-421815835),v=c(v,m,l,g,n[e+15],16,530742520),g=c(g,v,m,l,n[e+2],23,-995338651),l=f(l,g,v,m,n[e],6,-198630844),m=f(m,l,g,v,n[e+7],10,1126891415),v=f(v,m,l,g,n[e+14],15,-1416354905),g=f(g,v,m,l,n[e+5],21,-57434055),l=f(l,g,v,m,n[e+12],6,1700485571),m=f(m,l,g,v,n[e+3],10,-1894986606),v=f(v,m,l,g,n[e+10],15,-1051523),g=f(g,v,m,l,n[e+1],21,-2054922799),l=f(l,g,v,m,n[e+8],6,1873313359),m=f(m,l,g,v,n[e+15],10,-30611744),v=f(v,m,l,g,n[e+6],15,-1560198380),g=f(g,v,m,l,n[e+13],21,1309151649),l=f(l,g,v,m,n[e+4],
1176,-145523070),m=f(m,l,g,v,n[e+11],10,-1120210379),v=f(v,m,l,g,n[e+2],15,718787259),g=f(g,v,m,l,n[e+9],21,-343485551),l=t(l,i),g=t(g,a),v=t(v,h),m=t(m,d);return[l,g,v,m]}function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCharCode(n[t>>5]>>>t%32&255);return r}function h(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+=1)r[t]=0;var e=8*n.length;for(t=0;t<e;t+=8)r[t>>5]|=(255&n.charCodeAt(t/8))<<t%32;return r}function d(n){return a(i(h(n),8*n.length))}function l(n,t){var r,e,o=h(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length>16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(h(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="0123456789abcdef",o="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),o+=e.charAt(t>>>4&15)+e.charAt(15&t);return o}function v(n){return unescape(encodeURIComponent(n))}function m(n){return d(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}"function"==typeof define&&define.amd?define(function(){return A}):"object"==typeof module&&module.exports?module.exports=A:n.md5=A}(this);
118
119�/*!
120 * Socket.IO v4.8.1
121 * (c) 2014-2024 Guillermo Rauch
122 * Released under the MIT License.
123 */
124!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).io=n()}(this,(function(){"use strict";function t(t,n){(null==n||n>t.length)&&(n=t.length);for(var i=0,r=Array(n);i<n;i++)r[i]=t[i];return r}function n(t,n){for(var i=0;i<n.length;i++){var r=n[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,f(r.key),r)}}function i(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function r(n,i){var r="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!r){if(Array.isArray(n)||(r=function(n,i){if(n){if("string"==typeof n)return t(n,i);var r={}.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(n,i):void 0}}(n))||i&&n&&"number"==typeof n.length){r&&(n=r);var e=0,o=function(){};return{s:o,n:function(){return e>=n.length?{done:!0}:{done:!1,value:n[e++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,u=!0,h=!1;return{s:function(){r=r.call(n)},n:function(){var t=r.next();return u=t.done,t},e:function(t){h=!0,s=t},f:function(){try{u||null==r.return||r.return()}finally{if(h)throw s}}}}function e(){return e=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var i=arguments[n];for(var r in i)({}).hasOwnProperty.call(i,r)&&(t[r]=i[r])}return t},e.apply(null,arguments)}function o(t){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},o(t)}function s(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,h(t,n)}function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}function h(t,n){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},h(t,n)}function f(t){var n=function(t,n){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var r=i.call(t,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"==typeof n?n:n+""}function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function a(t){var n="function"==typeof Map?new Map:void 0;return a=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(n){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");
vendor: 6,399 bytes, line 124
124if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,i)}function i(){return function(t,n,i){if(u())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,n);var e=new(t.bind.apply(t,r));return i&&h(e,i.prototype),e}(t,arguments,o(this).constructor)}return i.prototype=Object.create(t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),h(i,t)},a(t)}var v=Object.create(null);v.open="0",v.close="1",v.ping="2",v.pong="3",v.message="4",v.upgrade="5",v.noop="6";var l=Object.create(null);Object.keys(v).forEach((function(t){l[v[t]]=t}));var p,d={type:"error",data:"parser error"},y="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),b="function"==typeof ArrayBuffer,w=function(t){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer},g=function(t,n,i){var r=t.type,e=t.data;return y&&e instanceof Blob?n?i(e):m(e,i):b&&(e instanceof ArrayBuffer||w(e))?n?i(e):m(new Blob([e]),i):i(v[r]+(e||""))},m=function(t,n){var i=new FileReader;return i.onload=function(){var t=i.result.split(",")[1];n("b"+(t||""))},i.readAsDataURL(t)};function k(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}for(var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",j="undefined"==typeof Uint8Array?[]:new Uint8Array(256),E=0;E<64;E++)j[A.charCodeAt(E)]=E;var O,B="function"==typeof ArrayBuffer,S=function(t,n){if("string"!=typeof t)return{type:"message",data:C(t,n)};var i=t.charAt(0);return"b"===i?{type:"message",data:N(t.substring(1),n)}:l[i]?t.length>1?{type:l[i],data:t.substring(1)}:{type:l[i]}:d},N=function(t,n){if(B){var i=function(t){var n,i,r,e,o,s=.75*t.length,u=t.length,h=0;"="===t[t.length-1]&&(s--,"="===t[t.length-2]&&s--);var f=new ArrayBuffer(s),c=new Uint8Array(f);for(n=0;n<u;n+=4)i=j[t.charCodeAt(n)],r=j[t.charCodeAt(n+1)],e=j[t.charCodeAt(n+2)],o=j[t.charCodeAt(n+3)],c[h++]=i<<2|r>>4,c[h++]=(15&r)<<4|e>>2,c[h++]=(3&e)<<6|63&o;return f}(t);return C(i,n)}return{base64:!0,data:t}},C=function(t,n){return"blob"===n?t instanceof Blob?t:new Blob([t]):t instanceof ArrayBuffer?t:t.buffer},T=String.fromCharCode(30);function U(){return new TransformStream({transform:function(t,n){!function(t,n){y&&t.data instanceof Blob?t.data.arrayBuffer().then(k).then(n):b&&(t.data instanceof ArrayBuffer||w(t.data))?n(k(t.data)):g(t,!1,(function(t){p||(p=new TextEncoder),n(p.encode(t))}))}(t,(function(i){var r,e=i.length;if(e<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,e);else if(e<65536){r=new Uint8Array(3);var o=new DataView(r.buffer);o.setUint8(0,126),o.setUint16(1,e)}else{r=new Uint8Array(9);var s=new DataView(r.buffer);s.setUint8(0,127),s.setBigUint64(1,BigInt(e))}t.data&&"string"!=typeof t.data&&(r[0]|=128),n.enqueue(r),n.enqueue(i)}))}})}function M(t){return t.reduce((function(t,n){return t+n.length}),0)}function x(t,n){if(t[0].length===n)return t.shift();for(var i=new Uint8Array(n),r=0,e=0;e<n;e++)i[e]=t[0][r++],r===t[0].length&&(t.shift(),r=0);return t.length&&r<t[0].length&&(t[0]=t[0].slice(r)),i}function I(t){if(t)return function(t){for(var n in I.prototype)t[n]=I.prototype[n];return t}(t)}I.prototype.on=I.prototype.addEventListener=function(t,n){return this.t=this.t||{},(this.t["$"+t]=this.t["$"+t]||[]).push(n),this},I.prototype.once=function(t,n){function i(){this.off(t,i),n.apply(this,arguments)}return i.fn=n,this.on(t,i),this},I.prototype.off=I.prototype.removeListener=I.prototype.removeAllListeners=I.prototype.removeEventListener=function(t,n){if(this.t=this.t||{},0==arguments.length)return this.t={},this;var i,r=this.t["$"+t];if(!r)return this;if(1==arguments.length)return delete this.t["$"+t],this;for(var e=0;e<r.length;e++)if((i=r[e])===n||i.fn===n){r.splice(e,1);break}return 0===r.length&&delete this.t["$"+t],this},I.prototype.emit=function(t){this.t=this.t||{};for(var n=new Array(arguments.length-1),i=this.t["$"+t],r=1;r<arguments.length;r++)n[r-1]=arguments[r];if(i){r=0;for(var e=(i=i.slice(0)).length;r<e;++r)i[r].apply(this,n)}return this},I.prototype.emitReserved=I.prototype.emit,I.prototype.listeners=function(t){return this.t=this.t||{},this.t["$"+t]||[]},I.prototype.hasListeners=function(t){return!!this.listeners(t).length};var R="function"==typeof Promise&&"function"==typeof Promise.resolve?function(t){return Promise.resolve().then(t)}:function(t,n){return n(t,0)},L="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")();function _(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return i.reduce((function(n,i){return t.hasOwnProperty(i)&&(n[i]=t[i]),n}),{})}var D=L.setTimeout,P=L.clearTimeout;function $(t,n){n.useNativeTimers?(t.setTimeoutFn=D.bind(L),t.clearTimeoutFn=P.bind(L)):(t.setTimeoutFn=L.setTimeout.bind(L),t.clearTimeoutFn=L.clearTimeout.bind(L))}function F(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var V=function(t){function n(n,i,r){var e;return(e=t.call(this,n)||this).description=i,e.context=r,e.type="TransportError",e}return s(n,t),n}(a(Error)),q=function(t){function n(n){var i;return(i=t.call(this)||this).writable=!1,$(i,n),i.opts=n,i.query=n.query,i.socket=n.socket,i.supportsBinary=!n.forceBase64,i}s(n,t);var i=n.prototype;return i.onError=function(n,i,r){return t.prototype.emitReserved.call(this,"error",new V(n,i,r)),this},i.open=function(){return this.readyState="opening",this.doOpen(),this},i.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},i.send=function(t){"open"===this.readyState&&this.write(t)},i.onOpen=function(){this.readyState="open",this.writable=!0,t.prototype.emitReserved.call(this,"open")},i.onData=function(t){var n=S(t,this.socket.binaryType);this.onPacket(n)},i.onPacket=function(n){t.prototype.emitReserved.call(this,"packet",n)},i.onClose=function(n){this.readyState="closed",t.prototype.emitReserved.call(this,"close",n)},i.pause=function(t){},i.createUri=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t+"://"+this.i()+this.o()+this.opts.path+this.u(n)},i.i=function(){var t=this.opts.hostname;return-1===t.indexOf(":")?t:"["+t+"]"},i.o=function(){return this.opts.port&&(this.opts.secure&&Number(443!==
vendor: 26,880 bytes, line 124
124this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""},i.u=function(t){var n=function(t){var n="";for(var i in t)t.hasOwnProperty(i)&&(n.length&&(n+="&"),n+=encodeURIComponent(i)+"="+encodeURIComponent(t[i]));return n}(t);return n.length?"?"+n:""},n}(I),X=function(t){function n(){var n;return(n=t.apply(this,arguments)||this).h=!1,n}s(n,t);var r=n.prototype;return r.doOpen=function(){this.v()},r.pause=function(t){var n=this;this.readyState="pausing";var i=function(){n.readyState="paused",t()};if(this.h||!this.writable){var r=0;this.h&&(r++,this.once("pollComplete",(function(){--r||i()}))),this.writable||(r++,this.once("drain",(function(){--r||i()})))}else i()},r.v=function(){this.h=!0,this.doPoll(),this.emitReserved("poll")},r.onData=function(t){var n=this;(function(t,n){for(var i=t.split(T),r=[],e=0;e<i.length;e++){var o=S(i[e],n);if(r.push(o),"error"===o.type)break}return r})(t,this.socket.binaryType).forEach((function(t){if("opening"===n.readyState&&"open"===t.type&&n.onOpen(),"close"===t.type)return n.onClose({description:"transport closed by the server"}),!1;n.onPacket(t)})),"closed"!==this.readyState&&(this.h=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.v())},r.doClose=function(){var t=this,n=function(){t.write([{type:"close"}])};"open"===this.readyState?n():this.once("open",n)},r.write=function(t){var n=this;this.writable=!1,function(t,n){var i=t.length,r=new Array(i),e=0;t.forEach((function(t,o){g(t,!1,(function(t){r[o]=t,++e===i&&n(r.join(T))}))}))}(t,(function(t){n.doWrite(t,(function(){n.writable=!0,n.emitReserved("drain")}))}))},r.uri=function(){var t=this.opts.secure?"https":"http",n=this.query||{};return!1!==this.opts.timestampRequests&&(n[this.opts.timestampParam]=F()),this.supportsBinary||n.sid||(n.b64=1),this.createUri(t,n)},i(n,[{key:"name",get:function(){return"polling"}}])}(q),H=!1;try{H="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){}var z=H;function J(){}var K=function(t){function n(n){var i;if(i=t.call(this,n)||this,"undefined"!=typeof location){var r="https:"===location.protocol,e=location.port;e||(e=r?"443":"80"),i.xd="undefined"!=typeof location&&n.hostname!==location.hostname||e!==n.port}return i}s(n,t);var i=n.prototype;return i.doWrite=function(t,n){var i=this,r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(function(t,n){i.onError("xhr post error",t,n)}))},i.doPoll=function(){var t=this,n=this.request();n.on("data",this.onData.bind(this)),n.on("error",(function(n,i){t.onError("xhr poll error",n,i)})),this.pollXhr=n},n}(X),Y=function(t){function n(n,i,r){var e;return(e=t.call(this)||this).createRequest=n,$(e,r),e.l=r,e.p=r.method||"GET",e.m=i,e.k=void 0!==r.data?r.data:null,e.A(),e}s(n,t);var i=n.prototype;return i.A=function(){var t,i=this,r=_(this.l,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");r.xdomain=!!this.l.xd;var e=this.j=this.createRequest(r);try{e.open(this.p,this.m,!0);try{if(this.l.extraHeaders)for(var o in e.setDisableHeaderCheck&&e.setDisableHeaderCheck(!0),this.l.extraHeaders)this.l.extraHeaders.hasOwnProperty(o)&&e.setRequestHeader(o,this.l.extraHeaders[o])}catch(t){}if("POST"===this.p)try{e.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(t){}try{e.setRequestHeader("Accept","*/*")}catch(t){}null===(t=this.l.cookieJar)||void 0===t||t.addCookies(e),"withCredentials"in e&&(e.withCredentials=this.l.withCredentials),this.l.requestTimeout&&(e.timeout=this.l.requestTimeout),e.onreadystatechange=function(){var t;3===e.readyState&&(null===(t=i.l.cookieJar)||void 0===t||t.parseCookies(e.getResponseHeader("set-cookie"))),4===e.readyState&&(200===e.status||1223===e.status?i.O():i.setTimeoutFn((function(){i.B("number"==typeof e.status?e.status:0)}),0))},e.send(this.k)}catch(t){return void this.setTimeoutFn((function(){i.B(t)}),0)}"undefined"!=typeof document&&(this.S=n.requestsCount++,n.requests[this.S]=this)},i.B=function(t){this.emitReserved("error",t,this.j),this.N(!0)},i.N=function(t){if(void 0!==this.j&&null!==this.j){if(this.j.onreadystatechange=J,t)try{this.j.abort()}catch(t){}"undefined"!=typeof document&&delete n.requests[this.S],this.j=null}},i.O=function(){var t=this.j.responseText;null!==t&&(this.emitReserved("data",t),this.emitReserved("success"),this.N())},i.abort=function(){this.N()},n}(I);if(Y.requestsCount=0,Y.requests={},"undefined"!=typeof document)if("function"==typeof attachEvent)attachEvent("onunload",G);else if("function"==typeof addEventListener){addEventListener("onpagehide"in L?"pagehide":"unload",G,!1)}function G(){for(var t in Y.requests)Y.requests.hasOwnProperty(t)&&Y.requests[t].abort()}var Q,W=(Q=tt({xdomain:!1}))&&null!==Q.responseType,Z=function(t){function n(n){var i;i=t.call(this,n)||this;var r=n&&n.forceBase64;return i.supportsBinary=W&&!r,i}return s(n,t),n.prototype.request=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e(t,{xd:this.xd},this.opts),new Y(tt,this.uri(),t)},n}(K);function tt(t){var n=t.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!n||z))return new XMLHttpRequest}catch(t){}if(!n)try{return new(L[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(t){}}var nt="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),it=function(t){function n(){return t.apply(this,arguments)||this}s(n,t);var r=n.prototype;return r.doOpen=function(){var t=this.uri(),n=this.opts.protocols,i=nt?{}:_(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(i.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,i)}catch(t){return this.emitReserved("error",t)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()},r.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.opts.autoUnref&&t.ws.C.unref(),t.onOpen()},this.ws.onclose=function(n){return t.onClose({description:"websocket connection closed",context:n})},this.ws.onmessage=function(n){return t.onData(n.data)},this.ws.onerror=function(n){return t.onError("websocket error",n)}},r.write=function(t){var n=this;this.writable=!1;for(var i=function(){var i=t[r],e=r===t.length-1;g(i,n.supportsBinary,(function(t){try{n.doWrite(i,t)}catch(t){}e&&R((function(){n.writable=!0,n.emitReserved("drain")}),n.setTimeoutFn)}))},r=0;r<t.length;r++)i()},r.doClose=function(){void 0!==this.ws&&(this.ws.onerror=function(){},this.ws.close(),this.ws=null)},r.uri=function(){var t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=F()),this.supportsBinary||(n.b64=1),this.createUri(t,n)},i(n,[{key:"name",get:function(){return"websocket"}}])}(q),rt=L.WebSocket||L.MozWebSocket,et=function(t){function n(){return t.apply(this,arguments)||this}s(n,t);var i=n.prototype;return i.createSocket=function(t,n,i){return nt?new rt(t,n,i):n?new rt(t,n):new rt(t)},i.doWrite=function(t,n){this.ws.send(n)},n}(it),ot=function(t){function n(){return t.apply(this,arguments)||this}s(n,t);var r=n.prototype;return r.doOpen=function(){var t=this;try{this.T=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this.T.closed.then((function(){t.onClose()})).catch((function(n){t.onError("webtransport error",n)})),this.T.ready.then((function(){t.T.createBidirectionalStream().then((function(n){var i=function(t,n){O||(O=new TextDecoder);var i=[],r=0,e=-1,o=!1;return new TransformStream({transform:function(s,u){for(i.push(s);;){if(0===r){if(M(i)<1)break;var h=x(i,1);o=!(128&~h[0]),e=127&h[0],r=e<126?3:126===e?1:2}else if(1===r){if(M(i)<2)break;var f=x(i,2);e=new DataView(f.buffer,f.byteOffset,f.length).getUint16(0),r=3}else if(2===r){if(M(i)<8)break;var c=x(i,8),a=new DataView(c.buffer,c.byteOffset,c.length),v=a.getUint32(0);if(v>Math.pow(2,21)-1){u.enqueue(d);break}e=v*Math.pow(2,32)+a.getUint32(4),r=3}else{if(M(i)<e)break;var l=x(i,e);u.enqueue(S(o?l:O.decode(l),n)),r=0}if(0===e||e>t){u.enqueue(d);break}}}})}(Number.MAX_SAFE_INTEGER,t.socket.binaryType),r=n.readable.pipeThrough(i).getReader(),e=U();e.readable.pipeTo(n.writable),t.U=e.writable.getWriter();!function n(){r.read().then((function(i){var r=i.done,e=i.value;r||(t.onPacket(e),n())})).catch((function(t){}))}();var o={type:"open"};t.query.sid&&(o.data='{"sid":"'.concat(t.query.sid,'"}')),t.U.write(o).then((function(){return t.onOpen()}))}))}))},r.write=function(t){var n=this;this.writable=!1;for(var i=function(){var i=t[r],e=r===t.length-1;n.U.write(i).then((function(){e&&R((function(){n.writable=!0,n.emitReserved("drain")}),n.setTimeoutFn)}))},r=0;r<t.length;r++)i()},r.doClose=function(){var t;null===(t=this.T)||void 0===t||t.close()},i(n,[{key:"name",get:function(){return"webtransport"}}])}(q),st={websocket:et,webtransport:ot,polling:Z},ut=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,ht=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function ft(t){if(t.length>8e3)throw"URI too long";var n=t,i=t.indexOf("["),r=t.indexOf("]");-1!=i&&-1!=r&&(t=t.substring(0,i)+t.substring(i,r).replace(/:/g,";")+t.substring(r,t.length));for(var e,o,s=ut.exec(t||""),u={},h=14;h--;)u[ht[h]]=s[h]||"";return-1!=i&&-1!=r&&(u.source=n,u.host=u.host.substring(1,u.host.length-1).replace(/;/g,":"),u.authority=u.authority.replace("[","").replace("]","").replace(/;/g,":"),u.ipv6uri=!0),u.pathNames=function(t,n){var i=/\/{2,9}/g,r=n.replace(i,"/").split("/");"/"!=n.slice(0,1)&&0!==n.length||r.splice(0,1);"/"==n.slice(-1)&&r.splice(r.length-1,1);return r}(0,u.path),u.queryKey=(e=u.query,o={},e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(t,n,i){n&&(o[n]=i)})),o),u}var ct="function"==typeof addEventListener&&"function"==typeof removeEventListener,at=[];ct&&addEventListener("offline",(function(){at.forEach((function(t){return t()}))}),!1);var vt=function(t){function n(n,i){var r;if((r=t.call(this)||this).binaryType="arraybuffer",r.writeBuffer=[],r.M=0,r.I=-1,r.R=-1,r.L=-1,r._=1/0,n&&"object"===c(n)&&(i=n,n=null),n){var o=ft(n);i.hostname=o.host,i.secure="https"===o.protocol||"wss"===o.protocol,i.port=o.port,o.query&&(i.query=o.query)}else i.host&&(i.hostname=ft(i.host).host);return $(r,i),r.secure=null!=i.secure?i.secure:"undefined"!=typeof location&&"https:"===location.protocol,i.hostname&&!i.port&&(i.port=r.secure?"443":"80"),r.hostname=i.hostname||("undefined"!=typeof location?location.hostname:"localhost"),r.port=i.port||("undefined"!=typeof location&&location.port?location.port:r.secure?"443":"80"),r.transports=[],r.D={},i.transports.forEach((function(t){var n=t.prototype.name;r.transports.push(n),r.D[n]=t})),r.opts=e({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},i),r.opts.path=r.opts.path.replace(/\/$/,"")+(r.opts.addTrailingSlash?"/":""),"string"==typeof r.opts.query&&(r.opts.query=function(t){for(var n={},i=t.split("&"),r=0,e=i.length;r<e;r++){var o=i[r].split("=");n[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return n}(r.opts.query)),ct&&(r.opts.closeOnBeforeunload&&(r.P=function(){r.transport&&(r.transport.removeAllListeners(),r.transport.close())},addEventListener("beforeunload",r.P,!1)),"localhost"!==r.hostname&&(r.$=function(){r.F("transport close",{description:"network connection lost"})},at.push(r.$))),r.opts.withCredentials&&(r.V=void 0),r.q(),r}s(n,t);var i=n.prototype;return i.createTransport=function(t){var n=e({},this.opts.query);n.EIO=4,n.transport=t,this.id&&(n.sid=this.id);var i=e({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this.D[t](i)},i.q=function(){var t=this;if(0!==this.transports.length){var i=this.opts.rememberUpgrade&&n.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket")?"websocket":this.transports[0];this.readyState="opening";var r=this.createTransport(i);r.open(),this.setTransport(r)}else this.setTimeoutFn((function(){t.emitReserved("error","No transports available")}),0)},i.setTransport=function(t){var n=this;this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this.X.bind(this)).on("packet",this.H.bind(this)).on("error",this.B.bind(this)).on("close",(function(t){return n.F("transport close",t)}))},i.onOpen=function(){this.readyState="open",n.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush()},i.H=function(t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this.J("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this.K();break;case"error":var n=new Error("server error");n.code=t.data,this.B(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data)}},i.onHandshake=function(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this.I=t.pingInterval,this.R=t.pingTimeout,this.L=t.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.K()},i.K=function(){var t=this;this.clearTimeoutFn(this.Y);var n=this.I+this.R;this._=Date.now()+n,this.Y=this.setTimeoutFn((function(){t.F("ping timeout")}),n),this.opts.autoUnref&&this.Y.unref()},i.X=function(){this.writeBuffer.splice(0,this.M),this.M=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()},i.flush=function(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){var t=this.G();this.transport.send(t),this.M=t.length,this.emitReserved("flush")}},i.G=function(){if(!(this.L&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var t,n=1,i=0;i<this.writeBuffer.length;i++){var r=this.writeBuffer[i].data;if(r&&(n+="string"==typeof(t=r)?function(t){for(var n=0,i=0,r=0,e=t.length;r<e;r++)(n=t.charCodeAt(r))<128?i+=1:n<2048?i+=2:n<55296||n>=57344?i+=3:(r++,i+=4);return i}(t):Math.ceil(1.33*(t.byteLength||t.size))),i>0&&n>this.L)return this.writeBuffer.slice(0,i);n+=2}return this.writeBuffer},i.W=function(){var t=this;if(!this._)return!0;var n=Date.now()>this._;return n&&(this._=0,R((function(){t.F("ping timeout")}),this.setTimeoutFn)),n},i.write=function(t,n,i){return this.J("message",t,n,i),this},i.send=function(t,n,i){return this.J("message",t,n,i),this},i.J=function(t,n,i,r){if("function"==typeof n&&(r=n,n=void 0),"function"==typeof i&&(r=i,i=null),"closing"!==this.readyState&&"closed"!==this.readyState){(i=i||{}).compress=!1!==i.compress;var e={type:t,data:n,options:i};this.emitReserved("packetCreate",e),this.writeBuffer.push(e),r&&this.once("flush",r),this.flush()}},i.close=function(){var t=this,n=function(){t.F("forced close"),t.transport.close()},i=function i(){t.off("upgrade",i),t.off("upgradeError",i),n()},r=function(){t.once("upgrade",i),t.once("upgradeError",i)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(function(){t.upgrading?r():n()})):this.upgrading?r():n()),this},i.B=function(t){if(n.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&"opening"===this.readyState)return this.transports.shift(),this.q();this.emitReserved("error",t),this.F("transport error",t)},i.F=function(t,n){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){if(this.clearTimeoutFn(this.Y),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),ct&&(this.P&&removeEventListener("beforeunload",this.P,!1),this.$)){var i=at.indexOf(this.$);-1!==i&&at.splice(i,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this.M=0}},n}(I);vt.protocol=4;var lt=function(t){function n(){var n;return(n=t.apply(this,arguments)||this).Z=[],n}s(n,t);var i=n.prototype;return i.onOpen=function(){if(t.prototype.onOpen.call(this),"open"===this.readyState&&this.opts.upgrade)for(var n=0;n<this.Z.length;n++)this.tt(this.Z[n])},i.tt=function(t){var n=this,i=this.createTransport(t),r=!1;vt.priorWebsocketSuccess=!1;var e=function(){r||(i.send([{type:"ping",data:"probe"}]),i.once("packet",(function(t){if(!r)if("pong"===t.type&&"probe"===t.data){if(n.upgrading=!0,n.emitReserved("upgrading",i),!i)return;vt.priorWebsocketSuccess="websocket"===i.name,n.transport.pause((function(){r||"closed"!==n.readyState&&(c(),n.setTransport(i),i.send([{type:"upgrade"}]),n.emitReserved("upgrade",i),i=null,n.upgrading=!1,n.flush())}))}else{var e=new Error("probe error");e.transport=i.name,n.emitReserved("upgradeError",e)}})))};function o(){r||(r=!0,c(),i.close(),i=null)}var s=function(t){var r=new Error("probe error: "+t);r.transport=i.name,o(),n.emitReserved("upgradeError",r)};function u(){s("transport closed")}function h(){s("socket closed")}function f(t){i&&t.name!==i.name&&o()}var c=function(){i.removeListener("open",e),i.removeListener("error",s),i.removeListener("close",u),n.off("close",h),n.off("upgrading",f)};i.once("open",e),i.once("error",s),i.once("close",u),this.once("close",h),this.once("upgrading",f),-1!==this.Z.indexOf("webtransport")&&"webtransport"!==t?this.setTimeoutFn((function(){r||i.open()}),200):i.open()},i.onHandshake=function(n){this.Z=this.nt(n.upgrades),t.prototype.onHandshake.call(this,n)},i.nt=function(t){for(var n=[],i=0;i<t.length;i++)~this.transports.indexOf(t[i])&&n.push(t[i]);return n},n}(vt),pt=function(t){function n(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="object"===c(n)?n:i;return(!r.transports||r.transports&&"string"==typeof r.transports[0])&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map((function(t){return st[t]})).filter((function(t){return!!t}))),t.call(this,n,r)||this}return s(n,t),n}(lt);pt.protocol;var dt="function"==typeof ArrayBuffer,yt=function(t){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer},bt=Object.prototype.toString,wt="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===bt.call(Blob),gt="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===bt.call(File);function mt(t){return dt&&(t instanceof ArrayBuffer||yt(t))||wt&&t instanceof Blob||gt&&t instanceof File}function kt(t,n){if(!t||"object"!==c(t))return!1;if(Array.isArray(t)){for(var i=0,r=t.length;i<r;i++)if(kt(t[i]))return!0;return!1}if(mt(t))return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return kt(t.toJSON(),!0);for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&kt(t[e]))return!0;return!1}function At(t){var n=[],i=t.data,r=t;return r.data=jt(i,n),r.attachments=n.length,{packet:r,buffers:n}}function jt(t,n){if(!t)return t;if(mt(t)){var i={_placeholder:!0,num:n.length};return n.push(t),i}if(Array.isArray(t)){for(var r=new Array(t.length),e=0;e<t.length;e++)r[e]=jt(t[e],n);return r}if("object"===c(t)&&!(t instanceof Date)){var o={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(o[s]=jt(t[s],n));return o}return t}function Et(t,n){return t.data=Ot(t.data,n),delete t.attachments,t}function Ot(t,n){if(!t)return t;if(t&&!0===t._placeholder){if("number"==typeof t.num&&t.num>=0&&t.num<n.length)return n[t.num];throw new Error("illegal attachments")}if(Array.isArray(t))for(var i=0;i<t.length;i++)t[i]=Ot(t[i],n);else if("object"===c(t))for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(t[r]=Ot(t[r],n));return t}var Bt,St=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];!function(t){t[t.CONNECT=0]="CONNECT",t[t.DISCONNECT=1]="DISCONNECT",t[t.EVENT=2]="EVENT",t[t.ACK=3]="ACK",t[t.CONNECT_ERROR=4]="CONNECT_ERROR",t[t.BINARY_EVENT=5]="BINARY_EVENT",t[t.BINARY_ACK=6]="BINARY_ACK"}(Bt||(Bt={}));var Nt=function(){function t(t){this.replacer=t}var n=t.prototype;return n.encode=function(t){return t.type!==Bt.EVENT&&t.type!==Bt.ACK||!kt(t)?[this.encodeAsString(t)]:this.encodeAsBinary({type:t.type===Bt.EVENT?Bt.BINARY_EVENT:Bt.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id})},n.encodeAsString=function(t){var n=""+t.type;return t.type!==Bt.BINARY_EVENT&&t.type!==Bt.BINARY_ACK||(n+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(n+=t.nsp+","),null!=t.id&&(n+=t.id),null!=t.data&&(n+=JSON.stringify(t.data,this.replacer)),n},n.encodeAsBinary=function(t){var n=At(t),i=this.encodeAsString(n.packet),r=n.buffers;return r.unshift(i),r},t}(),Ct=function(t){function n(n){var i;return(i=t.call(this)||this).reviver=n,i}s(n,t);var i=n.prototype;return i.add=function(n){var i;if("string"==typeof n){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");var r=(i=this.decodeString(n)).type===Bt.BINARY_EVENT;r||i.type===Bt.BINARY_ACK?(i.type=r?Bt.EVENT:Bt.ACK,this.reconstructor=new Tt(i),0===i.attachments&&t.prototype.emitReserved.call(this,"decoded",i)):t.prototype.emitReserved.call(this,"decoded",i)}else{if(!mt(n)&&!n.base64)throw new Error("Unknown type: "+n);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(i=this.reconstructor.takeBinaryData(n))&&(this.reconstructor=null,t.prototype.emitReserved.call(this,"decoded",i))}},i.decodeString=function(t){var i=0,r={type:Number(t.charAt(0))};if(void 0===Bt[r.type])throw new Error("unknown packet type "+r.type);if(r.type===Bt.BINARY_EVENT||r.type===Bt.BINARY_ACK){for(var e=i+1;"-"!==t.charAt(++i)&&i!=t.length;);var o=t.substring(e,i);if(o!=Number(o)||"-"!==t.charAt(i))throw new Error("Illegal attachments");r.attachments=Number(o)}if("/"===t.charAt(i+1)){for(var s=i+1;++i;){if(","===t.charAt(i))break;if(i===t.length)break}r.nsp=t.substring(s,i)}else r.nsp="/";var u=t.charAt(i+1);if(""!==u&&Number(u)==u){for(var h=i+1;++i;){var f=t.charAt(i);if(null==f||Number(f)!=f){--i;break}if(i===t.length)break}r.id=Number(t.substring(h,i+1))}if(t.charAt(++i)){var c=this.tryParse(t.substr(i));if(!n.isPayloadValid(r.type,c))throw new Error("invalid payload");r.data=c}return r},i.tryParse=function(t){try{return JSON.parse(t,this.reviver)}catch(t){return!1}},n.isPayloadValid=function(t,n){switch(t){case Bt.CONNECT:return Mt(n);case Bt.DISCONNECT:return void 0===n;case Bt.CONNECT_ERROR:return"string"==typeof n||Mt(n);case Bt.EVENT:case Bt.BINARY_EVENT:return Array.isArray(n)&&("number"==typeof n[0]||"string"==typeof n[0]&&-1===St.indexOf(n[0]));case Bt.ACK:case Bt.BINARY_ACK:return Array.isArray(n)}},i.destroy=function(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)},n}(I),Tt=function(){function t(t){this.packet=t,this.buffers=[],this.reconPack=t}var n=t.prototype;return n.takeBinaryData=function(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){var n=Et(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null},n.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]},t}();var Ut=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t};function Mt(t){return"[object Object]"===Object.prototype.toString.call(t)}var xt=Object.freeze({__proto__:null,protocol:5,get PacketType(){return Bt},Encoder:Nt,Decoder:Ct,isPacketValid:function(t){return"string"==typeof t.nsp&&(void 0===(n=t.id)||Ut(n))&&function(t,n){switch(t){case Bt.CONNECT:return void 0===n||Mt(n);case Bt.DISCONNECT:return void 0===n;case Bt.EVENT:return Array.isArray(n)&&("number"==typeof n[0]||"string"==typeof n[0]&&-1===St.indexOf(n[0]));case Bt.ACK:return Array.isArray(n);case Bt.CONNECT_ERROR:return"string"==typeof n||Mt(n);default:return!1}}(t.type,t.data);var n}});function It(t,n,i){return t.on(n,i),function(){t.off(n,i)}}var Rt=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),Lt=function(t){function n(n,i,r){var o;return(o=t.call(this)||this).connected=!1,o.recovered=!1,o.receiveBuffer=[],o.sendBuffer=[],o.it=[],o.rt=0,o.ids=0,o.acks={},o.flags={},o.io=n,o.nsp=i,r&&r.auth&&(o.auth=r.auth),o.l=e({},r),o.io.et&&o.open(),o}s(n,t);var o=n.prototype;return o.subEvents=function(){if(!this.subs){var t=this.io;this.subs=[It(t,"open",this.onopen.bind(this)),It(t,"packet",this.onpacket.bind(this)),It(t,"error",this.onerror.bind(this)),It(t,"close",this.onclose.bind(this))]}},o.connect=function(){return this.connected||(this.subEvents(),this.io.ot||this.io.open(),"open"===this.io.st&&this.onopen()),this},o.open=function(){return this.connect()},o.send=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return n.unshift("message"),this.emit.apply(this,n),this},o.emit=function(t){var n,i,r;if(Rt.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');for(var e=arguments.length,o=new Array(e>1?e-1:0),s=1;s<e;s++)o[s-1]=arguments[s];if(o.unshift(t),this.l.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this.ut(o),this;var u={type:Bt.EVENT,data:o,options:{}};if(u.options.compress=!1!==this.flags.compress,"function"==typeof o[o.length-1]){var h=this.ids++,f=o.pop();this.ht(h,f),u.id=h}var c=null===(i=null===(n=this.io.engine)||void 0===n?void 0:n.transport)||void 0===i?void 0:i.writable,a=this.connected&&!(null===(r=this.io.engine)||void 0===r?void 0:r.W());return this.flags.volatile&&!c||(a?(this.notifyOutgoingListeners(u),this.packet(u)):this.sendBuffer.push(u)),this.flags={},this},o.ht=function(t,n){var i,r=this,e=null!==(i=this.flags.timeout)&&void 0!==i?i:this.l.ackTimeout;if(void 0!==e){var o=this.io.setTimeoutFn((function(){delete r.acks[t];for(var i=0;i<r.sendBuffer.length;i++)r.sendBuffer[i].id===t&&r.sendBuffer.splice(i,1);n.call(r,new Error("operation has timed out"))}),e),s=function(){r.io.clearTimeoutFn(o);for(var t=arguments.length,i=new Array(t),e=0;e<t;e++)i[e]=arguments[e];n.apply(r,i)};s.withError=!0,this.acks[t]=s}else this.acks[t]=n},o.emitWithAck=function(t){for(var n=this,i=arguments.length,r=new Array(i>1?i-1:0),e=1;e<i;e++)r[e-1]=arguments[e];return new Promise((function(i,e){var o=function(t,n){return t?e(t):i(n)};o.withError=!0,r.push(o),n.emit.apply(n,[t].concat(r))}))},o.ut=function(t){var n,i=this;"function"==typeof t[t.length-1]&&(n=t.pop());var r={id:this.rt++,tryCount:0,pending:!1,args:t,flags:e({fromQueue:!0},this.flags)};t.push((function(t){if(
vendor: 8,165 bytes, line 124
124r===i.it[0]){if(null!==t)r.tryCount>i.l.retries&&(i.it.shift(),n&&n(t));else if(i.it.shift(),n){for(var e=arguments.length,o=new Array(e>1?e-1:0),s=1;s<e;s++)o[s-1]=arguments[s];n.apply(void 0,[null].concat(o))}return r.pending=!1,i.ft()}})),this.it.push(r),this.ft()},o.ft=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.connected&&0!==this.it.length){var n=this.it[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}},o.packet=function(t){t.nsp=this.nsp,this.io.ct(t)},o.onopen=function(){var t=this;"function"==typeof this.auth?this.auth((function(n){t.vt(n)})):this.vt(this.auth)},o.vt=function(t){this.packet({type:Bt.CONNECT,data:this.lt?e({pid:this.lt,offset:this.dt},t):t})},o.onerror=function(t){this.connected||this.emitReserved("connect_error",t)},o.onclose=function(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this.yt()},o.yt=function(){var t=this;Object.keys(this.acks).forEach((function(n){if(!t.sendBuffer.some((function(t){return String(t.id)===n}))){var i=t.acks[n];delete t.acks[n],i.withError&&i.call(t,new Error("socket has been disconnected"))}}))},o.onpacket=function(t){if(t.nsp===this.nsp)switch(t.type){case Bt.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Bt.EVENT:case Bt.BINARY_EVENT:this.onevent(t);break;case Bt.ACK:case Bt.BINARY_ACK:this.onack(t);break;case Bt.DISCONNECT:this.ondisconnect();break;case Bt.CONNECT_ERROR:this.destroy();var n=new Error(t.data.message);n.data=t.data.data,this.emitReserved("connect_error",n)}},o.onevent=function(t){var n=t.data||[];null!=t.id&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))},o.emitEvent=function(n){if(this.bt&&this.bt.length){var i,e=r(this.bt.slice());try{for(e.s();!(i=e.n()).done;){i.value.apply(this,n)}}catch(t){e.e(t)}finally{e.f()}}t.prototype.emit.apply(this,n),this.lt&&n.length&&"string"==typeof n[n.length-1]&&(this.dt=n[n.length-1])},o.ack=function(t){var n=this,i=!1;return function(){if(!i){i=!0;for(var r=arguments.length,e=new Array(r),o=0;o<r;o++)e[o]=arguments[o];n.packet({type:Bt.ACK,id:t,data:e})}}},o.onack=function(t){var n=this.acks[t.id];"function"==typeof n&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))},o.onconnect=function(t,n){this.id=t,this.recovered=n&&this.lt===n,this.lt=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this.ft(!0)},o.emitBuffered=function(){var t=this;this.receiveBuffer.forEach((function(n){return t.emitEvent(n)})),this.receiveBuffer=[],this.sendBuffer.forEach((function(n){t.notifyOutgoingListeners(n),t.packet(n)})),this.sendBuffer=[]},o.ondisconnect=function(){this.destroy(),this.onclose("io server disconnect")},o.destroy=function(){this.subs&&(this.subs.forEach((function(t){return t()})),this.subs=void 0),this.io.wt(this)},o.disconnect=function(){return this.connected&&this.packet({type:Bt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},o.close=function(){return this.disconnect()},o.compress=function(t){return this.flags.compress=t,this},o.timeout=function(t){return this.flags.timeout=t,this},o.onAny=function(t){return this.bt=this.bt||[],this.bt.push(t),this},o.prependAny=function(t){return this.bt=this.bt||[],this.bt.unshift(t),this},o.offAny=function(t){if(!this.bt)return this;if(t){for(var n=this.bt,i=0;i<n.length;i++)if(t===n[i])return n.splice(i,1),this}else this.bt=[];return this},o.listenersAny=function(){return this.bt||[]},o.onAnyOutgoing=function(t){return this.gt=this.gt||[],this.gt.push(t),this},o.prependAnyOutgoing=function(t){return this.gt=this.gt||[],this.gt.unshift(t),this},o.offAnyOutgoing=function(t){if(!this.gt)return this;if(t){for(var n=this.gt,i=0;i<n.length;i++)if(t===n[i])return n.splice(i,1),this}else this.gt=[];return this},o.listenersAnyOutgoing=function(){return this.gt||[]},o.notifyOutgoingListeners=function(t){if(this.gt&&this.gt.length){var n,i=r(this.gt.slice());try{for(i.s();!(n=i.n()).done;){n.value.apply(this,t.data)}}catch(t){i.e(t)}finally{i.f()}}},i(n,[{key:"disconnected",get:function(){return!this.connected}},{key:"active",get:function(){return!!this.subs}},{key:"volatile",get:function(){return this.flags.volatile=!0,this}}])}(I);function _t(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}_t.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var n=Math.random(),i=Math.floor(n*this.jitter*t);t=1&Math.floor(10*n)?t+i:t-i}return 0|Math.min(t,this.max)},_t.prototype.reset=function(){this.attempts=0},_t.prototype.setMin=function(t){this.ms=t},_t.prototype.setMax=function(t){this.max=t},_t.prototype.setJitter=function(t){this.jitter=t};var Dt=function(t){function n(n,i){var r,e;(r=t.call(this)||this).nsps={},r.subs=[],n&&"object"===c(n)&&(i=n,n=void 0),(i=i||{}).path=i.path||"/socket.io",r.opts=i,$(r,i),r.reconnection(!1!==i.reconnection),r.reconnectionAttempts(i.reconnectionAttempts||1/0),r.reconnectionDelay(i.reconnectionDelay||1e3),r.reconnectionDelayMax(i.reconnectionDelayMax||5e3),r.randomizationFactor(null!==(e=i.randomizationFactor)&&void 0!==e?e:.5),r.backoff=new _t({min:r.reconnectionDelay(),max:r.reconnectionDelayMax(),jitter:r.randomizationFactor()}),r.timeout(null==i.timeout?2e4:i.timeout),r.st="closed",r.uri=n;var o=i.parser||xt;return r.encoder=new o.Encoder,r.decoder=new o.Decoder,r.et=!1!==i.autoConnect,r.et&&r.open(),r}s(n,t);var i=n.prototype;return i.reconnection=function(t){return arguments.length?(this.kt=!!t,t||(this.skipReconnect=!0),this):this.kt},i.reconnectionAttempts=function(t){return void 0===t?this.At:(this.At=t,this)},i.reconnectionDelay=function(t){var n;return void 0===t?this.jt:(this.jt=t,null===(n=this.backoff)||void 0===n||n.setMin(t),this)},i.randomizationFactor=function(t){var n;return void 0===t?this.Et:(this.Et=t,null===(n=this.backoff)||void 0===n||n.setJitter(t),this)},i.reconnectionDelayMax=function(t){var n;return void 0===t?this.Ot:(this.Ot=t,null===(n=this.backoff)||void 0===n||n.setMax(t),this)},i.timeout=function(t){return arguments.length?(this.Bt=t,this):this.Bt},i.maybeReconnectOnOpen=function(){!this.ot&&this.kt&&0===this.backoff.attempts&&this.reconnect()},i.open=function(t){var n=this;if(~this.st.indexOf("open"))return this;this.engine=new pt(this.uri,this.opts);var i=this.engine,r=this;this.st="opening",this.skipReconnect=!1;var e=It(i,"open",(function(){r.onopen(),t&&t()})),o=function(i){n.cleanup(),n.st="closed",n.emitReserved("error",i),t?t(i):n.maybeReconnectOnOpen()},s=It(i,"error",o);if(!1!==this.Bt){var u=this.Bt,h=this.setTimeoutFn((function(){e(),o(new Error("timeout")),i.close()}),u);this.opts.autoUnref&&h.unref(),this.subs.push((function(){n.clearTimeoutFn(h)}))}return this.subs.push(e),this.subs.push(s),this},i.connect=function(t){return this.open(t)},i.onopen=function(){this.cleanup(),this.st="open",this.emitReserved("open");var t=this.engine;this.subs.push(It(t,"ping",this.onping.bind(this)),It(t,"data",this.ondata.bind(this)),It(t,"error",this.onerror.bind(this)),It(t,"close",this.onclose.bind(this)),It(this.decoder,"decoded",this.ondecoded.bind(this)))},i.onping=function(){this.emitReserved("ping")},i.ondata=function(t){try{this.decoder.add(t)}catch(t){this.onclose("parse error",t)}},i.ondecoded=function(t){var n=this;R((function(){n.emitReserved("packet",t)}),this.setTimeoutFn)},i.onerror=function(t){this.emitReserved("error",t)},i.socket=function(t,n){var i=this.nsps[t];return i?this.et&&!i.active&&i.connect():(i=new Lt(this,t,n),this.nsps[t]=i),i},i.wt=function(t){for(var n=0,i=Object.keys(this.nsps);n<i.length;n++){var r=i[n];if(this.nsps[r].active)return}this.St()},i.ct=function(t){for(var n=this.encoder.encode(t),i=0;i<n.length;i++)this.engine.write(n[i],t.options)}
124,i.cleanup=function(){this.subs.forEach((function(t){return t()})),this.subs.length=0,this.decoder.destroy()},i.St=function(){this.skipReconnect=!0,this.ot=!1,this.onclose("forced close")},i.disconnect=function(){return this.St()},i.onclose=function(t,n){var i;this.cleanup(),null===(i=this.engine)||void 0===i||i.close(),this.backoff.reset(),this.st="closed",this.emitReserved("close",t,n),this.kt&&!this.skipReconnect&&this.reconnect()},i.reconnect=function(){var t=this;if(this.ot||this.skipReconnect)return this;var n=this;if(this.backoff.attempts>=this.At)this.backoff.reset(),this.emitReserved("reconnect_failed"),this.ot=!1;else{var i=this.backoff.duration();this.ot=!0;var r=this.setTimeoutFn((function(){n.skipReconnect||(t.emitReserved("reconnect_attempt",n.backoff.attempts),n.skipReconnect||n.open((function(i){i?(n.ot=!1,n.reconnect(),t.emitReserved("reconnect_error",i)):n.onreconnect()})))}),i);this.opts.autoUnref&&r.unref(),this.subs.push((function(){t.clearTimeoutFn(r)}))}},i.onreconnect=function(){var t=this.backoff.attempts;this.ot=!1,this.backoff.reset(),this.emitReserved("reconnect",t)},n}(I),Pt={};function $t(t,n){"object"===c(t)&&(n=t,t=void 0);var i,r=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,r=t;i=i||"undefined"!=typeof location&&location,null==t&&(t=i.protocol+"//"+i.host),"string"==typeof t&&("/"===t.charAt(0)&&(t="/"===t.charAt(1)?i.protocol+t:i.host+t),/^(https?|wss?):\/\//.test(t)||(t=void 0!==i?i.protocol+"//"+t:"https://"+t),r=ft(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";var e=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+e+":"+r.port+n,r.href=r.protocol+"://"+e+(i&&i.port===r.port?"":":"+r.port),r}(t,(n=n||{}).path||"/socket.io"),e=r.source,o=r.id,s=r.path,u=Pt[o]&&s in Pt[o].nsps;return n.forceNew||n["force new connection"]||!1===n.multiplex||u?i=new Dt(e,n):(Pt[o]||(Pt[o]=new Dt(e,n)),i=Pt[o]),r.query&&!n.query&&(n.query=r.queryKey),i.socket(r.path,n)}return e($t,{Manager:Dt,Socket:Lt,io:$t,connect:$t}),$t}));
125//# sourceMappingURL=socket.io.min.js.map
126
127�/**
128 * Version: 1.0 Alpha-1 
129 * Build Date: 13-Nov-2007
130 * Copyright (c) 2006-2007, Coolite Inc. (http://www.coolite.com/). All rights reserved.
131 * License: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
132 * Website: http://www.datejs.com/ or http://www.coolite.com/datejs/
133 */
134Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|after|from)/i,subtract:/^(\-|before|ago)/i,yesterday:/^yesterday/i,today:/^t(oday)?/i,tomorrow:/^tomorrow/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^min(ute)?s?/i,hour:/^h(ou)?rs?/i,week:/^w(ee)?k/i,month:/^m(o(nth)?s?)?/i,day:/^d(ays?)?/i,year:/^y((ea)?rs?)?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a|p)/i},abbreviatedTimeZoneStandard:{GMT:"-000",EST:"-0400",CST:"-0500",MST:"-0600",PST:"-0700"},abbreviatedTimeZoneDST:{GMT:"-000",EDT:"-0500",CDT:"-0600",MDT:"-0700",PDT:"-0800"}};
135Date.getMonthNumberFromName=function(name){var n=Date.CultureInfo.monthNames,m=Date.CultureInfo.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
136return-1;};Date.getDayNumberFromName=function(name){var n=Date.CultureInfo.dayNames,m=Date.CultureInfo.abbreviatedDayNames,o=Date.CultureInfo.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
137return-1;};Date.isLeapYear=function(year){return(((year%4===0)&&(year%100!==0))||(year%400===0));};Date.getDaysInMonth=function(year,month){return[31,(Date.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};Date.getTimezoneOffset=function(s,dst){return(dst||false)?Date.CultureInfo.abbreviatedTimeZoneDST[s.toUpperCase()]:Date.CultureInfo.abbreviatedTimeZoneStandard[s.toUpperCase()];};Date.getTimezoneAbbreviation=function(offset,dst){var n=(dst||false)?Date.CultureInfo.abbreviatedTimeZoneDST:Date.CultureInfo.abbreviatedTimeZoneStandard,p;for(p in n){if(n[p]===offset){return p;}}
138return null;};Date.prototype.clone=function(){return new Date(this.getTime());};Date.prototype.compareTo=function(date){if(isNaN(this)){throw new Error(this);}
139if(date instanceof Date&&!isNaN(date)){return(this>date)?1:(this<date)?-1:0;}else{throw new TypeError(date);}};Date.prototype.equals=function(date){return(this.compareTo(date)===0);};Date.prototype.between=function(start,end){var t=this.getTime();return t>=start.getTime()&&t<=end.getTime();};Date.prototype.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};Date.prototype.addSeconds=function(value){return this.addMilliseconds(value*1000);};Date.prototype.addMinutes=function(value){return this.addMilliseconds(value*60000);};Date.prototype.addHours=function(value){return this.addMilliseconds(value*3600000);};Date.prototype.addDays=function(value){return this.addMilliseconds(value*86400000);};Date.prototype.addWeeks=function(value){return this.addMilliseconds(value*604800000);};Date.prototype.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,this.getDaysInMonth()));return this;};Date.prototype.addYears=function(value){return this.addMonths(value*12);};Date.prototype.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
140var x=config;if(x.millisecond||x.milliseconds){this.addMilliseconds(x.millisecond||x.milliseconds);}
141if(x.second||x.seconds){this.addSeconds(x.second||x.seconds);}
142if(x.minute||x.minutes){this.addMinutes(x.minute||x.minutes);}
143if(x.hour||x.hours){this.addHours(x.hour||x.hours);}
144if(x.month||x.months){this.addMonths(x.month||x.months);}
145if(x.year||x.years){this.addYears(x.year||x.years);}
146if(x.day||x.days){this.addDays(x.day||x.days);}
147return this;};Date._validate=function(value,min,max,name){if(typeof value!="number"){throw new TypeError(value+" is not a Number.");}else if(value<min||value>max){throw new RangeError(value+" is not a valid value for "+name+".");}
148return true;};Date.validateMillisecond=function(n){return Date._validate(n,0,999,"milliseconds");};Date.validateSecond=function(n){return Date._validate(n,0,59,"seconds");};Date.validateMinute=function(n){return Date._validate(n,0,59,"minutes");};Date.validateHour=function(n){return Date._validate(n,0,23,"hours");};Date.validateDay=function(n,year,month){return Date._validate(n,1,Date.getDaysInMonth(year,month),"days");};Date.validateMonth=function(n){return Date._validate(n,0,11,"months");};Date.validateYear=function(n){return Date._validate(n,1,9999,"seconds");};Date.prototype.set=function(config){var x=config;if(!x.millisecond&&x.millisecond!==0){x.millisecond=-1;}
149if(!x.second&&x.second!==0){x.second=-1;}
150if(!x.minute&&x.minute!==0){x.minute=-1;}
151if(!x.hour&&x.hour!==0){x.hour=-1;}
152if(!x.day&&x.day!==0){x.day=-1;}
153if(!x.month&&x.month!==0){x.month=-1;}
154if(!x.year&&x.year!==0){x.year=-1;}
155if(x.millisecond!=-1&&Date.validateMillisecond(x.millisecond)){this.addMilliseconds(x.millisecond-this.getMilliseconds());}
156if(x.second!=-1&&Date.validateSecond(x.second)){this.addSeconds(x.second-this.getSeconds());}
157if(x.minute!=-1&&Date.validateMinute(x.minute)){this.addMinutes(x.minute-this.getMinutes());}
158if(x.hour!=-1&&Date.validateHour(x.hour)){this.addHours(x.hour-this.getHours());}
159if(x.month!==-1&&Date.validateMonth(x.month)){this.addMonths(x.month-this.getMonth());}
160if(x.year!=-1&&Date.validateYear(x.year)){this.addYears(x.year-this.getFullYear());}
161if(x.day!=-1&&Date.validateDay(x.day,this.getFullYear(),this.getMonth())){this.addDays(x.day-this.getDate());}
162if(x.timezone){this.setTimezone(x.timezone);}
163if(x.timezoneOffset){this.setTimezoneOffset(x.timezoneOffset);}
164return this;};Date.prototype.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};Date.prototype.isLeapYear=function(){var y=this.getFullYear();return(((y%4===0)&&(y%100!==0))||(y%400===0));};Date.prototype.isWeekday=function(){return!(this.is().sat()||this.is().sun());};Date.prototype.getDaysInMonth=function(){return Date.getDaysInMonth(this.getFullYear(),this.getMonth());};Date.prototype.moveToFirstDayOfMonth=function(){return this.set({day:1});};Date.prototype.moveToLastDayOfMonth=function(){return this.set({day:this.getDaysInMonth()});};Date.prototype.moveToDayOfWeek=function(day,orient){var diff=(day-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};Date.prototype.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};Date.prototype.getDayOfYear=function(){return Math.floor((this-new Date(this.getFullYear(),0,1))/86400000);};Date.prototype.getWeekOfYear=function(firstDayOfWeek){var y=this.getFullYear(),m=this.getMonth(),d=this.getDate();var dow=firstDayOfWeek||Date.CultureInfo.firstDayOfWeek;var offset=7+1-new Date(y,0,1).getDay();if(offset==8){offset=1;}
165var daynum=((Date.UTC(y,m,d,0,0,0)-Date.UTC(y,0,1,0,0,0))/86400000)+1;var w=Math.floor((daynum-offset+7)/7);if(w===dow){y--;var prevOffset=7+1-new Date(y,0,1).getDay();if(prevOffset==2||prevOffset==8){w=53;}else{w=52;}}
166return w;};Date.prototype.isDST=function(){console.log('isDST');return this.toString().match(/(E|C|M|P)(S|D)T/)[2]=="D";};Date.prototype.getTimezone=function(){return Date.getTimezoneAbbreviation(this.getUTCOffset,this.isDST());};Date.prototype.setTimezoneOffset=function(s){var here=this.getTimezoneOffset(),there=Number(s)*-6/10;this.addMinutes(there-here);return this;};Date.prototype.setTimezone=function(s){return this.setTimezoneOffset(Date.getTimezoneOffset(s));};Date.prototype.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r[0]+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};Date.prototype.getDayName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedDayNames[this.getDay()]:Date.CultureInfo.dayNames[this.getDay()];};Date.prototype.getMonthName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedMonthNames[this.getMonth()]:Date.CultureInfo.monthNames[this.getMonth()];};if(Date.prototype._toString==undefined) {Date.prototype._toString=Date.prototype.toString;};if(Date.prototype.toString==undefined){Date.prototype.toString=function(format){var self=this;var p=function p(s){return(s.toString().length==1)?"0"+s:s;};return format?format.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?/g,function(format){switch(format){case"hh":return p(self.getHours()<13?self.getHours():(self.getHours()-12));case"h":return self.getHours()<13?self.getHours():(self.getHours()-12);case"HH":return p(self.getHours());case"H":return self.getHours();case"mm":return p(self.getMinutes());case"m":return self.getMinutes();case"ss":return p(self.getSeconds());case"s":return self.getSeconds();case"yyyy":return self.getFullYear();case"yy":return self.getFullYear().toString().substring(2,4);case"dddd":return self.getDayName();case"ddd":return self.getDayName(true);case"dd":return p(self.getDate());case"d":return self.getDate().toString();case"MMMM":return self.getMonthName();case"MMM":return self.getMonthName(true);case"MM":return p((self.getMonth()+1));case"M":return self.getMonth()+1;case"t":return self.getHours()<12?Date.CultureInfo.amDesignator.substring(0,1):Date.CultureInfo.pmDesignator.substring(0,1);case"tt":return self.getHours()<12?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator;case"zzz":case"zz":case"z":return"";}}):this._toString();}};
167Date.now=function(){return new Date();};Date.today=function(){return Date.now().clearTime();};Date.prototype._orient=+1;Date.prototype.next=function(){this._orient=+1;return this;};Date.prototype.last=Date.prototype.prev=Date.prototype.previous=function(){this._orient=-1;return this;};Date.prototype._is=false;Date.prototype.is=function(){this._is=true;return this;};Number.prototype._dateElement="day";Number.prototype.fromNow=function(){var c={};c[this._dateElement]=this;return Date.now().add(c);};Number.prototype.ago=function(){var c={};c[this._dateElement]=this*-1;return Date.now().add(c);};(function(){var $D=Date.prototype,$N=Number.prototype;var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may 
167june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),de;var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
168return this.moveToDayOfWeek(n,this._orient);};};for(var i=0;i<dx.length;i++){$D[dx[i]]=$D[dx[i].substring(0,3)]=df(i);}
169var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
170return this.moveToMonth(n,this._orient);};};for(var j=0;j<mx.length;j++){$D[mx[j]]=$D[mx[j].substring(0,3)]=mf(j);}
171var ef=function(j){return function(){if(j.substring(j.length-1)!="s"){j+="s";}
172return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$D[de]=$D[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}}());Date.prototype.toJSONString=function(){return this.toString("yyyy-MM-ddThh:mm:ssZ");};Date.prototype.toShortDateString=function(){return this.toString(Date.CultureInfo.formatPatterns.shortDatePattern);};Date.prototype.toLongDateString=function(){return this.toString(Date.CultureInfo.formatPatterns.longDatePattern);};Date.prototype.toShortTimeString=function(){return this.toString(Date.CultureInfo.formatPatterns.shortTimePattern);};Date.prototype.toLongTimeString=function(){return this.toString(Date.CultureInfo.formatPatterns.longTimePattern);};Date.prototype.getOrdinal=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};
173(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
174break;}
175return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
176rx.push(r[0]);s=r[1];}
177return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
178return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
179throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
180return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
181if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
182try{r=(px[i].call(this,s));}catch(e){r=null;}
183if(r){return r;}}
184throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
185try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
186rx.push(r[0]);s=r[1];}
187return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
188return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
189rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
190s=q[1];}
191if(!r){throw new $P.Exception(s);}
192if(q){throw new $P.Exception(q[1]);}
193if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
194return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
195rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
196if(!last&&q[1].length===0){last=true;}
197if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
198p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
199if(rx[1].length<best[1].length){best=rx;}
200if(best[1].length===0){break;}}
201if(best[0].length===0){return best;}
202if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
203best[1]=q[1];}
204return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
205return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
206if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
207var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i])
207);}else{if(ax[i]){rx.push(ax[i]);}}}
208return rx;};Date.Grammar={};Date.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=((s.length==3)?Date.getMonthNumberFromName(s):(Number(s)-1));};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<Date.CultureInfo.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];var now=new Date();this.year=now.getFullYear();this.month=now.getMonth();this.day=1;this.hour=0;this.minute=0;this.second=0;for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
209this.hour=(this.meridian=="p"&&this.hour<13)?this.hour+12:this.hour;if(this.day>Date.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
210var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
211return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
212for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
213if(this.now){return new Date();}
214var today=Date.today();var method=null;var expression=!!(this.days!=null||this.orient||this.operator);if(expression){var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(this.weekday){this.unit="day";gap=(Date.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
215if(this.month){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
216if(!this.unit){this.unit="day";}
217if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
218if(this.unit=="week"){this.unit="day";this.value=this.value*7;}
219this[this.unit+"s"]=this.value*orient;}
220return today.add(this);}else{if(this.meridian&&this.hour){this.hour=(this.hour<13&&this.meridian=="p")?this.hour+12:this.hour;}
221if(this.weekday&&!this.day){this.day=(today.addDays((Date.getDayNumberFromName(this.weekday)-today.getDay()))).getDate();}
222if(this.month&&!this.day){this.day=1;}
223return today.set(this);}}};var _=Date.Parsing.Operators,g=Date.Grammar,t=Date.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=Date.CultureInfo.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
224fn=_C[keys]=_.any.apply(null,px);}
225return fn;};g.ctoken2=function(key){return _.rtoken(Date.CultureInfo.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.mm,g.ss],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));
225g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^(\+|\-)?\s*\d\d\d\d?/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^(\+|\-)\s*\d\d\d\d/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[Date.CultureInfo.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw Date.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
226return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["yyyy-MM-ddTHH:mm:ss","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
227return g._start.call({},s);};}());Date._parse=Date.parse;Date.parse=function(s){var r=null;if(!s){return null;}
228try{r=Date.Grammar.start.call({},s);}catch(e){return null;}
229return((r[1].length===0)?r[0]:null);};Date.getParseFunction=function(fx){var fn=Date.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
230return((r[1].length===0)?r[0]:null);};};Date.parseExact=function(s,fx){return Date.getParseFunction(fx)(s);};
231
232�/*!
233 * jQuery JavaScript Library v3.6.0
234 * https://jquery.com/
235 *
236 * Includes Sizzle.js
237 * https://sizzlejs.com/
238 *
239 * Copyright OpenJS Foundation and other contributors
240 * Released under the MIT license
241 * https://jquery.org/license
242 *
243 * Date: 2021-03-02T17:08Z
244 */
245( function( global, factory ) {
246
247	"use strict";
248
249	if ( typeof module === "object" && typeof module.exports === "object" ) {
250
251		// For CommonJS and CommonJS-like environments where a proper `window`
252		// is present, execute the factory and get jQuery.
253		// For environments that do not have a `window` with a `document`
254		// (such as Node.js), expose a factory as module.exports.
255		// This accentuates the need for the creation of a real `window`.
256		// e.g. var jQuery = require("jquery")(window);
257		// See ticket #14549 for more info.
258		module.exports = global.document ?
259			factory( global, true ) :
260			function( w ) {
261				if ( !w.document ) {
262					throw new Error( "jQuery requires a window with a document" );
263				}
264				return factory( w );
265			};
266	} else {
267		factory( global );
268	}
269
270// Pass this if window is not defined yet
271} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
272
273// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
274// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
275// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), str
vendor: 2,883 bytes, lines 275-385
275ict mode should be common
276// enough that all such attempts are guarded in a try block.
277"use strict";
278
279var arr = [];
280
281var getProto = Object.getPrototypeOf;
282
283var slice = arr.slice;
284
285var flat = arr.flat ? function( array ) {
286	return arr.flat.call( array );
287} : function( array ) {
288	return arr.concat.apply( [], array );
289};
290
291
292var push = arr.push;
293
294var indexOf = arr.indexOf;
295
296var class2type = {};
297
298var toString = class2type.toString;
299
300var hasOwn = class2type.hasOwnProperty;
301
302var fnToString = hasOwn.toString;
303
304var ObjectFunctionString = fnToString.call( Object );
305
306var support = {};
307
308var isFunction = function isFunction( obj ) {
309
310		// Support: Chrome <=57, Firefox <=52
311		// In some browsers, typeof returns "function" for HTML <object> elements
312		// (i.e., `typeof document.createElement( "object" ) === "function"`).
313		// We don't want to classify *any* DOM node as a function.
314		// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
315		// Plus for old WebKit, typeof returns "function" for HTML collections
316		// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
317		return typeof obj === "function" && typeof obj.nodeType !== "number" &&
318			typeof obj.item !== "function";
319	};
320
321
322var isWindow = function isWindow( obj ) {
323		return obj != null && obj === obj.window;
324	};
325
326
327var document = window.document;
328
329
330
331	var preservedScriptAttributes = {
332		type: true,
333		src: true,
334		nonce: true,
335		noModule: true
336	};
337
338	function DOMEval( code, node, doc ) {
339		doc = doc || document;
340
341		var i, val,
342			script = doc.createElement( "script" );
343
344		script.text = code;
345		if ( node ) {
346			for ( i in preservedScriptAttributes ) {
347
348				// Support: Firefox 64+, Edge 18+
349				// Some browsers don't support the "nonce" property on scripts.
350				// On the other hand, just using `getAttribute` is not enough as
351				// the `nonce` attribute is reset to an empty string whenever it
352				// becomes browsing-context connected.
353				// See https://github.com/whatwg/html/issues/2369
354				// See https://html.spec.whatwg.org/#nonce-attributes
355				// The `node.getAttribute` check was added for the sake of
356				// `jQuery.globalEval` so that it can fake a nonce-containing node
357				// via an object.
358				val = node[ i ] || node.getAttribute && node.getAttribute( i );
359				if ( val ) {
360					script.setAttribute( i, val );
361				}
362			}
363		}
364		doc.head.appendChild( script ).parentNode.removeChild( script );
365	}
366
367
368function toType( obj ) {
369	if ( obj == null ) {
370		return obj + "";
371	}
372
373	// Support: Android <=2.3 only (functionish RegExp)
374	return typeof obj === "object" || typeof obj === "function" ?
375		class2type[ toString.call( obj ) ] || "object" :
376		typeof obj;
377}
378/* global Symbol */
379// Defining this global in .eslintrc.json would create a danger of using the global
380// unguarded in another place, it seems safer to define global only for this module
381
382
383
384var
385	version = "3.6.0
vendor: 81,128 bytes, lines 385-3330
385",
386
387	// Define a local copy of jQuery
388	jQuery = function( selector, context ) {
389
390		// The jQuery object is actually just the init constructor 'enhanced'
391		// Need init if jQuery is called (just allow error to be thrown if not included)
392		return new jQuery.fn.init( selector, context );
393	};
394
395jQuery.fn = jQuery.prototype = {
396
397	// The current version of jQuery being used
398	jquery: version,
399
400	constructor: jQuery,
401
402	// The default length of a jQuery object is 0
403	length: 0,
404
405	toArray: function() {
406		return slice.call( this );
407	},
408
409	// Get the Nth element in the matched element set OR
410	// Get the whole matched element set as a clean array
411	get: function( num ) {
412
413		// Return all the elements in a clean array
414		if ( num == null ) {
415			return slice.call( this );
416		}
417
418		// Return just the one element from the set
419		return num < 0 ? this[ num + this.length ] : this[ num ];
420	},
421
422	// Take an array of elements and push it onto the stack
423	// (returning the new matched element set)
424	pushStack: function( elems ) {
425
426		// Build a new jQuery matched element set
427		var ret = jQuery.merge( this.constructor(), elems );
428
429		// Add the old object onto the stack (as a reference)
430		ret.prevObject = this;
431
432		// Return the newly-formed element set
433		return ret;
434	},
435
436	// Execute a callback for every element in the matched set.
437	each: function( callback ) {
438		return jQuery.each( this, callback );
439	},
440
441	map: function( callback ) {
442		return this.pushStack( jQuery.map( this, function( elem, i ) {
443			return callback.call( elem, i, elem );
444		} ) );
445	},
446
447	slice: function() {
448		return this.pushStack( slice.apply( this, arguments ) );
449	},
450
451	first: function() {
452		return this.eq( 0 );
453	},
454
455	last: function() {
456		return this.eq( -1 );
457	},
458
459	even: function() {
460		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
461			return ( i + 1 ) % 2;
462		} ) );
463	},
464
465	odd: function() {
466		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
467			return i % 2;
468		} ) );
469	},
470
471	eq: function( i ) {
472		var len = this.length,
473			j = +i + ( i < 0 ? len : 0 );
474		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
475	},
476
477	end: function() {
478		return this.prevObject || this.constructor();
479	},
480
481	// For internal use only.
482	// Behaves like an Array's method, not like a jQuery method.
483	push: push,
484	sort: arr.sort,
485	splice: arr.splice
486};
487
488jQuery.extend = jQuery.fn.extend = function() {
489	var options, name, src, copy, copyIsArray, clone,
490		target = arguments[ 0 ] || {},
491		i = 1,
492		length = arguments.length,
493		deep = false;
494
495	// Handle a deep copy situation
496	if ( typeof target === "boolean" ) {
497		deep = target;
498
499		// Skip the boolean and the target
500		target = arguments[ i ] || {};
501		i++;
502	}
503
504	// Handle case when target is a string or something (possible in deep copy)
505	if ( typeof target !== "object" && !isFunction( target ) ) {
506		target = {};
507	}
508
509	// Extend jQuery itself if only one argument is passed
510	if ( i === length ) {
511		target = this;
512		i--;
513	}
514
515	for ( ; i < length; i++ ) {
516
517		// Only deal with non-null/undefined values
518		if ( ( options = arguments[ i ] ) != null ) {
519
520			// Extend the base object
521			for ( name in options ) {
522				copy = options[ name ];
523
524				// Prevent Object.prototype pollution
525				// Prevent never-ending loop
526				if ( name === "__proto__" || target === copy ) {
527					continue;
528				}
529
530				// Recurse if we're merging plain objects or arrays
531				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
532					( copyIsArray = Array.isArray( copy ) ) ) ) {
533					src = target[ name ];
534
535					// Ensure proper type for the source value
536					if ( copyIsArray && !Array.isArray( src ) ) {
537						clone = [];
538					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
539						clone = {};
540					} else {
541						clone = src;
542					}
543					copyIsArray = false;
544
545					// Never move original objects, clone them
546					target[ name ] = jQuery.extend( deep, clone, copy );
547
548				// Don't bring in undefined values
549				} else if ( copy !== undefined ) {
550					target[ name ] = copy;
551				}
552			}
553		}
554	}
555
556	// Return the modified object
557	return target;
558};
559
560jQuery.extend( {
561
562	// Unique for each copy of jQuery on the page
563	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
564
565	// Assume jQuery is ready without the ready module
566	isReady: true,
567
568	error: function( msg ) {
569		throw new Error( msg );
570	},
571
572	noop: function() {},
573
574	isPlainObject: function( obj ) {
575		var proto, Ctor;
576
577		// Detect obvious negatives
578		// Use toString instead of jQuery.type to catch host objects
579		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
580			return false;
581		}
582
583		proto = getProto( obj );
584
585		// Objects with no prototype (e.g., `Object.create( null )`) are plain
586		if ( !proto ) {
587			return true;
588		}
589
590		// Objects with prototype are plain iff they were constructed by a global Object function
591		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
592		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
593	},
594
595	isEmptyObject: function( obj ) {
596		var name;
597
598		for ( name in obj ) {
599			return false;
600		}
601		return true;
602	},
603
604	// Evaluates a script in a provided context; falls back to the global one
605	// if not specified.
606	globalEval: function( code, options, doc ) {
607		DOMEval( code, { nonce: options && options.nonce }, doc );
608	},
609
610	each: function( obj, callback ) {
611		var length, i = 0;
612
613		if ( isArrayLike( obj ) ) {
614			length = obj.length;
615			for ( ; i < length; i++ ) {
616				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
617					break;
618				}
619			}
620		} else {
621			for ( i in obj ) {
622				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
623					break;
624				}
625			}
626		}
627
628		return obj;
629	},
630
631	// results is for internal usage only
632	makeArray: function( arr, results ) {
633		var ret = results || [];
634
635		if ( arr != null ) {
636			if ( isArrayLike( Object( arr ) ) ) {
637				jQuery.merge( ret,
638					typeof arr === "string" ?
639						[ arr ] : arr
640				);
641			} else {
642				push.call( ret, arr );
643			}
644		}
645
646		return ret;
647	},
648
649	inArray: function( elem, arr, i ) {
650		return arr == null ? -1 : indexOf.call( arr, elem, i );
651	},
652
653	// Support: Android <=4.0 only, PhantomJS 1 only
654	// push.apply(_, arraylike) throws on ancient WebKit
655	merge: function( first, second ) {
656		var len = +second.length,
657			j = 0,
658			i = first.length;
659
660		for ( ; j < len; j++ ) {
661			first[ i++ ] = second[ j ];
662		}
663
664		first.length = i;
665
666		return first;
667	},
668
669	grep: function( elems, callback, invert ) {
670		var callbackInverse,
671			matches = [],
672			i = 0,
673			length = elems.length,
674			callbackExpect = !invert;
675
676		// Go through the array, only saving the items
677		// that pass the validator function
678		for ( ; i < length; i++ ) {
679			callbackInverse = !callback( elems[ i ], i );
680			if ( callbackInverse !== callbackExpect ) {
681				matches.push( elems[ i ] );
682			}
683		}
684
685		return matches;
686	},
687
688	// arg is for internal usage only
689	map: function( elems, callback, arg ) {
690		var length, value,
691			i = 0,
692			ret = [];
693
694		// Go through the array, translating each of the items to their new values
695		if ( isArrayLike( elems ) ) {
696			length = elems.length;
697			for ( ; i < length; i++ ) {
698				value = callback( elems[ i ], i, arg );
699
700				if ( value != null ) {
701					ret.push( value );
702				}
703			}
704
705		// Go through every key on the object,
706		} else {
707			for ( i in elems ) {
708				value = callback( elems[ i ], i, arg );
709
710				if ( value != null ) {
711					ret.push( value );
712				}
713			}
714		}
715
716		// Flatten any nested arrays
717		return flat( ret );
718	},
719
720	// A global GUID counter for objects
721	guid: 1,
722
723	// jQuery.support is not used in Core but other projects attach their
724	// properties to it so it needs to exist.
725	support: support
726} );
727
728if ( typeof Symbol === "function" ) {
729	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
730}
731
732// Populate the class2type map
733jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
734	function( _i, name ) {
735		class2type[ "[object " + name + "]" ] = name.toLowerCase();
736	} );
737
738function isArrayLike( obj ) {
739
740	// Support: real iOS 8.2 only (not reproducible in simulator)
741	// `in` check used to prevent JIT error (gh-2145)
742	// hasOwn isn't used here due to false negatives
743	// regarding Nodelist length in IE
744	var length = !!obj && "length" in obj && obj.length,
745		type = toType( obj );
746
747	if ( isFunction( obj ) || isWindow( obj ) ) {
748		return false;
749	}
750
751	return type === "array" || length === 0 ||
752		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
753}
754var Sizzle =
755/*!
756 * Sizzle CSS Selector Engine v2.3.6
757 * https://sizzlejs.com/
758 *
759 * Copyright JS Foundation and other contributors
760 * Released under the MIT license
761 * https://js.foundation/
762 *
763 * Date: 2021-02-16
764 */
765( function( window ) {
766var i,
767	support,
768	Expr,
769	getText,
770	isXML,
771	tokenize,
772	compile,
773	select,
774	outermostContext,
775	sortInput,
776	hasDuplicate,
777
778	// Local document vars
779	setDocument,
780	document,
781	docElem,
782	documentIsHTML,
783	rbuggyQSA,
784	rbuggyMatches,
785	matches,
786	contains,
787
788	// Instance-specific data
789	expando = "sizzle" + 1 * new Date(),
790	preferredDoc = window.document,
791	dirruns = 0,
792	done = 0,
793	classCache = createCache(),
794	tokenCache = createCache(),
795	compilerCache = createCache(),
796	nonnativeSelectorCache = createCache(),
797	sortOrder = function( a, b ) {
798		if ( a === b ) {
799			hasDuplicate = true;
800		}
801		return 0;
802	},
803
804	// Instance methods
805	hasOwn = ( {} ).hasOwnProperty,
806	arr = [],
807	pop = arr.pop,
808	pushNative = arr.push,
809	push = arr.push,
810	slice = arr.slice,
811
812	// Use a stripped-down indexOf as it's faster than native
813	// https://jsperf.com/thor-indexof-vs-for/5
814	indexOf = function( list, elem ) {
815		var i = 0,
816			len = list.length;
817		for ( ; i < len; i++ ) {
818			if ( list[ i ] === elem ) {
819				return i;
820			}
821		}
822		return -1;
823	},
824
825	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
826		"ismap|loop|multiple|open|readonly|required|scoped",
827
828	// Regular expressions
829
830	// http://www.w3.org/TR/css3-selectors/#whitespace
831	whitespace = "[\\x20\\t\\r\\n\\f]",
832
833	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
834	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
835		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
836
837	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
838	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
839
840		// Operator (capture 2)
841		"*([*^$|!~]?=)" + whitespace +
842
843		// "Attribute values must be CSS identifiers [capture 5]
844		// or strings [capture 3 or capture 4]"
845		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
846		whitespace + "*\\]",
847
848	pseudos = ":(" + identifier + ")(?:\\((" +
849
850		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
851		// 1. quoted (capture 3; capture 4 or capture 5)
852		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
853
854		// 2. simple (capture 6)
855		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
856
857		// 3. anything else (capture 2)
858		".*" +
859		")\\)|)",
860
861	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
862	rwhitespace = new RegExp( whitespace + "+", "g" ),
863	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
864		whitespace + "+$", "g" ),
865
866	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
867	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
868		"*" ),
869	rdescend = new RegExp( whitespace + "|>" ),
870
871	rpseudo = new RegExp( pseudos ),
872	ridentifier = new RegExp( "^" + identifier + "$" ),
873
874	matchExpr = {
875		"ID": new RegExp( "^#(" + identifier + ")" ),
876		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
877		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
878		"ATTR": new RegExp( "^" + attributes ),
879		"PSEUDO": new RegExp( "^" + pseudos ),
880		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
881			whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
882			whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
883		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
884
885		// For use in libraries implementing .is()
886		// We use this for POS matching in `select`
887		"needsContext": new RegExp( "^" + whitespace +
888			"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
889			"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
890	},
891
892	rhtml = /HTML$/i,
893	rinputs = /^(?:input|select|textarea|button)$/i,
894	rheader = /^h\d$/i,
895
896	rnative = /^[^{]+\{\s*\[native \w/,
897
898	// Easily-parseable/retrievable ID or TAG or CLASS selectors
899	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
900
901	rsibling = /[+~]/,
902
903	// CSS escapes
904	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
905	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
906	funescape = function( escape, nonHex ) {
907		var high = "0x" + escape.slice( 1 ) - 0x10000;
908
909		return nonHex ?
910
911			// Strip the backslash prefix from a non-hex escape sequence
912			nonHex :
913
914			// Replace a hexadecimal escape sequence with the encoded Unicode code point
915			// Support: IE <=11+
916			// For values outside the Basic Multilingual Plane (BMP), manually construct a
917			// surrogate pair
918			high < 0 ?
919				String.fromCharCode( high + 0x10000 ) :
920				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
921	},
922
923	// CSS string/identifier serialization
924	// https://drafts.csswg.org/cssom/#common-serializing-idioms
925	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
926	fcssescape = function( ch, asCodePoint ) {
927		if ( asCodePoint ) {
928
929			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
930			if ( ch === "\0" ) {
931				return "\uFFFD";
932			}
933
934			// Control characters and (dependent upon position) numbers get escaped as code points
935			return ch.slice( 0, -1 ) + "\\" +
936				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
937		}
938
939		// Other potentially-special ASCII characters get backslash-escaped
940		return "\\" + ch;
941	},
942
943	// Used for iframes
944	// See setDocument()
945	// Removing the function wrapper causes a "Permission Denied"
946	// error in IE
947	unloadHandler = function() {
948		setDocument();
949	},
950
951	inDisabledFieldset = addCombinator(
952		function( elem ) {
953			return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
954		},
955		{ dir: "parentNode", next: "legend" }
956	);
957
958// Optimize for push.apply( _, NodeList )
959try {
960	push.apply(
961		( arr = slice.call( preferredDoc.childNodes ) ),
962		preferredDoc.childNodes
963	);
964
965	// Support: Android<4.0
966	// Detect silently failing push.apply
967	// eslint-disable-next-line no-unused-expressions
968	arr[ preferredDoc.childNodes.length ].nodeType;
969} catch ( e ) {
970	push = { apply: arr.length ?
971
972		// Leverage slice if possible
973		function( target, els ) {
974			pushNative.apply( target, slice.call( els ) );
975		} :
976
977		// Support: IE<9
978		// Otherwise append directly
979		function( target, els ) {
980			var j = target.length,
981				i = 0;
982
983			// Can't trust NodeList.length
984			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
985			target.length = j - 1;
986		}
987	};
988}
989
990function Sizzle( selector, context, results, seed ) {
991	var m, i, elem, nid, match, groups, newSelector,
992		newContext = context && context.ownerDocument,
993
994		// nodeType defaults to 9, since context defaults to document
995		nodeType = context ? context.nodeType : 9;
996
997	results = results || [];
998
999	// Return early from calls with invalid selector or context
1000	if ( typeof selector !== "string" || !selector ||
1001		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
1002
1003		return results;
1004	}
1005
1006	// Try to shortcut find operations (as opposed to filters) in HTML documents
1007	if ( !seed ) {
1008		setDocument( context );
1009		context = context || document;
1010
1011		if ( documentIsHTML ) {
1012
1013			// If the selector is sufficiently simple, try using a "get*By*" DOM method
1014			// (excepting DocumentFragment context, where the methods don't exist)
1015			if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {
1016
1017				// ID selector
1018				if ( ( m = match[ 1 ] ) ) {
1019
1020					// Document context
1021					if ( nodeType === 9 ) {
1022						if ( ( elem = context.getElementById( m ) ) ) {
1023
1024							// Support: IE, Opera, Webkit
1025							// TODO: identify versions
1026							// getElementById can match elements by name instead of ID
1027							if ( elem.id === m ) {
1028								results.push( elem );
1029								return results;
1030							}
1031						} else {
1032							return results;
1033						}
1034
1035					// Element context
1036					} else {
1037
1038						// Support: IE, Opera, Webkit
1039						// TODO: identify versions
1040						// getElementById can match elements by name instead of ID
1041						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
1042							contains( context, elem ) &&
1043							elem.id === m ) {
1044
1045							results.push( elem );
1046							return results;
1047						}
1048					}
1049
1050				// Type selector
1051				} else if ( match[ 2 ] ) {
1052					push.apply( results, context.getElementsByTagName( selector ) );
1053					return results;
1054
1055				// Class selector
1056				} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
1057					context.getElementsByClassName ) {
1058
1059					push.apply( results, context.getElementsByClassName( m ) );
1060					return results;
1061				}
1062			}
1063
1064			// Take advantage of querySelectorAll
1065			if ( support.qsa &&
1066				!nonnativeSelectorCache[ selector + " " ] &&
1067				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
1068
1069				// Support: IE 8 only
1070				// Exclude object elements
1071				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
1072
1073				newSelector = selector;
1074				newContext = context;
1075
1076				// qSA considers elements outside a scoping root when evaluating child or
1077				// descendant combinators, which is not what we want.
1078				// In such cases, we work around the behavior by prefixing every selector in the
1079				// list with an ID selector referencing the scope context.
1080				// The technique has to be used as well when a leading combinator is used
1081				// as such selectors are not recognized by querySelectorAll.
1082				// Thanks to Andrew Dupont for this technique.
1083				if ( nodeType === 1 &&
1084					( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
1085
1086					// Expand context for sibling selectors
1087					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
1088						context;
1089
1090					// We can use :scope instead of the ID hack if the browser
1091					// supports it & if we're not changing the context.
1092					if ( newContext !== context || !support.scope ) {
1093
1094						// Capture the context ID, setting it first if necessary
1095						if ( ( nid = context.getAttribute( "id" ) ) ) {
1096							nid = nid.replace( rcssescape, fcssescape );
1097						} else {
1098							context.setAttribute( "id", ( nid = expando ) );
1099						}
1100					}
1101
1102					// Prefix every selector in the list
1103					groups = tokenize( selector );
1104					i = groups.length;
1105					while ( i-- ) {
1106						groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
1107							toSelector( groups[ i ] );
1108					}
1109					newSelector = groups.join( "," );
1110				}
1111
1112				try {
1113					push.apply( results,
1114						newContext.querySelectorAll( newSelector )
1115					);
1116					return results;
1117				} catch ( qsaError ) {
1118					nonnativeSelectorCache( selector, true );
1119				} finally {
1120					if ( nid === expando ) {
1121						context.removeAttribute( "id" );
1122					}
1123				}
1124			}
1125		}
1126	}
1127
1128	// All others
1129	return select( selector.replace( rtrim, "$1" ), context, results, seed );
1130}
1131
1132/**
1133 * Create key-value caches of limited size
1134 * @returns {function(string, object)} Returns the Object data after storing it on itself with
1135 *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
1136 *	deleting the oldest entry
1137 */
1138function createCache() {
1139	var keys = [];
1140
1141	function cache( key, value ) {
1142
1143		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
1144		if ( keys.push( key + " " ) > Expr.cacheLength ) {
1145
1146			// Only keep the most recent entries
1147			delete cache[ keys.shift() ];
1148		}
1149		return ( cache[ key + " " ] = value );
1150	}
1151	return cache;
1152}
1153
1154/**
1155 * Mark a function for special use by Sizzle
1156 * @param {Function} fn The function to mark
1157 */
1158function markFunction( fn ) {
1159	fn[ expando ] = true;
1160	return fn;
1161}
1162
1163/**
1164 * Support testing using an element
1165 * @param {Function} fn Passed the created element and returns a boolean result
1166 */
1167function assert( fn ) {
1168	var el = document.createElement( "fieldset" );
1169
1170	try {
1171		return !!fn( el );
1172	} catch ( e ) {
1173		return false;
1174	} finally {
1175
1176		// Remove from its parent by default
1177		if ( el.parentNode ) {
1178			el.parentNode.removeChild( el );
1179		}
1180
1181		// release memory in IE
1182		el = null;
1183	}
1184}
1185
1186/**
1187 * Adds the same handler for all of the specified attrs
1188 * @param {String} attrs Pipe-separated list of attributes
1189 * @param {Function} handler The method that will be applied
1190 */
1191function addHandle( attrs, handler ) {
1192	var arr = attrs.split( "|" ),
1193		i = arr.length;
1194
1195	while ( i-- ) {
1196		Expr.attrHandle[ arr[ i ] ] = handler;
1197	}
1198}
1199
1200/**
1201 * Checks document order of two siblings
1202 * @param {Element} a
1203 * @param {Element} b
1204 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
1205 */
1206function siblingCheck( a, b ) {
1207	var cur = b && a,
1208		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
1209			a.sourceIndex - b.sourceIndex;
1210
1211	// Use IE sourceIndex if available on both nodes
1212	if ( diff ) {
1213		return diff;
1214	}
1215
1216	// Check if b follows a
1217	if ( cur ) {
1218		while ( ( cur = cur.nextSibling ) ) {
1219			if ( cur === b ) {
1220				return -1;
1221			}
1222		}
1223	}
1224
1225	return a ? 1 : -1;
1226}
1227
1228/**
1229 * Returns a function to use in pseudos for input types
1230 * @param {String} type
1231 */
1232function createInputPseudo( type ) {
1233	return function( elem ) {
1234		var name = elem.nodeName.toLowerCase();
1235		return name === "input" && elem.type === type;
1236	};
1237}
1238
1239/**
1240 * Returns a function to use in pseudos for buttons
1241 * @param {String} type
1242 */
1243function createButtonPseudo( type ) {
1244	return function( elem ) {
1245		var name = elem.nodeName.toLowerCase();
1246		return ( name === "input" || name === "button" ) && elem.type === type;
1247	};
1248}
1249
1250/**
1251 * Returns a function to use in pseudos for :enabled/:disabled
1252 * @param {Boolean} disabled true for :disabled; false for :enabled
1253 */
1254function createDisabledPseudo( disabled ) {
1255
1256	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
1257	return function( elem ) {
1258
1259		// Only certain elements can match :enabled or :disabled
1260		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
1261		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
1262		if ( "form" in elem ) {
1263
1264			// Check for inherited disabledness on relevant non-disabled elements:
1265			// * listed form-associated elements in a disabled fieldset
1266			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
1267			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
1268			// * option elements in a disabled optgroup
1269			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
1270			// All such elements have a "form" property.
1271			if ( elem.parentNode && elem.disabled === false ) {
1272
1273				// Option elements defer to a parent optgroup if present
1274				if ( "label" in elem ) {
1275					if ( "label" in elem.parentNode ) {
1276						return elem.parentNode.disabled === disabled;
1277					} else {
1278						return elem.disabled === disabled;
1279					}
1280				}
1281
1282				// Support: IE 6 - 11
1283				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
1284				return elem.isDisabled === disabled ||
1285
1286					// Where there is no isDisabled, check manually
1287					/* jshint -W018 */
1288					elem.isDisabled !== !disabled &&
1289					inDisabledFieldset( elem ) === disabled;
1290			}
1291
1292			return elem.disabled === disabled;
1293
1294		// Try to winnow out elements that can't be disabled before trusting the disabled property.
1295		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
1296		// even exist on them, let alone have a boolean value.
1297		} else if ( "label" in elem ) {
1298			return elem.disabled === disabled;
1299		}
1300
1301		// Remaining elements are neither :enabled nor :disabled
1302		return false;
1303	};
1304}
1305
1306/**
1307 * Returns a function to use in pseudos for positionals
1308 * @param {Function} fn
1309 */
1310function createPositionalPseudo( fn ) {
1311	return markFunction( function( argument ) {
1312		argument = +argument;
1313		return markFunction( function( seed, matches ) {
1314			var j,
1315				matchIndexes = fn( [], seed.length, argument ),
1316				i = matchIndexes.length;
1317
1318			// Match elements found at the specified indexes
1319			while ( i-- ) {
1320				if ( seed[ ( j = matchIndexes[ i ] ) ] ) {
1321					seed[ j ] = !( matches[ j ] = seed[ j ] );
1322				}
1323			}
1324		} );
1325	} );
1326}
1327
1328/**
1329 * Checks a node for validity as a Sizzle context
1330 * @param {Element|Object=} context
1331 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
1332 */
1333function testContext( context ) {
1334	return context && typeof context.getElementsByTagName !== "undefined" && context;
1335}
1336
1337// Expose support vars for convenience
1338support = Sizzle.support = {};
1339
1340/**
1341 * Detects XML nodes
1342 * @param {Element|Object} elem An element or a document
1343 * @returns {Boolean} True iff elem is a non-HTML XML node
1344 */
1345isXML = Sizzle.isXML = function( elem ) {
1346	var namespace = elem && elem.namespaceURI,
1347		docElem = elem && ( elem.ownerDocument || elem ).documentElement;
1348
1349	// Support: IE <=8
1350	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
1351	// https://bugs.jquery.com/ticket/4833
1352	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
1353};
1354
1355/**
1356 * Sets document-related variables once based on the current document
1357 * @param {Element|Object} [doc] An element or document object to use to set the document
1358 * @returns {Object} Returns the current document
1359 */
1360setDocument = Sizzle.setDocument = function( node ) {
1361	var hasCompare, subWindow,
1362		doc = node ? node.ownerDocument || node : preferredDoc;
1363
1364	// Return early if doc is invalid or already selected
1365	// Support: IE 11+, Edge 17 - 18+
1366	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1367	// two documents; shallow comparisons work.
1368	// eslint-disable-next-line eqeqeq
1369	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
1370		return document;
1371	}
1372
1373	// Update global variables
1374	document = doc;
1375	docElem = document.documentElement;
1376	documentIsHTML = !isXML( document );
1377
1378	// Support: IE 9 - 11+, Edge 12 - 18+
1379	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
1380	// Support: IE 11+, Edge 17 - 18+
1381	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1382	// two documents; shallow comparisons work.
1383	// eslint-disable-next-line eqeqeq
1384	if ( preferredDoc != document &&
1385		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
1386
1387		// Support: IE 11, Edge
1388		if ( subWindow.addEventListener ) {
1389			subWindow.addEventListener( "unload", unloadHandler, false );
1390
1391		// Support: IE 9 - 10 only
1392		} else if ( subWindow.attachEvent ) {
1393			subWindow.attachEvent( "onunload", unloadHandler );
1394		}
1395	}
1396
1397	// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
1398	// Safari 4 - 5 only, Opera <=11.6 - 12.x only
1399	// IE/Edge & older browsers don't support the :scope pseudo-class.
1400	// Support: Safari 6.0 only
1401	// Safari 6.0 supports :scope but it's an alias of :root there.
1402	support.scope = assert( function( el ) {
1403		docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
1404		return typeof el.querySelectorAll !== "undefined" &&
1405			!el.querySelectorAll( ":scope fieldset div" ).length;
1406	} );
1407
1408	/* Attributes
1409	---------------------------------------------------------------------- */
1410
1411	// Support: IE<8
1412	// Verify that getAttribute really returns attributes and not properties
1413	// (excepting IE8 booleans)
1414	support.attributes = assert( function( el ) {
1415		el.className = "i";
1416		return !el.getAttribute( "className" );
1417	} );
1418
1419	/* getElement(s)By*
1420	---------------------------------------------------------------------- */
1421
1422	// Check if getElementsByTagName("*") returns only elements
1423	support.getElementsByTagName = assert( function( el ) {
1424		el.appendChild( document.createComment( "" ) );
1425		return !el.getElementsByTagName( "*" ).length;
1426	} );
1427
1428	// Support: IE<9
1429	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
1430
1431	// Support: IE<10
1432	// Check if getElementById returns elements by name
1433	// The broken getElementById methods don't pick up programmatically-set names,
1434	// so use a roundabout getElementsByName test
1435	support.getById = assert( function( el ) {
1436		docElem.appendChild( el ).id = expando;
1437		return !document.getElementsByName || !document.getElementsByName( expando ).length;
1438	} );
1439
1440	// ID filter and find
1441	if ( support.getById ) {
1442		Expr.filter[ "ID" ] = function( id ) {
1443			var attrId = id.replace( runescape, funescape );
1444			return function( elem ) {
1445				return elem.getAttribute( "id" ) === attrId;
1446			};
1447		};
1448		Expr.find[ "ID" ] = function( id, context ) {
1449			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
1450				var elem = context.getElementById( id );
1451				return elem ? [ elem ] : [];
1452			}
1453		};
1454	} else {
1455		Expr.filter[ "ID" ] =  function( id ) {
1456			var attrId = id.replace( runescape, funescape );
1457			return function( elem ) {
1458				var node = typeof elem.getAttributeNode !== "undefined" &&
1459					elem.getAttributeNode( "id" );
1460				return node && node.value === attrId;
1461			};
1462		};
1463
1464		// Support: IE 6 - 7 only
1465		// getElementById is not reliable as a find shortcut
1466		Expr.find[ "ID" ] = function( id, context ) {
1467			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
1468				var node, i, elems,
1469					elem = context.getElementById( id );
1470
1471				if ( elem ) {
1472
1473					// Verify the id attribute
1474					node = elem.getAttributeNode( "id" );
1475					if ( node && node.value === id ) {
1476						return [ elem ];
1477					}
1478
1479					// Fall back on getElementsByName
1480					elems = context.getElementsByName( id );
1481					i = 0;
1482					while ( ( elem = elems[ i++ ] ) ) {
1483						node = elem.getAttributeNode( "id" );
1484						if ( node && node.value === id ) {
1485							return [ elem ];
1486						}
1487					}
1488				}
1489
1490				return [];
1491			}
1492		};
1493	}
1494
1495	// Tag
1496	Expr.find[ "TAG" ] = support.getElementsByTagName ?
1497		function( tag, context ) {
1498			if ( typeof context.getElementsByTagName !== "undefined" ) {
1499				return context.getElementsByTagName( tag );
1500
1501			// DocumentFragment nodes don't have gEBTN
1502			} else if ( support.qsa ) {
1503				return context.querySelectorAll( tag );
1504			}
1505		} :
1506
1507		function( tag, context ) {
1508			var elem,
1509				tmp = [],
1510				i = 0,
1511
1512				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
1513				results = context.getElementsByTagName( tag );
1514
1515			// Filter out possible comments
1516			if ( tag === "*" ) {
1517				while ( ( elem = results[ i++ ] ) ) {
1518					if ( elem.nodeType === 1 ) {
1519						tmp.push( elem );
1520					}
1521				}
1522
1523				return tmp;
1524			}
1525			return results;
1526		};
1527
1528	// Class
1529	Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
1530		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
1531			return context.getElementsByClassName( className );
1532		}
1533	};
1534
1535	/* QSA/matchesSelector
1536	---------------------------------------------------------------------- */
1537
1538	// QSA and matchesSelector support
1539
1540	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
1541	rbuggyMatches = [];
1542
1543	// qSa(:focus) reports false when true (Chrome 21)
1544	// We allow this because of a bug in IE8/9 that throws an error
1545	// whenever `document.activeElement` is accessed on an iframe
1546	// So, we allow :focus to pass through QSA all the time to avoid the IE error
1547	// See https://bugs.jquery.com/ticket/13378
1548	rbuggyQSA = [];
1549
1550	if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
1551
1552		// Build QSA regex
1553		// Regex strategy adopted from Diego Perini
1554		assert( function( el ) {
1555
1556			var input;
1557
1558			// Select is set to empty string on purpose
1559			// This is to test IE's treatment of not explicitly
1560			// setting a boolean content attribute,
1561			// since its presence should be enough
1562			// https://bugs.jquery.com/ticket/12359
1563			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
1564				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
1565				"<option selected=''></option></select>";
1566
1567			// Support: IE8, Opera 11-12.16
1568			// Nothing should be selected when empty strings follow ^= or $= or *=
1569			// The test attribute must be unknown in Opera but "safe" for WinRT
1570			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
1571			if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
1572				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
1573			}
1574
1575			// Support: IE8
1576			// Boolean attributes and "value" are not treated correctly
1577			if ( !el.querySelectorAll( "[selected]" ).length ) {
1578				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
1579			}
1580
1581			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
1582			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
1583				rbuggyQSA.push( "~=" );
1584			}
1585
1586			// Support: IE 11+, Edge 15 - 18+
1587			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
1588			// Adding a temporary attribute to the document before the selection works
1589			// around the issue.
1590			// Interestingly, IE 10 & older don't seem to have the issue.
1591			input = document.createElement( "input" );
1592			input.setAttribute( "name", "" );
1593			el.appendChild( input );
1594			if ( !el.querySelectorAll( "[name='']" ).length ) {
1595				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
1596					whitespace + "*(?:''|\"\")" );
1597			}
1598
1599			// Webkit/Opera - :checked should return selected option elements
1600			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1601			// IE8 throws error here and will not see later tests
1602			if ( !el.querySelectorAll( ":checked" ).length ) {
1603				rbuggyQSA.push( ":checked" );
1604			}
1605
1606			// Support: Safari 8+, iOS 8+
1607			// https://bugs.webkit.org/show_bug.cgi?id=136851
1608			// In-page `selector#id sibling-combinator selector` fails
1609			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
1610				rbuggyQSA.push( ".#.+[+~]" );
1611			}
1612
1613			// Support: Firefox <=3.6 - 5 only
1614			// Old Firefox doesn't throw on a badly-escaped identifier.
1615			el.querySelectorAll( "\\\f" );
1616			rbuggyQSA.push( "[\\r\\n\\f]" );
1617		} );
1618
1619		assert( function( el ) {
1620			el.innerHTML = "<a href='' disabled='disabled'></a>" +
1621				"<select disabled='disabled'><option/></select>";
1622
1623			// Support: Windows 8 Native Apps
1624			// The type and name attributes are restricted during .innerHTML assignment
1625			var input = document.createElement( "input" );
1626			input.setAttribute( "type", "hidden" );
1627			el.appendChild( input ).setAttribute( "name", "D" );
1628
1629			// Support: IE8
1630			// Enforce case-sensitivity of name attribute
1631			if ( el.querySelectorAll( "[name=d]" ).length ) {
1632				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
1633			}
1634
1635			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
1636			// IE8 throws error here and will not see later tests
1637			if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
1638				rbuggyQSA.push( ":enabled", ":disabled" );
1639			}
1640
1641			// Support: IE9-11+
1642			// IE's :disabled selector does not pick up the children of disabled fieldsets
1643			docElem.appendChild( el ).disabled = true;
1644			if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
1645				rbuggyQSA.push( ":enabled", ":disabled" );
1646			}
1647
1648			// Support: Opera 10 - 11 only
1649			// Opera 10-11 does not throw on post-comma invalid pseudos
1650			el.querySelectorAll( "*,:x" );
1651			rbuggyQSA.push( ",.*:" );
1652		} );
1653	}
1654
1655	if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
1656		docElem.webkitMatchesSelector ||
1657		docElem.mozMatchesSelector ||
1658		docElem.oMatchesSelector ||
1659		docElem.msMatchesSelector ) ) ) ) {
1660
1661		assert( function( el ) {
1662
1663			// Check to see if it's possible to do matchesSelector
1664			// on a disconnected node (IE 9)
1665			support.disconnectedMatch = matches.call( el, "*" );
1666
1667			// This should fail with an exception
1668			// Gecko does not error, returns false instead
1669			matches.call( el, "[s!='']:x" );
1670			rbuggyMatches.push( "!=", pseudos );
1671		} );
1672	}
1673
1674	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
1675	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
1676
1677	/* Contains
1678	---------------------------------------------------------------------- */
1679	hasCompare = rnative.test( docElem.compareDocumentPosition );
1680
1681	// Element contains another
1682	// Purposefully self-exclusive
1683	// As in, an element does not contain itself
1684	contains = hasCompare || rnative.test( docElem.contains ) ?
1685		function( a, b ) {
1686			var adown = a.nodeType === 9 ? a.documentElement : a,
1687				bup = b && b.parentNode;
1688			return a === bup || !!( bup && bup.nodeType === 1 && (
1689				adown.contains ?
1690					adown.contains( bup ) :
1691					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
1692			) );
1693		} :
1694		function( a, b ) {
1695			if ( b ) {
1696				while ( ( b = b.parentNode ) ) {
1697					if ( b === a ) {
1698						return true;
1699					}
1700				}
1701			}
1702			return false;
1703		};
1704
1705	/* Sorting
1706	---------------------------------------------------------------------- */
1707
1708	// Document order sorting
1709	sortOrder = hasCompare ?
1710	function( a, b ) {
1711
1712		// Flag for duplicate removal
1713		if ( a === b ) {
1714			hasDuplicate = true;
1715			return 0;
1716		}
1717
1718		// Sort on method existence if only one input has compareDocumentPosition
1719		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
1720		if ( compare ) {
1721			return compare;
1722		}
1723
1724		// Calculate position if both inputs belong to the same document
1725		// Support: IE 11+, Edge 17 - 18+
1726		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1727		// two documents; shallow comparisons work.
1728		// eslint-disable-next-line eqeqeq
1729		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
1730			a.compareDocumentPosition( b ) :
1731
1732			// Otherwise we know they are disconnected
1733			1;
1734
1735		// Disconnected nodes
1736		if ( compare & 1 ||
1737			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {
1738
1739			// Choose the first element that is related to our preferred document
1740			// Support: IE 11+, Edge 17 - 18+
1741			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1742			// two documents; shallow comparisons work.
1743			// eslint-disable-next-line eqeqeq
1744			if ( a == document || a.ownerDocument == preferredDoc &&
1745				contains( preferredDoc, a ) ) {
1746				return -1;
1747			}
1748
1749			// Support: IE 11+, Edge 17 - 18+
1750			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1751			// two documents; shallow comparisons work.
1752			// eslint-disable-next-line eqeqeq
1753			if ( b == document || b.ownerDocument == preferredDoc &&
1754				contains( preferredDoc, b ) ) {
1755				return 1;
1756			}
1757
1758			// Maintain original order
1759			return sortInput ?
1760				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
1761				0;
1762		}
1763
1764		return compare & 4 ? -1 : 1;
1765	} :
1766	function( a, b ) {
1767
1768		// Exit early if the nodes are identical
1769		if ( a === b ) {
1770			hasDuplicate = true;
1771			return 0;
1772		}
1773
1774		var cur,
1775			i = 0,
1776			aup = a.parentNode,
1777			bup = b.parentNode,
1778			ap = [ a ],
1779			bp = [ b ];
1780
1781		// Parentless nodes are either documents or disconnected
1782		if ( !aup || !bup ) {
1783
1784			// Support: IE 11+, Edge 17 - 18+
1785			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1786			// two documents; shallow comparisons work.
1787			/* eslint-disable eqeqeq */
1788			return a == document ? -1 :
1789				b == document ? 1 :
1790				/* eslint-enable eqeqeq */
1791				aup ? -1 :
1792				bup ? 1 :
1793				sortInput ?
1794				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
1795				0;
1796
1797		// If the nodes are siblings, we can do a quick check
1798		} else if ( aup === bup ) {
1799			return siblingCheck( a, b );
1800		}
1801
1802		// Otherwise we need full lists of their ancestors for comparison
1803		cur = a;
1804		while ( ( cur = cur.parentNode ) ) {
1805			ap.unshift( cur );
1806		}
1807		cur = b;
1808		while ( ( cur = cur.parentNode ) ) {
1809			bp.unshift( cur );
1810		}
1811
1812		// Walk down the tree looking for a discrepancy
1813		while ( ap[ i ] === bp[ i ] ) {
1814			i++;
1815		}
1816
1817		return i ?
1818
1819			// Do a sibling check if the nodes have a common ancestor
1820			siblingCheck( ap[ i ], bp[ i ] ) :
1821
1822			// Otherwise nodes in our document sort first
1823			// Support: IE 11+, Edge 17 - 18+
1824			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1825			// two documents; shallow comparisons work.
1826			/* eslint-disable eqeqeq */
1827			ap[ i ] == preferredDoc ? -1 :
1828			bp[ i ] == preferredDoc ? 1 :
1829			/* eslint-enable eqeqeq */
1830			0;
1831	};
1832
1833	return document;
1834};
1835
1836Sizzle.matches = function( expr, elements ) {
1837	return Sizzle( expr, null, null, elements );
1838};
1839
1840Sizzle.matchesSelector = function( elem, expr ) {
1841	setDocument( elem );
1842
1843	if ( support.matchesSelector && documentIsHTML &&
1844		!nonnativeSelectorCache[ expr + " " ] &&
1845		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
1846		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
1847
1848		try {
1849			var ret = matches.call( elem, expr );
1850
1851			// IE 9's matchesSelector returns false on disconnected nodes
1852			if ( ret || support.disconnectedMatch ||
1853
1854				// As well, disconnected nodes are said to be in a document
1855				// fragment in IE 9
1856				elem.document && elem.document.nodeType !== 11 ) {
1857				return ret;
1858			}
1859		} catch ( e ) {
1860			nonnativeSelectorCache( expr, true );
1861		}
1862	}
1863
1864	return Sizzle( expr, document, null, [ elem ] ).length > 0;
1865};
1866
1867Sizzle.contains = function( context, elem ) {
1868
1869	// Set document vars if needed
1870	// Support: IE 11+, Edge 17 - 18+
1871	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1872	// two documents; shallow comparisons work.
1873	// eslint-disable-next-line eqeqeq
1874	if ( ( context.ownerDocument || context ) != document ) {
1875		setDocument( context );
1876	}
1877	return contains( context, elem );
1878};
1879
1880Sizzle.attr = function( elem, name ) {
1881
1882	// Set document vars if needed
1883	// Support: IE 11+, Edge 17 - 18+
1884	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1885	// two documents; shallow comparisons work.
1886	// eslint-disable-next-line eqeqeq
1887	if ( ( elem.ownerDocument || elem ) != document ) {
1888		setDocument( elem );
1889	}
1890
1891	var fn = Expr.attrHandle[ name.toLowerCase() ],
1892
1893		// Don't get fooled by Object.prototype properties (jQuery #13807)
1894		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
1895			fn( elem, name, !documentIsHTML ) :
1896			undefined;
1897
1898	return val !== undefined ?
1899		val :
1900		support.attributes || !documentIsHTML ?
1901			elem.getAttribute( name ) :
1902			( val = elem.getAttributeNode( name ) ) && val.specified ?
1903				val.value :
1904				null;
1905};
1906
1907Sizzle.escape = function( sel ) {
1908	return ( sel + "" ).replace( rcssescape, fcssescape );
1909};
1910
1911Sizzle.error = function( msg ) {
1912	throw new Error( "Syntax error, unrecognized expression: " + msg );
1913};
1914
1915/**
1916 * Document sorting and removing duplicates
1917 * @param {ArrayLike} results
1918 */
1919Sizzle.uniqueSort = function( results ) {
1920	var elem,
1921		duplicates = [],
1922		j = 0,
1923		i = 0;
1924
1925	// Unless we *know* we can detect duplicates, assume their presence
1926	hasDuplicate = !support.detectDuplicates;
1927	sortInput = !support.sortStable && results.slice( 0 );
1928	results.sort( sortOrder );
1929
1930	if ( hasDuplicate ) {
1931		while ( ( elem = results[ i++ ] ) ) {
1932			if ( elem === results[ i ] ) {
1933				j = duplicates.push( i );
1934			}
1935		}
1936		while ( j-- ) {
1937			results.splice( duplicates[ j ], 1 );
1938		}
1939	}
1940
1941	// Clear input after sorting to release objects
1942	// See https://github.com/jquery/sizzle/pull/225
1943	sortInput = null;
1944
1945	return results;
1946};
1947
1948/**
1949 * Utility function for retrieving the text value of an array of DOM nodes
1950 * @param {Array|Element} elem
1951 */
1952getText = Sizzle.getText = function( elem ) {
1953	var node,
1954		ret = "",
1955		i = 0,
1956		nodeType = elem.nodeType;
1957
1958	if ( !nodeType ) {
1959
1960		// If no nodeType, this is expected to be an array
1961		while ( ( node = elem[ i++ ] ) ) {
1962
1963			// Do not traverse comment nodes
1964			ret += getText( node );
1965		}
1966	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
1967
1968		// Use textContent for elements
1969		// innerText usage removed for consistency of new lines (jQuery #11153)
1970		if ( typeof elem.textContent === "string" ) {
1971			return elem.textContent;
1972		} else {
1973
1974			// Traverse its children
1975			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1976				ret += getText( elem );
1977			}
1978		}
1979	} else if ( nodeType === 3 || nodeType === 4 ) {
1980		return elem.nodeValue;
1981	}
1982
1983	// Do not include comment or processing instruction nodes
1984
1985	return ret;
1986};
1987
1988Expr = Sizzle.selectors = {
1989
1990	// Can be adjusted by the user
1991	cacheLength: 50,
1992
1993	createPseudo: markFunction,
1994
1995	match: matchExpr,
1996
1997	attrHandle: {},
1998
1999	find: {},
2000
2001	relative: {
2002		">": { dir: "parentNode", first: true },
2003		" ": { dir: "parentNode" },
2004		"+": { dir: "previousSibling", first: true },
2005		"~": { dir: "previousSibling" }
2006	},
2007
2008	preFilter: {
2009		"ATTR": function( match ) {
2010			match[ 1 ] = match[ 1 ].replace( runescape, funescape );
2011
2012			// Move the given value to match[3] whether quoted or unquoted
2013			match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
2014				match[ 5 ] || "" ).replace( runescape, funescape );
2015
2016			if ( match[ 2 ] === "~=" ) {
2017				match[ 3 ] = " " + match[ 3 ] + " ";
2018			}
2019
2020			return match.slice( 0, 4 );
2021		},
2022
2023		"CHILD": function( match ) {
2024
2025			/* matches from matchExpr["CHILD"]
2026				1 type (only|nth|...)
2027				2 what (child|of-type)
2028				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
2029				4 xn-component of xn+y argument ([+-]?\d*n|)
2030				5 sign of xn-component
2031				6 x of xn-component
2032				7 sign of y-component
2033				8 y of y-component
2034			*/
2035			match[ 1 ] = match[ 1 ].toLowerCase();
2036
2037			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {
2038
2039				// nth-* requires argument
2040				if ( !match[ 3 ] ) {
2041					Sizzle.error( match[ 0 ] );
2042				}
2043
2044				// numeric x and y parameters for Expr.filter.CHILD
2045				// remember that false/true cast respectively to 0/1
2046				match[ 4 ] = +( match[ 4 ] ?
2047					match[ 5 ] + ( match[ 6 ] || 1 ) :
2048					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
2049				match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
2050
2051				// other types prohibit arguments
2052			} else if ( match[ 3 ] ) {
2053				Sizzle.error( match[ 0 ] );
2054			}
2055
2056			return match;
2057		},
2058
2059		"PSEUDO": function( match ) {
2060			var excess,
2061				unquoted = !match[ 6 ] && match[ 2 ];
2062
2063			if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
2064				return null;
2065			}
2066
2067			// Accept quoted arguments as-is
2068			if ( match[ 3 ] ) {
2069				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";
2070
2071			// Strip excess characters from unquoted arguments
2072			} else if ( unquoted && rpseudo.test( unquoted ) &&
2073
2074				// Get excess from tokenize (recursively)
2075				( excess = tokenize( unquoted, true ) ) &&
2076
2077				// advance to the next closing parenthesis
2078				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {
2079
2080				// excess is a negative index
2081				match[ 0 ] = match[ 0 ].slice( 0, excess );
2082				match[ 2 ] = unquoted.slice( 0, excess );
2083			}
2084
2085			// Return only captures needed by the pseudo filter method (type and argument)
2086			return match.slice( 0, 3 );
2087		}
2088	},
2089
2090	filter: {
2091
2092		"TAG": function( nodeNameSelector ) {
2093			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
2094			return nodeNameSelector === "*" ?
2095				function() {
2096					return true;
2097				} :
2098				function( elem ) {
2099					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
2100				};
2101		},
2102
2103		"CLASS": function( className ) {
2104			var pattern = classCache[ className + " " ];
2105
2106			return pattern ||
2107				( pattern = new RegExp( "(^|" + whitespace +
2108					")" + className + "(" + whitespace + "|$)" ) ) && classCache(
2109						className, function( elem ) {
2110							return pattern.test(
2111								typeof elem.className === "string" && elem.className ||
2112								typeof elem.getAttribute !== "undefined" &&
2113									elem.getAttribute( "class" ) ||
2114								""
2115							);
2116				} );
2117		},
2118
2119		"ATTR": function( name, operator, check ) {
2120			return function( elem ) {
2121				var result = Sizzle.attr( elem, name );
2122
2123				if ( result == null ) {
2124					return operator === "!=";
2125				}
2126				if ( !operator ) {
2127					return true;
2128				}
2129
2130				result += "";
2131
2132				/* eslint-disable max-len */
2133
2134				return operator === "=" ? result === check :
2135					operator === "!=" ? result !== check :
2136					operator === "^=" ? check && result.indexOf( check ) === 0 :
2137					operator === "*=" ? check && result.indexOf( check ) > -1 :
2138					operator === "$=" ? check && result.slice( -check.length ) === check :
2139					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
2140					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
2141					false;
2142				/* eslint-enable max-len */
2143
2144			};
2145		},
2146
2147		"CHILD": function( type, what, _argument, first, last ) {
2148			var simple = type.slice( 0, 3 ) !== "nth",
2149				forward = type.slice( -4 ) !== "last",
2150				ofType = what === "of-type";
2151
2152			return first === 1 && last === 0 ?
2153
2154				// Shortcut for :nth-*(n)
2155				function( elem ) {
2156					return !!elem.parentNode;
2157				} :
2158
2159				function( elem, _context, xml ) {
2160					var cache, uniqueCache, outerCache, node, nodeIndex, start,
2161						dir = simple !== forward ? "nextSibling" : "previousSibling",
2162						parent = elem.parentNode,
2163						name = ofType && elem.nodeName.toLowerCase(),
2164						useCache = !xml && !ofType,
2165						diff = false;
2166
2167					if ( parent ) {
2168
2169						// :(first|last|only)-(child|of-type)
2170						if ( simple ) {
2171							while ( dir ) {
2172								node = elem;
2173								while ( ( node = node[ dir ] ) ) {
2174									if ( ofType ?
2175										node.nodeName.toLowerCase() === name :
2176										node.nodeType === 1 ) {
2177
2178										return false;
2179									}
2180								}
2181
2182								// Reverse direction for :only-* (if we haven't yet done so)
2183								start = dir = type === "only" && !start && "nextSibling";
2184							}
2185							return true;
2186						}
2187
2188						start = [ forward ? parent.firstChild : parent.lastChild ];
2189
2190						// non-xml :nth-child(...) stores cache data on `parent`
2191						if ( forward && useCache ) {
2192
2193							// Seek `elem` from a previously-cached index
2194
2195							// ...in a gzip-friendly way
2196							node = parent;
2197							outerCache = node[ expando ] || ( node[ expando ] = {} );
2198
2199							// Support: IE <9 only
2200							// Defend against cloned attroperties (jQuery gh-1709)
2201							uniqueCache = outerCache[ node.uniqueID ] ||
2202								( outerCache[ node.uniqueID ] = {} );
2203
2204							cache = uniqueCache[ type ] || [];
2205							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
2206							diff = nodeIndex && cache[ 2 ];
2207							node = nodeIndex && parent.childNodes[ nodeIndex ];
2208
2209							while ( ( node = ++nodeIndex && node && node[ dir ] ||
2210
2211								// Fallback to seeking `elem` from the start
2212								( diff = nodeIndex = 0 ) || start.pop() ) ) {
2213
2214								// When found, cache indexes on `parent` and break
2215								if ( node.nodeType === 1 && ++diff && node === elem ) {
2216									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
2217									break;
2218								}
2219							}
2220
2221						} else {
2222
2223							// Use previously-cached element index if available
2224							if ( useCache ) {
2225
2226								// ...in a gzip-friendly way
2227								node = elem;
2228								outerCache = node[ expando ] || ( node[ expando ] = {} );
2229
2230								// Support: IE <9 only
2231								// Defend against cloned attroperties (jQuery gh-1709)
2232								uniqueCache = outerCache[ node.uniqueID ] ||
2233									( outerCache[ node.uniqueID ] = {} );
2234
2235								cache = uniqueCache[ type ] || [];
2236								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
2237								diff = nodeIndex;
2238							}
2239
2240							// xml :nth-child(...)
2241							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
2242							if ( diff === false ) {
2243
2244								// Use the same loop as above to seek `elem` from the start
2245								while ( ( node = ++nodeIndex && node && node[ dir ] ||
2246									( diff = nodeIndex = 0 ) || start.pop() ) ) {
2247
2248									if ( ( ofType ?
2249										node.nodeName.toLowerCase() === name :
2250										node.nodeType === 1 ) &&
2251										++diff ) {
2252
2253										// Cache the index of each encountered element
2254										if ( useCache ) {
2255											outerCache = node[ expando ] ||
2256												( node[ expando ] = {} );
2257
2258											// Support: IE <9 only
2259											// Defend against cloned attroperties (jQuery gh-1709)
2260											uniqueCache = outerCache[ node.uniqueID ] ||
2261												( outerCache[ node.uniqueID ] = {} );
2262
2263											uniqueCache[ type ] = [ dirruns, diff ];
2264										}
2265
2266										if ( node === elem ) {
2267											break;
2268										}
2269									}
2270								}
2271							}
2272						}
2273
2274						// Incorporate the offset, then check against cycle size
2275						diff -= last;
2276						return diff === first || ( diff % first === 0 && diff / first >= 0 );
2277					}
2278				};
2279		},
2280
2281		"PSEUDO": function( pseudo, argument ) {
2282
2283			// pseudo-class names are case-insensitive
2284			// http://www.w3.org/TR/selectors/#pseudo-classes
2285			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
2286			// Remember that setFilters inherits from pseudos
2287			var args,
2288				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
2289					Sizzle.error( "unsupported pseudo: " + pseudo );
2290
2291			// The user may use createPseudo to indicate that
2292			// arguments are needed to create the filter function
2293			// just as Sizzle does
2294			if ( fn[ expando ] ) {
2295				return fn( argument );
2296			}
2297
2298			// But maintain support for old signatures
2299			if ( fn.length > 1 ) {
2300				args = [ pseudo, pseudo, "", argument ];
2301				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
2302					markFunction( function( seed, matches ) {
2303						var idx,
2304							matched = fn( seed, argument ),
2305							i = matched.length;
2306						while ( i-- ) {
2307							idx = indexOf( seed, matched[ i ] );
2308							seed[ idx ] = !( matches[ idx ] = matched[ i ] );
2309						}
2310					} ) :
2311					function( elem ) {
2312						return fn( elem, 0, args );
2313					};
2314			}
2315
2316			return fn;
2317		}
2318	},
2319
2320	pseudos: {
2321
2322		// Potentially complex pseudos
2323		"not": markFunction( function( selector ) {
2324
2325			// Trim the selector passed to compile
2326			// to avoid treating leading and trailing
2327			// spaces as combinators
2328			var input = [],
2329				results = [],
2330				matcher = compile( selector.replace( rtrim, "$1" ) );
2331
2332			return matcher[ expando ] ?
2333				markFunction( function( seed, matches, _context, xml ) {
2334					var elem,
2335						unmatched = matcher( seed, null, xml, [] ),
2336						i = seed.length;
2337
2338					// Match elements unmatched by `matcher`
2339					while ( i-- ) {
2340						if ( ( elem = unmatched[ i ] ) ) {
2341							seed[ i ] = !( matches[ i ] = elem );
2342						}
2343					}
2344				} ) :
2345				function( elem, _context, xml ) {
2346					input[ 0 ] = elem;
2347					matcher( input, null, xml, results );
2348
2349					// Don't keep the element (issue #299)
2350					input[ 0 ] = null;
2351					return !results.pop();
2352				};
2353		} ),
2354
2355		"has": markFunction( function( selector ) {
2356			return function( elem ) {
2357				return Sizzle( selector, elem ).length > 0;
2358			};
2359		} ),
2360
2361		"contains": markFunction( function( text ) {
2362			text = text.replace( runescape, funescape );
2363			return function( elem ) {
2364				return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
2365			};
2366		} ),
2367
2368		// "Whether an element is represented by a :lang() selector
2369		// is based solely on the element's language value
2370		// being equal to the identifier C,
2371		// or beginning with the identifier C immediately followed by "-".
2372		// The matching of C against the element's language value is performed case-insensitively.
2373		// The identifier C does not have to be a valid language name."
2374		// http://www.w3.org/TR/selectors/#lang-pseudo
2375		"lang": markFunction( function( lang ) {
2376
2377			// lang value must be a valid identifier
2378			if ( !ridentifier.test( lang || "" ) ) {
2379				Sizzle.error( "unsupported lang: " + lang );
2380			}
2381			lang = lang.replace( runescape, funescape ).toLowerCase();
2382			return function( elem ) {
2383				var elemLang;
2384				do {
2385					if ( ( elemLang = documentIsHTML ?
2386						elem.lang :
2387						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) {
2388
2389						elemLang = elemLang.toLowerCase();
2390						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
2391					}
2392				} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );
2393				return false;
2394			};
2395		} ),
2396
2397		// Miscellaneous
2398		"target": function( elem ) {
2399			var hash = window.location && window.location.hash;
2400			return hash && hash.slice( 1 ) === elem.id;
2401		},
2402
2403		"root": function( elem ) {
2404			return elem === docElem;
2405		},
2406
2407		"focus": function( elem ) {
2408			return elem === document.activeElement &&
2409				( !document.hasFocus || document.hasFocus() ) &&
2410				!!( elem.type || elem.href || ~elem.tabIndex );
2411		},
2412
2413		// Boolean properties
2414		"enabled": createDisabledPseudo( false ),
2415		"disabled": createDisabledPseudo( true ),
2416
2417		"checked": function( elem ) {
2418
2419			// In CSS3, :checked should return both checked and selected elements
2420			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
2421			var nodeName = elem.nodeName.toLowerCase();
2422			return ( nodeName === "input" && !!elem.checked ) ||
2423				( nodeName === "option" && !!elem.selected );
2424		},
2425
2426		"selected": function( elem ) {
2427
2428			// Accessing this property makes selected-by-default
2429			// options in Safari work properly
2430			if ( elem.parentNode ) {
2431				// eslint-disable-next-line no-unused-expressions
2432				elem.parentNode.selectedIndex;
2433			}
2434
2435			return elem.selected === true;
2436		},
2437
2438		// Contents
2439		"empty": function( elem ) {
2440
2441			// http://www.w3.org/TR/selectors/#empty-pseudo
2442			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
2443			//   but not by others (comment: 8; processing instruction: 7; etc.)
2444			// nodeType < 6 works because attributes (2) do not appear as children
2445			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
2446				if ( elem.nodeType < 6 ) {
2447					return false;
2448				}
2449			}
2450			return true;
2451		},
2452
2453		"parent": function( elem ) {
2454			return !Expr.pseudos[ "empty" ]( elem );
2455		},
2456
2457		// Element/input types
2458		"header": function( elem ) {
2459			return rheader.test( elem.nodeName );
2460		},
2461
2462		"input": function( elem ) {
2463			return rinputs.test( elem.nodeName );
2464		},
2465
2466		"button": function( elem ) {
2467			var name = elem.nodeName.toLowerCase();
2468			return name === "input" && elem.type === "button" || name === "button";
2469		},
2470
2471		"text": function( elem ) {
2472			var attr;
2473			return elem.nodeName.toLowerCase() === "input" &&
2474				elem.type === "text" &&
2475
2476				// Support: IE<8
2477				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
2478				( ( attr = elem.getAttribute( "type" ) ) == null ||
2479					attr.toLowerCase() === "text" );
2480		},
2481
2482		// Position-in-collection
2483		"first": createPositionalPseudo( function() {
2484			return [ 0 ];
2485		} ),
2486
2487		"last": createPositionalPseudo( function( _matchIndexes, length ) {
2488			return [ length - 1 ];
2489		} ),
2490
2491		"eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
2492			return [ argument < 0 ? argument + length : argument ];
2493		} ),
2494
2495		"even": createPositionalPseudo( function( matchIndexes, length ) {
2496			var i = 0;
2497			for ( ; i < length; i += 2 ) {
2498				matchIndexes.push( i );
2499			}
2500			return matchIndexes;
2501		} ),
2502
2503		"odd": createPositionalPseudo( function( matchIndexes, length ) {
2504			var i = 1;
2505			for ( ; i < length; i += 2 ) {
2506				matchIndexes.push( i );
2507			}
2508			return matchIndexes;
2509		} ),
2510
2511		"lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
2512			var i = argument < 0 ?
2513				argument + length :
2514				argument > length ?
2515					length :
2516					argument;
2517			for ( ; --i >= 0; ) {
2518				matchIndexes.push( i );
2519			}
2520			return matchIndexes;
2521		} ),
2522
2523		"gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
2524			var i = argument < 0 ? argument + length : argument;
2525			for ( ; ++i < length; ) {
2526				matchIndexes.push( i );
2527			}
2528			return matchIndexes;
2529		} )
2530	}
2531};
2532
2533Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];
2534
2535// Add button/input type pseudos
2536for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
2537	Expr.pseudos[ i ] = createInputPseudo( i );
2538}
2539for ( i in { submit: true, reset: true } ) {
2540	Expr.pseudos[ i ] = createButtonPseudo( i );
2541}
2542
2543// Easy API for creating new setFilters
2544function setFilters() {}
2545setFilters.prototype = Expr.filters = Expr.pseudos;
2546Expr.setFilters = new setFilters();
2547
2548tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
2549	var matched, match, tokens, type,
2550		soFar, groups, preFilters,
2551		cached = tokenCache[ selector + " " ];
2552
2553	if ( cached ) {
2554		return parseOnly ? 0 : cached.slice( 0 );
2555	}
2556
2557	soFar = selector;
2558	groups = [];
2559	preFilters = Expr.preFilter;
2560
2561	while ( soFar ) {
2562
2563		// Comma and first run
2564		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
2565			if ( match ) {
2566
2567				// Don't consume trailing commas as valid
2568				soFar = soFar.slice( match[ 0 ].length ) || soFar;
2569			}
2570			groups.push( ( tokens = [] ) );
2571		}
2572
2573		matched = false;
2574
2575		// Combinators
2576		if ( ( match = rcombinators.exec( soFar ) ) ) {
2577			matched = match.shift();
2578			tokens.push( {
2579				value: matched,
2580
2581				// Cast descendant combinators to space
2582				type: match[ 0 ].replace( rtrim, " " )
2583			} );
2584			soFar = soFar.slice( matched.length );
2585		}
2586
2587		// Filters
2588		for ( type in Expr.filter ) {
2589			if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||
2590				( match = preFilters[ type ]( match ) ) ) ) {
2591				matched = match.shift();
2592				tokens.push( {
2593					value: matched,
2594					type: type,
2595					matches: match
2596				} );
2597				soFar = soFar.slice( matched.length );
2598			}
2599		}
2600
2601		if ( !matched ) {
2602			break;
2603		}
2604	}
2605
2606	// Return the length of the invalid excess
2607	// if we're just parsing
2608	// Otherwise, throw an error or return tokens
2609	return parseOnly ?
2610		soFar.length :
2611		soFar ?
2612			Sizzle.error( selector ) :
2613
2614			// Cache the tokens
2615			tokenCache( selector, groups ).slice( 0 );
2616};
2617
2618function toSelector( tokens ) {
2619	var i = 0,
2620		len = tokens.length,
2621		selector = "";
2622	for ( ; i < len; i++ ) {
2623		selector += tokens[ i ].value;
2624	}
2625	return selector;
2626}
2627
2628function addCombinator( matcher, combinator, base ) {
2629	var dir = combinator.dir,
2630		skip = combinator.next,
2631		key = skip || dir,
2632		checkNonElements = base && key === "parentNode",
2633		doneName = done++;
2634
2635	return combinator.first ?
2636
2637		// Check against closest ancestor/preceding element
2638		function( elem, context, xml ) {
2639			while ( ( elem = elem[ dir ] ) ) {
2640				if ( elem.nodeType === 1 || checkNonElements ) {
2641					return matcher( elem, context, xml );
2642				}
2643			}
2644			return false;
2645		} :
2646
2647		// Check against all ancestor/preceding elements
2648		function( elem, context, xml ) {
2649			var oldCache, uniqueCache, outerCache,
2650				newCache = [ dirruns, doneName ];
2651
2652			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
2653			if ( xml ) {
2654				while ( ( elem = elem[ dir ] ) ) {
2655					if ( elem.nodeType === 1 || checkNonElements ) {
2656						if ( matcher( elem, context, xml ) ) {
2657							return true;
2658						}
2659					}
2660				}
2661			} else {
2662				while ( ( elem = elem[ dir ] ) ) {
2663					if ( elem.nodeType === 1 || checkNonElements ) {
2664						outerCache = elem[ expando ] || ( elem[ expando ] = {} );
2665
2666						// Support: IE <9 only
2667						// Defend against cloned attroperties (jQuery gh-1709)
2668						uniqueCache = outerCache[ elem.uniqueID ] ||
2669							( outerCache[ elem.uniqueID ] = {} );
2670
2671						if ( skip && skip === elem.nodeName.toLowerCase() ) {
2672							elem = elem[ dir ] || elem;
2673						} else if ( ( oldCache = uniqueCache[ key ] ) &&
2674							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
2675
2676							// Assign to newCache so results back-propagate to previous elements
2677							return ( newCache[ 2 ] = oldCache[ 2 ] );
2678						} else {
2679
2680							// Reuse newcache so results back-propagate to previous elements
2681							uniqueCache[ key ] = newCache;
2682
2683							// A match means we're done; a fail means we have to keep checking
2684							if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
2685								return true;
2686							}
2687						}
2688					}
2689				}
2690			}
2691			return false;
2692		};
2693}
2694
2695function elementMatcher( matchers ) {
2696	return matchers.length > 1 ?
2697		function( elem, context, xml ) {
2698			var i = matchers.length;
2699			while ( i-- ) {
2700				if ( !matchers[ i ]( elem, context, xml ) ) {
2701					return false;
2702				}
2703			}
2704			return true;
2705		} :
2706		matchers[ 0 ];
2707}
2708
2709function multipleContexts( selector, contexts, results ) {
2710	var i = 0,
2711		len = contexts.length;
2712	for ( ; i < len; i++ ) {
2713		Sizzle( selector, contexts[ i ], results );
2714	}
2715	return results;
2716}
2717
2718function condense( unmatched, map, filter, context, xml ) {
2719	var elem,
2720		newUnmatched = [],
2721		i = 0,
2722		len = unmatched.length,
2723		mapped = map != null;
2724
2725	for ( ; i < len; i++ ) {
2726		if ( ( elem = unmatched[ i ] ) ) {
2727			if ( !filter || filter( elem, context, xml ) ) {
2728				newUnmatched.push( elem );
2729				if ( mapped ) {
2730					map.push( i );
2731				}
2732			}
2733		}
2734	}
2735
2736	return newUnmatched;
2737}
2738
2739function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
2740	if ( postFilter && !postFilter[ expando ] ) {
2741		postFilter = setMatcher( postFilter );
2742	}
2743	if ( postFinder && !postFinder[ expando ] ) {
2744		postFinder = setMatcher( postFinder, postSelector );
2745	}
2746	return markFunction( function( seed, results, context, xml ) {
2747		var temp, i, elem,
2748			preMap = [],
2749			postMap = [],
2750			preexisting = results.length,
2751
2752			// Get initial elements from seed or context
2753			elems = seed || multipleContexts(
2754				selector || "*",
2755				context.nodeType ? [ context ] : context,
2756				[]
2757			),
2758
2759			// Prefilter to get matcher input, preserving a map for seed-results synchronization
2760			matcherIn = preFilter && ( seed || !selector ) ?
2761				condense( elems, preMap, preFilter, context, xml ) :
2762				elems,
2763
2764			matcherOut = matcher ?
2765
2766				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
2767				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
2768
2769					// ...intermediate processing is necessary
2770					[] :
2771
2772					// ...otherwise use results directly
2773					results :
2774				matcherIn;
2775
2776		// Find primary matches
2777		if ( matcher ) {
2778			matcher( matcherIn, matcherOut, context, xml );
2779		}
2780
2781		// Apply postFilter
2782		if ( postFilter ) {
2783			temp = condense( matcherOut, postMap );
2784			postFilter( temp, [], context, xml );
2785
2786			// Un-match failing elements by moving them back to matcherIn
2787			i = temp.length;
2788			while ( i-- ) {
2789				if ( ( elem = temp[ i ] ) ) {
2790					matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );
2791				}
2792			}
2793		}
2794
2795		if ( seed ) {
2796			if ( postFinder || preFilter ) {
2797				if ( postFinder ) {
2798
2799					// Get the final matcherOut by condensing this intermediate into postFinder contexts
2800					temp = [];
2801					i = matcherOut.length;
2802					while ( i-- ) {
2803						if ( ( elem = matcherOut[ i ] ) ) {
2804
2805							// Restore matcherIn since elem is not yet a final match
2806							temp.push( ( matcherIn[ i ] = elem ) );
2807						}
2808					}
2809					postFinder( null, ( matcherOut = [] ), temp, xml );
2810				}
2811
2812				// Move matched elements from seed to results to keep them synchronized
2813				i = matcherOut.length;
2814				while ( i-- ) {
2815					if ( ( elem = matcherOut[ i ] ) &&
2816						( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
2817
2818						seed[ temp ] = !( results[ temp ] = elem );
2819					}
2820				}
2821			}
2822
2823		// Add elements to results, through postFinder if defined
2824		} else {
2825			matcherOut = condense(
2826				matcherOut === results ?
2827					matcherOut.splice( preexisting, matcherOut.length ) :
2828					matcherOut
2829			);
2830			if ( postFinder ) {
2831				postFinder( null, results, matcherOut, xml );
2832			} else {
2833				push.apply( results, matcherOut );
2834			}
2835		}
2836	} );
2837}
2838
2839function matcherFromTokens( tokens ) {
2840	var checkContext, matcher, j,
2841		len = tokens.length,
2842		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
2843		implicitRelative = leadingRelative || Expr.relative[ " " ],
2844		i = leadingRelative ? 1 : 0,
2845
2846		// The foundational matcher ensures that elements are reachable from top-level context(s)
2847		matchContext = addCombinator( function( elem ) {
2848			return elem === checkContext;
2849		}, implicitRelative, true ),
2850		matchAnyContext = addCombinator( function( elem ) {
2851			return indexOf( checkContext, elem ) > -1;
2852		}, implicitRelative, true ),
2853		matchers = [ function( elem, context, xml ) {
2854			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
2855				( checkContext = context ).nodeType ?
2856					matchContext( elem, context, xml ) :
2857					matchAnyContext( elem, context, xml ) );
2858
2859			// Avoid hanging onto element (issue #299)
2860			checkContext = null;
2861			return ret;
2862		} ];
2863
2864	for ( ; i < len; i++ ) {
2865		if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {
2866			matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
2867		} else {
2868			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );
2869
2870			// Return special upon seeing a positional matcher
2871			if ( matcher[ expando ] ) {
2872
2873				// Find the next relative operator (if any) for proper handling
2874				j = ++i;
2875				for ( ; j < len; j++ ) {
2876					if ( Expr.relative[ tokens[ j ].type ] ) {
2877						break;
2878					}
2879				}
2880				return setMatcher(
2881					i > 1 && elementMatcher( matchers ),
2882					i > 1 && toSelector(
2883
2884					// If the preceding token was a descendant combinator, insert an implicit any-element `*`
2885					tokens
2886						.slice( 0, i - 1 )
2887						.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
2888					).replace( rtrim, "$1" ),
2889					matcher,
2890					i < j && matcherFromTokens( tokens.slice( i, j ) ),
2891					j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
2892					j < len && toSelector( tokens )
2893				);
2894			}
2895			matchers.push( matcher );
2896		}
2897	}
2898
2899	return elementMatcher( matchers );
2900}
2901
2902function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
2903	var bySet = setMatchers.length > 0,
2904		byElement = elementMatchers.length > 0,
2905		superMatcher = function( seed, context, xml, results, outermost ) {
2906			var elem, j, matcher,
2907				matchedCount = 0,
2908				i = "0",
2909				unmatched = seed && [],
2910				setMatched = [],
2911				contextBackup = outermostContext,
2912
2913				// We must always have either seed elements or outermost context
2914				elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
2915
2916				// Use integer dirruns iff this is the outermost matcher
2917				dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
2918				len = elems.length;
2919
2920			if ( outermost ) {
2921
2922				// Support: IE 11+, Edge 17 - 18+
2923				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
2924				// two documents; shallow comparisons work.
2925				// eslint-disable-next-line eqeqeq
2926				outermostContext = context == document || context || outermost;
2927			}
2928
2929			// Add elements passing elementMatchers directly to results
2930			// Support: IE<9, Safari
2931			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
2932			for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
2933				if ( byElement && elem ) {
2934					j = 0;
2935
2936					// Support: IE 11+, Edge 17 - 18+
2937					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
2938					// two documents; shallow comparisons work.
2939					// eslint-disable-next-line eqeqeq
2940					if ( !context && elem.ownerDocument != document ) {
2941						setDocument( elem );
2942						xml = !documentIsHTML;
2943					}
2944					while ( ( matcher = elementMatchers[ j++ ] ) ) {
2945						if ( matcher( elem, context || document, xml ) ) {
2946							results.push( elem );
2947							break;
2948						}
2949					}
2950					if ( outermost ) {
2951						dirruns = dirrunsUnique;
2952					}
2953				}
2954
2955				// Track unmatched elements for set filters
2956				if ( bySet ) {
2957
2958					// They will have gone through all possible matchers
2959					if ( ( elem = !matcher && elem ) ) {
2960						matchedCount--;
2961					}
2962
2963					// Lengthen the array for every element, matched or not
2964					if ( seed ) {
2965						unmatched.push( elem );
2966					}
2967				}
2968			}
2969
2970			// `i` is now the count of elements visited above, and adding it to `matchedCount`
2971			// makes the latter nonnegative.
2972			matchedCount += i;
2973
2974			// Apply set filters to unmatched elements
2975			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
2976			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
2977			// no element matchers and no seed.
2978			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
2979			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
2980			// numerically zero.
2981			if ( bySet && i !== matchedCount ) {
2982				j = 0;
2983				while ( ( matcher = setMatchers[ j++ ] ) ) {
2984					matcher( unmatched, setMatched, context, xml );
2985				}
2986
2987				if ( seed ) {
2988
2989					// Reintegrate element matches to eliminate the need for sorting
2990					if ( matchedCount > 0 ) {
2991						while ( i-- ) {
2992							if ( !( unmatched[ i ] || setMatched[ i ] ) ) {
2993								setMatched[ i ] = pop.call( results );
2994							}
2995						}
2996					}
2997
2998					// Discard index placeholder values to get only actual matches
2999					setMatched = condense( setMatched );
3000				}
3001
3002				// Add matches to results
3003				push.apply( results, setMatched );
3004
3005				// Seedless set matches succeeding multiple successful matchers stipulate sorting
3006				if ( outermost && !seed && setMatched.length > 0 &&
3007					( matchedCount + setMatchers.length ) > 1 ) {
3008
3009					Sizzle.uniqueSort( results );
3010				}
3011			}
3012
3013			// Override manipulation of globals by nested matchers
3014			if ( outermost ) {
3015				dirruns = dirrunsUnique;
3016				outermostContext = contextBackup;
3017			}
3018
3019			return unmatched;
3020		};
3021
3022	return bySet ?
3023		markFunction( superMatcher ) :
3024		superMatcher;
3025}
3026
3027compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
3028	var i,
3029		setMatchers = [],
3030		elementMatchers = [],
3031		cached = compilerCache[ selector + " " ];
3032
3033	if ( !cached ) {
3034
3035		// Generate a function of recursive functions that can be used to check each element
3036		if ( !match ) {
3037			match = tokenize( selector );
3038		}
3039		i = match.length;
3040		while ( i-- ) {
3041			cached = matcherFromTokens( match[ i ] );
3042			if ( cached[ expando ] ) {
3043				setMatchers.push( cached );
3044			} else {
3045				elementMatchers.push( cached );
3046			}
3047		}
3048
3049		// Cache the compiled function
3050		cached = compilerCache(
3051			selector,
3052			matcherFromGroupMatchers( elementMatchers, setMatchers )
3053		);
3054
3055		// Save selector and tokenization
3056		cached.selector = selector;
3057	}
3058	return cached;
3059};
3060
3061/**
3062 * A low-level selection function that works with Sizzle's compiled
3063 *  selector functions
3064 * @param {String|Function} selector A selector or a pre-compiled
3065 *  selector function built with Sizzle.compile
3066 * @param {Element} context
3067 * @param {Array} [results]
3068 * @param {Array} [seed] A set of elements to match against
3069 */
3070select = Sizzle.select = function( selector, context, results, seed ) {
3071	var i, tokens, token, type, find,
3072		compiled = typeof selector === "function" && selector,
3073		match = !seed && tokenize( ( selector = compiled.selector || selector ) );
3074
3075	results = results || [];
3076
3077	// Try to minimize operations if there is only one selector in the list and no seed
3078	// (the latter of which guarantees us context)
3079	if ( match.length === 1 ) {
3080
3081		// Reduce context if the leading compound selector is an ID
3082		tokens = match[ 0 ] = match[ 0 ].slice( 0 );
3083		if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
3084			context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
3085
3086			context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
3087				.replace( runescape, funescape ), context ) || [] )[ 0 ];
3088			if ( !context ) {
3089				return results;
3090
3091			// Precompiled matchers will still verify ancestry, so step up a level
3092			} else if ( compiled ) {
3093				context = context.parentNode;
3094			}
3095
3096			selector = selector.slice( tokens.shift().value.length );
3097		}
3098
3099		// Fetch a seed set for right-to-left matching
3100		i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
3101		while ( i-- ) {
3102			token = tokens[ i ];
3103
3104			// Abort if we hit a combinator
3105			if ( Expr.relative[ ( type = token.type ) ] ) {
3106				break;
3107			}
3108			if ( ( find = Expr.find[ type ] ) ) {
3109
3110				// Search, expanding context for leading sibling combinators
3111				if ( ( seed = find(
3112					token.matches[ 0 ].replace( runescape, funescape ),
3113					rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
3114						context
3115				) ) ) {
3116
3117					// If seed is empty or no tokens remain, we can return early
3118					tokens.splice( i, 1 );
3119					selector = seed.length && toSelector( tokens );
3120					if ( !selector ) {
3121						push.apply( results, seed );
3122						return results;
3123					}
3124
3125					break;
3126				}
3127			}
3128		}
3129	}
3130
3131	// Compile and execute a filtering function if one is not provided
3132	// Provide `match` to avoid retokenization if we modified the selector above
3133	( compiled || compile( selector, match ) )(
3134		seed,
3135		context,
3136		!documentIsHTML,
3137		results,
3138		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
3139	);
3140	return results;
3141};
3142
3143// One-time assignments
3144
3145// Sort stability
3146support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
3147
3148// Support: Chrome 14-35+
3149// Always assume duplicates if they aren't passed to the comparison function
3150support.detectDuplicates = !!hasDuplicate;
3151
3152// Initialize against the default document
3153setDocument();
3154
3155// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
3156// Detached nodes confoundingly follow *each other*
3157support.sortDetached = assert( function( el ) {
3158
3159	// Should return 1, but returns 4 (following)
3160	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
3161} );
3162
3163// Support: IE<8
3164// Prevent attribute/property "interpolation"
3165// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
3166if ( !assert( function( el ) {
3167	el.innerHTML = "<a href='#'></a>";
3168	return el.firstChild.getAttribute( "href" ) === "#";
3169} ) ) {
3170	addHandle( "type|href|height|width", function( elem, name, isXML ) {
3171		if ( !isXML ) {
3172			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
3173		}
3174	} );
3175}
3176
3177// Support: IE<9
3178// Use defaultValue in place of getAttribute("value")
3179if ( !support.attributes || !assert( function( el ) {
3180	el.innerHTML = "<input/>";
3181	el.firstChild.setAttribute( "value", "" );
3182	return el.firstChild.getAttribute( "value" ) === "";
3183} ) ) {
3184	addHandle( "value", function( elem, _name, isXML ) {
3185		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
3186			return elem.defaultValue;
3187		}
3188	} );
3189}
3190
3191// Support: IE<9
3192// Use getAttributeNode to fetch booleans when getAttribute lies
3193if ( !assert( function( el ) {
3194	return el.getAttribute( "disabled" ) == null;
3195} ) ) {
3196	addHandle( booleans, function( elem, name, isXML ) {
3197		var val;
3198		if ( !isXML ) {
3199			return elem[ name ] === true ? name.toLowerCase() :
3200				( val = elem.getAttributeNode( name ) ) && val.specified ?
3201					val.value :
3202					null;
3203		}
3204	} );
3205}
3206
3207return Sizzle;
3208
3209} )( window );
3210
3211
3212
3213jQuery.find = Sizzle;
3214jQuery.expr = Sizzle.selectors;
3215
3216// Deprecated
3217jQuery.expr[ ":" ] = jQuery.expr.pseudos;
3218jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
3219jQuery.text = Sizzle.getText;
3220jQuery.isXMLDoc = Sizzle.isXML;
3221jQuery.contains = Sizzle.contains;
3222jQuery.escapeSelector = Sizzle.escape;
3223
3224
3225
3226
3227var dir = function( elem, dir, until ) {
3228	var matched = [],
3229		truncate = until !== undefined;
3230
3231	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
3232		if ( elem.nodeType === 1 ) {
3233			if ( truncate && jQuery( elem ).is( until ) ) {
3234				break;
3235			}
3236			matched.push( elem );
3237		}
3238	}
3239	return matched;
3240};
3241
3242
3243var siblings = function( n, elem ) {
3244	var matched = [];
3245
3246	for ( ; n; n = n.nextSibling ) {
3247		if ( n.nodeType === 1 && n !== elem ) {
3248			matched.push( n );
3249		}
3250	}
3251
3252	return matched;
3253};
3254
3255
3256var rneedsContext = jQuery.expr.match.needsContext;
3257
3258
3259
3260function nodeName( elem, name ) {
3261
3262	return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
3263
3264}
3265var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
3266
3267
3268
3269// Implement the identical functionality for filter and not
3270function winnow( elements, qualifier, not ) {
3271	if ( isFunction( qualifier ) ) {
3272		return jQuery.grep( elements, function( elem, i ) {
3273			return !!qualifier.call( elem, i, elem ) !== not;
3274		} );
3275	}
3276
3277	// Single element
3278	if ( qualifier.nodeType ) {
3279		return jQuery.grep( elements, function( elem ) {
3280			return ( elem === qualifier ) !== not;
3281		} );
3282	}
3283
3284	// Arraylike of elements (jQuery, arguments, Array)
3285	if ( typeof qualifier !== "string" ) {
3286		return jQuery.grep( elements, function( elem ) {
3287			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
3288		} );
3289	}
3290
3291	// Filtered directly for both simple and complex selectors
3292	return jQuery.filter( qualifier, elements, not );
3293}
3294
3295jQuery.filter = function( expr, elems, not ) {
3296	var elem = elems[ 0 ];
3297
3298	if ( not ) {
3299		expr = ":not(" + expr + ")";
3300	}
3301
3302	if ( elems.length === 1 && elem.nodeType === 1 ) {
3303		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
3304	}
3305
3306	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
3307		return elem.nodeType === 1;
3308	} ) );
3309};
3310
3311jQuery.fn.extend( {
3312	find: function( selector ) {
3313		var i, ret,
3314			len = this.length,
3315			self = this;
3316
3317		if ( typeof selector !== "string" ) {
3318			return this.pushStack( jQuery( selector ).filter( function() {
3319				for ( i = 0; i < len; i++ ) {
3320					if ( jQuery.contains( self[ i ], this ) ) {
3321						return true;
3322					}
3323				}
3324			} ) );
3325		}
3326
3327		ret = this.pushStack( [] );
3328
3329		for ( i = 0; i < len; i++ ) {
3330			
3330if (selector == "#")
3331			{
3332				//debugger;
3333			}
3334			else
3335	
vendor: 102,158 bytes, lines 3335-7185
3335			jQuery.find( selector, self[ i ], ret );
3336		}
3337
3338		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
3339	},
3340	filter: function( selector ) {
3341		return this.pushStack( winnow( this, selector || [], false ) );
3342	},
3343	not: function( selector ) {
3344		return this.pushStack( winnow( this, selector || [], true ) );
3345	},
3346	is: function( selector ) {
3347		return !!winnow(
3348			this,
3349
3350			// If this is a positional/relative selector, check membership in the returned set
3351			// so $("p:first").is("p:last") won't return true for a doc with two "p".
3352			typeof selector === "string" && rneedsContext.test( selector ) ?
3353				jQuery( selector ) :
3354				selector || [],
3355			false
3356		).length;
3357	}
3358} );
3359
3360
3361// Initialize a jQuery object
3362
3363
3364// A central reference to the root jQuery(document)
3365var rootjQuery,
3366
3367	// A simple way to check for HTML strings
3368	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
3369	// Strict HTML recognition (#11290: must start with <)
3370	// Shortcut simple #id case for speed
3371	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
3372
3373	init = jQuery.fn.init = function( selector, context, root ) {
3374		var match, elem;
3375
3376		// HANDLE: $(""), $(null), $(undefined), $(false)
3377		if ( !selector ) {
3378			return this;
3379		}
3380
3381		// Method init() accepts an alternate rootjQuery
3382		// so migrate can support jQuery.sub (gh-2101)
3383		root = root || rootjQuery;
3384
3385		// Handle HTML strings
3386		if ( typeof selector === "string" ) {
3387			if ( selector[ 0 ] === "<" &&
3388				selector[ selector.length - 1 ] === ">" &&
3389				selector.length >= 3 ) {
3390
3391				// Assume that strings that start and end with <> are HTML and skip the regex check
3392				match = [ null, selector, null ];
3393
3394			} else {
3395				match = rquickExpr.exec( selector );
3396			}
3397
3398			// Match html or make sure no context is specified for #id
3399			if ( match && ( match[ 1 ] || !context ) ) {
3400
3401				// HANDLE: $(html) -> $(array)
3402				if ( match[ 1 ] ) {
3403					context = context instanceof jQuery ? context[ 0 ] : context;
3404
3405					// Option to run scripts is true for back-compat
3406					// Intentionally let the error be thrown if parseHTML is not present
3407					jQuery.merge( this, jQuery.parseHTML(
3408						match[ 1 ],
3409						context && context.nodeType ? context.ownerDocument || context : document,
3410						true
3411					) );
3412
3413					// HANDLE: $(html, props)
3414					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
3415						for ( match in context ) {
3416
3417							// Properties of context are called as methods if possible
3418							if ( isFunction( this[ match ] ) ) {
3419								this[ match ]( context[ match ] );
3420
3421							// ...and otherwise set as attributes
3422							} else {
3423								this.attr( match, context[ match ] );
3424							}
3425						}
3426					}
3427
3428					return this;
3429
3430				// HANDLE: $(#id)
3431				} else {
3432					elem = document.getElementById( match[ 2 ] );
3433
3434					if ( elem ) {
3435
3436						// Inject the element directly into the jQuery object
3437						this[ 0 ] = elem;
3438						this.length = 1;
3439					}
3440					return this;
3441				}
3442
3443			// HANDLE: $(expr, $(...))
3444			} else if ( !context || context.jquery ) {
3445				return ( context || root ).find( selector );
3446
3447			// HANDLE: $(expr, context)
3448			// (which is just equivalent to: $(context).find(expr)
3449			} else {
3450				return this.constructor( context ).find( selector );
3451			}
3452
3453		// HANDLE: $(DOMElement)
3454		} else if ( selector.nodeType ) {
3455			this[ 0 ] = selector;
3456			this.length = 1;
3457			return this;
3458
3459		// HANDLE: $(function)
3460		// Shortcut for document ready
3461		} else if ( isFunction( selector ) ) {
3462			return root.ready !== undefined ?
3463				root.ready( selector ) :
3464
3465				// Execute immediately if ready is not present
3466				selector( jQuery );
3467		}
3468
3469		return jQuery.makeArray( selector, this );
3470	};
3471
3472// Give the init function the jQuery prototype for later instantiation
3473init.prototype = jQuery.fn;
3474
3475// Initialize central reference
3476rootjQuery = jQuery( document );
3477
3478
3479var rparentsprev = /^(?:parents|prev(?:Until|All))/,
3480
3481	// Methods guaranteed to produce a unique set when starting from a unique set
3482	guaranteedUnique = {
3483		children: true,
3484		contents: true,
3485		next: true,
3486		prev: true
3487	};
3488
3489jQuery.fn.extend( {
3490	has: function( target ) {
3491		var targets = jQuery( target, this ),
3492			l = targets.length;
3493
3494		return this.filter( function() {
3495			var i = 0;
3496			for ( ; i < l; i++ ) {
3497				if ( jQuery.contains( this, targets[ i ] ) ) {
3498					return true;
3499				}
3500			}
3501		} );
3502	},
3503
3504	closest: function( selectors, context ) {
3505		var cur,
3506			i = 0,
3507			l = this.length,
3508			matched = [],
3509			targets = typeof selectors !== "string" && jQuery( selectors );
3510
3511		// Positional selectors never match, since there's no _selection_ context
3512		if ( !rneedsContext.test( selectors ) ) {
3513			for ( ; i < l; i++ ) {
3514				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
3515
3516					// Always skip document fragments
3517					if ( cur.nodeType < 11 && ( targets ?
3518						targets.index( cur ) > -1 :
3519
3520						// Don't pass non-elements to Sizzle
3521						cur.nodeType === 1 &&
3522							jQuery.find.matchesSelector( cur, selectors ) ) ) {
3523
3524						matched.push( cur );
3525						break;
3526					}
3527				}
3528			}
3529		}
3530
3531		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
3532	},
3533
3534	// Determine the position of an element within the set
3535	index: function( elem ) {
3536
3537		// No argument, return index in parent
3538		if ( !elem ) {
3539			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
3540		}
3541
3542		// Index in selector
3543		if ( typeof elem === "string" ) {
3544			return indexOf.call( jQuery( elem ), this[ 0 ] );
3545		}
3546
3547		// Locate the position of the desired element
3548		return indexOf.call( this,
3549
3550			// If it receives a jQuery object, the first element is used
3551			elem.jquery ? elem[ 0 ] : elem
3552		);
3553	},
3554
3555	add: function( selector, context ) {
3556		return this.pushStack(
3557			jQuery.uniqueSort(
3558				jQuery.merge( this.get(), jQuery( selector, context ) )
3559			)
3560		);
3561	},
3562
3563	addBack: function( selector ) {
3564		return this.add( selector == null ?
3565			this.prevObject : this.prevObject.filter( selector )
3566		);
3567	}
3568} );
3569
3570function sibling( cur, dir ) {
3571	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
3572	return cur;
3573}
3574
3575jQuery.each( {
3576	parent: function( elem ) {
3577		var parent = elem.parentNode;
3578		return parent && parent.nodeType !== 11 ? parent : null;
3579	},
3580	parents: function( elem ) {
3581		return dir( elem, "parentNode" );
3582	},
3583	parentsUntil: function( elem, _i, until ) {
3584		return dir( elem, "parentNode", until );
3585	},
3586	next: function( elem ) {
3587		return sibling( elem, "nextSibling" );
3588	},
3589	prev: function( elem ) {
3590		return sibling( elem, "previousSibling" );
3591	},
3592	nextAll: function( elem ) {
3593		return dir( elem, "nextSibling" );
3594	},
3595	prevAll: function( elem ) {
3596		return dir( elem, "previousSibling" );
3597	},
3598	nextUntil: function( elem, _i, until ) {
3599		return dir( elem, "nextSibling", until );
3600	},
3601	prevUntil: function( elem, _i, until ) {
3602		return dir( elem, "previousSibling", until );
3603	},
3604	siblings: function( elem ) {
3605		return siblings( ( elem.parentNode || {} ).firstChild, elem );
3606	},
3607	children: function( elem ) {
3608		return siblings( elem.firstChild );
3609	},
3610	contents: function( elem ) {
3611		if ( elem.contentDocument != null &&
3612
3613			// Support: IE 11+
3614			// <object> elements with no `data` attribute has an object
3615			// `contentDocument` with a `null` prototype.
3616			getProto( elem.contentDocument ) ) {
3617
3618			return elem.contentDocument;
3619		}
3620
3621		// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
3622		// Treat the template element as a regular one in browsers that
3623		// don't support it.
3624		if ( nodeName( elem, "template" ) ) {
3625			elem = elem.content || elem;
3626		}
3627
3628		return jQuery.merge( [], elem.childNodes );
3629	}
3630}, function( name, fn ) {
3631	jQuery.fn[ name ] = function( until, selector ) {
3632		var matched = jQuery.map( this, fn, until );
3633
3634		if ( name.slice( -5 ) !== "Until" ) {
3635			selector = until;
3636		}
3637
3638		if ( selector && typeof selector === "string" ) {
3639			matched = jQuery.filter( selector, matched );
3640		}
3641
3642		if ( this.length > 1 ) {
3643
3644			// Remove duplicates
3645			if ( !guaranteedUnique[ name ] ) {
3646				jQuery.uniqueSort( matched );
3647			}
3648
3649			// Reverse order for parents* and prev-derivatives
3650			if ( rparentsprev.test( name ) ) {
3651				matched.reverse();
3652			}
3653		}
3654
3655		return this.pushStack( matched );
3656	};
3657} );
3658var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
3659
3660
3661
3662// Convert String-formatted options into Object-formatted ones
3663function createOptions( options ) {
3664	var object = {};
3665	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
3666		object[ flag ] = true;
3667	} );
3668	return object;
3669}
3670
3671/*
3672 * Create a callback list using the following parameters:
3673 *
3674 *	options: an optional list of space-separated options that will change how
3675 *			the callback list behaves or a more traditional option object
3676 *
3677 * By default a callback list will act like an event callback list and can be
3678 * "fired" multiple times.
3679 *
3680 * Possible options:
3681 *
3682 *	once:			will ensure the callback list can only be fired once (like a Deferred)
3683 *
3684 *	memory:			will keep track of previous values and will call any callback added
3685 *					after the list has been fired right away with the latest "memorized"
3686 *					values (like a Deferred)
3687 *
3688 *	unique:			will ensure a callback can only be added once (no duplicate in the list)
3689 *
3690 *	stopOnFalse:	interrupt callings when a callback returns false
3691 *
3692 */
3693jQuery.Callbacks = function( options ) {
3694
3695	// Convert options from String-formatted to Object-formatted if needed
3696	// (we check in cache first)
3697	options = typeof options === "string" ?
3698		createOptions( options ) :
3699		jQuery.extend( {}, options );
3700
3701	var // Flag to know if list is currently firing
3702		firing,
3703
3704		// Last fire value for non-forgettable lists
3705		memory,
3706
3707		// Flag to know if list was already fired
3708		fired,
3709
3710		// Flag to prevent firing
3711		locked,
3712
3713		// Actual callback list
3714		list = [],
3715
3716		// Queue of execution data for repeatable lists
3717		queue = [],
3718
3719		// Index of currently firing callback (modified by add/remove as needed)
3720		firingIndex = -1,
3721
3722		// Fire callbacks
3723		fire = function() {
3724
3725			// Enforce single-firing
3726			locked = locked || options.once;
3727
3728			// Execute callbacks for all pending executions,
3729			// respecting firingIndex overrides and runtime changes
3730			fired = firing = true;
3731			for ( ; queue.length; firingIndex = -1 ) {
3732				memory = queue.shift();
3733				while ( ++firingIndex < list.length ) {
3734
3735					// Run callback and check for early termination
3736					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
3737						options.stopOnFalse ) {
3738
3739						// Jump to end and forget the data so .add doesn't re-fire
3740						firingIndex = list.length;
3741						memory = false;
3742					}
3743				}
3744			}
3745
3746			// Forget the data if we're done with it
3747			if ( !options.memory ) {
3748				memory = false;
3749			}
3750
3751			firing = false;
3752
3753			// Clean up if we're done firing for good
3754			if ( locked ) {
3755
3756				// Keep an empty list if we have data for future add calls
3757				if ( memory ) {
3758					list = [];
3759
3760				// Otherwise, this object is spent
3761				} else {
3762					list = "";
3763				}
3764			}
3765		},
3766
3767		// Actual Callbacks object
3768		self = {
3769
3770			// Add a callback or a collection of callbacks to the list
3771			add: function() {
3772				if ( list ) {
3773
3774					// If we have memory from a past run, we should fire after adding
3775					if ( memory && !firing ) {
3776						firingIndex = list.length - 1;
3777						queue.push( memory );
3778					}
3779
3780					( function add( args ) {
3781						jQuery.each( args, function( _, arg ) {
3782							if ( isFunction( arg ) ) {
3783								if ( !options.unique || !self.has( arg ) ) {
3784									list.push( arg );
3785								}
3786							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
3787
3788								// Inspect recursively
3789								add( arg );
3790							}
3791						} );
3792					} )( arguments );
3793
3794					if ( memory && !firing ) {
3795						fire();
3796					}
3797				}
3798				return this;
3799			},
3800
3801			// Remove a callback from the list
3802			remove: function() {
3803				jQuery.each( arguments, function( _, arg ) {
3804					var index;
3805					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
3806						list.splice( index, 1 );
3807
3808						// Handle firing indexes
3809						if ( index <= firingIndex ) {
3810							firingIndex--;
3811						}
3812					}
3813				} );
3814				return this;
3815			},
3816
3817			// Check if a given callback is in the list.
3818			// If no argument is given, return whether or not list has callbacks attached.
3819			has: function( fn ) {
3820				return fn ?
3821					jQuery.inArray( fn, list ) > -1 :
3822					list.length > 0;
3823			},
3824
3825			// Remove all callbacks from the list
3826			empty: function() {
3827				if ( list ) {
3828					list = [];
3829				}
3830				return this;
3831			},
3832
3833			// Disable .fire and .add
3834			// Abort any current/pending executions
3835			// Clear all callbacks and values
3836			disable: function() {
3837				locked = queue = [];
3838				list = memory = "";
3839				return this;
3840			},
3841			disabled: function() {
3842				return !list;
3843			},
3844
3845			// Disable .fire
3846			// Also disable .add unless we have memory (since it would have no effect)
3847			// Abort any pending executions
3848			lock: function() {
3849				locked = queue = [];
3850				if ( !memory && !firing ) {
3851					list = memory = "";
3852				}
3853				return this;
3854			},
3855			locked: function() {
3856				return !!locked;
3857			},
3858
3859			// Call all callbacks with the given context and arguments
3860			fireWith: function( context, args ) {
3861				if ( !locked ) {
3862					args = args || [];
3863					args = [ context, args.slice ? args.slice() : args ];
3864					queue.push( args );
3865					if ( !firing ) {
3866						fire();
3867					}
3868				}
3869				return this;
3870			},
3871
3872			// Call all the callbacks with the given arguments
3873			fire: function() {
3874				self.fireWith( this, arguments );
3875				return this;
3876			},
3877
3878			// To know if the callbacks have already been called at least once
3879			fired: function() {
3880				return !!fired;
3881			}
3882		};
3883
3884	return self;
3885};
3886
3887
3888function Identity( v ) {
3889	return v;
3890}
3891function Thrower( ex ) {
3892	throw ex;
3893}
3894
3895function adoptValue( value, resolve, reject, noValue ) {
3896	var method;
3897
3898	try {
3899
3900		// Check for promise aspect first to privilege synchronous behavior
3901		if ( value && isFunction( ( method = value.promise ) ) ) {
3902			method.call( value ).done( resolve ).fail( reject );
3903
3904		// Other thenables
3905		} else if ( value && isFunction( ( method = value.then ) ) ) {
3906			method.call( value, resolve, reject );
3907
3908		// Other non-thenables
3909		} else {
3910
3911			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
3912			// * false: [ value ].slice( 0 ) => resolve( value )
3913			// * true: [ value ].slice( 1 ) => resolve()
3914			resolve.apply( undefined, [ value ].slice( noValue ) );
3915		}
3916
3917	// For Promises/A+, convert exceptions into rejections
3918	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
3919	// Deferred#then to conditionally suppress rejection.
3920	} catch ( value ) {
3921
3922		// Support: Android 4.0 only
3923		// Strict mode functions invoked without .call/.apply get global-object context
3924		reject.apply( undefined, [ value ] );
3925	}
3926}
3927
3928jQuery.extend( {
3929
3930	Deferred: function( func ) {
3931		var tuples = [
3932
3933				// action, add listener, callbacks,
3934				// ... .then handlers, argument index, [final state]
3935				[ "notify", "progress", jQuery.Callbacks( "memory" ),
3936					jQuery.Callbacks( "memory" ), 2 ],
3937				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
3938					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
3939				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
3940					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
3941			],
3942			state = "pending",
3943			promise = {
3944				state: function() {
3945					return state;
3946				},
3947				always: function() {
3948					deferred.done( arguments ).fail( arguments );
3949					return this;
3950				},
3951				"catch": function( fn ) {
3952					return promise.then( null, fn );
3953				},
3954
3955				// Keep pipe for back-compat
3956				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
3957					var fns = arguments;
3958
3959					return jQuery.Deferred( function( newDefer ) {
3960						jQuery.each( tuples, function( _i, tuple ) {
3961
3962							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
3963							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
3964
3965							// deferred.progress(function() { bind to newDefer or newDefer.notify })
3966							// deferred.done(function() { bind to newDefer or newDefer.resolve })
3967							// deferred.fail(function() { bind to newDefer or newDefer.reject })
3968							deferred[ tuple[ 1 ] ]( function() {
3969								var returned = fn && fn.apply( this, arguments );
3970								if ( returned && isFunction( returned.promise ) ) {
3971									returned.promise()
3972										.progress( newDefer.notify )
3973										.done( newDefer.resolve )
3974										.fail( newDefer.reject );
3975								} else {
3976									newDefer[ tuple[ 0 ] + "With" ](
3977										this,
3978										fn ? [ returned ] : arguments
3979									);
3980								}
3981							} );
3982						} );
3983						fns = null;
3984					} ).promise();
3985				},
3986				then: function( onFulfilled, onRejected, onProgress ) {
3987					var maxDepth = 0;
3988					function resolve( depth, deferred, handler, special ) {
3989						return function() {
3990							var that = this,
3991								args = arguments,
3992								mightThrow = function() {
3993									var returned, then;
3994
3995									// Support: Promises/A+ section 2.3.3.3.3
3996									// https://promisesaplus.com/#point-59
3997									// Ignore double-resolution attempts
3998									if ( depth < maxDepth ) {
3999										return;
4000									}
4001
4002									returned = handler.apply( that, args );
4003
4004									// Support: Promises/A+ section 2.3.1
4005									// https://promisesaplus.com/#point-48
4006									if ( returned === deferred.promise() ) {
4007										throw new TypeError( "Thenable self-resolution" );
4008									}
4009
4010									// Support: Promises/A+ sections 2.3.3.1, 3.5
4011									// https://promisesaplus.com/#point-54
4012									// https://promisesaplus.com/#point-75
4013									// Retrieve `then` only once
4014									then = returned &&
4015
4016										// Support: Promises/A+ section 2.3.4
4017										// https://promisesaplus.com/#point-64
4018										// Only check objects and functions for thenability
4019										( typeof returned === "object" ||
4020											typeof returned === "function" ) &&
4021										returned.then;
4022
4023									// Handle a returned thenable
4024									if ( isFunction( then ) ) {
4025
4026										// Special processors (notify) just wait for resolution
4027										if ( special ) {
4028											then.call(
4029												returned,
4030												resolve( maxDepth, deferred, Identity, special ),
4031												resolve( maxDepth, deferred, Thrower, special )
4032											);
4033
4034										// Normal processors (resolve) also hook into progress
4035										} else {
4036
4037											// ...and disregard older resolution values
4038											maxDepth++;
4039
4040											then.call(
4041												returned,
4042												resolve( maxDepth, deferred, Identity, special ),
4043												resolve( maxDepth, deferred, Thrower, special ),
4044												resolve( maxDepth, deferred, Identity,
4045													deferred.notifyWith )
4046											);
4047										}
4048
4049									// Handle all other returned values
4050									} else {
4051
4052										// Only substitute handlers pass on context
4053										// and multiple values (non-spec behavior)
4054										if ( handler !== Identity ) {
4055											that = undefined;
4056											args = [ returned ];
4057										}
4058
4059										// Process the value(s)
4060										// Default process is resolve
4061										( special || deferred.resolveWith )( that, args );
4062									}
4063								},
4064
4065								// Only normal processors (resolve) catch and reject exceptions
4066								process = special ?
4067									mightThrow :
4068									function() {
4069										try {
4070											mightThrow();
4071										} catch ( e ) {
4072
4073											if ( jQuery.Deferred.exceptionHook ) {
4074												jQuery.Deferred.exceptionHook( e,
4075													process.stackTrace );
4076											}
4077
4078											// Support: Promises/A+ section 2.3.3.3.4.1
4079											// https://promisesaplus.com/#point-61
4080											// Ignore post-resolution exceptions
4081											if ( depth + 1 >= maxDepth ) {
4082
4083												// Only substitute handlers pass on context
4084												// and multiple values (non-spec behavior)
4085												if ( handler !== Thrower ) {
4086													that = undefined;
4087													args = [ e ];
4088												}
4089
4090												deferred.rejectWith( that, args );
4091											}
4092										}
4093									};
4094
4095							// Support: Promises/A+ section 2.3.3.3.1
4096							// https://promisesaplus.com/#point-57
4097							// Re-resolve promises immediately to dodge false rejection from
4098							// subsequent errors
4099							if ( depth ) {
4100								process();
4101							} else {
4102
4103								// Call an optional hook to record the stack, in case of exception
4104								// since it's otherwise lost when execution goes async
4105								if ( jQuery.Deferred.getStackHook ) {
4106									process.stackTrace = jQuery.Deferred.getStackHook();
4107								}
4108								window.setTimeout( process );
4109							}
4110						};
4111					}
4112
4113					return jQuery.Deferred( function( newDefer ) {
4114
4115						// progress_handlers.add( ... )
4116						tuples[ 0 ][ 3 ].add(
4117							resolve(
4118								0,
4119								newDefer,
4120								isFunction( onProgress ) ?
4121									onProgress :
4122									Identity,
4123								newDefer.notifyWith
4124							)
4125						);
4126
4127						// fulfilled_handlers.add( ... )
4128						tuples[ 1 ][ 3 ].add(
4129							resolve(
4130								0,
4131								newDefer,
4132								isFunction( onFulfilled ) ?
4133									onFulfilled :
4134									Identity
4135							)
4136						);
4137
4138						// rejected_handlers.add( ... )
4139						tuples[ 2 ][ 3 ].add(
4140							resolve(
4141								0,
4142								newDefer,
4143								isFunction( onRejected ) ?
4144									onRejected :
4145									Thrower
4146							)
4147						);
4148					} ).promise();
4149				},
4150
4151				// Get a promise for this deferred
4152				// If obj is provided, the promise aspect is added to the object
4153				promise: function( obj ) {
4154					return obj != null ? jQuery.extend( obj, promise ) : promise;
4155				}
4156			},
4157			deferred = {};
4158
4159		// Add list-specific methods
4160		jQuery.each( tuples, function( i, tuple ) {
4161			var list = tuple[ 2 ],
4162				stateString = tuple[ 5 ];
4163
4164			// promise.progress = list.add
4165			// promise.done = list.add
4166			// promise.fail = list.add
4167			promise[ tuple[ 1 ] ] = list.add;
4168
4169			// Handle state
4170			if ( stateString ) {
4171				list.add(
4172					function() {
4173
4174						// state = "resolved" (i.e., fulfilled)
4175						// state = "rejected"
4176						state = stateString;
4177					},
4178
4179					// rejected_callbacks.disable
4180					// fulfilled_callbacks.disable
4181					tuples[ 3 - i ][ 2 ].disable,
4182
4183					// rejected_handlers.disable
4184					// fulfilled_handlers.disable
4185					tuples[ 3 - i ][ 3 ].disable,
4186
4187					// progress_callbacks.lock
4188					tuples[ 0 ][ 2 ].lock,
4189
4190					// progress_handlers.lock
4191					tuples[ 0 ][ 3 ].lock
4192				);
4193			}
4194
4195			// progress_handlers.fire
4196			// fulfilled_handlers.fire
4197			// rejected_handlers.fire
4198			list.add( tuple[ 3 ].fire );
4199
4200			// deferred.notify = function() { deferred.notifyWith(...) }
4201			// deferred.resolve = function() { deferred.resolveWith(...) }
4202			// deferred.reject = function() { deferred.rejectWith(...) }
4203			deferred[ tuple[ 0 ] ] = function() {
4204				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
4205				return this;
4206			};
4207
4208			// deferred.notifyWith = list.fireWith
4209			// deferred.resolveWith = list.fireWith
4210			// deferred.rejectWith = list.fireWith
4211			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
4212		} );
4213
4214		// Make the deferred a promise
4215		promise.promise( deferred );
4216
4217		// Call given func if any
4218		if ( func ) {
4219			func.call( deferred, deferred );
4220		}
4221
4222		// All done!
4223		return deferred;
4224	},
4225
4226	// Deferred helper
4227	when: function( singleValue ) {
4228		var
4229
4230			// count of uncompleted subordinates
4231			remaining = arguments.length,
4232
4233			// count of unprocessed arguments
4234			i = remaining,
4235
4236			// subordinate fulfillment data
4237			resolveContexts = Array( i ),
4238			resolveValues = slice.call( arguments ),
4239
4240			// the primary Deferred
4241			primary = jQuery.Deferred(),
4242
4243			// subordinate callback factory
4244			updateFunc = function( i ) {
4245				return function( value ) {
4246					resolveContexts[ i ] = this;
4247					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
4248					if ( !( --remaining ) ) {
4249						primary.resolveWith( resolveContexts, resolveValues );
4250					}
4251				};
4252			};
4253
4254		// Single- and empty arguments are adopted like Promise.resolve
4255		if ( remaining <= 1 ) {
4256			adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
4257				!remaining );
4258
4259			// Use .then() to unwrap secondary thenables (cf. gh-3000)
4260			if ( primary.state() === "pending" ||
4261				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
4262
4263				return primary.then();
4264			}
4265		}
4266
4267		// Multiple arguments are aggregated like Promise.all array elements
4268		while ( i-- ) {
4269			adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
4270		}
4271
4272		return primary.promise();
4273	}
4274} );
4275
4276
4277// These usually indicate a programmer mistake during development,
4278// warn about them ASAP rather than swallowing them by default.
4279var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
4280
4281jQuery.Deferred.exceptionHook = function( error, stack ) {
4282
4283	// Support: IE 8 - 9 only
4284	// Console exists when dev tools are open, which can happen at any time
4285	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
4286		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
4287	}
4288};
4289
4290
4291
4292
4293jQuery.readyException = function( error ) {
4294	window.setTimeout( function() {
4295		throw error;
4296	} );
4297};
4298
4299
4300
4301
4302// The deferred used on DOM ready
4303var readyList = jQuery.Deferred();
4304
4305jQuery.fn.ready = function( fn ) {
4306
4307	readyList
4308		.then( fn )
4309
4310		// Wrap jQuery.readyException in a function so that the lookup
4311		// happens at the time of error handling instead of callback
4312		// registration.
4313		.catch( function( error ) {
4314			jQuery.readyException( error );
4315		} );
4316
4317	return this;
4318};
4319
4320jQuery.extend( {
4321
4322	// Is the DOM ready to be used? Set to true once it occurs.
4323	isReady: false,
4324
4325	// A counter to track how many items to wait for before
4326	// the ready event fires. See #6781
4327	readyWait: 1,
4328
4329	// Handle when the DOM is ready
4330	ready: function( wait ) {
4331
4332		// Abort if there are pending holds or we're already ready
4333		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
4334			return;
4335		}
4336
4337		// Remember that the DOM is ready
4338		jQuery.isReady = true;
4339
4340		// If a normal DOM Ready event fired, decrement, and wait if need be
4341		if ( wait !== true && --jQuery.readyWait > 0 ) {
4342			return;
4343		}
4344
4345		// If there are functions bound, to execute
4346		readyList.resolveWith( document, [ jQuery ] );
4347	}
4348} );
4349
4350jQuery.ready.then = readyList.then;
4351
4352// The ready event handler and self cleanup method
4353function completed() {
4354	document.removeEventListener( "DOMContentLoaded", completed );
4355	window.removeEventListener( "load", completed );
4356	jQuery.ready();
4357}
4358
4359// Catch cases where $(document).ready() is called
4360// after the browser event has already occurred.
4361// Support: IE <=9 - 10 only
4362// Older IE sometimes signals "interactive" too soon
4363if ( document.readyState === "complete" ||
4364	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
4365
4366	// Handle it asynchronously to allow scripts the opportunity to delay ready
4367	window.setTimeout( jQuery.ready );
4368
4369} else {
4370
4371	// Use the handy event callback
4372	document.addEventListener( "DOMContentLoaded", completed );
4373
4374	// A fallback to window.onload, that will always work
4375	window.addEventListener( "load", completed );
4376}
4377
4378
4379
4380
4381// Multifunctional method to get and set values of a collection
4382// The value/s can optionally be executed if it's a function
4383var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
4384	var i = 0,
4385		len = elems.length,
4386		bulk = key == null;
4387
4388	// Sets many values
4389	if ( toType( key ) === "object" ) {
4390		chainable = true;
4391		for ( i in key ) {
4392			access( elems, fn, i, key[ i ], true, emptyGet, raw );
4393		}
4394
4395	// Sets one value
4396	} else if ( value !== undefined ) {
4397		chainable = true;
4398
4399		if ( !isFunction( value ) ) {
4400			raw = true;
4401		}
4402
4403		if ( bulk ) {
4404
4405			// Bulk operations run against the entire set
4406			if ( raw ) {
4407				fn.call( elems, value );
4408				fn = null;
4409
4410			// ...except when executing function values
4411			} else {
4412				bulk = fn;
4413				fn = function( elem, _key, value ) {
4414					return bulk.call( jQuery( elem ), value );
4415				};
4416			}
4417		}
4418
4419		if ( fn ) {
4420			for ( ; i < len; i++ ) {
4421				fn(
4422					elems[ i ], key, raw ?
4423						value :
4424						value.call( elems[ i ], i, fn( elems[ i ], key ) )
4425				);
4426			}
4427		}
4428	}
4429
4430	if ( chainable ) {
4431		return elems;
4432	}
4433
4434	// Gets
4435	if ( bulk ) {
4436		return fn.call( elems );
4437	}
4438
4439	return len ? fn( elems[ 0 ], key ) : emptyGet;
4440};
4441
4442
4443// Matches dashed string for camelizing
4444var rmsPrefix = /^-ms-/,
4445	rdashAlpha = /-([a-z])/g;
4446
4447// Used by camelCase as callback to replace()
4448function fcamelCase( _all, letter ) {
4449	return letter.toUpperCase();
4450}
4451
4452// Convert dashed to camelCase; used by the css and data modules
4453// Support: IE <=9 - 11, Edge 12 - 15
4454// Microsoft forgot to hump their vendor prefix (#9572)
4455function camelCase( string ) {
4456	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
4457}
4458var acceptData = function( owner ) {
4459
4460	// Accepts only:
4461	//  - Node
4462	//    - Node.ELEMENT_NODE
4463	//    - Node.DOCUMENT_NODE
4464	//  - Object
4465	//    - Any
4466	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
4467};
4468
4469
4470
4471
4472function Data() {
4473	this.expando = jQuery.expando + Data.uid++;
4474}
4475
4476Data.uid = 1;
4477
4478Data.prototype = {
4479
4480	cache: function( owner ) {
4481
4482		// Check if the owner object already has a cache
4483		var value = owner[ this.expando ];
4484
4485		// If not, create one
4486		if ( !value ) {
4487			value = {};
4488
4489			// We can accept data for non-element nodes in modern browsers,
4490			// but we should not, see #8335.
4491			// Always return an empty object.
4492			if ( acceptData( owner ) ) {
4493
4494				// If it is a node unlikely to be stringify-ed or looped over
4495				// use plain assignment
4496				if ( owner.nodeType ) {
4497					owner[ this.expando ] = value;
4498
4499				// Otherwise secure it in a non-enumerable property
4500				// configurable must be true to allow the property to be
4501				// deleted when data is removed
4502				} else {
4503					Object.defineProperty( owner, this.expando, {
4504						value: value,
4505						configurable: true
4506					} );
4507				}
4508			}
4509		}
4510
4511		return value;
4512	},
4513	set: function( owner, data, value ) {
4514		var prop,
4515			cache = this.cache( owner );
4516
4517		// Handle: [ owner, key, value ] args
4518		// Always use camelCase key (gh-2257)
4519		if ( typeof data === "string" ) {
4520			cache[ camelCase( data ) ] = value;
4521
4522		// Handle: [ owner, { properties } ] args
4523		} else {
4524
4525			// Copy the properties one-by-one to the cache object
4526			for ( prop in data ) {
4527				cache[ camelCase( prop ) ] = data[ prop ];
4528			}
4529		}
4530		return cache;
4531	},
4532	get: function( owner, key ) {
4533		return key === undefined ?
4534			this.cache( owner ) :
4535
4536			// Always use camelCase key (gh-2257)
4537			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
4538	},
4539	access: function( owner, key, value ) {
4540
4541		// In cases where either:
4542		//
4543		//   1. No key was specified
4544		//   2. A string key was specified, but no value provided
4545		//
4546		// Take the "read" path and allow the get method to determine
4547		// which value to return, respectively either:
4548		//
4549		//   1. The entire cache object
4550		//   2. The data stored at the key
4551		//
4552		if ( key === undefined ||
4553				( ( key && typeof key === "string" ) && value === undefined ) ) {
4554
4555			return this.get( owner, key );
4556		}
4557
4558		// When the key is not a string, or both a key and value
4559		// are specified, set or extend (existing objects) with either:
4560		//
4561		//   1. An object of properties
4562		//   2. A key and value
4563		//
4564		this.set( owner, key, value );
4565
4566		// Since the "set" path can have two possible entry points
4567		// return the expected data based on which path was taken[*]
4568		return value !== undefined ? value : key;
4569	},
4570	remove: function( owner, key ) {
4571		var i,
4572			cache = owner[ this.expando ];
4573
4574		if ( cache === undefined ) {
4575			return;
4576		}
4577
4578		if ( key !== undefined ) {
4579
4580			// Support array or space separated string of keys
4581			if ( Array.isArray( key ) ) {
4582
4583				// If key is an array of keys...
4584				// We always set camelCase keys, so remove that.
4585				key = key.map( camelCase );
4586			} else {
4587				key = camelCase( key );
4588
4589				// If a key with the spaces exists, use it.
4590				// Otherwise, create an array by matching non-whitespace
4591				key = key in cache ?
4592					[ key ] :
4593					( key.match( rnothtmlwhite ) || [] );
4594			}
4595
4596			i = key.length;
4597
4598			while ( i-- ) {
4599				delete cache[ key[ i ] ];
4600			}
4601		}
4602
4603		// Remove the expando if there's no more data
4604		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
4605
4606			// Support: Chrome <=35 - 45
4607			// Webkit & Blink performance suffers when deleting properties
4608			// from DOM nodes, so set to undefined instead
4609			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
4610			if ( owner.nodeType ) {
4611				owner[ this.expando ] = undefined;
4612			} else {
4613				delete owner[ this.expando ];
4614			}
4615		}
4616	},
4617	hasData: function( owner ) {
4618		var cache = owner[ this.expando ];
4619		return cache !== undefined && !jQuery.isEmptyObject( cache );
4620	}
4621};
4622var dataPriv = new Data();
4623
4624var dataUser = new Data();
4625
4626
4627
4628//	Implementation Summary
4629//
4630//	1. Enforce API surface and semantic compatibility with 1.9.x branch
4631//	2. Improve the module's maintainability by reducing the storage
4632//		paths to a single mechanism.
4633//	3. Use the same single mechanism to support "private" and "user" data.
4634//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
4635//	5. Avoid exposing implementation details on user objects (eg. expando properties)
4636//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
4637
4638var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
4639	rmultiDash = /[A-Z]/g;
4640
4641function getData( data ) {
4642	if ( data === "true" ) {
4643		return true;
4644	}
4645
4646	if ( data === "false" ) {
4647		return false;
4648	}
4649
4650	if ( data === "null" ) {
4651		return null;
4652	}
4653
4654	// Only convert to a number if it doesn't change the string
4655	if ( data === +data + "" ) {
4656		return +data;
4657	}
4658
4659	if ( rbrace.test( data ) ) {
4660		return JSON.parse( data );
4661	}
4662
4663	return data;
4664}
4665
4666function dataAttr( elem, key, data ) {
4667	var name;
4668
4669	// If nothing was found internally, try to fetch any
4670	// data from the HTML5 data-* attribute
4671	if ( data === undefined && elem.nodeType === 1 ) {
4672		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
4673		data = elem.getAttribute( name );
4674
4675		if ( typeof data === "string" ) {
4676			try {
4677				data = getData( data );
4678			} catch ( e ) {}
4679
4680			// Make sure we set the data so it isn't changed later
4681			dataUser.set( elem, key, data );
4682		} else {
4683			data = undefined;
4684		}
4685	}
4686	return data;
4687}
4688
4689jQuery.extend( {
4690	hasData: function( elem ) {
4691		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
4692	},
4693
4694	data: function( elem, name, data ) {
4695		return dataUser.access( elem, name, data );
4696	},
4697
4698	removeData: function( elem, name ) {
4699		dataUser.remove( elem, name );
4700	},
4701
4702	// TODO: Now that all calls to _data and _removeData have been replaced
4703	// with direct calls to dataPriv methods, these can be deprecated.
4704	_data: function( elem, name, data ) {
4705		return dataPriv.access( elem, name, data );
4706	},
4707
4708	_removeData: function( elem, name ) {
4709		dataPriv.remove( elem, name );
4710	}
4711} );
4712
4713jQuery.fn.extend( {
4714	data: function( key, value ) {
4715		var i, name, data,
4716			elem = this[ 0 ],
4717			attrs = elem && elem.attributes;
4718
4719		// Gets all values
4720		if ( key === undefined ) {
4721			if ( this.length ) {
4722				data = dataUser.get( elem );
4723
4724				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
4725					i = attrs.length;
4726					while ( i-- ) {
4727
4728						// Support: IE 11 only
4729						// The attrs elements can be null (#14894)
4730						if ( attrs[ i ] ) {
4731							name = attrs[ i ].name;
4732							if ( name.indexOf( "data-" ) === 0 ) {
4733								name = camelCase( name.slice( 5 ) );
4734								dataAttr( elem, name, data[ name ] );
4735							}
4736						}
4737					}
4738					dataPriv.set( elem, "hasDataAttrs", true );
4739				}
4740			}
4741
4742			return data;
4743		}
4744
4745		// Sets multiple values
4746		if ( typeof key === "object" ) {
4747			return this.each( function() {
4748				dataUser.set( this, key );
4749			} );
4750		}
4751
4752		return access( this, function( value ) {
4753			var data;
4754
4755			// The calling jQuery object (element matches) is not empty
4756			// (and therefore has an element appears at this[ 0 ]) and the
4757			// `value` parameter was not undefined. An empty jQuery object
4758			// will result in `undefined` for elem = this[ 0 ] which will
4759			// throw an exception if an attempt to read a data cache is made.
4760			if ( elem && value === undefined ) {
4761
4762				// Attempt to get data from the cache
4763				// The key will always be camelCased in Data
4764				data = dataUser.get( elem, key );
4765				if ( data !== undefined ) {
4766					return data;
4767				}
4768
4769				// Attempt to "discover" the data in
4770				// HTML5 custom data-* attrs
4771				data = dataAttr( elem, key );
4772				if ( data !== undefined ) {
4773					return data;
4774				}
4775
4776				// We tried really hard, but the data doesn't exist.
4777				return;
4778			}
4779
4780			// Set the data...
4781			this.each( function() {
4782
4783				// We always store the camelCased key
4784				dataUser.set( this, key, value );
4785			} );
4786		}, null, value, arguments.length > 1, null, true );
4787	},
4788
4789	removeData: function( key ) {
4790		return this.each( function() {
4791			dataUser.remove( this, key );
4792		} );
4793	}
4794} );
4795
4796
4797jQuery.extend( {
4798	queue: function( elem, type, data ) {
4799		var queue;
4800
4801		if ( elem ) {
4802			type = ( type || "fx" ) + "queue";
4803			queue = dataPriv.get( elem, type );
4804
4805			// Speed up dequeue by getting out quickly if this is just a lookup
4806			if ( data ) {
4807				if ( !queue || Array.isArray( data ) ) {
4808					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
4809				} else {
4810					queue.push( data );
4811				}
4812			}
4813			return queue || [];
4814		}
4815	},
4816
4817	dequeue: function( elem, type ) {
4818		type = type || "fx";
4819
4820		var queue = jQuery.queue( elem, type ),
4821			startLength = queue.length,
4822			fn = queue.shift(),
4823			hooks = jQuery._queueHooks( elem, type ),
4824			next = function() {
4825				jQuery.dequeue( elem, type );
4826			};
4827
4828		// If the fx queue is dequeued, always remove the progress sentinel
4829		if ( fn === "inprogress" ) {
4830			fn = queue.shift();
4831			startLength--;
4832		}
4833
4834		if ( fn ) {
4835
4836			// Add a progress sentinel to prevent the fx queue from being
4837			// automatically dequeued
4838			if ( type === "fx" ) {
4839				queue.unshift( "inprogress" );
4840			}
4841
4842			// Clear up the last queue stop function
4843			delete hooks.stop;
4844			fn.call( elem, next, hooks );
4845		}
4846
4847		if ( !startLength && hooks ) {
4848			hooks.empty.fire();
4849		}
4850	},
4851
4852	// Not public - generate a queueHooks object, or return the current one
4853	_queueHooks: function( elem, type ) {
4854		var key = type + "queueHooks";
4855		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
4856			empty: jQuery.Callbacks( "once memory" ).add( function() {
4857				dataPriv.remove( elem, [ type + "queue", key ] );
4858			} )
4859		} );
4860	}
4861} );
4862
4863jQuery.fn.extend( {
4864	queue: function( type, data ) {
4865		var setter = 2;
4866
4867		if ( typeof type !== "string" ) {
4868			data = type;
4869			type = "fx";
4870			setter--;
4871		}
4872
4873		if ( arguments.length < setter ) {
4874			return jQuery.queue( this[ 0 ], type );
4875		}
4876
4877		return data === undefined ?
4878			this :
4879			this.each( function() {
4880				var queue = jQuery.queue( this, type, data );
4881
4882				// Ensure a hooks for this queue
4883				jQuery._queueHooks( this, type );
4884
4885				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
4886					jQuery.dequeue( this, type );
4887				}
4888			} );
4889	},
4890	dequeue: function( type ) {
4891		return this.each( function() {
4892			jQuery.dequeue( this, type );
4893		} );
4894	},
4895	clearQueue: function( type ) {
4896		return this.queue( type || "fx", [] );
4897	},
4898
4899	// Get a promise resolved when queues of a certain type
4900	// are emptied (fx is the type by default)
4901	promise: function( type, obj ) {
4902		var tmp,
4903			count = 1,
4904			defer = jQuery.Deferred(),
4905			elements = this,
4906			i = this.length,
4907			resolve = function() {
4908				if ( !( --count ) ) {
4909					defer.resolveWith( elements, [ elements ] );
4910				}
4911			};
4912
4913		if ( typeof type !== "string" ) {
4914			obj = type;
4915			type = undefined;
4916		}
4917		type = type || "fx";
4918
4919		while ( i-- ) {
4920			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
4921			if ( tmp && tmp.empty ) {
4922				count++;
4923				tmp.empty.add( resolve );
4924			}
4925		}
4926		resolve();
4927		return defer.promise( obj );
4928	}
4929} );
4930var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
4931
4932var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
4933
4934
4935var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
4936
4937var documentElement = document.documentElement;
4938
4939
4940
4941	var isAttached = function( elem ) {
4942			return jQuery.contains( elem.ownerDocument, elem );
4943		},
4944		composed = { composed: true };
4945
4946	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
4947	// Check attachment across shadow DOM boundaries when possible (gh-3504)
4948	// Support: iOS 10.0-10.2 only
4949	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
4950	// leading to errors. We need to check for `getRootNode`.
4951	if ( documentElement.getRootNode ) {
4952		isAttached = function( elem ) {
4953			return jQuery.contains( elem.ownerDocument, elem ) ||
4954				elem.getRootNode( composed ) === elem.ownerDocument;
4955		};
4956	}
4957var isHiddenWithinTree = function( elem, el ) {
4958
4959		// isHiddenWithinTree might be called from jQuery#filter function;
4960		// in that case, element will be second argument
4961		elem = el || elem;
4962
4963		// Inline style trumps all
4964		return elem.style.display === "none" ||
4965			elem.style.display === "" &&
4966
4967			// Otherwise, check computed style
4968			// Support: Firefox <=43 - 45
4969			// Disconnected elements can have computed display: none, so first confirm that elem is
4970			// in the document.
4971			isAttached( elem ) &&
4972
4973			jQuery.css( elem, "display" ) === "none";
4974	};
4975
4976
4977
4978function adjustCSS( elem, prop, valueParts, tween ) {
4979	var adjusted, scale,
4980		maxIterations = 20,
4981		currentValue = tween ?
4982			function() {
4983				return tween.cur();
4984			} :
4985			function() {
4986				return jQuery.css( elem, prop, "" );
4987			},
4988		initial = currentValue(),
4989		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
4990
4991		// Starting value computation is required for potential unit mismatches
4992		initialInUnit = elem.nodeType &&
4993			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
4994			rcssNum.exec( jQuery.css( elem, prop ) );
4995
4996	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
4997
4998		// Support: Firefox <=54
4999		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
5000		initial = initial / 2;
5001
5002		// Trust units reported by jQuery.css
5003		unit = unit || initialInUnit[ 3 ];
5004
5005		// Iteratively approximate from a nonzero starting point
5006		initialInUnit = +initial || 1;
5007
5008		while ( maxIterations-- ) {
5009
5010			// Evaluate and update our best guess (doubling guesses that zero out).
5011			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
5012			jQuery.style( elem, prop, initialInUnit + unit );
5013			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
5014				maxIterations = 0;
5015			}
5016			initialInUnit = initialInUnit / scale;
5017
5018		}
5019
5020		initialInUnit = initialInUnit * 2;
5021		jQuery.style( elem, prop, initialInUnit + unit );
5022
5023		// Make sure we update the tween properties later on
5024		valueParts = valueParts || [];
5025	}
5026
5027	if ( valueParts ) {
5028		initialInUnit = +initialInUnit || +initial || 0;
5029
5030		// Apply relative offset (+=/-=) if specified
5031		adjusted = valueParts[ 1 ] ?
5032			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
5033			+valueParts[ 2 ];
5034		if ( tween ) {
5035			tween.unit = unit;
5036			tween.start = initialInUnit;
5037			tween.end = adjusted;
5038		}
5039	}
5040	return adjusted;
5041}
5042
5043
5044var defaultDisplayMap = {};
5045
5046function getDefaultDisplay( elem ) {
5047	var temp,
5048		doc = elem.ownerDocument,
5049		nodeName = elem.nodeName,
5050		display = defaultDisplayMap[ nodeName ];
5051
5052	if ( display ) {
5053		return display;
5054	}
5055
5056	temp = doc.body.appendChild( doc.createElement( nodeName ) );
5057	display = jQuery.css( temp, "display" );
5058
5059	temp.parentNode.removeChild( temp );
5060
5061	if ( display === "none" ) {
5062		display = "block";
5063	}
5064	defaultDisplayMap[ nodeName ] = display;
5065
5066	return display;
5067}
5068
5069function showHide( elements, show ) {
5070	var display, elem,
5071		values = [],
5072		index = 0,
5073		length = elements.length;
5074
5075	// Determine new display value for elements that need to change
5076	for ( ; index < length; index++ ) {
5077		elem = elements[ index ];
5078		if ( !elem.style ) {
5079			continue;
5080		}
5081
5082		display = elem.style.display;
5083		if ( show ) {
5084
5085			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
5086			// check is required in this first loop unless we have a nonempty display value (either
5087			// inline or about-to-be-restored)
5088			if ( display === "none" ) {
5089				values[ index ] = dataPriv.get( elem, "display" ) || null;
5090				if ( !values[ index ] ) {
5091					elem.style.display = "";
5092				}
5093			}
5094			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
5095				values[ index ] = getDefaultDisplay( elem );
5096			}
5097		} else {
5098			if ( display !== "none" ) {
5099				values[ index ] = "none";
5100
5101				// Remember what we're overwriting
5102				dataPriv.set( elem, "display", display );
5103			}
5104		}
5105	}
5106
5107	// Set the display of the elements in a second loop to avoid constant reflow
5108	for ( index = 0; index < length; index++ ) {
5109		if ( values[ index ] != null ) {
5110			elements[ index ].style.display = values[ index ];
5111		}
5112	}
5113
5114	return elements;
5115}
5116
5117jQuery.fn.extend( {
5118	show: function() {
5119		return showHide( this, true );
5120	},
5121	hide: function() {
5122		return showHide( this );
5123	},
5124	toggle: function( state ) {
5125		if ( typeof state === "boolean" ) {
5126			return state ? this.show() : this.hide();
5127		}
5128
5129		return this.each( function() {
5130			if ( isHiddenWithinTree( this ) ) {
5131				jQuery( this ).show();
5132			} else {
5133				jQuery( this ).hide();
5134			}
5135		} );
5136	}
5137} );
5138var rcheckableType = ( /^(?:checkbox|radio)$/i );
5139
5140var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
5141
5142var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
5143
5144
5145
5146( function() {
5147	var fragment = document.createDocumentFragment(),
5148		div = fragment.appendChild( document.createElement( "div" ) ),
5149		input = document.createElement( "input" );
5150
5151	// Support: Android 4.0 - 4.3 only
5152	// Check state lost if the name is set (#11217)
5153	// Support: Windows Web Apps (WWA)
5154	// `name` and `type` must use .setAttribute for WWA (#14901)
5155	input.setAttribute( "type", "radio" );
5156	input.setAttribute( "checked", "checked" );
5157	input.setAttribute( "name", "t" );
5158
5159	div.appendChild( input );
5160
5161	// Support: Android <=4.1 only
5162	// Older WebKit doesn't clone checked state correctly in fragments
5163	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
5164
5165	// Support: IE <=11 only
5166	// Make sure textarea (and checkbox) defaultValue is properly cloned
5167	div.innerHTML = "<textarea>x</textarea>";
5168	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
5169
5170	// Support: IE <=9 only
5171	// IE <=9 replaces <option> tags with their contents when inserted outside of
5172	// the select element.
5173	div.innerHTML = "<option></option>";
5174	support.option = !!div.lastChild;
5175} )();
5176
5177
5178// We have to close these tags to support XHTML (#13200)
5179var wrapMap = {
5180
5181	// XHTML parsers do not magically insert elements in the
5182	// same way that tag soup parsers do. So we cannot shorten
5183	// this by omitting <tbody> or other required elements.
5184	thead: [ 1, "<table>", "</table>" ],
5185	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
5186	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
5187	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
5188
5189	_default: [ 0, "", "" ]
5190};
5191
5192wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
5193wrapMap.th = wrapMap.td;
5194
5195// Support: IE <=9 only
5196if ( !support.option ) {
5197	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
5198}
5199
5200
5201function getAll( context, tag ) {
5202
5203	// Support: IE <=9 - 11 only
5204	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
5205	var ret;
5206
5207	if ( typeof context.getElementsByTagName !== "undefined" ) {
5208		ret = context.getElementsByTagName( tag || "*" );
5209
5210	} else if ( typeof context.querySelectorAll !== "undefined" ) {
5211		ret = context.querySelectorAll( tag || "*" );
5212
5213	} else {
5214		ret = [];
5215	}
5216
5217	if ( tag === undefined || tag && nodeName( context, tag ) ) {
5218		return jQuery.merge( [ context ], ret );
5219	}
5220
5221	return ret;
5222}
5223
5224
5225// Mark scripts as having already been evaluated
5226function setGlobalEval( elems, refElements ) {
5227	var i = 0,
5228		l = elems.length;
5229
5230	for ( ; i < l; i++ ) {
5231		dataPriv.set(
5232			elems[ i ],
5233			"globalEval",
5234			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
5235		);
5236	}
5237}
5238
5239
5240var rhtml = /<|&#?\w+;/;
5241
5242function buildFragment( elems, context, scripts, selection, ignored ) {
5243	var elem, tmp, tag, wrap, attached, j,
5244		fragment = context.createDocumentFragment(),
5245		nodes = [],
5246		i = 0,
5247		l = elems.length;
5248
5249	for ( ; i < l; i++ ) {
5250		elem = elems[ i ];
5251
5252		if ( elem || elem === 0 ) {
5253
5254			// Add nodes directly
5255			if ( toType( elem ) === "object" ) {
5256
5257				// Support: Android <=4.0 only, PhantomJS 1 only
5258				// push.apply(_, arraylike) throws on ancient WebKit
5259				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
5260
5261			// Convert non-html into a text node
5262			} else if ( !rhtml.test( elem ) ) {
5263				nodes.push( context.createTextNode( elem ) );
5264
5265			// Convert html into DOM nodes
5266			} else {
5267				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
5268
5269				// Deserialize a standard representation
5270				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
5271				wrap = wrapMap[ tag ] || wrapMap._default;
5272				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
5273
5274				// Descend through wrappers to the right content
5275				j = wrap[ 0 ];
5276				while ( j-- ) {
5277					tmp = tmp.lastChild;
5278				}
5279
5280				// Support: Android <=4.0 only, PhantomJS 1 only
5281				// push.apply(_, arraylike) throws on ancient WebKit
5282				jQuery.merge( nodes, tmp.childNodes );
5283
5284				// Remember the top-level container
5285				tmp = fragment.firstChild;
5286
5287				// Ensure the created nodes are orphaned (#12392)
5288				tmp.textContent = "";
5289			}
5290		}
5291	}
5292
5293	// Remove wrapper from fragment
5294	fragment.textContent = "";
5295
5296	i = 0;
5297	while ( ( elem = nodes[ i++ ] ) ) {
5298
5299		// Skip elements already in the context collection (trac-4087)
5300		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
5301			if ( ignored ) {
5302				ignored.push( elem );
5303			}
5304			continue;
5305		}
5306
5307		attached = isAttached( elem );
5308
5309		// Append to fragment
5310		tmp = getAll( fragment.appendChild( elem ), "script" );
5311
5312		// Preserve script evaluation history
5313		if ( attached ) {
5314			setGlobalEval( tmp );
5315		}
5316
5317		// Capture executables
5318		if ( scripts ) {
5319			j = 0;
5320			while ( ( elem = tmp[ j++ ] ) ) {
5321				if ( rscriptType.test( elem.type || "" ) ) {
5322					scripts.push( elem );
5323				}
5324			}
5325		}
5326	}
5327
5328	return fragment;
5329}
5330
5331
5332var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
5333
5334function returnTrue() {
5335	return true;
5336}
5337
5338function returnFalse() {
5339	return false;
5340}
5341
5342// Support: IE <=9 - 11+
5343// focus() and blur() are asynchronous, except when they are no-op.
5344// So expect focus to be synchronous when the element is already active,
5345// and blur to be synchronous when the element is not already active.
5346// (focus and blur are always synchronous in other supported browsers,
5347// this just defines when we can count on it).
5348function expectSync( elem, type ) {
5349	return ( elem === safeActiveElement() ) === ( type === "focus" );
5350}
5351
5352// Support: IE <=9 only
5353// Accessing document.activeElement can throw unexpectedly
5354// https://bugs.jquery.com/ticket/13393
5355function safeActiveElement() {
5356	try {
5357		return document.activeElement;
5358	} catch ( err ) { }
5359}
5360
5361function on( elem, types, selector, data, fn, one ) {
5362	var origFn, type;
5363
5364	// Types can be a map of types/handlers
5365	if ( typeof types === "object" ) {
5366
5367		// ( types-Object, selector, data )
5368		if ( typeof selector !== "string" ) {
5369
5370			// ( types-Object, data )
5371			data = data || selector;
5372			selector = undefined;
5373		}
5374		for ( type in types ) {
5375			on( elem, type, selector, data, types[ type ], one );
5376		}
5377		return elem;
5378	}
5379
5380	if ( data == null && fn == null ) {
5381
5382		// ( types, fn )
5383		fn = selector;
5384		data = selector = undefined;
5385	} else if ( fn == null ) {
5386		if ( typeof selector === "string" ) {
5387
5388			// ( types, selector, fn )
5389			fn = data;
5390			data = undefined;
5391		} else {
5392
5393			// ( types, data, fn )
5394			fn = data;
5395			data = selector;
5396			selector = undefined;
5397		}
5398	}
5399	if ( fn === false ) {
5400		fn = returnFalse;
5401	} else if ( !fn ) {
5402		return elem;
5403	}
5404
5405	if ( one === 1 ) {
5406		origFn = fn;
5407		fn = function( event ) {
5408
5409			// Can use an empty set, since event contains the info
5410			jQuery().off( event );
5411			return origFn.apply( this, arguments );
5412		};
5413
5414		// Use same guid so caller can remove using origFn
5415		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
5416	}
5417	return elem.each( function() {
5418		jQuery.event.add( this, types, fn, data, selector );
5419	} );
5420}
5421
5422/*
5423 * Helper functions for managing events -- not part of the public interface.
5424 * Props to Dean Edwards' addEvent library for many of the ideas.
5425 */
5426jQuery.event = {
5427
5428	global: {},
5429
5430	add: function( elem, types, handler, data, selector ) {
5431
5432		var handleObjIn, eventHandle, tmp,
5433			events, t, handleObj,
5434			special, handlers, type, namespaces, origType,
5435			elemData = dataPriv.get( elem );
5436
5437		// Only attach events to objects that accept data
5438		if ( !acceptData( elem ) ) {
5439			return;
5440		}
5441
5442		// Caller can pass in an object of custom data in lieu of the handler
5443		if ( handler.handler ) {
5444			handleObjIn = handler;
5445			handler = handleObjIn.handler;
5446			selector = handleObjIn.selector;
5447		}
5448
5449		// Ensure that invalid selectors throw exceptions at attach time
5450		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
5451		if ( selector ) {
5452			jQuery.find.matchesSelector( documentElement, selector );
5453		}
5454
5455		// Make sure that the handler has a unique ID, used to find/remove it later
5456		if ( !handler.guid ) {
5457			handler.guid = jQuery.guid++;
5458		}
5459
5460		// Init the element's event structure and main handler, if this is the first
5461		if ( !( events = elemData.events ) ) {
5462			events = elemData.events = Object.create( null );
5463		}
5464		if ( !( eventHandle = elemData.handle ) ) {
5465			eventHandle = elemData.handle = function( e ) {
5466
5467				// Discard the second event of a jQuery.event.trigger() and
5468				// when an event is called after a page has unloaded
5469				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
5470					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
5471			};
5472		}
5473
5474		// Handle multiple events separated by a space
5475		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
5476		t = types.length;
5477		while ( t-- ) {
5478			tmp = rtypenamespace.exec( types[ t ] ) || [];
5479			type = origType = tmp[ 1 ];
5480			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
5481
5482			// There *must* be a type, no attaching namespace-only handlers
5483			if ( !type ) {
5484				continue;
5485			}
5486
5487			// If event changes its type, use the special event handlers for the changed type
5488			special = jQuery.event.special[ type ] || {};
5489
5490			// If selector defined, determine special event api type, otherwise given type
5491			type = ( selector ? special.delegateType : special.bindType ) || type;
5492
5493			// Update special based on newly reset type
5494			special = jQuery.event.special[ type ] || {};
5495
5496			// handleObj is passed to all event handlers
5497			handleObj = jQuery.extend( {
5498				type: type,
5499				origType: origType,
5500				data: data,
5501				handler: handler,
5502				guid: handler.guid,
5503				selector: selector,
5504				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
5505				namespace: namespaces.join( "." )
5506			}, handleObjIn );
5507
5508			// Init the event handler queue if we're the first
5509			if ( !( handlers = events[ type ] ) ) {
5510				handlers = events[ type ] = [];
5511				handlers.delegateCount = 0;
5512
5513				// Only use addEventListener if the special events handler returns false
5514				if ( !special.setup ||
5515					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
5516
5517					if ( elem.addEventListener ) {
5518						elem.addEventListener( type, eventHandle );
5519					}
5520				}
5521			}
5522
5523			if ( special.add ) {
5524				special.add.call( elem, handleObj );
5525
5526				if ( !handleObj.handler.guid ) {
5527					handleObj.handler.guid = handler.guid;
5528				}
5529			}
5530
5531			// Add to the element's handler list, delegates in front
5532			if ( selector ) {
5533				handlers.splice( handlers.delegateCount++, 0, handleObj );
5534			} else {
5535				handlers.push( handleObj );
5536			}
5537
5538			// Keep track of which events have ever been used, for event optimization
5539			jQuery.event.global[ type ] = true;
5540		}
5541
5542	},
5543
5544	// Detach an event or set of events from an element
5545	remove: function( elem, types, handler, selector, mappedTypes ) {
5546
5547		var j, origCount, tmp,
5548			events, t, handleObj,
5549			special, handlers, type, namespaces, origType,
5550			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
5551
5552		if ( !elemData || !( events = elemData.events ) ) {
5553			return;
5554		}
5555
5556		// Once for each type.namespace in types; type may be omitted
5557		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
5558		t = types.length;
5559		while ( t-- ) {
5560			tmp = rtypenamespace.exec( types[ t ] ) || [];
5561			type = origType = tmp[ 1 ];
5562			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
5563
5564			// Unbind all events (on this namespace, if provided) for the element
5565			if ( !type ) {
5566				for ( type in events ) {
5567					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
5568				}
5569				continue;
5570			}
5571
5572			special = jQuery.event.special[ type ] || {};
5573			type = ( selector ? special.delegateType : special.bindType ) || type;
5574			handlers = events[ type ] || [];
5575			tmp = tmp[ 2 ] &&
5576				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
5577
5578			// Remove matching events
5579			origCount = j = handlers.length;
5580			while ( j-- ) {
5581				handleObj = handlers[ j ];
5582
5583				if ( ( mappedTypes || origType === handleObj.origType ) &&
5584					( !handler || handler.guid === handleObj.guid ) &&
5585					( !tmp || tmp.test( handleObj.namespace ) ) &&
5586					( !selector || selector === handleObj.selector ||
5587						selector === "**" && handleObj.selector ) ) {
5588					handlers.splice( j, 1 );
5589
5590					if ( handleObj.selector ) {
5591						handlers.delegateCount--;
5592					}
5593					if ( special.remove ) {
5594						special.remove.call( elem, handleObj );
5595					}
5596				}
5597			}
5598
5599			// Remove generic event handler if we removed something and no more handlers exist
5600			// (avoids potential for endless recursion during removal of special event handlers)
5601			if ( origCount && !handlers.length ) {
5602				if ( !special.teardown ||
5603					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
5604
5605					jQuery.removeEvent( elem, type, elemData.handle );
5606				}
5607
5608				delete events[ type ];
5609			}
5610		}
5611
5612		// Remove data and the expando if it's no longer used
5613		if ( jQuery.isEmptyObject( events ) ) {
5614			dataPriv.remove( elem, "handle events" );
5615		}
5616	},
5617
5618	dispatch: function( nativeEvent ) {
5619
5620		var i, j, ret, matched, handleObj, handlerQueue,
5621			args = new Array( arguments.length ),
5622
5623			// Make a writable jQuery.Event from the native event object
5624			event = jQuery.event.fix( nativeEvent ),
5625
5626			handlers = (
5627				dataPriv.get( this, "events" ) || Object.create( null )
5628			)[ event.type ] || [],
5629			special = jQuery.event.special[ event.type ] || {};
5630
5631		// Use the fix-ed jQuery.Event rather than the (read-only) native event
5632		args[ 0 ] = event;
5633
5634		for ( i = 1; i < arguments.length; i++ ) {
5635			args[ i ] = arguments[ i ];
5636		}
5637
5638		event.delegateTarget = this;
5639
5640		// Call the preDispatch hook for the mapped type, and let it bail if desired
5641		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
5642			return;
5643		}
5644
5645		// Determine handlers
5646		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
5647
5648		// Run delegates first; they may want to stop propagation beneath us
5649		i = 0;
5650		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
5651			event.currentTarget = matched.elem;
5652
5653			j = 0;
5654			while ( ( handleObj = matched.handlers[ j++ ] ) &&
5655				!event.isImmediatePropagationStopped() ) {
5656
5657				// If the event is namespaced, then each handler is only invoked if it is
5658				// specially universal or its namespaces are a superset of the event's.
5659				if ( !event.rnamespace || handleObj.namespace === false ||
5660					event.rnamespace.test( handleObj.namespace ) ) {
5661
5662					event.handleObj = handleObj;
5663					event.data = handleObj.data;
5664
5665					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
5666						handleObj.handler ).apply( matched.elem, args );
5667
5668					if ( ret !== undefined ) {
5669						if ( ( event.result = ret ) === false ) {
5670							event.preventDefault();
5671							event.stopPropagation();
5672						}
5673					}
5674				}
5675			}
5676		}
5677
5678		// Call the postDispatch hook for the mapped type
5679		if ( special.postDispatch ) {
5680			special.postDispatch.call( this, event );
5681		}
5682
5683		return event.result;
5684	},
5685
5686	handlers: function( event, handlers ) {
5687		var i, handleObj, sel, matchedHandlers, matchedSelectors,
5688			handlerQueue = [],
5689			delegateCount = handlers.delegateCount,
5690			cur = event.target;
5691
5692		// Find delegate handlers
5693		if ( delegateCount &&
5694
5695			// Support: IE <=9
5696			// Black-hole SVG <use> instance trees (trac-13180)
5697			cur.nodeType &&
5698
5699			// Support: Firefox <=42
5700			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
5701			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
5702			// Support: IE 11 only
5703			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
5704			!( event.type === "click" && event.button >= 1 ) ) {
5705
5706			for ( ; cur !== this; cur = cur.parentNode || this ) {
5707
5708				// Don't check non-elements (#13208)
5709				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
5710				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
5711					matchedHandlers = [];
5712					matchedSelectors = {};
5713					for ( i = 0; i < delegateCount; i++ ) {
5714						handleObj = handlers[ i ];
5715
5716						// Don't conflict with Object.prototype properties (#13203)
5717						sel = handleObj.selector + " ";
5718
5719						if ( matchedSelectors[ sel ] === undefined ) {
5720							matchedSelectors[ sel ] = handleObj.needsContext ?
5721								jQuery( sel, this ).index( cur ) > -1 :
5722								jQuery.find( sel, this, null, [ cur ] ).length;
5723						}
5724						if ( matchedSelectors[ sel ] ) {
5725							matchedHandlers.push( handleObj );
5726						}
5727					}
5728					if ( matchedHandlers.length ) {
5729						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
5730					}
5731				}
5732			}
5733		}
5734
5735		// Add the remaining (directly-bound) handlers
5736		cur = this;
5737		if ( delegateCount < handlers.length ) {
5738			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
5739		}
5740
5741		return handlerQueue;
5742	},
5743
5744	addProp: function( name, hook ) {
5745		Object.defineProperty( jQuery.Event.prototype, name, {
5746			enumerable: true,
5747			configurable: true,
5748
5749			get: isFunction( hook ) ?
5750				function() {
5751					if ( this.originalEvent ) {
5752						return hook( this.originalEvent );
5753					}
5754				} :
5755				function() {
5756					if ( this.originalEvent ) {
5757						return this.originalEvent[ name ];
5758					}
5759				},
5760
5761			set: function( value ) {
5762				Object.defineProperty( this, name, {
5763					enumerable: true,
5764					configurable: true,
5765					writable: true,
5766					value: value
5767				} );
5768			}
5769		} );
5770	},
5771
5772	fix: function( originalEvent ) {
5773		return originalEvent[ jQuery.expando ] ?
5774			originalEvent :
5775			new jQuery.Event( originalEvent );
5776	},
5777
5778	special: {
5779		load: {
5780
5781			// Prevent triggered image.load events from bubbling to window.load
5782			noBubble: true
5783		},
5784		click: {
5785
5786			// Utilize native event to ensure correct state for checkable inputs
5787			setup: function( data ) {
5788
5789				// For mutual compressibility with _default, replace `this` access with a local var.
5790				// `|| data` is dead code meant only to preserve the variable through minification.
5791				var el = this || data;
5792
5793				// Claim the first handler
5794				if ( rcheckableType.test( el.type ) &&
5795					el.click && nodeName( el, "input" ) ) {
5796
5797					// dataPriv.set( el, "click", ... )
5798					leverageNative( el, "click", returnTrue );
5799				}
5800
5801				// Return false to allow normal processing in the caller
5802				return false;
5803			},
5804			trigger: function( data ) {
5805
5806				// For mutual compressibility with _default, replace `this` access with a local var.
5807				// `|| data` is dead code meant only to preserve the variable through minification.
5808				var el = this || data;
5809
5810				// Force setup before triggering a click
5811				if ( rcheckableType.test( el.type ) &&
5812					el.click && nodeName( el, "input" ) ) {
5813
5814					leverageNative( el, "click" );
5815				}
5816
5817				// Return non-false to allow normal event-path propagation
5818				return true;
5819			},
5820
5821			// For cross-browser consistency, suppress native .click() on links
5822			// Also prevent it if we're currently inside a leveraged native-event stack
5823			_default: function( event ) {
5824				var target = event.target;
5825				return rcheckableType.test( target.type ) &&
5826					target.click && nodeName( target, "input" ) &&
5827					dataPriv.get( target, "click" ) ||
5828					nodeName( target, "a" );
5829			}
5830		},
5831
5832		beforeunload: {
5833			postDispatch: function( event ) {
5834
5835				// Support: Firefox 20+
5836				// Firefox doesn't alert if the returnValue field is not set.
5837				if ( event.result !== undefined && event.originalEvent ) {
5838					event.originalEvent.returnValue = event.result;
5839				}
5840			}
5841		}
5842	}
5843};
5844
5845// Ensure the presence of an event listener that handles manually-triggered
5846// synthetic events by interrupting progress until reinvoked in response to
5847// *native* events that it fires directly, ensuring that state changes have
5848// already occurred before other listeners are invoked.
5849function leverageNative( el, type, expectSync ) {
5850
5851	// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
5852	if ( !expectSync ) {
5853		if ( dataPriv.get( el, type ) === undefined ) {
5854			jQuery.event.add( el, type, returnTrue );
5855		}
5856		return;
5857	}
5858
5859	// Register the controller as a special universal handler for all event namespaces
5860	dataPriv.set( el, type, false );
5861	jQuery.event.add( el, type, {
5862		namespace: false,
5863		handler: function( event ) {
5864			var notAsync, result,
5865				saved = dataPriv.get( this, type );
5866
5867			if ( ( event.isTrigger & 1 ) && this[ type ] ) {
5868
5869				// Interrupt processing of the outer synthetic .trigger()ed event
5870				// Saved data should be false in such cases, but might be a leftover capture object
5871				// from an async native handler (gh-4350)
5872				if ( !saved.length ) {
5873
5874					// Store arguments for use when handling the inner native event
5875					// There will always be at least one argument (an event object), so this array
5876					// will not be confused with a leftover capture object.
5877					saved = slice.call( arguments );
5878					dataPriv.set( this, type, saved );
5879
5880					// Trigger the native event and capture its result
5881					// Support: IE <=9 - 11+
5882					// focus() and blur() are asynchronous
5883					notAsync = expectSync( this, type );
5884					this[ type ]();
5885					result = dataPriv.get( this, type );
5886					if ( saved !== result || notAsync ) {
5887						dataPriv.set( this, type, false );
5888					} else {
5889						result = {};
5890					}
5891					if ( saved !== result ) {
5892
5893						// Cancel the outer synthetic event
5894						event.stopImmediatePropagation();
5895						event.preventDefault();
5896
5897						// Support: Chrome 86+
5898						// In Chrome, if an element having a focusout handler is blurred by
5899						// clicking outside of it, it invokes the handler synchronously. If
5900						// that handler calls `.remove()` on the element, the data is cleared,
5901						// leaving `result` undefined. We need to guard against this.
5902						return result && result.value;
5903					}
5904
5905				// If this is an inner synthetic event for an event with a bubbling surrogate
5906				// (focus or blur), assume that the surrogate already propagated from triggering the
5907				// native event and prevent that from happening again here.
5908				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
5909				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
5910				// less bad than duplication.
5911				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
5912					event.stopPropagation();
5913				}
5914
5915			// If this is a native event triggered above, everything is now in order
5916			// Fire an inner synthetic event with the original arguments
5917			} else if ( saved.length ) {
5918
5919				// ...and capture the result
5920				dataPriv.set( this, type, {
5921					value: jQuery.event.trigger(
5922
5923						// Support: IE <=9 - 11+
5924						// Extend with the prototype to reset the above stopImmediatePropagation()
5925						jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
5926						saved.slice( 1 ),
5927						this
5928					)
5929				} );
5930
5931				// Abort handling of the native event
5932				event.stopImmediatePropagation();
5933			}
5934		}
5935	} );
5936}
5937
5938jQuery.removeEvent = function( elem, type, handle ) {
5939
5940	// This "if" is needed for plain objects
5941	if ( elem.removeEventListener ) {
5942		elem.removeEventListener( type, handle );
5943	}
5944};
5945
5946jQuery.Event = function( src, props ) {
5947
5948	// Allow instantiation without the 'new' keyword
5949	if ( !( this instanceof jQuery.Event ) ) {
5950		return new jQuery.Event( src, props );
5951	}
5952
5953	// Event object
5954	if ( src && src.type ) {
5955		this.originalEvent = src;
5956		this.type = src.type;
5957
5958		// Events bubbling up the document may have been marked as prevented
5959		// by a handler lower down the tree; reflect the correct value.
5960		this.isDefaultPrevented = src.defaultPrevented ||
5961				src.defaultPrevented === undefined &&
5962
5963				// Support: Android <=2.3 only
5964				src.returnValue === false ?
5965			returnTrue :
5966			returnFalse;
5967
5968		// Create target properties
5969		// Support: Safari <=6 - 7 only
5970		// Target should not be a text node (#504, #13143)
5971		this.target = ( src.target && src.target.nodeType === 3 ) ?
5972			src.target.parentNode :
5973			src.target;
5974
5975		this.currentTarget = src.currentTarget;
5976		this.relatedTarget = src.relatedTarget;
5977
5978	// Event type
5979	} else {
5980		this.type = src;
5981	}
5982
5983	// Put explicitly provided properties onto the event object
5984	if ( props ) {
5985		jQuery.extend( this, props );
5986	}
5987
5988	// Create a timestamp if incoming event doesn't have one
5989	this.timeStamp = src && src.timeStamp || Date.now();
5990
5991	// Mark it as fixed
5992	this[ jQuery.expando ] = true;
5993};
5994
5995// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
5996// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
5997jQuery.Event.prototype = {
5998	constructor: jQuery.Event,
5999	isDefaultPrevented: returnFalse,
6000	isPropagationStopped: returnFalse,
6001	isImmediatePropagationStopped: returnFalse,
6002	isSimulated: false,
6003
6004	preventDefault: function() {
6005		var e = this.originalEvent;
6006
6007		this.isDefaultPrevented = returnTrue;
6008
6009		if ( e && !this.isSimulated ) {
6010			e.preventDefault();
6011		}
6012	},
6013	stopPropagation: function() {
6014		var e = this.originalEvent;
6015
6016		this.isPropagationStopped = returnTrue;
6017
6018		if ( e && !this.isSimulated ) {
6019			e.stopPropagation();
6020		}
6021	},
6022	stopImmediatePropagation: function() {
6023		var e = this.originalEvent;
6024
6025		this.isImmediatePropagationStopped = returnTrue;
6026
6027		if ( e && !this.isSimulated ) {
6028			e.stopImmediatePropagation();
6029		}
6030
6031		this.stopPropagation();
6032	}
6033};
6034
6035// Includes all common event props including KeyEvent and MouseEvent specific props
6036jQuery.each( {
6037	altKey: true,
6038	bubbles: true,
6039	cancelable: true,
6040	changedTouches: true,
6041	ctrlKey: true,
6042	detail: true,
6043	eventPhase: true,
6044	metaKey: true,
6045	pageX: true,
6046	pageY: true,
6047	shiftKey: true,
6048	view: true,
6049	"char": true,
6050	code: true,
6051	charCode: true,
6052	key: true,
6053	keyCode: true,
6054	button: true,
6055	buttons: true,
6056	clientX: true,
6057	clientY: true,
6058	offsetX: true,
6059	offsetY: true,
6060	pointerId: true,
6061	pointerType: true,
6062	screenX: true,
6063	screenY: true,
6064	targetTouches: true,
6065	toElement: true,
6066	touches: true,
6067	which: true
6068}, jQuery.event.addProp );
6069
6070jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
6071	jQuery.event.special[ type ] = {
6072
6073		// Utilize native event if possible so blur/focus sequence is correct
6074		setup: function() {
6075
6076			// Claim the first handler
6077			// dataPriv.set( this, "focus", ... )
6078			// dataPriv.set( this, "blur", ... )
6079			leverageNative( this, type, expectSync );
6080
6081			// Return false to allow normal processing in the caller
6082			return false;
6083		},
6084		trigger: function() {
6085
6086			// Force setup before trigger
6087			leverageNative( this, type );
6088
6089			// Return non-false to allow normal event-path propagation
6090			return true;
6091		},
6092
6093		// Suppress native focus or blur as it's already being fired
6094		// in leverageNative.
6095		_default: function() {
6096			return true;
6097		},
6098
6099		delegateType: delegateType
6100	};
6101} );
6102
6103// Create mouseenter/leave events using mouseover/out and event-time checks
6104// so that event delegation works in jQuery.
6105// Do the same for pointerenter/pointerleave and pointerover/pointerout
6106//
6107// Support: Safari 7 only
6108// Safari sends mouseenter too often; see:
6109// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
6110// for the description of the bug (it existed in older Chrome versions as well).
6111jQuery.each( {
6112	mouseenter: "mouseover",
6113	mouseleave: "mouseout",
6114	pointerenter: "pointerover",
6115	pointerleave: "pointerout"
6116}, function( orig, fix ) {
6117	jQuery.event.special[ orig ] = {
6118		delegateType: fix,
6119		bindType: fix,
6120
6121		handle: function( event ) {
6122			var ret,
6123				target = this,
6124				related = event.relatedTarget,
6125				handleObj = event.handleObj;
6126
6127			// For mouseenter/leave call the handler if related is outside the target.
6128			// NB: No relatedTarget if the mouse left/entered the browser window
6129			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
6130				event.type = handleObj.origType;
6131				ret = handleObj.handler.apply( this, arguments );
6132				event.type = fix;
6133			}
6134			return ret;
6135		}
6136	};
6137} );
6138
6139jQuery.fn.extend( {
6140
6141	on: function( types, selector, data, fn ) {
6142		return on( this, types, selector, data, fn );
6143	},
6144	one: function( types, selector, data, fn ) {
6145		return on( this, types, selector, data, fn, 1 );
6146	},
6147	off: function( types, selector, fn ) {
6148		var handleObj, type;
6149		if ( types && types.preventDefault && types.handleObj ) {
6150
6151			// ( event )  dispatched jQuery.Event
6152			handleObj = types.handleObj;
6153			jQuery( types.delegateTarget ).off(
6154				handleObj.namespace ?
6155					handleObj.origType + "." + handleObj.namespace :
6156					handleObj.origType,
6157				handleObj.selector,
6158				handleObj.handler
6159			);
6160			return this;
6161		}
6162		if ( typeof types === "object" ) {
6163
6164			// ( types-object [, selector] )
6165			for ( type in types ) {
6166				this.off( type, selector, types[ type ] );
6167			}
6168			return this;
6169		}
6170		if ( selector === false || typeof selector === "function" ) {
6171
6172			// ( types [, fn] )
6173			fn = selector;
6174			selector = undefined;
6175		}
6176		if ( fn === false ) {
6177			fn = returnFalse;
6178		}
6179		return this.each( function() {
6180			jQuery.event.remove( this, types, fn, selector );
6181		} );
6182	}
6183} );
6184
6185
6186var
6187
6188	// Support: IE <=10 - 11, Edge 12 - 13 only
6189	// In IE/Edge using regex groups here causes severe slowdowns.
6190	// See https://connect.microsoft.com/IE/feedback/details/1736512/
6191	rnoInnerhtml = /<script|<style|<link/i,
6192
6193	// checked="checked" or checked
6194	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
6195	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
6196
6197// Prefer a tbody over its parent table for containing new rows
6198function manipulationTarget( elem, content ) {
6199	if ( nodeName( elem, "table" ) &&
6200		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
6201
6202		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
6203	}
6204
6205	return elem;
6206}
6207
6208// Replace/restore the type attribute of script elements for safe DOM manipulation
6209function disableScript( elem ) {
6210	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
6211	return elem;
6212}
6213function restoreScript( elem ) {
6214	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
6215		elem.type = elem.type.slice( 5 );
6216	} else {
6217		elem.removeAttribute( "type" );
6218	}
6219
6220	return elem;
6221}
6222
6223function cloneCopyEvent( src, dest ) {
6224	var i, l, type, pdataOld, udataOld, udataCur, events;
6225
6226	if ( dest.nodeType !== 1 ) {
6227		return;
6228	}
6229
6230	// 1. Copy private data: events, handlers, etc.
6231	if ( dataPriv.hasData( src ) ) {
6232		pdataOld = dataPriv.get( src );
6233		events = pdataOld.events;
6234
6235		if ( events ) {
6236			dataPriv.remove( dest, "handle events" );
6237
6238			for ( type in events ) {
6239				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
6240					jQuery.event.add( dest, type, events[ type ][ i ] );
6241				}
6242			}
6243		}
6244	}
6245
6246	// 2. Copy user data
6247	if ( dataUser.hasData( src ) ) {
6248		udataOld = dataUser.access( src );
6249		udataCur = jQuery.extend( {}, udataOld );
6250
6251		dataUser.set( dest, udataCur );
6252	}
6253}
6254
6255// Fix IE bugs, see support tests
6256function fixInput( src, dest ) {
6257	var nodeName = dest.nodeName.toLowerCase();
6258
6259	// Fails to persist the checked state of a cloned checkbox or radio button.
6260	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
6261		dest.checked = src.checked;
6262
6263	// Fails to return the selected option to the default selected state when cloning options
6264	} else if ( nodeName === "input" || nodeName === "textarea" ) {
6265		dest.defaultValue = src.defaultValue;
6266	}
6267}
6268
6269function domManip( collection, args, callback, ignored ) {
6270
6271	// Flatten any nested arrays
6272	args = flat( args );
6273
6274	var fragment, first, scripts, hasScripts, node, doc,
6275		i = 0,
6276		l = collection.length,
6277		iNoClone = l - 1,
6278		value = args[ 0 ],
6279		valueIsFunction = isFunction( value );
6280
6281	// We can't cloneNode fragments that contain checked, in WebKit
6282	if ( valueIsFunction ||
6283			( l > 1 && typeof value === "string" &&
6284				!support.checkClone && rchecked.test( value ) ) ) {
6285		return collection.each( function( index ) {
6286			var self = collection.eq( index );
6287			if ( valueIsFunction ) {
6288				args[ 0 ] = value.call( this, index, self.html() );
6289			}
6290			domManip( self, args, callback, ignored );
6291		} );
6292	}
6293
6294	if ( l ) {
6295		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
6296		first = fragment.firstChild;
6297
6298		if ( fragment.childNodes.length === 1 ) {
6299			fragment = first;
6300		}
6301
6302		// Require either new content or an interest in ignored elements to invoke the callback
6303		if ( first || ignored ) {
6304			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
6305			hasScripts = scripts.length;
6306
6307			// Use the original fragment for the last item
6308			// instead of the first because it can end up
6309			// being emptied incorrectly in certain situations (#8070).
6310			for ( ; i < l; i++ ) {
6311				node = fragment;
6312
6313				if ( i !== iNoClone ) {
6314					node = jQuery.clone( node, true, true );
6315
6316					// Keep references to cloned scripts for later restoration
6317					if ( hasScripts ) {
6318
6319						// Support: Android <=4.0 only, PhantomJS 1 only
6320						// push.apply(_, arraylike) throws on ancient WebKit
6321						jQuery.merge( scripts, getAll( node, "script" ) );
6322					}
6323				}
6324
6325				callback.call( collection[ i ], node, i );
6326			}
6327
6328			if ( hasScripts ) {
6329				doc = scripts[ scripts.length - 1 ].ownerDocument;
6330
6331				// Reenable scripts
6332				jQuery.map( scripts, restoreScript );
6333
6334				// Evaluate executable scripts on first document insertion
6335				for ( i = 0; i < hasScripts; i++ ) {
6336					node = scripts[ i ];
6337					if ( rscriptType.test( node.type || "" ) &&
6338						!dataPriv.access( node, "globalEval" ) &&
6339						jQuery.contains( doc, node ) ) {
6340
6341						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
6342
6343							// Optional AJAX dependency, but won't run scripts if not present
6344							if ( jQuery._evalUrl && !node.noModule ) {
6345								jQuery._evalUrl( node.src, {
6346									nonce: node.nonce || node.getAttribute( "nonce" )
6347								}, doc );
6348							}
6349						} else {
6350							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
6351						}
6352					}
6353				}
6354			}
6355		}
6356	}
6357
6358	return collection;
6359}
6360
6361function remove( elem, selector, keepData ) {
6362	var node,
6363		nodes = selector ? jQuery.filter( selector, elem ) : elem,
6364		i = 0;
6365
6366	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
6367		if ( !keepData && node.nodeType === 1 ) {
6368			jQuery.cleanData( getAll( node ) );
6369		}
6370
6371		if ( node.parentNode ) {
6372			if ( keepData && isAttached( node ) ) {
6373				setGlobalEval( getAll( node, "script" ) );
6374			}
6375			node.parentNode.removeChild( node );
6376		}
6377	}
6378
6379	return elem;
6380}
6381
6382jQuery.extend( {
6383	htmlPrefilter: function( html ) {
6384		return html;
6385	},
6386
6387	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
6388		var i, l, srcElements, destElements,
6389			clone = elem.cloneNode( true ),
6390			inPage = isAttached( elem );
6391
6392		// Fix IE cloning issues
6393		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
6394				!jQuery.isXMLDoc( elem ) ) {
6395
6396			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
6397			destElements = getAll( clone );
6398			srcElements = getAll( elem );
6399
6400			for ( i = 0, l = srcElements.length; i < l; i++ ) {
6401				fixInput( srcElements[ i ], destElements[ i ] );
6402			}
6403		}
6404
6405		// Copy the events from the original to the clone
6406		if ( dataAndEvents ) {
6407			if ( deepDataAndEvents ) {
6408				srcElements = srcElements || getAll( elem );
6409				destElements = destElements || getAll( clone );
6410
6411				for ( i = 0, l = srcElements.length; i < l; i++ ) {
6412					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
6413				}
6414			} else {
6415				cloneCopyEvent( elem, clone );
6416			}
6417		}
6418
6419		// Preserve script evaluation history
6420		destElements = getAll( clone, "script" );
6421		if ( destElements.length > 0 ) {
6422			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
6423		}
6424
6425		// Return the cloned set
6426		return clone;
6427	},
6428
6429	cleanData: function( elems ) {
6430		var data, elem, type,
6431			special = jQuery.event.special,
6432			i = 0;
6433
6434		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
6435			if ( acceptData( elem ) ) {
6436				if ( ( data = elem[ dataPriv.expando ] ) ) {
6437					if ( data.events ) {
6438						for ( type in data.events ) {
6439							if ( special[ type ] ) {
6440								jQuery.event.remove( elem, type );
6441
6442							// This is a shortcut to avoid jQuery.event.remove's overhead
6443							} else {
6444								jQuery.removeEvent( elem, type, data.handle );
6445							}
6446						}
6447					}
6448
6449					// Support: Chrome <=35 - 45+
6450					// Assign undefined instead of using delete, see Data#remove
6451					elem[ dataPriv.expando ] = undefined;
6452				}
6453				if ( elem[ dataUser.expando ] ) {
6454
6455					// Support: Chrome <=35 - 45+
6456					// Assign undefined instead of using delete, see Data#remove
6457					elem[ dataUser.expando ] = undefined;
6458				}
6459			}
6460		}
6461	}
6462} );
6463
6464jQuery.fn.extend( {
6465	detach: function( selector ) {
6466		return remove( this, selector, true );
6467	},
6468
6469	remove: function( selector ) {
6470		return remove( this, selector );
6471	},
6472
6473	text: function( value ) {
6474		return access( this, function( value ) {
6475			return value === undefined ?
6476				jQuery.text( this ) :
6477				this.empty().each( function() {
6478					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
6479						this.textContent = value;
6480					}
6481				} );
6482		}, null, value, arguments.length );
6483	},
6484
6485	append: function() {
6486		return domManip( this, arguments, function( elem ) {
6487			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
6488				var target = manipulationTarget( this, elem );
6489				target.appendChild( elem );
6490			}
6491		} );
6492	},
6493
6494	prepend: function() {
6495		return domManip( this, arguments, function( elem ) {
6496			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
6497				var target = manipulationTarget( this, elem );
6498				target.insertBefore( elem, target.firstChild );
6499			}
6500		} );
6501	},
6502
6503	before: function() {
6504		return domManip( this, arguments, function( elem ) {
6505			if ( this.parentNode ) {
6506				this.parentNode.insertBefore( elem, this );
6507			}
6508		} );
6509	},
6510
6511	after: function() {
6512		return domManip( this, arguments, function( elem ) {
6513			if ( this.parentNode ) {
6514				this.parentNode.insertBefore( elem, this.nextSibling );
6515			}
6516		} );
6517	},
6518
6519	empty: function() {
6520		var elem,
6521			i = 0;
6522
6523		for ( ; ( elem = this[ i ] ) != null; i++ ) {
6524			if ( elem.nodeType === 1 ) {
6525
6526				// Prevent memory leaks
6527				jQuery.cleanData( getAll( elem, false ) );
6528
6529				// Remove any remaining nodes
6530				elem.textContent = "";
6531			}
6532		}
6533
6534		return this;
6535	},
6536
6537	clone: function( dataAndEvents, deepDataAndEvents ) {
6538		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
6539		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
6540
6541		return this.map( function() {
6542			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
6543		} );
6544	},
6545
6546	html: function( value ) {
6547		return access( this, function( value ) {
6548			var elem = this[ 0 ] || {},
6549				i = 0,
6550				l = this.length;
6551
6552			if ( value === undefined && elem.nodeType === 1 ) {
6553				return elem.innerHTML;
6554			}
6555
6556			// See if we can take a shortcut and just use innerHTML
6557			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
6558				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
6559
6560				value = jQuery.htmlPrefilter( value );
6561
6562				try {
6563					for ( ; i < l; i++ ) {
6564						elem = this[ i ] || {};
6565
6566						// Remove element nodes and prevent memory leaks
6567						if ( elem.nodeType === 1 ) {
6568							jQuery.cleanData( getAll( elem, false ) );
6569							elem.innerHTML = value;
6570						}
6571					}
6572
6573					elem = 0;
6574
6575				// If using innerHTML throws an exception, use the fallback method
6576				} catch ( e ) {}
6577			}
6578
6579			if ( elem ) {
6580				this.empty().append( value );
6581			}
6582		}, null, value, arguments.length );
6583	},
6584
6585	replaceWith: function() {
6586		var ignored = [];
6587
6588		// Make the changes, replacing each non-ignored context element with the new content
6589		return domManip( this, arguments, function( elem ) {
6590			var parent = this.parentNode;
6591
6592			if ( jQuery.inArray( this, ignored ) < 0 ) {
6593				jQuery.cleanData( getAll( this ) );
6594				if ( parent ) {
6595					parent.replaceChild( elem, this );
6596				}
6597			}
6598
6599		// Force callback invocation
6600		}, ignored );
6601	}
6602} );
6603
6604jQuery.each( {
6605	appendTo: "append",
6606	prependTo: "prepend",
6607	insertBefore: "before",
6608	insertAfter: "after",
6609	replaceAll: "replaceWith"
6610}, function( name, original ) {
6611	jQuery.fn[ name ] = function( selector ) {
6612		var elems,
6613			ret = [],
6614			insert = jQuery( selector ),
6615			last = insert.length - 1,
6616			i = 0;
6617
6618		for ( ; i <= last; i++ ) {
6619			elems = i === last ? this : this.clone( true );
6620			jQuery( insert[ i ] )[ original ]( elems );
6621
6622			// Support: Android <=4.0 only, PhantomJS 1 only
6623			// .get() because push.apply(_, arraylike) throws on ancient WebKit
6624			push.apply( ret, elems.get() );
6625		}
6626
6627		return this.pushStack( ret );
6628	};
6629} );
6630var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
6631
6632var getStyles = function( elem ) {
6633
6634		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
6635		// IE throws on elements created in popups
6636		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
6637		var view = elem.ownerDocument.defaultView;
6638
6639		if ( !view || !view.opener ) {
6640			view = window;
6641		}
6642
6643		return view.getComputedStyle( elem );
6644	};
6645
6646var swap = function( elem, options, callback ) {
6647	var ret, name,
6648		old = {};
6649
6650	// Remember the old values, and insert the new ones
6651	for ( name in options ) {
6652		old[ name ] = elem.style[ name ];
6653		elem.style[ name ] = options[ name ];
6654	}
6655
6656	ret = callback.call( elem );
6657
6658	// Revert the old values
6659	for ( name in options ) {
6660		elem.style[ name ] = old[ name ];
6661	}
6662
6663	return ret;
6664};
6665
6666
6667var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
6668
6669
6670
6671( function() {
6672
6673	// Executing both pixelPosition & boxSizingReliable tests require only one layout
6674	// so they're executed at the same time to save the second computation.
6675	function computeStyleTests() {
6676
6677		// This is a singleton, we need to execute it only once
6678		if ( !div ) {
6679			return;
6680		}
6681
6682		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
6683			"margin-top:1px;padding:0;border:0";
6684		div.style.cssText =
6685			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
6686			"margin:auto;border:1px;padding:1px;" +
6687			"width:60%;top:1%";
6688		documentElement.appendChild( container ).appendChild( div );
6689
6690		var divStyle = window.getComputedStyle( div );
6691		pixelPositionVal = divStyle.top !== "1%";
6692
6693		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
6694		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
6695
6696		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
6697		// Some styles come back with percentage values, even though they shouldn't
6698		div.style.right = "60%";
6699		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
6700
6701		// Support: IE 9 - 11 only
6702		// Detect misreporting of content dimensions for box-sizing:border-box elements
6703		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
6704
6705		// Support: IE 9 only
6706		// Detect overflow:scroll screwiness (gh-3699)
6707		// Support: Chrome <=64
6708		// Don't get tricked when zoom affects offsetWidth (gh-4029)
6709		div.style.position = "absolute";
6710		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
6711
6712		documentElement.removeChild( container );
6713
6714		// Nullify the div so it wouldn't be stored in the memory and
6715		// it will also be a sign that checks already performed
6716		div = null;
6717	}
6718
6719	function roundPixelMeasures( measure ) {
6720		return Math.round( parseFloat( measure ) );
6721	}
6722
6723	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
6724		reliableTrDimensionsVal, reliableMarginLeftVal,
6725		container = document.createElement( "div" ),
6726		div = document.createElement( "div" );
6727
6728	// Finish early in limited (non-browser) environments
6729	if ( !div.style ) {
6730		return;
6731	}
6732
6733	// Support: IE <=9 - 11 only
6734	// Style of cloned element affects source element cloned (#8908)
6735	div.style.backgroundClip = "content-box";
6736	div.cloneNode( true ).style.backgroundClip = "";
6737	support.clearCloneStyle = div.style.backgroundClip === "content-box";
6738
6739	jQuery.extend( support, {
6740		boxSizingReliable: function() {
6741			computeStyleTests();
6742			return boxSizingReliableVal;
6743		},
6744		pixelBoxStyles: function() {
6745			computeStyleTests();
6746			return pixelBoxStylesVal;
6747		},
6748		pixelPosition: function() {
6749			computeStyleTests();
6750			return pixelPositionVal;
6751		},
6752		reliableMarginLeft: function() {
6753			computeStyleTests();
6754			return reliableMarginLeftVal;
6755		},
6756		scrollboxSize: function() {
6757			computeStyleTests();
6758			return scrollboxSizeVal;
6759		},
6760
6761		// Support: IE 9 - 11+, Edge 15 - 18+
6762		// IE/Edge misreport `getComputedStyle` of table rows with width/height
6763		// set in CSS while `offset*` properties report correct values.
6764		// Behavior in IE 9 is more subtle than in newer versions & it passes
6765		// some versions of this test; make sure not to make it pass there!
6766		//
6767		// Support: Firefox 70+
6768		// Only Firefox includes border widths
6769		// in computed dimensions. (gh-4529)
6770		reliableTrDimensions: function() {
6771			var table, tr, trChild, trStyle;
6772			if ( reliableTrDimensionsVal == null ) {
6773				table = document.createElement( "table" );
6774				tr = document.createElement( "tr" );
6775				trChild = document.createElement( "div" );
6776
6777				table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
6778				tr.style.cssText = "border:1px solid";
6779
6780				// Support: Chrome 86+
6781				// Height set through cssText does not get applied.
6782				// Computed height then comes back as 0.
6783				tr.style.height = "1px";
6784				trChild.style.height = "9px";
6785
6786				// Support: Android 8 Chrome 86+
6787				// In our bodyBackground.html iframe,
6788				// display for all div elements is set to "inline",
6789				// which causes a problem only in Android 8 Chrome 86.
6790				// Ensuring the div is display: block
6791				// gets around this issue.
6792				trChild.style.display = "block";
6793
6794				documentElement
6795					.appendChild( table )
6796					.appendChild( tr )
6797					.appendChild( trChild );
6798
6799				trStyle = window.getComputedStyle( tr );
6800				reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
6801					parseInt( trStyle.borderTopWidth, 10 ) +
6802					parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
6803
6804				documentElement.removeChild( table );
6805			}
6806			return reliableTrDimensionsVal;
6807		}
6808	} );
6809} )();
6810
6811
6812function curCSS( elem, name, computed ) {
6813	var width, minWidth, maxWidth, ret,
6814
6815		// Support: Firefox 51+
6816		// Retrieving style before computed somehow
6817		// fixes an issue with getting wrong values
6818		// on detached elements
6819		style = elem.style;
6820
6821	computed = computed || getStyles( elem );
6822
6823	// getPropertyValue is needed for:
6824	//   .css('filter') (IE 9 only, #12537)
6825	//   .css('--customProperty) (#3144)
6826	if ( computed ) {
6827		ret = computed.getPropertyValue( name ) || computed[ name ];
6828
6829		if ( ret === "" && !isAttached( elem ) ) {
6830			ret = jQuery.style( elem, name );
6831		}
6832
6833		// A tribute to the "awesome hack by Dean Edwards"
6834		// Android Browser returns percentage for some values,
6835		// but width seems to be reliably pixels.
6836		// This is against the CSSOM draft spec:
6837		// https://drafts.csswg.org/cssom/#resolved-values
6838		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
6839
6840			// Remember the original values
6841			width = style.width;
6842			minWidth = style.minWidth;
6843			maxWidth = style.maxWidth;
6844
6845			// Put in the new values to get a computed value out
6846			style.minWidth = style.maxWidth = style.width = ret;
6847			ret = computed.width;
6848
6849			// Revert the changed values
6850			style.width = width;
6851			style.minWidth = minWidth;
6852			style.maxWidth = maxWidth;
6853		}
6854	}
6855
6856	return ret !== undefined ?
6857
6858		// Support: IE <=9 - 11 only
6859		// IE returns zIndex value as an integer.
6860		ret + "" :
6861		ret;
6862}
6863
6864
6865function addGetHookIf( conditionFn, hookFn ) {
6866
6867	// Define the hook, we'll check on the first run if it's really needed.
6868	return {
6869		get: function() {
6870			if ( conditionFn() ) {
6871
6872				// Hook not needed (or it's not possible to use it due
6873				// to missing dependency), remove it.
6874				delete this.get;
6875				return;
6876			}
6877
6878			// Hook needed; redefine it so that the support test is not executed again.
6879			return ( this.get = hookFn ).apply( this, arguments );
6880		}
6881	};
6882}
6883
6884
6885var cssPrefixes = [ "Webkit", "Moz", "ms" ],
6886	emptyStyle = document.createElement( "div" ).style,
6887	vendorProps = {};
6888
6889// Return a vendor-prefixed property or undefined
6890function vendorPropName( name ) {
6891
6892	// Check for vendor prefixed names
6893	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
6894		i = cssPrefixes.length;
6895
6896	while ( i-- ) {
6897		name = cssPrefixes[ i ] + capName;
6898		if ( name in emptyStyle ) {
6899			return name;
6900		}
6901	}
6902}
6903
6904// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
6905function finalPropName( name ) {
6906	var final = jQuery.cssProps[ name ] || vendorProps[ name ];
6907
6908	if ( final ) {
6909		return final;
6910	}
6911	if ( name in emptyStyle ) {
6912		return name;
6913	}
6914	return vendorProps[ name ] = vendorPropName( name ) || name;
6915}
6916
6917
6918var
6919
6920	// Swappable if display is none or starts with table
6921	// except "table", "table-cell", or "table-caption"
6922	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
6923	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
6924	rcustomProp = /^--/,
6925	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
6926	cssNormalTransform = {
6927		letterSpacing: "0",
6928		fontWeight: "400"
6929	};
6930
6931function setPositiveNumber( _elem, value, subtract ) {
6932
6933	// Any relative (+/-) values have already been
6934	// normalized at this point
6935	var matches = rcssNum.exec( value );
6936	return matches ?
6937
6938		// Guard against undefined "subtract", e.g., when used as in cssHooks
6939		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
6940		value;
6941}
6942
6943function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
6944	var i = dimension === "width" ? 1 : 0,
6945		extra = 0,
6946		delta = 0;
6947
6948	// Adjustment may not be necessary
6949	if ( box === ( isBorderBox ? "border" : "content" ) ) {
6950		return 0;
6951	}
6952
6953	for ( ; i < 4; i += 2 ) {
6954
6955		// Both box models exclude margin
6956		if ( box === "margin" ) {
6957			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
6958		}
6959
6960		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
6961		if ( !isBorderBox ) {
6962
6963			// Add padding
6964			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
6965
6966			// For "border" or "margin", add border
6967			if ( box !== "padding" ) {
6968				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6969
6970			// But still keep track of it otherwise
6971			} else {
6972				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6973			}
6974
6975		// If we get here with a border-box (content + padding + border), we're seeking "content" or
6976		// "padding" or "margin"
6977		} else {
6978
6979			// For "content", subtract padding
6980			if ( box === "content" ) {
6981				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
6982			}
6983
6984			// For "content" or "padding", subtract border
6985			if ( box !== "margin" ) {
6986				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6987			}
6988		}
6989	}
6990
6991	// Account for positive content-box scroll gutter when requested by providing computedVal
6992	if ( !isBorderBox && computedVal >= 0 ) {
6993
6994		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
6995		// Assuming integer scroll gutter, subtract the rest and round down
6996		delta += Math.max( 0, Math.ceil(
6997			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6998			computedVal -
6999			delta -
7000			extra -
7001			0.5
7002
7003		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
7004		// Use an explicit zero to avoid NaN (gh-3964)
7005		) ) || 0;
7006	}
7007
7008	return delta;
7009}
7010
7011function getWidthOrHeight( elem, dimension, extra ) {
7012
7013	// Start with computed style
7014	var styles = getStyles( elem ),
7015
7016		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
7017		// Fake content-box until we know it's needed to know the true value.
7018		boxSizingNeeded = !support.boxSizingReliable() || extra,
7019		isBorderBox = boxSizingNeeded &&
7020			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
7021		valueIsBorderBox = isBorderBox,
7022
7023		val = curCSS( elem, dimension, styles ),
7024		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
7025
7026	// Support: Firefox <=54
7027	// Return a confounding non-pixel value or feign ignorance, as appropriate.
7028	if ( rnumnonpx.test( val ) ) {
7029		if ( !extra ) {
7030			return val;
7031		}
7032		val = "auto";
7033	}
7034
7035
7036	// Support: IE 9 - 11 only
7037	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
7038	// In those cases, the computed value can be trusted to be border-box.
7039	if ( ( !support.boxSizingReliable() && isBorderBox ||
7040
7041		// Support: IE 10 - 11+, Edge 15 - 18+
7042		// IE/Edge misreport `getComputedStyle` of table rows with width/height
7043		// set in CSS while `offset*` properties report correct values.
7044		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
7045		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
7046
7047		// Fall back to offsetWidth/offsetHeight when value is "auto"
7048		// This happens for inline elements with no explicit setting (gh-3571)
7049		val === "auto" ||
7050
7051		// Support: Android <=4.1 - 4.3 only
7052		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
7053		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
7054
7055		// Make sure the element is visible & connected
7056		elem.getClientRects().length ) {
7057
7058		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
7059
7060		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
7061		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
7062		// retrieved value as a content box dimension.
7063		valueIsBorderBox = offsetProp in elem;
7064		if ( valueIsBorderBox ) {
7065			val = elem[ offsetProp ];
7066		}
7067	}
7068
7069	// Normalize "" and auto
7070	val = parseFloat( val ) || 0;
7071
7072	// Adjust for the element's box model
7073	return ( val +
7074		boxModelAdjustment(
7075			elem,
7076			dimension,
7077			extra || ( isBorderBox ? "border" : "content" ),
7078			valueIsBorderBox,
7079			styles,
7080
7081			// Provide the current computed size to request scroll gutter calculation (gh-3589)
7082			val
7083		)
7084	) + "px";
7085}
7086
7087jQuery.extend( {
7088
7089	// Add in style property hooks for overriding the default
7090	// behavior of getting and setting a style property
7091	cssHooks: {
7092		opacity: {
7093			get: function( elem, computed ) {
7094				if ( computed ) {
7095
7096					// We should always get a number back from opacity
7097					var ret = curCSS( elem, "opacity" );
7098					return ret === "" ? "1" : ret;
7099				}
7100			}
7101		}
7102	},
7103
7104	// Don't automatically add "px" to these possibly-unitless properties
7105	cssNumber: {
7106		"animationIterationCount": true,
7107		"columnCount": true,
7108		"fillOpacity": true,
7109		"flexGrow": true,
7110		"flexShrink": true,
7111		"fontWeight": true,
7112		"gridArea": true,
7113		"gridColumn": true,
7114		"gridColumnEnd": true,
7115		"gridColumnStart": true,
7116		"gridRow": true,
7117		"gridRowEnd": true,
7118		"gridRowStart": true,
7119		"lineHeight": true,
7120		"opacity": true,
7121		"order": true,
7122		"orphans": true,
7123		"widows": true,
7124		"zIndex": true,
7125		"zoom": true
7126	},
7127
7128	// Add in properties whose names you wish to fix before
7129	// setting or getting the value
7130	cssProps: {},
7131
7132	// Get and set the style property on a DOM Node
7133	style: function( elem, name, value, extra ) {
7134
7135		// Don't set styles on text and comment nodes
7136		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
7137			return;
7138		}
7139
7140		// Make sure that we're working with the right name
7141		var ret, type, hooks,
7142			origName = camelCase( name ),
7143			isCustomProp = rcustomProp.test( name ),
7144			style = elem.style;
7145
7146		// Make sure that we're working with the right name. We don't
7147		// want to query the value if it is a CSS custom property
7148		// since they are user-defined.
7149		if ( !isCustomProp ) {
7150			name = finalPropName( origName );
7151		}
7152
7153		// Gets hook for the prefixed version, then unprefixed version
7154		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
7155
7156		// Check if we're setting a value
7157		if ( value !== undefined ) {
7158			type = typeof value;
7159
7160			// Convert "+=" or "-=" to relative numbers (#7345)
7161			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
7162				value = adjustCSS( elem, name, ret );
7163
7164				// Fixes bug #9237
7165				type = "number";
7166			}
7167
7168			// Make sure that null and NaN values aren't set (#7116)
7169			if ( value == null || value !== value ) {
7170				return;
7171			}
7172
7173			// If a number was passed in, add the unit (except for certain CSS properties)
7174			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
7175			// "px" to a few hardcoded values.
7176			if ( type === "number" && !isCustomProp ) {
7177				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
7178			}
7179
7180			// background-* props affect original clone's values
7181			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
7182				style[ name ] = "inherit";
7183			}
7184
7185			// If a hook was provided, use that value, otherwise just set the specified value
vendor: 25,692 bytes, lines 7186-8182
7186			if ( !hooks || !( "set" in hooks ) ||
7187				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
7188
7189				if ( isCustomProp ) {
7190					style.setProperty( name, value );
7191				} else {
7192					style[ name ] = value;
7193				}
7194			}
7195
7196		} else {
7197
7198			// If a hook was provided get the non-computed value from there
7199			if ( hooks && "get" in hooks &&
7200				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
7201
7202				return ret;
7203			}
7204
7205			// Otherwise just get the value from the style object
7206			return style[ name ];
7207		}
7208	},
7209
7210	css: function( elem, name, extra, styles ) {
7211		var val, num, hooks,
7212			origName = camelCase( name ),
7213			isCustomProp = rcustomProp.test( name );
7214
7215		// Make sure that we're working with the right name. We don't
7216		// want to modify the value if it is a CSS custom property
7217		// since they are user-defined.
7218		if ( !isCustomProp ) {
7219			name = finalPropName( origName );
7220		}
7221
7222		// Try prefixed name followed by the unprefixed name
7223		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
7224
7225		// If a hook was provided get the computed value from there
7226		if ( hooks && "get" in hooks ) {
7227			val = hooks.get( elem, true, extra );
7228		}
7229
7230		// Otherwise, if a way to get the computed value exists, use that
7231		if ( val === undefined ) {
7232			val = curCSS( elem, name, styles );
7233		}
7234
7235		// Convert "normal" to computed value
7236		if ( val === "normal" && name in cssNormalTransform ) {
7237			val = cssNormalTransform[ name ];
7238		}
7239
7240		// Make numeric if forced or a qualifier was provided and val looks numeric
7241		if ( extra === "" || extra ) {
7242			num = parseFloat( val );
7243			return extra === true || isFinite( num ) ? num || 0 : val;
7244		}
7245
7246		return val;
7247	}
7248} );
7249
7250jQuery.each( [ "height", "width" ], function( _i, dimension ) {
7251	jQuery.cssHooks[ dimension ] = {
7252		get: function( elem, computed, extra ) {
7253			if ( computed ) {
7254
7255				// Certain elements can have dimension info if we invisibly show them
7256				// but it must have a current display style that would benefit
7257				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
7258
7259					// Support: Safari 8+
7260					// Table columns in Safari have non-zero offsetWidth & zero
7261					// getBoundingClientRect().width unless display is changed.
7262					// Support: IE <=11 only
7263					// Running getBoundingClientRect on a disconnected node
7264					// in IE throws an error.
7265					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
7266					swap( elem, cssShow, function() {
7267						return getWidthOrHeight( elem, dimension, extra );
7268					} ) :
7269					getWidthOrHeight( elem, dimension, extra );
7270			}
7271		},
7272
7273		set: function( elem, value, extra ) {
7274			var matches,
7275				styles = getStyles( elem ),
7276
7277				// Only read styles.position if the test has a chance to fail
7278				// to avoid forcing a reflow.
7279				scrollboxSizeBuggy = !support.scrollboxSize() &&
7280					styles.position === "absolute",
7281
7282				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
7283				boxSizingNeeded = scrollboxSizeBuggy || extra,
7284				isBorderBox = boxSizingNeeded &&
7285					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
7286				subtract = extra ?
7287					boxModelAdjustment(
7288						elem,
7289						dimension,
7290						extra,
7291						isBorderBox,
7292						styles
7293					) :
7294					0;
7295
7296			// Account for unreliable border-box dimensions by comparing offset* to computed and
7297			// faking a content-box to get border and padding (gh-3699)
7298			if ( isBorderBox && scrollboxSizeBuggy ) {
7299				subtract -= Math.ceil(
7300					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
7301					parseFloat( styles[ dimension ] ) -
7302					boxModelAdjustment( elem, dimension, "border", false, styles ) -
7303					0.5
7304				);
7305			}
7306
7307			// Convert to pixels if value adjustment is needed
7308			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
7309				( matches[ 3 ] || "px" ) !== "px" ) {
7310
7311				elem.style[ dimension ] = value;
7312				value = jQuery.css( elem, dimension );
7313			}
7314
7315			return setPositiveNumber( elem, value, subtract );
7316		}
7317	};
7318} );
7319
7320jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
7321	function( elem, computed ) {
7322		if ( computed ) {
7323			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
7324				elem.getBoundingClientRect().left -
7325					swap( elem, { marginLeft: 0 }, function() {
7326						return elem.getBoundingClientRect().left;
7327					} )
7328			) + "px";
7329		}
7330	}
7331);
7332
7333// These hooks are used by animate to expand properties
7334jQuery.each( {
7335	margin: "",
7336	padding: "",
7337	border: "Width"
7338}, function( prefix, suffix ) {
7339	jQuery.cssHooks[ prefix + suffix ] = {
7340		expand: function( value ) {
7341			var i = 0,
7342				expanded = {},
7343
7344				// Assumes a single number if not a string
7345				parts = typeof value === "string" ? value.split( " " ) : [ value ];
7346
7347			for ( ; i < 4; i++ ) {
7348				expanded[ prefix + cssExpand[ i ] + suffix ] =
7349					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
7350			}
7351
7352			return expanded;
7353		}
7354	};
7355
7356	if ( prefix !== "margin" ) {
7357		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
7358	}
7359} );
7360
7361jQuery.fn.extend( {
7362	css: function( name, value ) {
7363		return access( this, function( elem, name, value ) {
7364			var styles, len,
7365				map = {},
7366				i = 0;
7367
7368			if ( Array.isArray( name ) ) {
7369				styles = getStyles( elem );
7370				len = name.length;
7371
7372				for ( ; i < len; i++ ) {
7373					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
7374				}
7375
7376				return map;
7377			}
7378
7379			return value !== undefined ?
7380				jQuery.style( elem, name, value ) :
7381				jQuery.css( elem, name );
7382		}, name, value, arguments.length > 1 );
7383	}
7384} );
7385
7386
7387function Tween( elem, options, prop, end, easing ) {
7388	return new Tween.prototype.init( elem, options, prop, end, easing );
7389}
7390jQuery.Tween = Tween;
7391
7392Tween.prototype = {
7393	constructor: Tween,
7394	init: function( elem, options, prop, end, easing, unit ) {
7395		this.elem = elem;
7396		this.prop = prop;
7397		this.easing = easing || jQuery.easing._default;
7398		this.options = options;
7399		this.start = this.now = this.cur();
7400		this.end = end;
7401		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
7402	},
7403	cur: function() {
7404		var hooks = Tween.propHooks[ this.prop ];
7405
7406		return hooks && hooks.get ?
7407			hooks.get( this ) :
7408			Tween.propHooks._default.get( this );
7409	},
7410	run: function( percent ) {
7411		var eased,
7412			hooks = Tween.propHooks[ this.prop ];
7413
7414		if ( this.options.duration ) {
7415			this.pos = eased = jQuery.easing[ this.easing ](
7416				percent, this.options.duration * percent, 0, 1, this.options.duration
7417			);
7418		} else {
7419			this.pos = eased = percent;
7420		}
7421		this.now = ( this.end - this.start ) * eased + this.start;
7422
7423		if ( this.options.step ) {
7424			this.options.step.call( this.elem, this.now, this );
7425		}
7426
7427		if ( hooks && hooks.set ) {
7428			hooks.set( this );
7429		} else {
7430			Tween.propHooks._default.set( this );
7431		}
7432		return this;
7433	}
7434};
7435
7436Tween.prototype.init.prototype = Tween.prototype;
7437
7438Tween.propHooks = {
7439	_default: {
7440		get: function( tween ) {
7441			var result;
7442
7443			// Use a property on the element directly when it is not a DOM element,
7444			// or when there is no matching style property that exists.
7445			if ( tween.elem.nodeType !== 1 ||
7446				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
7447				return tween.elem[ tween.prop ];
7448			}
7449
7450			// Passing an empty string as a 3rd parameter to .css will automatically
7451			// attempt a parseFloat and fallback to a string if the parse fails.
7452			// Simple values such as "10px" are parsed to Float;
7453			// complex values such as "rotate(1rad)" are returned as-is.
7454			result = jQuery.css( tween.elem, tween.prop, "" );
7455
7456			// Empty strings, null, undefined and "auto" are converted to 0.
7457			return !result || result === "auto" ? 0 : result;
7458		},
7459		set: function( tween ) {
7460
7461			// Use step hook for back compat.
7462			// Use cssHook if its there.
7463			// Use .style if available and use plain properties where available.
7464			if ( jQuery.fx.step[ tween.prop ] ) {
7465				jQuery.fx.step[ tween.prop ]( tween );
7466			} else if ( tween.elem.nodeType === 1 && (
7467				jQuery.cssHooks[ tween.prop ] ||
7468					tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
7469				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
7470			} else {
7471				tween.elem[ tween.prop ] = tween.now;
7472			}
7473		}
7474	}
7475};
7476
7477// Support: IE <=9 only
7478// Panic based approach to setting things on disconnected nodes
7479Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
7480	set: function( tween ) {
7481		if ( tween.elem.nodeType && tween.elem.parentNode ) {
7482			tween.elem[ tween.prop ] = tween.now;
7483		}
7484	}
7485};
7486
7487jQuery.easing = {
7488	linear: function( p ) {
7489		return p;
7490	},
7491	swing: function( p ) {
7492		return 0.5 - Math.cos( p * Math.PI ) / 2;
7493	},
7494	_default: "swing"
7495};
7496
7497jQuery.fx = Tween.prototype.init;
7498
7499// Back compat <1.8 extension point
7500jQuery.fx.step = {};
7501
7502
7503
7504
7505var
7506	fxNow, inProgress,
7507	rfxtypes = /^(?:toggle|show|hide)$/,
7508	rrun = /queueHooks$/;
7509
7510function schedule() {
7511	if ( inProgress ) {
7512		if ( document.hidden === false && window.requestAnimationFrame ) {
7513			window.requestAnimationFrame( schedule );
7514		} else {
7515			window.setTimeout( schedule, jQuery.fx.interval );
7516		}
7517
7518		jQuery.fx.tick();
7519	}
7520}
7521
7522// Animations created synchronously will run synchronously
7523function createFxNow() {
7524	window.setTimeout( function() {
7525		fxNow = undefined;
7526	} );
7527	return ( fxNow = Date.now() );
7528}
7529
7530// Generate parameters to create a standard animation
7531function genFx( type, includeWidth ) {
7532	var which,
7533		i = 0,
7534		attrs = { height: type };
7535
7536	// If we include width, step value is 1 to do all cssExpand values,
7537	// otherwise step value is 2 to skip over Left and Right
7538	includeWidth = includeWidth ? 1 : 0;
7539	for ( ; i < 4; i += 2 - includeWidth ) {
7540		which = cssExpand[ i ];
7541		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
7542	}
7543
7544	if ( includeWidth ) {
7545		attrs.opacity = attrs.width = type;
7546	}
7547
7548	return attrs;
7549}
7550
7551function createTween( value, prop, animation ) {
7552	var tween,
7553		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
7554		index = 0,
7555		length = collection.length;
7556	for ( ; index < length; index++ ) {
7557		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
7558
7559			// We're done with this property
7560			return tween;
7561		}
7562	}
7563}
7564
7565function defaultPrefilter( elem, props, opts ) {
7566	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
7567		isBox = "width" in props || "height" in props,
7568		anim = this,
7569		orig = {},
7570		style = elem.style,
7571		hidden = elem.nodeType && isHiddenWithinTree( elem ),
7572		dataShow = dataPriv.get( elem, "fxshow" );
7573
7574	// Queue-skipping animations hijack the fx hooks
7575	if ( !opts.queue ) {
7576		hooks = jQuery._queueHooks( elem, "fx" );
7577		if ( hooks.unqueued == null ) {
7578			hooks.unqueued = 0;
7579			oldfire = hooks.empty.fire;
7580			hooks.empty.fire = function() {
7581				if ( !hooks.unqueued ) {
7582					oldfire();
7583				}
7584			};
7585		}
7586		hooks.unqueued++;
7587
7588		anim.always( function() {
7589
7590			// Ensure the complete handler is called before this completes
7591			anim.always( function() {
7592				hooks.unqueued--;
7593				if ( !jQuery.queue( elem, "fx" ).length ) {
7594					hooks.empty.fire();
7595				}
7596			} );
7597		} );
7598	}
7599
7600	// Detect show/hide animations
7601	for ( prop in props ) {
7602		value = props[ prop ];
7603		if ( rfxtypes.test( value ) ) {
7604			delete props[ prop ];
7605			toggle = toggle || value === "toggle";
7606			if ( value === ( hidden ? "hide" : "show" ) ) {
7607
7608				// Pretend to be hidden if this is a "show" and
7609				// there is still data from a stopped show/hide
7610				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
7611					hidden = true;
7612
7613				// Ignore all other no-op show/hide data
7614				} else {
7615					continue;
7616				}
7617			}
7618			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
7619		}
7620	}
7621
7622	// Bail out if this is a no-op like .hide().hide()
7623	propTween = !jQuery.isEmptyObject( props );
7624	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
7625		return;
7626	}
7627
7628	// Restrict "overflow" and "display" styles during box animations
7629	if ( isBox && elem.nodeType === 1 ) {
7630
7631		// Support: IE <=9 - 11, Edge 12 - 15
7632		// Record all 3 overflow attributes because IE does not infer the shorthand
7633		// from identically-valued overflowX and overflowY and Edge just mirrors
7634		// the overflowX value there.
7635		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
7636
7637		// Identify a display type, preferring old show/hide data over the CSS cascade
7638		restoreDisplay = dataShow && dataShow.display;
7639		if ( restoreDisplay == null ) {
7640			restoreDisplay = dataPriv.get( elem, "display" );
7641		}
7642		display = jQuery.css( elem, "display" );
7643		if ( display === "none" ) {
7644			if ( restoreDisplay ) {
7645				display = restoreDisplay;
7646			} else {
7647
7648				// Get nonempty value(s) by temporarily forcing visibility
7649				showHide( [ elem ], true );
7650				restoreDisplay = elem.style.display || restoreDisplay;
7651				display = jQuery.css( elem, "display" );
7652				showHide( [ elem ] );
7653			}
7654		}
7655
7656		// Animate inline elements as inline-block
7657		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
7658			if ( jQuery.css( elem, "float" ) === "none" ) {
7659
7660				// Restore the original display value at the end of pure show/hide animations
7661				if ( !propTween ) {
7662					anim.done( function() {
7663						style.display = restoreDisplay;
7664					} );
7665					if ( restoreDisplay == null ) {
7666						display = style.display;
7667						restoreDisplay = display === "none" ? "" : display;
7668					}
7669				}
7670				style.display = "inline-block";
7671			}
7672		}
7673	}
7674
7675	if ( opts.overflow ) {
7676		style.overflow = "hidden";
7677		anim.always( function() {
7678			style.overflow = opts.overflow[ 0 ];
7679			style.overflowX = opts.overflow[ 1 ];
7680			style.overflowY = opts.overflow[ 2 ];
7681		} );
7682	}
7683
7684	// Implement show/hide animations
7685	propTween = false;
7686	for ( prop in orig ) {
7687
7688		// General show/hide setup for this element animation
7689		if ( !propTween ) {
7690			if ( dataShow ) {
7691				if ( "hidden" in dataShow ) {
7692					hidden = dataShow.hidden;
7693				}
7694			} else {
7695				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
7696			}
7697
7698			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
7699			if ( toggle ) {
7700				dataShow.hidden = !hidden;
7701			}
7702
7703			// Show elements before animating them
7704			if ( hidden ) {
7705				showHide( [ elem ], true );
7706			}
7707
7708			/* eslint-disable no-loop-func */
7709
7710			anim.done( function() {
7711
7712				/* eslint-enable no-loop-func */
7713
7714				// The final step of a "hide" animation is actually hiding the element
7715				if ( !hidden ) {
7716					showHide( [ elem ] );
7717				}
7718				dataPriv.remove( elem, "fxshow" );
7719				for ( prop in orig ) {
7720					jQuery.style( elem, prop, orig[ prop ] );
7721				}
7722			} );
7723		}
7724
7725		// Per-property setup
7726		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
7727		if ( !( prop in dataShow ) ) {
7728			dataShow[ prop ] = propTween.start;
7729			if ( hidden ) {
7730				propTween.end = propTween.start;
7731				propTween.start = 0;
7732			}
7733		}
7734	}
7735}
7736
7737function propFilter( props, specialEasing ) {
7738	var index, name, easing, value, hooks;
7739
7740	// camelCase, specialEasing and expand cssHook pass
7741	for ( index in props ) {
7742		name = camelCase( index );
7743		easing = specialEasing[ name ];
7744		value = props[ index ];
7745		if ( Array.isArray( value ) ) {
7746			easing = value[ 1 ];
7747			value = props[ index ] = value[ 0 ];
7748		}
7749
7750		if ( index !== name ) {
7751			props[ name ] = value;
7752			delete props[ index ];
7753		}
7754
7755		hooks = jQuery.cssHooks[ name ];
7756		if ( hooks && "expand" in hooks ) {
7757			value = hooks.expand( value );
7758			delete props[ name ];
7759
7760			// Not quite $.extend, this won't overwrite existing keys.
7761			// Reusing 'index' because we have the correct "name"
7762			for ( index in value ) {
7763				if ( !( index in props ) ) {
7764					props[ index ] = value[ index ];
7765					specialEasing[ index ] = easing;
7766				}
7767			}
7768		} else {
7769			specialEasing[ name ] = easing;
7770		}
7771	}
7772}
7773
7774function Animation( elem, properties, options ) {
7775	var result,
7776		stopped,
7777		index = 0,
7778		length = Animation.prefilters.length,
7779		deferred = jQuery.Deferred().always( function() {
7780
7781			// Don't match elem in the :animated selector
7782			delete tick.elem;
7783		} ),
7784		tick = function() {
7785			if ( stopped ) {
7786				return false;
7787			}
7788			var currentTime = fxNow || createFxNow(),
7789				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
7790
7791				// Support: Android 2.3 only
7792				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
7793				temp = remaining / animation.duration || 0,
7794				percent = 1 - temp,
7795				index = 0,
7796				length = animation.tweens.length;
7797
7798			for ( ; index < length; index++ ) {
7799				animation.tweens[ index ].run( percent );
7800			}
7801
7802			deferred.notifyWith( elem, [ animation, percent, remaining ] );
7803
7804			// If there's more to do, yield
7805			if ( percent < 1 && length ) {
7806				return remaining;
7807			}
7808
7809			// If this was an empty animation, synthesize a final progress notification
7810			if ( !length ) {
7811				deferred.notifyWith( elem, [ animation, 1, 0 ] );
7812			}
7813
7814			// Resolve the animation and report its conclusion
7815			deferred.resolveWith( elem, [ animation ] );
7816			return false;
7817		},
7818		animation = deferred.promise( {
7819			elem: elem,
7820			props: jQuery.extend( {}, properties ),
7821			opts: jQuery.extend( true, {
7822				specialEasing: {},
7823				easing: jQuery.easing._default
7824			}, options ),
7825			originalProperties: properties,
7826			originalOptions: options,
7827			startTime: fxNow || createFxNow(),
7828			duration: options.duration,
7829			tweens: [],
7830			createTween: function( prop, end ) {
7831				var tween = jQuery.Tween( elem, animation.opts, prop, end,
7832					animation.opts.specialEasing[ prop ] || animation.opts.easing );
7833				animation.tweens.push( tween );
7834				return tween;
7835			},
7836			stop: function( gotoEnd ) {
7837				var index = 0,
7838
7839					// If we are going to the end, we want to run all the tweens
7840					// otherwise we skip this part
7841					length = gotoEnd ? animation.tweens.length : 0;
7842				if ( stopped ) {
7843					return this;
7844				}
7845				stopped = true;
7846				for ( ; index < length; index++ ) {
7847					animation.tweens[ index ].run( 1 );
7848				}
7849
7850				// Resolve when we played the last frame; otherwise, reject
7851				if ( gotoEnd ) {
7852					deferred.notifyWith( elem, [ animation, 1, 0 ] );
7853					deferred.resolveWith( elem, [ animation, gotoEnd ] );
7854				} else {
7855					deferred.rejectWith( elem, [ animation, gotoEnd ] );
7856				}
7857				return this;
7858			}
7859		} ),
7860		props = animation.props;
7861
7862	propFilter( props, animation.opts.specialEasing );
7863
7864	for ( ; index < length; index++ ) {
7865		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
7866		if ( result ) {
7867			if ( isFunction( result.stop ) ) {
7868				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
7869					result.stop.bind( result );
7870			}
7871			return result;
7872		}
7873	}
7874
7875	jQuery.map( props, createTween, animation );
7876
7877	if ( isFunction( animation.opts.start ) ) {
7878		animation.opts.start.call( elem, animation );
7879	}
7880
7881	// Attach callbacks from options
7882	animation
7883		.progress( animation.opts.progress )
7884		.done( animation.opts.done, animation.opts.complete )
7885		.fail( animation.opts.fail )
7886		.always( animation.opts.always );
7887
7888	jQuery.fx.timer(
7889		jQuery.extend( tick, {
7890			elem: elem,
7891			anim: animation,
7892			queue: animation.opts.queue
7893		} )
7894	);
7895
7896	return animation;
7897}
7898
7899jQuery.Animation = jQuery.extend( Animation, {
7900
7901	tweeners: {
7902		"*": [ function( prop, value ) {
7903			var tween = this.createTween( prop, value );
7904			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
7905			return tween;
7906		} ]
7907	},
7908
7909	tweener: function( props, callback ) {
7910		if ( isFunction( props ) ) {
7911			callback = props;
7912			props = [ "*" ];
7913		} else {
7914			props = props.match( rnothtmlwhite );
7915		}
7916
7917		var prop,
7918			index = 0,
7919			length = props.length;
7920
7921		for ( ; index < length; index++ ) {
7922			prop = props[ index ];
7923			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
7924			Animation.tweeners[ prop ].unshift( callback );
7925		}
7926	},
7927
7928	prefilters: [ defaultPrefilter ],
7929
7930	prefilter: function( callback, prepend ) {
7931		if ( prepend ) {
7932			Animation.prefilters.unshift( callback );
7933		} else {
7934			Animation.prefilters.push( callback );
7935		}
7936	}
7937} );
7938
7939jQuery.speed = function( speed, easing, fn ) {
7940	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
7941		complete: fn || !fn && easing ||
7942			isFunction( speed ) && speed,
7943		duration: speed,
7944		easing: fn && easing || easing && !isFunction( easing ) && easing
7945	};
7946
7947	// Go to the end state if fx are off
7948	if ( jQuery.fx.off ) {
7949		opt.duration = 0;
7950
7951	} else {
7952		if ( typeof opt.duration !== "number" ) {
7953			if ( opt.duration in jQuery.fx.speeds ) {
7954				opt.duration = jQuery.fx.speeds[ opt.duration ];
7955
7956			} else {
7957				opt.duration = jQuery.fx.speeds._default;
7958			}
7959		}
7960	}
7961
7962	// Normalize opt.queue - true/undefined/null -> "fx"
7963	if ( opt.queue == null || opt.queue === true ) {
7964		opt.queue = "fx";
7965	}
7966
7967	// Queueing
7968	opt.old = opt.complete;
7969
7970	opt.complete = function() {
7971		if ( isFunction( opt.old ) ) {
7972			opt.old.call( this );
7973		}
7974
7975		if ( opt.queue ) {
7976			jQuery.dequeue( this, opt.queue );
7977		}
7978	};
7979
7980	return opt;
7981};
7982
7983jQuery.fn.extend( {
7984	fadeTo: function( speed, to, easing, callback ) {
7985
7986		// Show any hidden elements after setting opacity to 0
7987		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
7988
7989			// Animate to the value specified
7990			.end().animate( { opacity: to }, speed, easing, callback );
7991	},
7992	animate: function( prop, speed, easing, callback ) {
7993		var empty = jQuery.isEmptyObject( prop ),
7994			optall = jQuery.speed( speed, easing, callback ),
7995			doAnimation = function() {
7996
7997				// Operate on a copy of prop so per-property easing won't be lost
7998				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
7999
8000				// Empty animations, or finishing resolves immediately
8001				if ( empty || dataPriv.get( this, "finish" ) ) {
8002					anim.stop( true );
8003				}
8004			};
8005
8006		doAnimation.finish = doAnimation;
8007
8008		return empty || optall.queue === false ?
8009			this.each( doAnimation ) :
8010			this.queue( optall.queue, doAnimation );
8011	},
8012	stop: function( type, clearQueue, gotoEnd ) {
8013		var stopQueue = function( hooks ) {
8014			var stop = hooks.stop;
8015			delete hooks.stop;
8016			stop( gotoEnd );
8017		};
8018
8019		if ( typeof type !== "string" ) {
8020			gotoEnd = clearQueue;
8021			clearQueue = type;
8022			type = undefined;
8023		}
8024		if ( clearQueue ) {
8025			this.queue( type || "fx", [] );
8026		}
8027
8028		return this.each( function() {
8029			var dequeue = true,
8030				index = type != null && type + "queueHooks",
8031				timers = jQuery.timers,
8032				data = dataPriv.get( this );
8033
8034			if ( index ) {
8035				if ( data[ index ] && data[ index ].stop ) {
8036					stopQueue( data[ index ] );
8037				}
8038			} else {
8039				for ( index in data ) {
8040					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
8041						stopQueue( data[ index ] );
8042					}
8043				}
8044			}
8045
8046			for ( index = timers.length; index--; ) {
8047				if ( timers[ index ].elem === this &&
8048					( type == null || timers[ index ].queue === type ) ) {
8049
8050					timers[ index ].anim.stop( gotoEnd );
8051					dequeue = false;
8052					timers.splice( index, 1 );
8053				}
8054			}
8055
8056			// Start the next in the queue if the last step wasn't forced.
8057			// Timers currently will call their complete callbacks, which
8058			// will dequeue but only if they were gotoEnd.
8059			if ( dequeue || !gotoEnd ) {
8060				jQuery.dequeue( this, type );
8061			}
8062		} );
8063	},
8064	finish: function( type ) {
8065		if ( type !== false ) {
8066			type = type || "fx";
8067		}
8068		return this.each( function() {
8069			var index,
8070				data = dataPriv.get( this ),
8071				queue = data[ type + "queue" ],
8072				hooks = data[ type + "queueHooks" ],
8073				timers = jQuery.timers,
8074				length = queue ? queue.length : 0;
8075
8076			// Enable finishing flag on private data
8077			data.finish = true;
8078
8079			// Empty the queue first
8080			jQuery.queue( this, type, [] );
8081
8082			if ( hooks && hooks.stop ) {
8083				hooks.stop.call( this, true );
8084			}
8085
8086			// Look for any active animations, and finish them
8087			for ( index = timers.length; index--; ) {
8088				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
8089					timers[ index ].anim.stop( true );
8090					timers.splice( index, 1 );
8091				}
8092			}
8093
8094			// Look for any animations in the old queue and finish them
8095			for ( index = 0; index < length; index++ ) {
8096				if ( queue[ index ] && queue[ index ].finish ) {
8097					queue[ index ].finish.call( this );
8098				}
8099			}
8100
8101			// Turn off finishing flag
8102			delete data.finish;
8103		} );
8104	}
8105} );
8106
8107jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
8108	var cssFn = jQuery.fn[ name ];
8109	jQuery.fn[ name ] = function( speed, easing, callback ) {
8110		return speed == null || typeof speed === "boolean" ?
8111			cssFn.apply( this, arguments ) :
8112			this.animate( genFx( name, true ), speed, easing, callback );
8113	};
8114} );
8115
8116// Generate shortcuts for custom animations
8117jQuery.each( {
8118	slideDown: genFx( "show" ),
8119	slideUp: genFx( "hide" ),
8120	slideToggle: genFx( "toggle" ),
8121	fadeIn: { opacity: "show" },
8122	fadeOut: { opacity: "hide" },
8123	fadeToggle: { opacity: "toggle" }
8124}, function( name, props ) {
8125	jQuery.fn[ name ] = function( speed, easing, callback ) {
8126		return this.animate( props, speed, easing, callback );
8127	};
8128} );
8129
8130jQuery.timers = [];
8131jQuery.fx.tick = function() {
8132	var timer,
8133		i = 0,
8134		timers = jQuery.timers;
8135
8136	fxNow = Date.now();
8137
8138	for ( ; i < timers.length; i++ ) {
8139		timer = timers[ i ];
8140
8141		// Run the timer and safely remove it when done (allowing for external removal)
8142		if ( !timer() && timers[ i ] === timer ) {
8143			timers.splice( i--, 1 );
8144		}
8145	}
8146
8147	if ( !timers.length ) {
8148		jQuery.fx.stop();
8149	}
8150	fxNow = undefined;
8151};
8152
8153jQuery.fx.timer = function( timer ) {
8154	jQuery.timers.push( timer );
8155	jQuery.fx.start();
8156};
8157
8158jQuery.fx.interval = 13;
8159jQuery.fx.start = function() {
8160	if ( inProgress ) {
8161		return;
8162	}
8163
8164	inProgress = true;
8165	schedule();
8166};
8167
8168jQuery.fx.stop = function() {
8169	inProgress = null;
8170};
8171
8172jQuery.fx.speeds = {
8173	slow: 600,
8174	fast: 200,
8175
8176	// Default speed
8177	_default: 400
8178};
8179
8180
8181// Based off of the plugin by Clint Helfers, with permission.
8182// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
vendor: 21,001 bytes, lines 8183-9051
8183jQuery.fn.delay = function( time, type ) {
8184	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
8185	type = type || "fx";
8186
8187	return this.queue( type, function( next, hooks ) {
8188		var timeout = window.setTimeout( next, time );
8189		hooks.stop = function() {
8190			window.clearTimeout( timeout );
8191		};
8192	} );
8193};
8194
8195
8196( function() {
8197	var input = document.createElement( "input" ),
8198		select = document.createElement( "select" ),
8199		opt = select.appendChild( document.createElement( "option" ) );
8200
8201	input.type = "checkbox";
8202
8203	// Support: Android <=4.3 only
8204	// Default value for a checkbox should be "on"
8205	support.checkOn = input.value !== "";
8206
8207	// Support: IE <=11 only
8208	// Must access selectedIndex to make default options select
8209	support.optSelected = opt.selected;
8210
8211	// Support: IE <=11 only
8212	// An input loses its value after becoming a radio
8213	input = document.createElement( "input" );
8214	input.value = "t";
8215	input.type = "radio";
8216	support.radioValue = input.value === "t";
8217} )();
8218
8219
8220var boolHook,
8221	attrHandle = jQuery.expr.attrHandle;
8222
8223jQuery.fn.extend( {
8224	attr: function( name, value ) {
8225		return access( this, jQuery.attr, name, value, arguments.length > 1 );
8226	},
8227
8228	removeAttr: function( name ) {
8229		return this.each( function() {
8230			jQuery.removeAttr( this, name );
8231		} );
8232	}
8233} );
8234
8235jQuery.extend( {
8236	attr: function( elem, name, value ) {
8237		var ret, hooks,
8238			nType = elem.nodeType;
8239
8240		// Don't get/set attributes on text, comment and attribute nodes
8241		if ( nType === 3 || nType === 8 || nType === 2 ) {
8242			return;
8243		}
8244
8245		// Fallback to prop when attributes are not supported
8246		if ( typeof elem.getAttribute === "undefined" ) {
8247			return jQuery.prop( elem, name, value );
8248		}
8249
8250		// Attribute hooks are determined by the lowercase version
8251		// Grab necessary hook if one is defined
8252		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
8253			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
8254				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
8255		}
8256
8257		if ( value !== undefined ) {
8258			if ( value === null ) {
8259				jQuery.removeAttr( elem, name );
8260				return;
8261			}
8262
8263			if ( hooks && "set" in hooks &&
8264				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
8265				return ret;
8266			}
8267
8268			elem.setAttribute( name, value + "" );
8269			return value;
8270		}
8271
8272		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
8273			return ret;
8274		}
8275
8276		ret = jQuery.find.attr( elem, name );
8277
8278		// Non-existent attributes return null, we normalize to undefined
8279		return ret == null ? undefined : ret;
8280	},
8281
8282	attrHooks: {
8283		type: {
8284			set: function( elem, value ) {
8285				if ( !support.radioValue && value === "radio" &&
8286					nodeName( elem, "input" ) ) {
8287					var val = elem.value;
8288					elem.setAttribute( "type", value );
8289					if ( val ) {
8290						elem.value = val;
8291					}
8292					return value;
8293				}
8294			}
8295		}
8296	},
8297
8298	removeAttr: function( elem, value ) {
8299		var name,
8300			i = 0,
8301
8302			// Attribute names can contain non-HTML whitespace characters
8303			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
8304			attrNames = value && value.match( rnothtmlwhite );
8305
8306		if ( attrNames && elem.nodeType === 1 ) {
8307			while ( ( name = attrNames[ i++ ] ) ) {
8308				elem.removeAttribute( name );
8309			}
8310		}
8311	}
8312} );
8313
8314// Hooks for boolean attributes
8315boolHook = {
8316	set: function( elem, value, name ) {
8317		if ( value === false ) {
8318
8319			// Remove boolean attributes when set to false
8320			jQuery.removeAttr( elem, name );
8321		} else {
8322			elem.setAttribute( name, name );
8323		}
8324		return name;
8325	}
8326};
8327
8328jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
8329	var getter = attrHandle[ name ] || jQuery.find.attr;
8330
8331	attrHandle[ name ] = function( elem, name, isXML ) {
8332		var ret, handle,
8333			lowercaseName = name.toLowerCase();
8334
8335		if ( !isXML ) {
8336
8337			// Avoid an infinite loop by temporarily removing this function from the getter
8338			handle = attrHandle[ lowercaseName ];
8339			attrHandle[ lowercaseName ] = ret;
8340			ret = getter( elem, name, isXML ) != null ?
8341				lowercaseName :
8342				null;
8343			attrHandle[ lowercaseName ] = handle;
8344		}
8345		return ret;
8346	};
8347} );
8348
8349
8350
8351
8352var rfocusable = /^(?:input|select|textarea|button)$/i,
8353	rclickable = /^(?:a|area)$/i;
8354
8355jQuery.fn.extend( {
8356	prop: function( name, value ) {
8357		return access( this, jQuery.prop, name, value, arguments.length > 1 );
8358	},
8359
8360	removeProp: function( name ) {
8361		return this.each( function() {
8362			delete this[ jQuery.propFix[ name ] || name ];
8363		} );
8364	}
8365} );
8366
8367jQuery.extend( {
8368	prop: function( elem, name, value ) {
8369		var ret, hooks,
8370			nType = elem.nodeType;
8371
8372		// Don't get/set properties on text, comment and attribute nodes
8373		if ( nType === 3 || nType === 8 || nType === 2 ) {
8374			return;
8375		}
8376
8377		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
8378
8379			// Fix name and attach hooks
8380			name = jQuery.propFix[ name ] || name;
8381			hooks = jQuery.propHooks[ name ];
8382		}
8383
8384		if ( value !== undefined ) {
8385			if ( hooks && "set" in hooks &&
8386				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
8387				return ret;
8388			}
8389
8390			return ( elem[ name ] = value );
8391		}
8392
8393		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
8394			return ret;
8395		}
8396
8397		return elem[ name ];
8398	},
8399
8400	propHooks: {
8401		tabIndex: {
8402			get: function( elem ) {
8403
8404				// Support: IE <=9 - 11 only
8405				// elem.tabIndex doesn't always return the
8406				// correct value when it hasn't been explicitly set
8407				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
8408				// Use proper attribute retrieval(#12072)
8409				var tabindex = jQuery.find.attr( elem, "tabindex" );
8410
8411				if ( tabindex ) {
8412					return parseInt( tabindex, 10 );
8413				}
8414
8415				if (
8416					rfocusable.test( elem.nodeName ) ||
8417					rclickable.test( elem.nodeName ) &&
8418					elem.href
8419				) {
8420					return 0;
8421				}
8422
8423				return -1;
8424			}
8425		}
8426	},
8427
8428	propFix: {
8429		"for": "htmlFor",
8430		"class": "className"
8431	}
8432} );
8433
8434// Support: IE <=11 only
8435// Accessing the selectedIndex property
8436// forces the browser to respect setting selected
8437// on the option
8438// The getter ensures a default option is selected
8439// when in an optgroup
8440// eslint rule "no-unused-expressions" is disabled for this code
8441// since it considers such accessions noop
8442if ( !support.optSelected ) {
8443	jQuery.propHooks.selected = {
8444		get: function( elem ) {
8445
8446			/* eslint no-unused-expressions: "off" */
8447
8448			var parent = elem.parentNode;
8449			if ( parent && parent.parentNode ) {
8450				parent.parentNode.selectedIndex;
8451			}
8452			return null;
8453		},
8454		set: function( elem ) {
8455
8456			/* eslint no-unused-expressions: "off" */
8457
8458			var parent = elem.parentNode;
8459			if ( parent ) {
8460				parent.selectedIndex;
8461
8462				if ( parent.parentNode ) {
8463					parent.parentNode.selectedIndex;
8464				}
8465			}
8466		}
8467	};
8468}
8469
8470jQuery.each( [
8471	"tabIndex",
8472	"readOnly",
8473	"maxLength",
8474	"cellSpacing",
8475	"cellPadding",
8476	"rowSpan",
8477	"colSpan",
8478	"useMap",
8479	"frameBorder",
8480	"contentEditable"
8481], function() {
8482	jQuery.propFix[ this.toLowerCase() ] = this;
8483} );
8484
8485
8486
8487
8488	// Strip and collapse whitespace according to HTML spec
8489	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
8490	function stripAndCollapse( value ) {
8491		var tokens = value.match( rnothtmlwhite ) || [];
8492		return tokens.join( " " );
8493	}
8494
8495
8496function getClass( elem ) {
8497	return elem.getAttribute && elem.getAttribute( "class" ) || "";
8498}
8499
8500function classesToArray( value ) {
8501	if ( Array.isArray( value ) ) {
8502		return value;
8503	}
8504	if ( typeof value === "string" ) {
8505		return value.match( rnothtmlwhite ) || [];
8506	}
8507	return [];
8508}
8509
8510jQuery.fn.extend( {
8511	addClass: function( value ) {
8512		var classes, elem, cur, curValue, clazz, j, finalValue,
8513			i = 0;
8514
8515		if ( isFunction( value ) ) {
8516			return this.each( function( j ) {
8517				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
8518			} );
8519		}
8520
8521		classes = classesToArray( value );
8522
8523		if ( classes.length ) {
8524			while ( ( elem = this[ i++ ] ) ) {
8525				curValue = getClass( elem );
8526				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
8527
8528				if ( cur ) {
8529					j = 0;
8530					while ( ( clazz = classes[ j++ ] ) ) {
8531						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
8532							cur += clazz + " ";
8533						}
8534					}
8535
8536					// Only assign if different to avoid unneeded rendering.
8537					finalValue = stripAndCollapse( cur );
8538					if ( curValue !== finalValue ) {
8539						elem.setAttribute( "class", finalValue );
8540					}
8541				}
8542			}
8543		}
8544
8545		return this;
8546	},
8547
8548	removeClass: function( value ) {
8549		var classes, elem, cur, curValue, clazz, j, finalValue,
8550			i = 0;
8551
8552		if ( isFunction( value ) ) {
8553			return this.each( function( j ) {
8554				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
8555			} );
8556		}
8557
8558		if ( !arguments.length ) {
8559			return this.attr( "class", "" );
8560		}
8561
8562		classes = classesToArray( value );
8563
8564		if ( classes.length ) {
8565			while ( ( elem = this[ i++ ] ) ) {
8566				curValue = getClass( elem );
8567
8568				// This expression is here for better compressibility (see addClass)
8569				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
8570
8571				if ( cur ) {
8572					j = 0;
8573					while ( ( clazz = classes[ j++ ] ) ) {
8574
8575						// Remove *all* instances
8576						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
8577							cur = cur.replace( " " + clazz + " ", " " );
8578						}
8579					}
8580
8581					// Only assign if different to avoid unneeded rendering.
8582					finalValue = stripAndCollapse( cur );
8583					if ( curValue !== finalValue ) {
8584						elem.setAttribute( "class", finalValue );
8585					}
8586				}
8587			}
8588		}
8589
8590		return this;
8591	},
8592
8593	toggleClass: function( value, stateVal ) {
8594		var type = typeof value,
8595			isValidValue = type === "string" || Array.isArray( value );
8596
8597		if ( typeof stateVal === "boolean" && isValidValue ) {
8598			return stateVal ? this.addClass( value ) : this.removeClass( value );
8599		}
8600
8601		if ( isFunction( value ) ) {
8602			return this.each( function( i ) {
8603				jQuery( this ).toggleClass(
8604					value.call( this, i, getClass( this ), stateVal ),
8605					stateVal
8606				);
8607			} );
8608		}
8609
8610		return this.each( function() {
8611			var className, i, self, classNames;
8612
8613			if ( isValidValue ) {
8614
8615				// Toggle individual class names
8616				i = 0;
8617				self = jQuery( this );
8618				classNames = classesToArray( value );
8619
8620				while ( ( className = classNames[ i++ ] ) ) {
8621
8622					// Check each className given, space separated list
8623					if ( self.hasClass( className ) ) {
8624						self.removeClass( className );
8625					} else {
8626						self.addClass( className );
8627					}
8628				}
8629
8630			// Toggle whole class name
8631			} else if ( value === undefined || type === "boolean" ) {
8632				className = getClass( this );
8633				if ( className ) {
8634
8635					// Store className if set
8636					dataPriv.set( this, "__className__", className );
8637				}
8638
8639				// If the element has a class name or if we're passed `false`,
8640				// then remove the whole classname (if there was one, the above saved it).
8641				// Otherwise bring back whatever was previously saved (if anything),
8642				// falling back to the empty string if nothing was stored.
8643				if ( this.setAttribute ) {
8644					this.setAttribute( "class",
8645						className || value === false ?
8646							"" :
8647							dataPriv.get( this, "__className__" ) || ""
8648					);
8649				}
8650			}
8651		} );
8652	},
8653
8654	hasClass: function( selector ) {
8655		var className, elem,
8656			i = 0;
8657
8658		className = " " + selector + " ";
8659		while ( ( elem = this[ i++ ] ) ) {
8660			if ( elem.nodeType === 1 &&
8661				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
8662				return true;
8663			}
8664		}
8665
8666		return false;
8667	}
8668} );
8669
8670
8671
8672
8673var rreturn = /\r/g;
8674
8675jQuery.fn.extend( {
8676	val: function( value ) {
8677		var hooks, ret, valueIsFunction,
8678			elem = this[ 0 ];
8679
8680		if ( !arguments.length ) {
8681			if ( elem ) {
8682				hooks = jQuery.valHooks[ elem.type ] ||
8683					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
8684
8685				if ( hooks &&
8686					"get" in hooks &&
8687					( ret = hooks.get( elem, "value" ) ) !== undefined
8688				) {
8689					return ret;
8690				}
8691
8692				ret = elem.value;
8693
8694				// Handle most common string cases
8695				if ( typeof ret === "string" ) {
8696					return ret.replace( rreturn, "" );
8697				}
8698
8699				// Handle cases where value is null/undef or number
8700				return ret == null ? "" : ret;
8701			}
8702
8703			return;
8704		}
8705
8706		valueIsFunction = isFunction( value );
8707
8708		return this.each( function( i ) {
8709			var val;
8710
8711			if ( this.nodeType !== 1 ) {
8712				return;
8713			}
8714
8715			if ( valueIsFunction ) {
8716				val = value.call( this, i, jQuery( this ).val() );
8717			} else {
8718				val = value;
8719			}
8720
8721			// Treat null/undefined as ""; convert numbers to string
8722			if ( val == null ) {
8723				val = "";
8724
8725			} else if ( typeof val === "number" ) {
8726				val += "";
8727
8728			} else if ( Array.isArray( val ) ) {
8729				val = jQuery.map( val, function( value ) {
8730					return value == null ? "" : value + "";
8731				} );
8732			}
8733
8734			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
8735
8736			// If set returns undefined, fall back to normal setting
8737			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
8738				this.value = val;
8739			}
8740		} );
8741	}
8742} );
8743
8744jQuery.extend( {
8745	valHooks: {
8746		option: {
8747			get: function( elem ) {
8748
8749				var val = jQuery.find.attr( elem, "value" );
8750				return val != null ?
8751					val :
8752
8753					// Support: IE <=10 - 11 only
8754					// option.text throws exceptions (#14686, #14858)
8755					// Strip and collapse whitespace
8756					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
8757					stripAndCollapse( jQuery.text( elem ) );
8758			}
8759		},
8760		select: {
8761			get: function( elem ) {
8762				var value, option, i,
8763					options = elem.options,
8764					index = elem.selectedIndex,
8765					one = elem.type === "select-one",
8766					values = one ? null : [],
8767					max = one ? index + 1 : options.length;
8768
8769				if ( index < 0 ) {
8770					i = max;
8771
8772				} else {
8773					i = one ? index : 0;
8774				}
8775
8776				// Loop through all the selected options
8777				for ( ; i < max; i++ ) {
8778					option = options[ i ];
8779
8780					// Support: IE <=9 only
8781					// IE8-9 doesn't update selected after form reset (#2551)
8782					if ( ( option.selected || i === index ) &&
8783
8784							// Don't return options that are disabled or in a disabled optgroup
8785							!option.disabled &&
8786							( !option.parentNode.disabled ||
8787								!nodeName( option.parentNode, "optgroup" ) ) ) {
8788
8789						// Get the specific value for the option
8790						value = jQuery( option ).val();
8791
8792						// We don't need an array for one selects
8793						if ( one ) {
8794							return value;
8795						}
8796
8797						// Multi-Selects return an array
8798						values.push( value );
8799					}
8800				}
8801
8802				return values;
8803			},
8804
8805			set: function( elem, value ) {
8806				var optionSet, option,
8807					options = elem.options,
8808					values = jQuery.makeArray( value ),
8809					i = options.length;
8810
8811				while ( i-- ) {
8812					option = options[ i ];
8813
8814					/* eslint-disable no-cond-assign */
8815
8816					if ( option.selected =
8817						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
8818					) {
8819						optionSet = true;
8820					}
8821
8822					/* eslint-enable no-cond-assign */
8823				}
8824
8825				// Force browsers to behave consistently when non-matching value is set
8826				if ( !optionSet ) {
8827					elem.selectedIndex = -1;
8828				}
8829				return values;
8830			}
8831		}
8832	}
8833} );
8834
8835// Radios and checkboxes getter/setter
8836jQuery.each( [ "radio", "checkbox" ], function() {
8837	jQuery.valHooks[ this ] = {
8838		set: function( elem, value ) {
8839			if ( Array.isArray( value ) ) {
8840				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
8841			}
8842		}
8843	};
8844	if ( !support.checkOn ) {
8845		jQuery.valHooks[ this ].get = function( elem ) {
8846			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
8847		};
8848	}
8849} );
8850
8851
8852
8853
8854// Return jQuery for attributes-only inclusion
8855
8856
8857support.focusin = "onfocusin" in window;
8858
8859
8860var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
8861	stopPropagationCallback = function( e ) {
8862		e.stopPropagation();
8863	};
8864
8865jQuery.extend( jQuery.event, {
8866
8867	trigger: function( event, data, elem, onlyHandlers ) {
8868
8869		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
8870			eventPath = [ elem || document ],
8871			type = hasOwn.call( event, "type" ) ? event.type : event,
8872			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
8873
8874		cur = lastElement = tmp = elem = elem || document;
8875
8876		// Don't do events on text and comment nodes
8877		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
8878			return;
8879		}
8880
8881		// focus/blur morphs to focusin/out; ensure we're not firing them right now
8882		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
8883			return;
8884		}
8885
8886		if ( type.indexOf( "." ) > -1 ) {
8887
8888			// Namespaced trigger; create a regexp to match event type in handle()
8889			namespaces = type.split( "." );
8890			type = namespaces.shift();
8891			namespaces.sort();
8892		}
8893		ontype = type.indexOf( ":" ) < 0 && "on" + type;
8894
8895		// Caller can pass in a jQuery.Event object, Object, or just an event type string
8896		event = event[ jQuery.expando ] ?
8897			event :
8898			new jQuery.Event( type, typeof event === "object" && event );
8899
8900		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
8901		event.isTrigger = onlyHandlers ? 2 : 3;
8902		event.namespace = namespaces.join( "." );
8903		event.rnamespace = event.namespace ?
8904			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
8905			null;
8906
8907		// Clean up the event in case it is being reused
8908		event.result = undefined;
8909		if ( !event.target ) {
8910			event.target = elem;
8911		}
8912
8913		// Clone any incoming data and prepend the event, creating the handler arg list
8914		data = data == null ?
8915			[ event ] :
8916			jQuery.makeArray( data, [ event ] );
8917
8918		// Allow special events to draw outside the lines
8919		special = jQuery.event.special[ type ] || {};
8920		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
8921			return;
8922		}
8923
8924		// Determine event propagation path in advance, per W3C events spec (#9951)
8925		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
8926		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
8927
8928			bubbleType = special.delegateType || type;
8929			if ( !rfocusMorph.test( bubbleType + type ) ) {
8930				cur = cur.parentNode;
8931			}
8932			for ( ; cur; cur = cur.parentNode ) {
8933				eventPath.push( cur );
8934				tmp = cur;
8935			}
8936
8937			// Only add window if we got to document (e.g., not plain obj or detached DOM)
8938			if ( tmp === ( elem.ownerDocument || document ) ) {
8939				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
8940			}
8941		}
8942
8943		// Fire handlers on the event path
8944		i = 0;
8945		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
8946			lastElement = cur;
8947			event.type = i > 1 ?
8948				bubbleType :
8949				special.bindType || type;
8950
8951			// jQuery handler
8952			handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
8953				dataPriv.get( cur, "handle" );
8954			if ( handle ) {
8955				handle.apply( cur, data );
8956			}
8957
8958			// Native handler
8959			handle = ontype && cur[ ontype ];
8960			if ( handle && handle.apply && acceptData( cur ) ) {
8961				event.result = handle.apply( cur, data );
8962				if ( event.result === false ) {
8963					event.preventDefault();
8964				}
8965			}
8966		}
8967		event.type = type;
8968
8969		// If nobody prevented the default action, do it now
8970		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
8971
8972			if ( ( !special._default ||
8973				special._default.apply( eventPath.pop(), data ) === false ) &&
8974				acceptData( elem ) ) {
8975
8976				// Call a native DOM method on the target with the same name as the event.
8977				// Don't do default actions on window, that's where global variables be (#6170)
8978				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
8979
8980					// Don't re-trigger an onFOO event when we call its FOO() method
8981					tmp = elem[ ontype ];
8982
8983					if ( tmp ) {
8984						elem[ ontype ] = null;
8985					}
8986
8987					// Prevent re-triggering of the same event, since we already bubbled it above
8988					jQuery.event.triggered = type;
8989
8990					if ( event.isPropagationStopped() ) {
8991						lastElement.addEventListener( type, stopPropagationCallback );
8992					}
8993
8994					elem[ type ]();
8995
8996					if ( event.isPropagationStopped() ) {
8997						lastElement.removeEventListener( type, stopPropagationCallback );
8998					}
8999
9000					jQuery.event.triggered = undefined;
9001
9002					if ( tmp ) {
9003						elem[ ontype ] = tmp;
9004					}
9005				}
9006			}
9007		}
9008
9009		return event.result;
9010	},
9011
9012	// Piggyback on a donor event to simulate a different one
9013	// Used only for `focus(in | out)` events
9014	simulate: function( type, elem, event ) {
9015		var e = jQuery.extend(
9016			new jQuery.Event(),
9017			event,
9018			{
9019				type: type,
9020				isSimulated: true
9021			}
9022		);
9023
9024		jQuery.event.trigger( e, null, elem );
9025	}
9026
9027} );
9028
9029jQuery.fn.extend( {
9030
9031	trigger: function( type, data ) {
9032		return this.each( function() {
9033			jQuery.event.trigger( type, data, this );
9034		} );
9035	},
9036	triggerHandler: function( type, data ) {
9037		var elem = this[ 0 ];
9038		if ( elem ) {
9039			return jQuery.event.trigger( type, data, elem, true );
9040		}
9041	}
9042} );
9043
9044
9045// Support: Firefox <=44
9046// Firefox doesn't have focus(in | out) events
9047// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
9048//
9049// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
9050// focus(in | out) events fire after focus & blur events,
9051// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
vendor: 54,284 bytes, lines 9052-11114
9052// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
9053if ( !support.focusin ) {
9054	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
9055
9056		// Attach a single capturing handler on the document while someone wants focusin/focusout
9057		var handler = function( event ) {
9058			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
9059		};
9060
9061		jQuery.event.special[ fix ] = {
9062			setup: function() {
9063
9064				// Handle: regular nodes (via `this.ownerDocument`), window
9065				// (via `this.document`) & document (via `this`).
9066				var doc = this.ownerDocument || this.document || this,
9067					attaches = dataPriv.access( doc, fix );
9068
9069				if ( !attaches ) {
9070					doc.addEventListener( orig, handler, true );
9071				}
9072				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
9073			},
9074			teardown: function() {
9075				var doc = this.ownerDocument || this.document || this,
9076					attaches = dataPriv.access( doc, fix ) - 1;
9077
9078				if ( !attaches ) {
9079					doc.removeEventListener( orig, handler, true );
9080					dataPriv.remove( doc, fix );
9081
9082				} else {
9083					dataPriv.access( doc, fix, attaches );
9084				}
9085			}
9086		};
9087	} );
9088}
9089var location = window.location;
9090
9091var nonce = { guid: Date.now() };
9092
9093var rquery = ( /\?/ );
9094
9095
9096
9097// Cross-browser xml parsing
9098jQuery.parseXML = function( data ) {
9099	var xml, parserErrorElem;
9100	if ( !data || typeof data !== "string" ) {
9101		return null;
9102	}
9103
9104	// Support: IE 9 - 11 only
9105	// IE throws on parseFromString with invalid input.
9106	try {
9107		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
9108	} catch ( e ) {}
9109
9110	parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
9111	if ( !xml || parserErrorElem ) {
9112		jQuery.error( "Invalid XML: " + (
9113			parserErrorElem ?
9114				jQuery.map( parserErrorElem.childNodes, function( el ) {
9115					return el.textContent;
9116				} ).join( "\n" ) :
9117				data
9118		) );
9119	}
9120	return xml;
9121};
9122
9123
9124var
9125	rbracket = /\[\]$/,
9126	rCRLF = /\r?\n/g,
9127	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
9128	rsubmittable = /^(?:input|select|textarea|keygen)/i;
9129
9130function buildParams( prefix, obj, traditional, add ) {
9131	var name;
9132
9133	if ( Array.isArray( obj ) ) {
9134
9135		// Serialize array item.
9136		jQuery.each( obj, function( i, v ) {
9137			if ( traditional || rbracket.test( prefix ) ) {
9138
9139				// Treat each array item as a scalar.
9140				add( prefix, v );
9141
9142			} else {
9143
9144				// Item is non-scalar (array or object), encode its numeric index.
9145				buildParams(
9146					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
9147					v,
9148					traditional,
9149					add
9150				);
9151			}
9152		} );
9153
9154	} else if ( !traditional && toType( obj ) === "object" ) {
9155
9156		// Serialize object item.
9157		for ( name in obj ) {
9158			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
9159		}
9160
9161	} else {
9162
9163		// Serialize scalar item.
9164		add( prefix, obj );
9165	}
9166}
9167
9168// Serialize an array of form elements or a set of
9169// key/values into a query string
9170jQuery.param = function( a, traditional ) {
9171	var prefix,
9172		s = [],
9173		add = function( key, valueOrFunction ) {
9174
9175			// If value is a function, invoke it and use its return value
9176			var value = isFunction( valueOrFunction ) ?
9177				valueOrFunction() :
9178				valueOrFunction;
9179
9180			s[ s.length ] = encodeURIComponent( key ) + "=" +
9181				encodeURIComponent( value == null ? "" : value );
9182		};
9183
9184	if ( a == null ) {
9185		return "";
9186	}
9187
9188	// If an array was passed in, assume that it is an array of form elements.
9189	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
9190
9191		// Serialize the form elements
9192		jQuery.each( a, function() {
9193			add( this.name, this.value );
9194		} );
9195
9196	} else {
9197
9198		// If traditional, encode the "old" way (the way 1.3.2 or older
9199		// did it), otherwise encode params recursively.
9200		for ( prefix in a ) {
9201			buildParams( prefix, a[ prefix ], traditional, add );
9202		}
9203	}
9204
9205	// Return the resulting serialization
9206	return s.join( "&" );
9207};
9208
9209jQuery.fn.extend( {
9210	serialize: function() {
9211		return jQuery.param( this.serializeArray() );
9212	},
9213	serializeArray: function() {
9214		return this.map( function() {
9215
9216			// Can add propHook for "elements" to filter or add form elements
9217			var elements = jQuery.prop( this, "elements" );
9218			return elements ? jQuery.makeArray( elements ) : this;
9219		} ).filter( function() {
9220			var type = this.type;
9221
9222			// Use .is( ":disabled" ) so that fieldset[disabled] works
9223			return this.name && !jQuery( this ).is( ":disabled" ) &&
9224				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
9225				( this.checked || !rcheckableType.test( type ) );
9226		} ).map( function( _i, elem ) {
9227			var val = jQuery( this ).val();
9228
9229			if ( val == null ) {
9230				return null;
9231			}
9232
9233			if ( Array.isArray( val ) ) {
9234				return jQuery.map( val, function( val ) {
9235					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
9236				} );
9237			}
9238
9239			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
9240		} ).get();
9241	}
9242} );
9243
9244
9245var
9246	r20 = /%20/g,
9247	rhash = /#.*$/,
9248	rantiCache = /([?&])_=[^&]*/,
9249	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
9250
9251	// #7653, #8125, #8152: local protocol detection
9252	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
9253	rnoContent = /^(?:GET|HEAD)$/,
9254	rprotocol = /^\/\//,
9255
9256	/* Prefilters
9257	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
9258	 * 2) These are called:
9259	 *    - BEFORE asking for a transport
9260	 *    - AFTER param serialization (s.data is a string if s.processData is true)
9261	 * 3) key is the dataType
9262	 * 4) the catchall symbol "*" can be used
9263	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
9264	 */
9265	prefilters = {},
9266
9267	/* Transports bindings
9268	 * 1) key is the dataType
9269	 * 2) the catchall symbol "*" can be used
9270	 * 3) selection will start with transport dataType and THEN go to "*" if needed
9271	 */
9272	transports = {},
9273
9274	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
9275	allTypes = "*/".concat( "*" ),
9276
9277	// Anchor tag for parsing the document origin
9278	originAnchor = document.createElement( "a" );
9279
9280originAnchor.href = location.href;
9281
9282// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
9283function addToPrefiltersOrTransports( structure ) {
9284
9285	// dataTypeExpression is optional and defaults to "*"
9286	return function( dataTypeExpression, func ) {
9287
9288		if ( typeof dataTypeExpression !== "string" ) {
9289			func = dataTypeExpression;
9290			dataTypeExpression = "*";
9291		}
9292
9293		var dataType,
9294			i = 0,
9295			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
9296
9297		if ( isFunction( func ) ) {
9298
9299			// For each dataType in the dataTypeExpression
9300			while ( ( dataType = dataTypes[ i++ ] ) ) {
9301
9302				// Prepend if requested
9303				if ( dataType[ 0 ] === "+" ) {
9304					dataType = dataType.slice( 1 ) || "*";
9305					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
9306
9307				// Otherwise append
9308				} else {
9309					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
9310				}
9311			}
9312		}
9313	};
9314}
9315
9316// Base inspection function for prefilters and transports
9317function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
9318
9319	var inspected = {},
9320		seekingTransport = ( structure === transports );
9321
9322	function inspect( dataType ) {
9323		var selected;
9324		inspected[ dataType ] = true;
9325		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
9326			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
9327			if ( typeof dataTypeOrTransport === "string" &&
9328				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
9329
9330				options.dataTypes.unshift( dataTypeOrTransport );
9331				inspect( dataTypeOrTransport );
9332				return false;
9333			} else if ( seekingTransport ) {
9334				return !( selected = dataTypeOrTransport );
9335			}
9336		} );
9337		return selected;
9338	}
9339
9340	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
9341}
9342
9343// A special extend for ajax options
9344// that takes "flat" options (not to be deep extended)
9345// Fixes #9887
9346function ajaxExtend( target, src ) {
9347	var key, deep,
9348		flatOptions = jQuery.ajaxSettings.flatOptions || {};
9349
9350	for ( key in src ) {
9351		if ( src[ key ] !== undefined ) {
9352			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
9353		}
9354	}
9355	if ( deep ) {
9356		jQuery.extend( true, target, deep );
9357	}
9358
9359	return target;
9360}
9361
9362/* Handles responses to an ajax request:
9363 * - finds the right dataType (mediates between content-type and expected dataType)
9364 * - returns the corresponding response
9365 */
9366function ajaxHandleResponses( s, jqXHR, responses ) {
9367
9368	var ct, type, finalDataType, firstDataType,
9369		contents = s.contents,
9370		dataTypes = s.dataTypes;
9371
9372	// Remove auto dataType and get content-type in the process
9373	while ( dataTypes[ 0 ] === "*" ) {
9374		dataTypes.shift();
9375		if ( ct === undefined ) {
9376			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
9377		}
9378	}
9379
9380	// Check if we're dealing with a known content-type
9381	if ( ct ) {
9382		for ( type in contents ) {
9383			if ( contents[ type ] && contents[ type ].test( ct ) ) {
9384				dataTypes.unshift( type );
9385				break;
9386			}
9387		}
9388	}
9389
9390	// Check to see if we have a response for the expected dataType
9391	if ( dataTypes[ 0 ] in responses ) {
9392		finalDataType = dataTypes[ 0 ];
9393	} else {
9394
9395		// Try convertible dataTypes
9396		for ( type in responses ) {
9397			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
9398				finalDataType = type;
9399				break;
9400			}
9401			if ( !firstDataType ) {
9402				firstDataType = type;
9403			}
9404		}
9405
9406		// Or just use first one
9407		finalDataType = finalDataType || firstDataType;
9408	}
9409
9410	// If we found a dataType
9411	// We add the dataType to the list if needed
9412	// and return the corresponding response
9413	if ( finalDataType ) {
9414		if ( finalDataType !== dataTypes[ 0 ] ) {
9415			dataTypes.unshift( finalDataType );
9416		}
9417		return responses[ finalDataType ];
9418	}
9419}
9420
9421/* Chain conversions given the request and the original response
9422 * Also sets the responseXXX fields on the jqXHR instance
9423 */
9424function ajaxConvert( s, response, jqXHR, isSuccess ) {
9425	var conv2, current, conv, tmp, prev,
9426		converters = {},
9427
9428		// Work with a copy of dataTypes in case we need to modify it for conversion
9429		dataTypes = s.dataTypes.slice();
9430
9431	// Create converters map with lowercased keys
9432	if ( dataTypes[ 1 ] ) {
9433		for ( conv in s.converters ) {
9434			converters[ conv.toLowerCase() ] = s.converters[ conv ];
9435		}
9436	}
9437
9438	current = dataTypes.shift();
9439
9440	// Convert to each sequential dataType
9441	while ( current ) {
9442
9443		if ( s.responseFields[ current ] ) {
9444			jqXHR[ s.responseFields[ current ] ] = response;
9445		}
9446
9447		// Apply the dataFilter if provided
9448		if ( !prev && isSuccess && s.dataFilter ) {
9449			response = s.dataFilter( response, s.dataType );
9450		}
9451
9452		prev = current;
9453		current = dataTypes.shift();
9454
9455		if ( current ) {
9456
9457			// There's only work to do if current dataType is non-auto
9458			if ( current === "*" ) {
9459
9460				current = prev;
9461
9462			// Convert response if prev dataType is non-auto and differs from current
9463			} else if ( prev !== "*" && prev !== current ) {
9464
9465				// Seek a direct converter
9466				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
9467
9468				// If none found, seek a pair
9469				if ( !conv ) {
9470					for ( conv2 in converters ) {
9471
9472						// If conv2 outputs current
9473						tmp = conv2.split( " " );
9474						if ( tmp[ 1 ] === current ) {
9475
9476							// If prev can be converted to accepted input
9477							conv = converters[ prev + " " + tmp[ 0 ] ] ||
9478								converters[ "* " + tmp[ 0 ] ];
9479							if ( conv ) {
9480
9481								// Condense equivalence converters
9482								if ( conv === true ) {
9483									conv = converters[ conv2 ];
9484
9485								// Otherwise, insert the intermediate dataType
9486								} else if ( converters[ conv2 ] !== true ) {
9487									current = tmp[ 0 ];
9488									dataTypes.unshift( tmp[ 1 ] );
9489								}
9490								break;
9491							}
9492						}
9493					}
9494				}
9495
9496				// Apply converter (if not an equivalence)
9497				if ( conv !== true ) {
9498
9499					// Unless errors are allowed to bubble, catch and return them
9500					if ( conv && s.throws ) {
9501						response = conv( response );
9502					} else {
9503						try {
9504							response = conv( response );
9505						} catch ( e ) {
9506							return {
9507								state: "parsererror",
9508								error: conv ? e : "No conversion from " + prev + " to " + current
9509							};
9510						}
9511					}
9512				}
9513			}
9514		}
9515	}
9516
9517	return { state: "success", data: response };
9518}
9519
9520jQuery.extend( {
9521
9522	// Counter for holding the number of active queries
9523	active: 0,
9524
9525	// Last-Modified header cache for next request
9526	lastModified: {},
9527	etag: {},
9528
9529	ajaxSettings: {
9530		url: location.href,
9531		type: "GET",
9532		isLocal: rlocalProtocol.test( location.protocol ),
9533		global: true,
9534		processData: true,
9535		async: true,
9536		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
9537
9538		/*
9539		timeout: 0,
9540		data: null,
9541		dataType: null,
9542		username: null,
9543		password: null,
9544		cache: null,
9545		throws: false,
9546		traditional: false,
9547		headers: {},
9548		*/
9549
9550		accepts: {
9551			"*": allTypes,
9552			text: "text/plain",
9553			html: "text/html",
9554			xml: "application/xml, text/xml",
9555			json: "application/json, text/javascript"
9556		},
9557
9558		contents: {
9559			xml: /\bxml\b/,
9560			html: /\bhtml/,
9561			json: /\bjson\b/
9562		},
9563
9564		responseFields: {
9565			xml: "responseXML",
9566			text: "responseText",
9567			json: "responseJSON"
9568		},
9569
9570		// Data converters
9571		// Keys separate source (or catchall "*") and destination types with a single space
9572		converters: {
9573
9574			// Convert anything to text
9575			"* text": String,
9576
9577			// Text to html (true = no transformation)
9578			"text html": true,
9579
9580			// Evaluate text as a json expression
9581			"text json": JSON.parse,
9582
9583			// Parse text as xml
9584			"text xml": jQuery.parseXML
9585		},
9586
9587		// For options that shouldn't be deep extended:
9588		// you can add your own custom options here if
9589		// and when you create one that shouldn't be
9590		// deep extended (see ajaxExtend)
9591		flatOptions: {
9592			url: true,
9593			context: true
9594		}
9595	},
9596
9597	// Creates a full fledged settings object into target
9598	// with both ajaxSettings and settings fields.
9599	// If target is omitted, writes into ajaxSettings.
9600	ajaxSetup: function( target, settings ) {
9601		return settings ?
9602
9603			// Building a settings object
9604			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
9605
9606			// Extending ajaxSettings
9607			ajaxExtend( jQuery.ajaxSettings, target );
9608	},
9609
9610	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
9611	ajaxTransport: addToPrefiltersOrTransports( transports ),
9612
9613	// Main method
9614	ajax: function( url, options ) {
9615
9616		// If url is an object, simulate pre-1.5 signature
9617		if ( typeof url === "object" ) {
9618			options = url;
9619			url = undefined;
9620		}
9621
9622		// Force options to be an object
9623		options = options || {};
9624
9625		var transport,
9626
9627			// URL without anti-cache param
9628			cacheURL,
9629
9630			// Response headers
9631			responseHeadersString,
9632			responseHeaders,
9633
9634			// timeout handle
9635			timeoutTimer,
9636
9637			// Url cleanup var
9638			urlAnchor,
9639
9640			// Request state (becomes false upon send and true upon completion)
9641			completed,
9642
9643			// To know if global events are to be dispatched
9644			fireGlobals,
9645
9646			// Loop variable
9647			i,
9648
9649			// uncached part of the url
9650			uncached,
9651
9652			// Create the final options object
9653			s = jQuery.ajaxSetup( {}, options ),
9654
9655			// Callbacks context
9656			callbackContext = s.context || s,
9657
9658			// Context for global events is callbackContext if it is a DOM node or jQuery collection
9659			globalEventContext = s.context &&
9660				( callbackContext.nodeType || callbackContext.jquery ) ?
9661				jQuery( callbackContext ) :
9662				jQuery.event,
9663
9664			// Deferreds
9665			deferred = jQuery.Deferred(),
9666			completeDeferred = jQuery.Callbacks( "once memory" ),
9667
9668			// Status-dependent callbacks
9669			statusCode = s.statusCode || {},
9670
9671			// Headers (they are sent all at once)
9672			requestHeaders = {},
9673			requestHeadersNames = {},
9674
9675			// Default abort message
9676			strAbort = "canceled",
9677
9678			// Fake xhr
9679			jqXHR = {
9680				readyState: 0,
9681
9682				// Builds headers hashtable if needed
9683				getResponseHeader: function( key ) {
9684					var match;
9685					if ( completed ) {
9686						if ( !responseHeaders ) {
9687							responseHeaders = {};
9688							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
9689								responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
9690									( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
9691										.concat( match[ 2 ] );
9692							}
9693						}
9694						match = responseHeaders[ key.toLowerCase() + " " ];
9695					}
9696					return match == null ? null : match.join( ", " );
9697				},
9698
9699				// Raw string
9700				getAllResponseHeaders: function() {
9701					return completed ? responseHeadersString : null;
9702				},
9703
9704				// Caches the header
9705				setRequestHeader: function( name, value ) {
9706					if ( completed == null ) {
9707						name = requestHeadersNames[ name.toLowerCase() ] =
9708							requestHeadersNames[ name.toLowerCase() ] || name;
9709						requestHeaders[ name ] = value;
9710					}
9711					return this;
9712				},
9713
9714				// Overrides response content-type header
9715				overrideMimeType: function( type ) {
9716					if ( completed == null ) {
9717						s.mimeType = type;
9718					}
9719					return this;
9720				},
9721
9722				// Status-dependent callbacks
9723				statusCode: function( map ) {
9724					var code;
9725					if ( map ) {
9726						if ( completed ) {
9727
9728							// Execute the appropriate callbacks
9729							jqXHR.always( map[ jqXHR.status ] );
9730						} else {
9731
9732							// Lazy-add the new callbacks in a way that preserves old ones
9733							for ( code in map ) {
9734								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
9735							}
9736						}
9737					}
9738					return this;
9739				},
9740
9741				// Cancel the request
9742				abort: function( statusText ) {
9743					var finalText = statusText || strAbort;
9744					if ( transport ) {
9745						transport.abort( finalText );
9746					}
9747					done( 0, finalText );
9748					return this;
9749				}
9750			};
9751
9752		// Attach deferreds
9753		deferred.promise( jqXHR );
9754
9755		// Add protocol if not provided (prefilters might expect it)
9756		// Handle falsy url in the settings object (#10093: consistency with old signature)
9757		// We also use the url parameter if available
9758		s.url = ( ( url || s.url || location.href ) + "" )
9759			.replace( rprotocol, location.protocol + "//" );
9760
9761		// Alias method option to type as per ticket #12004
9762		s.type = options.method || options.type || s.method || s.type;
9763
9764		// Extract dataTypes list
9765		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
9766
9767		// A cross-domain request is in order when the origin doesn't match the current origin.
9768		if ( s.crossDomain == null ) {
9769			urlAnchor = document.createElement( "a" );
9770
9771			// Support: IE <=8 - 11, Edge 12 - 15
9772			// IE throws exception on accessing the href property if url is malformed,
9773			// e.g. http://example.com:80x/
9774			try {
9775				urlAnchor.href = s.url;
9776
9777				// Support: IE <=8 - 11 only
9778				// Anchor's host property isn't correctly set when s.url is relative
9779				urlAnchor.href = urlAnchor.href;
9780				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
9781					urlAnchor.protocol + "//" + urlAnchor.host;
9782			} catch ( e ) {
9783
9784				// If there is an error parsing the URL, assume it is crossDomain,
9785				// it can be rejected by the transport if it is invalid
9786				s.crossDomain = true;
9787			}
9788		}
9789
9790		// Convert data if not already a string
9791		if ( s.data && s.processData && typeof s.data !== "string" ) {
9792			s.data = jQuery.param( s.data, s.traditional );
9793		}
9794
9795		// Apply prefilters
9796		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
9797
9798		// If request was aborted inside a prefilter, stop there
9799		if ( completed ) {
9800			return jqXHR;
9801		}
9802
9803		// We can fire global events as of now if asked to
9804		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
9805		fireGlobals = jQuery.event && s.global;
9806
9807		// Watch for a new set of requests
9808		if ( fireGlobals && jQuery.active++ === 0 ) {
9809			jQuery.event.trigger( "ajaxStart" );
9810		}
9811
9812		// Uppercase the type
9813		s.type = s.type.toUpperCase();
9814
9815		// Determine if request has content
9816		s.hasContent = !rnoContent.test( s.type );
9817
9818		// Save the URL in case we're toying with the If-Modified-Since
9819		// and/or If-None-Match header later on
9820		// Remove hash to simplify url manipulation
9821		cacheURL = s.url.replace( rhash, "" );
9822
9823		// More options handling for requests with no content
9824		if ( !s.hasContent ) {
9825
9826			// Remember the hash so we can put it back
9827			uncached = s.url.slice( cacheURL.length );
9828
9829			// If data is available and should be processed, append data to url
9830			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
9831				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
9832
9833				// #9682: remove data so that it's not used in an eventual retry
9834				delete s.data;
9835			}
9836
9837			// Add or update anti-cache param if needed
9838			if ( s.cache === false ) {
9839				cacheURL = cacheURL.replace( rantiCache, "$1" );
9840				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
9841					uncached;
9842			}
9843
9844			// Put hash and anti-cache on the URL that will be requested (gh-1732)
9845			s.url = cacheURL + uncached;
9846
9847		// Change '%20' to '+' if this is encoded form body content (gh-2658)
9848		} else if ( s.data && s.processData &&
9849			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
9850			s.data = s.data.replace( r20, "+" );
9851		}
9852
9853		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
9854		if ( s.ifModified ) {
9855			if ( jQuery.lastModified[ cacheURL ] ) {
9856				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
9857			}
9858			if ( jQuery.etag[ cacheURL ] ) {
9859				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
9860			}
9861		}
9862
9863		// Set the correct header, if data is being sent
9864		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
9865			jqXHR.setRequestHeader( "Content-Type", s.contentType );
9866		}
9867
9868		// Set the Accepts header for the server, depending on the dataType
9869		jqXHR.setRequestHeader(
9870			"Accept",
9871			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
9872				s.accepts[ s.dataTypes[ 0 ] ] +
9873					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
9874				s.accepts[ "*" ]
9875		);
9876
9877		// Check for headers option
9878		for ( i in s.headers ) {
9879			jqXHR.setRequestHeader( i, s.headers[ i ] );
9880		}
9881
9882		// Allow custom headers/mimetypes and early abort
9883		if ( s.beforeSend &&
9884			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
9885
9886			// Abort if not done already and return
9887			return jqXHR.abort();
9888		}
9889
9890		// Aborting is no longer a cancellation
9891		strAbort = "abort";
9892
9893		// Install callbacks on deferreds
9894		completeDeferred.add( s.complete );
9895		jqXHR.done( s.success );
9896		jqXHR.fail( s.error );
9897
9898		// Get transport
9899		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
9900
9901		// If no transport, we auto-abort
9902		if ( !transport ) {
9903			done( -1, "No Transport" );
9904		} else {
9905			jqXHR.readyState = 1;
9906
9907			// Send global event
9908			if ( fireGlobals ) {
9909				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
9910			}
9911
9912			// If request was aborted inside ajaxSend, stop there
9913			if ( completed ) {
9914				return jqXHR;
9915			}
9916
9917			// Timeout
9918			if ( s.async && s.timeout > 0 ) {
9919				timeoutTimer = window.setTimeout( function() {
9920					jqXHR.abort( "timeout" );
9921				}, s.timeout );
9922			}
9923
9924			try {
9925				completed = false;
9926				transport.send( requestHeaders, done );
9927			} catch ( e ) {
9928
9929				// Rethrow post-completion exceptions
9930				if ( completed ) {
9931					throw e;
9932				}
9933
9934				// Propagate others as results
9935				done( -1, e );
9936			}
9937		}
9938
9939		// Callback for when everything is done
9940		function done( status, nativeStatusText, responses, headers ) {
9941			var isSuccess, success, error, response, modified,
9942				statusText = nativeStatusText;
9943
9944			// Ignore repeat invocations
9945			if ( completed ) {
9946				return;
9947			}
9948
9949			completed = true;
9950
9951			// Clear timeout if it exists
9952			if ( timeoutTimer ) {
9953				window.clearTimeout( timeoutTimer );
9954			}
9955
9956			// Dereference transport for early garbage collection
9957			// (no matter how long the jqXHR object will be used)
9958			transport = undefined;
9959
9960			// Cache response headers
9961			responseHeadersString = headers || "";
9962
9963			// Set readyState
9964			jqXHR.readyState = status > 0 ? 4 : 0;
9965
9966			// Determine if successful
9967			isSuccess = status >= 200 && status < 300 || status === 304;
9968
9969			// Get response data
9970			if ( responses ) {
9971				response = ajaxHandleResponses( s, jqXHR, responses );
9972			}
9973
9974			// Use a noop converter for missing script but not if jsonp
9975			if ( !isSuccess &&
9976				jQuery.inArray( "script", s.dataTypes ) > -1 &&
9977				jQuery.inArray( "json", s.dataTypes ) < 0 ) {
9978				s.converters[ "text script" ] = function() {};
9979			}
9980
9981			// Convert no matter what (that way responseXXX fields are always set)
9982			response = ajaxConvert( s, response, jqXHR, isSuccess );
9983
9984			// If successful, handle type chaining
9985			if ( isSuccess ) {
9986
9987				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
9988				if ( s.ifModified ) {
9989					modified = jqXHR.getResponseHeader( "Last-Modified" );
9990					if ( modified ) {
9991						jQuery.lastModified[ cacheURL ] = modified;
9992					}
9993					modified = jqXHR.getResponseHeader( "etag" );
9994					if ( modified ) {
9995						jQuery.etag[ cacheURL ] = modified;
9996					}
9997				}
9998
9999				// if no content
10000				if ( status === 204 || s.type === "HEAD" ) {
10001					statusText = "nocontent";
10002
10003				// if not modified
10004				} else if ( status === 304 ) {
10005					statusText = "notmodified";
10006
10007				// If we have data, let's convert it
10008				} else {
10009					statusText = response.state;
10010					success = response.data;
10011					error = response.error;
10012					isSuccess = !error;
10013				}
10014			} else {
10015
10016				// Extract error from statusText and normalize for non-aborts
10017				error = statusText;
10018				if ( status || !statusText ) {
10019					statusText = "error";
10020					if ( status < 0 ) {
10021						status = 0;
10022					}
10023				}
10024			}
10025
10026			// Set data for the fake xhr object
10027			jqXHR.status = status;
10028			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
10029
10030			// Success/Error
10031			if ( isSuccess ) {
10032				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
10033			} else {
10034				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
10035			}
10036
10037			// Status-dependent callbacks
10038			jqXHR.statusCode( statusCode );
10039			statusCode = undefined;
10040
10041			if ( fireGlobals ) {
10042				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
10043					[ jqXHR, s, isSuccess ? success : error ] );
10044			}
10045
10046			// Complete
10047			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
10048
10049			if ( fireGlobals ) {
10050				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
10051
10052				// Handle the global AJAX counter
10053				if ( !( --jQuery.active ) ) {
10054					jQuery.event.trigger( "ajaxStop" );
10055				}
10056			}
10057		}
10058
10059		return jqXHR;
10060	},
10061
10062	getJSON: function( url, data, callback ) {
10063		return jQuery.get( url, data, callback, "json" );
10064	},
10065
10066	getScript: function( url, callback ) {
10067		return jQuery.get( url, undefined, callback, "script" );
10068	}
10069} );
10070
10071jQuery.each( [ "get", "post" ], function( _i, method ) {
10072	jQuery[ method ] = function( url, data, callback, type ) {
10073
10074		// Shift arguments if data argument was omitted
10075		if ( isFunction( data ) ) {
10076			type = type || callback;
10077			callback = data;
10078			data = undefined;
10079		}
10080
10081		// The url can be an options object (which then must have .url)
10082		return jQuery.ajax( jQuery.extend( {
10083			url: url,
10084			type: method,
10085			dataType: type,
10086			data: data,
10087			success: callback
10088		}, jQuery.isPlainObject( url ) && url ) );
10089	};
10090} );
10091
10092jQuery.ajaxPrefilter( function( s ) {
10093	var i;
10094	for ( i in s.headers ) {
10095		if ( i.toLowerCase() === "content-type" ) {
10096			s.contentType = s.headers[ i ] || "";
10097		}
10098	}
10099} );
10100
10101
10102jQuery._evalUrl = function( url, options, doc ) {
10103	return jQuery.ajax( {
10104		url: url,
10105
10106		// Make this explicit, since user can override this through ajaxSetup (#11264)
10107		type: "GET",
10108		dataType: "script",
10109		cache: true,
10110		async: false,
10111		global: false,
10112
10113		// Only evaluate the response if it is successful (gh-4126)
10114		// dataFilter is not invoked for failure responses, so using it instead
10115		// of the default converter is kludgy but it works.
10116		converters: {
10117			"text script": function() {}
10118		},
10119		dataFilter: function( response ) {
10120			jQuery.globalEval( response, options, doc );
10121		}
10122	} );
10123};
10124
10125
10126jQuery.fn.extend( {
10127	wrapAll: function( html ) {
10128		var wrap;
10129
10130		if ( this[ 0 ] ) {
10131			if ( isFunction( html ) ) {
10132				html = html.call( this[ 0 ] );
10133			}
10134
10135			// The elements to wrap the target around
10136			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
10137
10138			if ( this[ 0 ].parentNode ) {
10139				wrap.insertBefore( this[ 0 ] );
10140			}
10141
10142			wrap.map( function() {
10143				var elem = this;
10144
10145				while ( elem.firstElementChild ) {
10146					elem = elem.firstElementChild;
10147				}
10148
10149				return elem;
10150			} ).append( this );
10151		}
10152
10153		return this;
10154	},
10155
10156	wrapInner: function( html ) {
10157		if ( isFunction( html ) ) {
10158			return this.each( function( i ) {
10159				jQuery( this ).wrapInner( html.call( this, i ) );
10160			} );
10161		}
10162
10163		return this.each( function() {
10164			var self = jQuery( this ),
10165				contents = self.contents();
10166
10167			if ( contents.length ) {
10168				contents.wrapAll( html );
10169
10170			} else {
10171				self.append( html );
10172			}
10173		} );
10174	},
10175
10176	wrap: function( html ) {
10177		var htmlIsFunction = isFunction( html );
10178
10179		return this.each( function( i ) {
10180			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
10181		} );
10182	},
10183
10184	unwrap: function( selector ) {
10185		this.parent( selector ).not( "body" ).each( function() {
10186			jQuery( this ).replaceWith( this.childNodes );
10187		} );
10188		return this;
10189	}
10190} );
10191
10192
10193jQuery.expr.pseudos.hidden = function( elem ) {
10194	return !jQuery.expr.pseudos.visible( elem );
10195};
10196jQuery.expr.pseudos.visible = function( elem ) {
10197	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
10198};
10199
10200
10201
10202
10203jQuery.ajaxSettings.xhr = function() {
10204	try {
10205		return new window.XMLHttpRequest();
10206	} catch ( e ) {}
10207};
10208
10209var xhrSuccessStatus = {
10210
10211		// File protocol always yields status code 0, assume 200
10212		0: 200,
10213
10214		// Support: IE <=9 only
10215		// #1450: sometimes IE returns 1223 when it should be 204
10216		1223: 204
10217	},
10218	xhrSupported = jQuery.ajaxSettings.xhr();
10219
10220support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
10221support.ajax = xhrSupported = !!xhrSupported;
10222
10223jQuery.ajaxTransport( function( options ) {
10224	var callback, errorCallback;
10225
10226	// Cross domain only allowed if supported through XMLHttpRequest
10227	if ( support.cors || xhrSupported && !options.crossDomain ) {
10228		return {
10229			send: function( headers, complete ) {
10230				var i,
10231					xhr = options.xhr();
10232
10233				xhr.open(
10234					options.type,
10235					options.url,
10236					options.async,
10237					options.username,
10238					options.password
10239				);
10240
10241				// Apply custom fields if provided
10242				if ( options.xhrFields ) {
10243					for ( i in options.xhrFields ) {
10244						xhr[ i ] = options.xhrFields[ i ];
10245					}
10246				}
10247
10248				// Override mime type if needed
10249				if ( options.mimeType && xhr.overrideMimeType ) {
10250					xhr.overrideMimeType( options.mimeType );
10251				}
10252
10253				// X-Requested-With header
10254				// For cross-domain requests, seeing as conditions for a preflight are
10255				// akin to a jigsaw puzzle, we simply never set it to be sure.
10256				// (it can always be set on a per-request basis or even using ajaxSetup)
10257				// For same-domain requests, won't change header if already provided.
10258				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
10259					headers[ "X-Requested-With" ] = "XMLHttpRequest";
10260				}
10261
10262				// Set headers
10263				for ( i in headers ) {
10264					xhr.setRequestHeader( i, headers[ i ] );
10265				}
10266
10267				// Callback
10268				callback = function( type ) {
10269					return function() {
10270						if ( callback ) {
10271							callback = errorCallback = xhr.onload =
10272								xhr.onerror = xhr.onabort = xhr.ontimeout =
10273									xhr.onreadystatechange = null;
10274
10275							if ( type === "abort" ) {
10276								xhr.abort();
10277							} else if ( type === "error" ) {
10278
10279								// Support: IE <=9 only
10280								// On a manual native abort, IE9 throws
10281								// errors on any property access that is not readyState
10282								if ( typeof xhr.status !== "number" ) {
10283									complete( 0, "error" );
10284								} else {
10285									complete(
10286
10287										// File: protocol always yields status 0; see #8605, #14207
10288										xhr.status,
10289										xhr.statusText
10290									);
10291								}
10292							} else {
10293								complete(
10294									xhrSuccessStatus[ xhr.status ] || xhr.status,
10295									xhr.statusText,
10296
10297									// Support: IE <=9 only
10298									// IE9 has no XHR2 but throws on binary (trac-11426)
10299									// For XHR2 non-text, let the caller handle it (gh-2498)
10300									( xhr.responseType || "text" ) !== "text"  ||
10301									typeof xhr.responseText !== "string" ?
10302										{ binary: xhr.response } :
10303										{ text: xhr.responseText },
10304									xhr.getAllResponseHeaders()
10305								);
10306							}
10307						}
10308					};
10309				};
10310
10311				// Listen to events
10312				xhr.onload = callback();
10313				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
10314
10315				// Support: IE 9 only
10316				// Use onreadystatechange to replace onabort
10317				// to handle uncaught aborts
10318				if ( xhr.onabort !== undefined ) {
10319					xhr.onabort = errorCallback;
10320				} else {
10321					xhr.onreadystatechange = function() {
10322
10323						// Check readyState before timeout as it changes
10324						if ( xhr.readyState === 4 ) {
10325
10326							// Allow onerror to be called first,
10327							// but that will not handle a native abort
10328							// Also, save errorCallback to a variable
10329							// as xhr.onerror cannot be accessed
10330							window.setTimeout( function() {
10331								if ( callback ) {
10332									errorCallback();
10333								}
10334							} );
10335						}
10336					};
10337				}
10338
10339				// Create the abort callback
10340				callback = callback( "abort" );
10341
10342				try {
10343
10344					// Do send the request (this may raise an exception)
10345					xhr.send( options.hasContent && options.data || null );
10346				} catch ( e ) {
10347
10348					// #14683: Only rethrow if this hasn't been notified as an error yet
10349					if ( callback ) {
10350						throw e;
10351					}
10352				}
10353			},
10354
10355			abort: function() {
10356				if ( callback ) {
10357					callback();
10358				}
10359			}
10360		};
10361	}
10362} );
10363
10364
10365
10366
10367// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
10368jQuery.ajaxPrefilter( function( s ) {
10369	if ( s.crossDomain ) {
10370		s.contents.script = false;
10371	}
10372} );
10373
10374// Install script dataType
10375jQuery.ajaxSetup( {
10376	accepts: {
10377		script: "text/javascript, application/javascript, " +
10378			"application/ecmascript, application/x-ecmascript"
10379	},
10380	contents: {
10381		script: /\b(?:java|ecma)script\b/
10382	},
10383	converters: {
10384		"text script": function( text ) {
10385			jQuery.globalEval( text );
10386			return text;
10387		}
10388	}
10389} );
10390
10391// Handle cache's special case and crossDomain
10392jQuery.ajaxPrefilter( "script", function( s ) {
10393	if ( s.cache === undefined ) {
10394		s.cache = false;
10395	}
10396	if ( s.crossDomain ) {
10397		s.type = "GET";
10398	}
10399} );
10400
10401// Bind script tag hack transport
10402jQuery.ajaxTransport( "script", function( s ) {
10403
10404	// This transport only deals with cross domain or forced-by-attrs requests
10405	if ( s.crossDomain || s.scriptAttrs ) {
10406		var script, callback;
10407		return {
10408			send: function( _, complete ) {
10409				script = jQuery( "<script>" )
10410					.attr( s.scriptAttrs || {} )
10411					.prop( { charset: s.scriptCharset, src: s.url } )
10412					.on( "load error", callback = function( evt ) {
10413						script.remove();
10414						callback = null;
10415						if ( evt ) {
10416							complete( evt.type === "error" ? 404 : 200, evt.type );
10417						}
10418					} );
10419
10420				// Use native DOM manipulation to avoid our domManip AJAX trickery
10421				document.head.appendChild( script[ 0 ] );
10422			},
10423			abort: function() {
10424				if ( callback ) {
10425					callback();
10426				}
10427			}
10428		};
10429	}
10430} );
10431
10432
10433
10434
10435var oldCallbacks = [],
10436	rjsonp = /(=)\?(?=&|$)|\?\?/;
10437
10438// Default jsonp settings
10439jQuery.ajaxSetup( {
10440	jsonp: "callback",
10441	jsonpCallback: function() {
10442		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
10443		this[ callback ] = true;
10444		return callback;
10445	}
10446} );
10447
10448// Detect, normalize options and install callbacks for jsonp requests
10449jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
10450
10451	var callbackName, overwritten, responseContainer,
10452		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
10453			"url" :
10454			typeof s.data === "string" &&
10455				( s.contentType || "" )
10456					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
10457				rjsonp.test( s.data ) && "data"
10458		);
10459
10460	// Handle iff the expected data type is "jsonp" or we have a parameter to set
10461	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
10462
10463		// Get callback name, remembering preexisting value associated with it
10464		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
10465			s.jsonpCallback() :
10466			s.jsonpCallback;
10467
10468		// Insert callback into url or form data
10469		if ( jsonProp ) {
10470			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
10471		} else if ( s.jsonp !== false ) {
10472			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
10473		}
10474
10475		// Use data converter to retrieve json after script execution
10476		s.converters[ "script json" ] = function() {
10477			if ( !responseContainer ) {
10478				jQuery.error( callbackName + " was not called" );
10479			}
10480			return responseContainer[ 0 ];
10481		};
10482
10483		// Force json dataType
10484		s.dataTypes[ 0 ] = "json";
10485
10486		// Install callback
10487		overwritten = window[ callbackName ];
10488		window[ callbackName ] = function() {
10489			responseContainer = arguments;
10490		};
10491
10492		// Clean-up function (fires after converters)
10493		jqXHR.always( function() {
10494
10495			// If previous value didn't exist - remove it
10496			if ( overwritten === undefined ) {
10497				jQuery( window ).removeProp( callbackName );
10498
10499			// Otherwise restore preexisting value
10500			} else {
10501				window[ callbackName ] = overwritten;
10502			}
10503
10504			// Save back as free
10505			if ( s[ callbackName ] ) {
10506
10507				// Make sure that re-using the options doesn't screw things around
10508				s.jsonpCallback = originalSettings.jsonpCallback;
10509
10510				// Save the callback name for future use
10511				oldCallbacks.push( callbackName );
10512			}
10513
10514			// Call if it was a function and we have a response
10515			if ( responseContainer && isFunction( overwritten ) ) {
10516				overwritten( responseContainer[ 0 ] );
10517			}
10518
10519			responseContainer = overwritten = undefined;
10520		} );
10521
10522		// Delegate to script
10523		return "script";
10524	}
10525} );
10526
10527
10528
10529
10530// Support: Safari 8 only
10531// In Safari 8 documents created via document.implementation.createHTMLDocument
10532// collapse sibling forms: the second one becomes a child of the first one.
10533// Because of that, this security measure has to be disabled in Safari 8.
10534// https://bugs.webkit.org/show_bug.cgi?id=137337
10535support.createHTMLDocument = ( function() {
10536	var body = document.implementation.createHTMLDocument( "" ).body;
10537	body.innerHTML = "<form></form><form></form>";
10538	return body.childNodes.length === 2;
10539} )();
10540
10541
10542// Argument "data" should be string of html
10543// context (optional): If specified, the fragment will be created in this context,
10544// defaults to document
10545// keepScripts (optional): If true, will include scripts passed in the html string
10546jQuery.parseHTML = function( data, context, keepScripts ) {
10547	if ( typeof data !== "string" ) {
10548		return [];
10549	}
10550	if ( typeof context === "boolean" ) {
10551		keepScripts = context;
10552		context = false;
10553	}
10554
10555	var base, parsed, scripts;
10556
10557	if ( !context ) {
10558
10559		// Stop scripts or inline event handlers from being executed immediately
10560		// by using document.implementation
10561		if ( support.createHTMLDocument ) {
10562			context = document.implementation.createHTMLDocument( "" );
10563
10564			// Set the base href for the created document
10565			// so any parsed elements with URLs
10566			// are based on the document's URL (gh-2965)
10567			base = context.createElement( "base" );
10568			base.href = document.location.href;
10569			context.head.appendChild( base );
10570		} else {
10571			context = document;
10572		}
10573	}
10574
10575	parsed = rsingleTag.exec( data );
10576	scripts = !keepScripts && [];
10577
10578	// Single tag
10579	if ( parsed ) {
10580		return [ context.createElement( parsed[ 1 ] ) ];
10581	}
10582
10583	parsed = buildFragment( [ data ], context, scripts );
10584
10585	if ( scripts && scripts.length ) {
10586		jQuery( scripts ).remove();
10587	}
10588
10589	return jQuery.merge( [], parsed.childNodes );
10590};
10591
10592
10593/**
10594 * Load a url into a page
10595 */
10596jQuery.fn.load = function( url, params, callback ) {
10597	var selector, type, response,
10598		self = this,
10599		off = url.indexOf( " " );
10600
10601	if ( off > -1 ) {
10602		selector = stripAndCollapse( url.slice( off ) );
10603		url = url.slice( 0, off );
10604	}
10605
10606	// If it's a function
10607	if ( isFunction( params ) ) {
10608
10609		// We assume that it's the callback
10610		callback = params;
10611		params = undefined;
10612
10613	// Otherwise, build a param string
10614	} else if ( params && typeof params === "object" ) {
10615		type = "POST";
10616	}
10617
10618	// If we have elements to modify, make the request
10619	if ( self.length > 0 ) {
10620		jQuery.ajax( {
10621			url: url,
10622
10623			// If "type" variable is undefined, then "GET" method will be used.
10624			// Make value of this field explicit since
10625			// user can override it through ajaxSetup method
10626			type: type || "GET",
10627			dataType: "html",
10628			data: params
10629		} ).done( function( responseText ) {
10630
10631			// Save response for use in complete callback
10632			response = arguments;
10633
10634			self.html( selector ?
10635
10636				// If a selector was specified, locate the right elements in a dummy div
10637				// Exclude scripts to avoid IE 'Permission Denied' errors
10638				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
10639
10640				// Otherwise use the full result
10641				responseText );
10642
10643		// If the request succeeds, this function gets "data", "status", "jqXHR"
10644		// but they are ignored because response was set above.
10645		// If it fails, this function gets "jqXHR", "status", "error"
10646		} ).always( callback && function( jqXHR, status ) {
10647			self.each( function() {
10648				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
10649			} );
10650		} );
10651	}
10652
10653	return this;
10654};
10655
10656
10657
10658
10659jQuery.expr.pseudos.animated = function( elem ) {
10660	return jQuery.grep( jQuery.timers, function( fn ) {
10661		return elem === fn.elem;
10662	} ).length;
10663};
10664
10665
10666
10667
10668jQuery.offset = {
10669	setOffset: function( elem, options, i ) {
10670		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
10671			position = jQuery.css( elem, "position" ),
10672			curElem = jQuery( elem ),
10673			props = {};
10674
10675		// Set position first, in-case top/left are set even on static elem
10676		if ( position === "static" ) {
10677			elem.style.position = "relative";
10678		}
10679
10680		curOffset = curElem.offset();
10681		curCSSTop = jQuery.css( elem, "top" );
10682		curCSSLeft = jQuery.css( elem, "left" );
10683		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
10684			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
10685
10686		// Need to be able to calculate position if either
10687		// top or left is auto and position is either absolute or fixed
10688		if ( calculatePosition ) {
10689			curPosition = curElem.position();
10690			curTop = curPosition.top;
10691			curLeft = curPosition.left;
10692
10693		} else {
10694			curTop = parseFloat( curCSSTop ) || 0;
10695			curLeft = parseFloat( curCSSLeft ) || 0;
10696		}
10697
10698		if ( isFunction( options ) ) {
10699
10700			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
10701			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
10702		}
10703
10704		if ( options.top != null ) {
10705			props.top = ( options.top - curOffset.top ) + curTop;
10706		}
10707		if ( options.left != null ) {
10708			props.left = ( options.left - curOffset.left ) + curLeft;
10709		}
10710
10711		if ( "using" in options ) {
10712			options.using.call( elem, props );
10713
10714		} else {
10715			curElem.css( props );
10716		}
10717	}
10718};
10719
10720jQuery.fn.extend( {
10721
10722	// offset() relates an element's border box to the document origin
10723	offset: function( options ) {
10724
10725		// Preserve chaining for setter
10726		if ( arguments.length ) {
10727			return options === undefined ?
10728				this :
10729				this.each( function( i ) {
10730					jQuery.offset.setOffset( this, options, i );
10731				} );
10732		}
10733
10734		var rect, win,
10735			elem = this[ 0 ];
10736
10737		if ( !elem ) {
10738			return;
10739		}
10740
10741		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
10742		// Support: IE <=11 only
10743		// Running getBoundingClientRect on a
10744		// disconnected node in IE throws an error
10745		if ( !elem.getClientRects().length ) {
10746			return { top: 0, left: 0 };
10747		}
10748
10749		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
10750		rect = elem.getBoundingClientRect();
10751		win = elem.ownerDocument.defaultView;
10752		return {
10753			top: rect.top + win.pageYOffset,
10754			left: rect.left + win.pageXOffset
10755		};
10756	},
10757
10758	// position() relates an element's margin box to its offset parent's padding box
10759	// This corresponds to the behavior of CSS absolute positioning
10760	position: function() {
10761		if ( !this[ 0 ] ) {
10762			return;
10763		}
10764
10765		var offsetParent, offset, doc,
10766			elem = this[ 0 ],
10767			parentOffset = { top: 0, left: 0 };
10768
10769		// position:fixed elements are offset from the viewport, which itself always has zero offset
10770		if ( jQuery.css( elem, "position" ) === "fixed" ) {
10771
10772			// Assume position:fixed implies availability of getBoundingClientRect
10773			offset = elem.getBoundingClientRect();
10774
10775		} else {
10776			offset = this.offset();
10777
10778			// Account for the *real* offset parent, which can be the document or its root element
10779			// when a statically positioned element is identified
10780			doc = elem.ownerDocument;
10781			offsetParent = elem.offsetParent || doc.documentElement;
10782			while ( offsetParent &&
10783				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
10784				jQuery.css( offsetParent, "position" ) === "static" ) {
10785
10786				offsetParent = offsetParent.parentNode;
10787			}
10788			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
10789
10790				// Incorporate borders into its offset, since they are outside its content origin
10791				parentOffset = jQuery( offsetParent ).offset();
10792				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
10793				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
10794			}
10795		}
10796
10797		// Subtract parent offsets and element margins
10798		return {
10799			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
10800			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
10801		};
10802	},
10803
10804	// This method will return documentElement in the following cases:
10805	// 1) For the element inside the iframe without offsetParent, this method will return
10806	//    documentElement of the parent window
10807	// 2) For the hidden or detached element
10808	// 3) For body or html element, i.e. in case of the html node - it will return itself
10809	//
10810	// but those exceptions were never presented as a real life use-cases
10811	// and might be considered as more preferable results.
10812	//
10813	// This logic, however, is not guaranteed and can change at any point in the future
10814	offsetParent: function() {
10815		return this.map( function() {
10816			var offsetParent = this.offsetParent;
10817
10818			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
10819				offsetParent = offsetParent.offsetParent;
10820			}
10821
10822			return offsetParent || documentElement;
10823		} );
10824	}
10825} );
10826
10827// Create scrollLeft and scrollTop methods
10828jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
10829	var top = "pageYOffset" === prop;
10830
10831	jQuery.fn[ method ] = function( val ) {
10832		return access( this, function( elem, method, val ) {
10833
10834			// Coalesce documents and windows
10835			var win;
10836			if ( isWindow( elem ) ) {
10837				win = elem;
10838			} else if ( elem.nodeType === 9 ) {
10839				win = elem.defaultView;
10840			}
10841
10842			if ( val === undefined ) {
10843				return win ? win[ prop ] : elem[ method ];
10844			}
10845
10846			if ( win ) {
10847				win.scrollTo(
10848					!top ? val : win.pageXOffset,
10849					top ? val : win.pageYOffset
10850				);
10851
10852			} else {
10853				elem[ method ] = val;
10854			}
10855		}, method, val, arguments.length );
10856	};
10857} );
10858
10859// Support: Safari <=7 - 9.1, Chrome <=37 - 49
10860// Add the top/left cssHooks using jQuery.fn.position
10861// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
10862// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
10863// getComputedStyle returns percent when specified for top/left/bottom/right;
10864// rather than make the css module depend on the offset module, just check for it here
10865jQuery.each( [ "top", "left" ], function( _i, prop ) {
10866	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
10867		function( elem, computed ) {
10868			if ( computed ) {
10869				computed = curCSS( elem, prop );
10870
10871				// If curCSS returns percentage, fallback to offset
10872				return rnumnonpx.test( computed ) ?
10873					jQuery( elem ).position()[ prop ] + "px" :
10874					computed;
10875			}
10876		}
10877	);
10878} );
10879
10880
10881// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
10882jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
10883	jQuery.each( {
10884		padding: "inner" + name,
10885		content: type,
10886		"": "outer" + name
10887	}, function( defaultExtra, funcName ) {
10888
10889		// Margin is only for outerHeight, outerWidth
10890		jQuery.fn[ funcName ] = function( margin, value ) {
10891			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
10892				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
10893
10894			return access( this, function( elem, type, value ) {
10895				var doc;
10896
10897				if ( isWindow( elem ) ) {
10898
10899					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
10900					return funcName.indexOf( "outer" ) === 0 ?
10901						elem[ "inner" + name ] :
10902						elem.document.documentElement[ "client" + name ];
10903				}
10904
10905				// Get document width or height
10906				if ( elem.nodeType === 9 ) {
10907					doc = elem.documentElement;
10908
10909					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
10910					// whichever is greatest
10911					return Math.max(
10912						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
10913						elem.body[ "offset" + name ], doc[ "offset" + name ],
10914						doc[ "client" + name ]
10915					);
10916				}
10917
10918				return value === undefined ?
10919
10920					// Get width or height on the element, requesting but not forcing parseFloat
10921					jQuery.css( elem, type, extra ) :
10922
10923					// Set width or height on the element
10924					jQuery.style( elem, type, value, extra );
10925			}, type, chainable ? margin : undefined, chainable );
10926		};
10927	} );
10928} );
10929
10930
10931jQuery.each( [
10932	"ajaxStart",
10933	"ajaxStop",
10934	"ajaxComplete",
10935	"ajaxError",
10936	"ajaxSuccess",
10937	"ajaxSend"
10938], function( _i, type ) {
10939	jQuery.fn[ type ] = function( fn ) {
10940		return this.on( type, fn );
10941	};
10942} );
10943
10944
10945
10946
10947jQuery.fn.extend( {
10948
10949	bind: function( types, data, fn ) {
10950		return this.on( types, null, data, fn );
10951	},
10952	unbind: function( types, fn ) {
10953		return this.off( types, null, fn );
10954	},
10955
10956	delegate: function( selector, types, data, fn ) {
10957		return this.on( types, selector, data, fn );
10958	},
10959	undelegate: function( selector, types, fn ) {
10960
10961		// ( namespace ) or ( selector, types [, fn] )
10962		return arguments.length === 1 ?
10963			this.off( selector, "**" ) :
10964			this.off( types, selector || "**", fn );
10965	},
10966
10967	hover: function( fnOver, fnOut ) {
10968		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
10969	}
10970} );
10971
10972jQuery.each(
10973	( "blur focus focusin focusout resize scroll click dblclick " +
10974	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
10975	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
10976	function( _i, name ) {
10977
10978		// Handle event binding
10979		jQuery.fn[ name ] = function( data, fn ) {
10980			return arguments.length > 0 ?
10981				this.on( name, null, data, fn ) :
10982				this.trigger( name );
10983		};
10984	}
10985);
10986
10987
10988
10989
10990// Support: Android <=4.0 only
10991// Make sure we trim BOM and NBSP
10992var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
10993
10994// Bind a function to a context, optionally partially applying any
10995// arguments.
10996// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
10997// However, it is not slated for removal any time soon
10998jQuery.proxy = function( fn, context ) {
10999	var tmp, args, proxy;
11000
11001	if ( typeof context === "string" ) {
11002		tmp = fn[ context ];
11003		context = fn;
11004		fn = tmp;
11005	}
11006
11007	// Quick check to determine if target is callable, in the spec
11008	// this throws a TypeError, but we will just return undefined.
11009	if ( !isFunction( fn ) ) {
11010		return undefined;
11011	}
11012
11013	// Simulated bind
11014	args = slice.call( arguments, 2 );
11015	proxy = function() {
11016		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
11017	};
11018
11019	// Set the guid of unique handler to the same of original handler, so it can be removed
11020	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
11021
11022	return proxy;
11023};
11024
11025jQuery.holdReady = function( hold ) {
11026	if ( hold ) {
11027		jQuery.readyWait++;
11028	} else {
11029		jQuery.ready( true );
11030	}
11031};
11032jQuery.isArray = Array.isArray;
11033jQuery.parseJSON = JSON.parse;
11034jQuery.nodeName = nodeName;
11035jQuery.isFunction = isFunction;
11036jQuery.isWindow = isWindow;
11037jQuery.camelCase = camelCase;
11038jQuery.type = toType;
11039
11040jQuery.now = Date.now;
11041
11042jQuery.isNumeric = function( obj ) {
11043
11044	// As of jQuery 3.0, isNumeric is limited to
11045	// strings and numbers (primitives or objects)
11046	// that can be coerced to finite numbers (gh-2662)
11047	var type = jQuery.type( obj );
11048	return ( type === "number" || type === "string" ) &&
11049
11050		// parseFloat NaNs numeric-cast false positives ("")
11051		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
11052		// subtraction forces infinities to NaN
11053		!isNaN( obj - parseFloat( obj ) );
11054};
11055
11056jQuery.trim = function( text ) {
11057	return text == null ?
11058		"" :
11059		( text + "" ).replace( rtrim, "" );
11060};
11061
11062
11063
11064// Register as a named AMD module, since jQuery can be concatenated with other
11065// files that may use define, but not via a proper concatenation script that
11066// understands anonymous AMD modules. A named AMD is safest and most robust
11067// way to register. Lowercase jquery is used because AMD module names are
11068// derived from file names, and jQuery is normally delivered in a lowercase
11069// file name. Do this after creating the global so that if an AMD module wants
11070// to call noConflict to hide this version of jQuery, it will work.
11071
11072// Note that for maximum portability, libraries that are not jQuery should
11073// declare themselves as anonymous modules, and avoid setting a global if an
11074// AMD loader is present. jQuery is a special case. For more information, see
11075// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
11076
11077if ( typeof define === "function" && define.amd ) {
11078	define( "jquery", [], function() {
11079		return jQuery;
11080	} );
11081}
11082
11083
11084
11085
11086var
11087
11088	// Map over jQuery in case of overwrite
11089	_jQuery = window.jQuery,
11090
11091	// Map over the $ in case of overwrite
11092	_$ = window.$;
11093
11094jQuery.noConflict = function( deep ) {
11095	if ( window.$ === jQuery ) {
11096		window.$ = _$;
11097	}
11098
11099	if ( deep && window.jQuery === jQuery ) {
11100		window.jQuery = _jQuery;
11101	}
11102
11103	return jQuery;
11104};
11105
11106// Expose jQuery and $ identifiers, even in AMD
11107// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
11108// and CommonJS for browser emulators (#13566)
11109if ( typeof noGlobal === "undefined" ) {
11110	window.jQuery = window.$ = jQuery;
11111}
11112
11113
11114
vendor: 2,733 bytes, lines 11115-11124
11115
11116return jQuery;
11117} );
11118
11119�/*! jQuery UI - v1.14.1 - 2024-10-30
11120* https://jqueryui.com
11121* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
11122* Copyright OpenJS Foundation and other contributors; Licensed MIT */
11123
11124(t=>{"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(V){V.ui=V.ui||{};V.ui.version="1.14.1";var n,s,x,k,o,a,r,l,h,i,E=0,N=Array.prototype.hasOwnProperty,c=Array.prototype.slice;V.cleanData=(n=V.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=V._data(i,"events"))&&e.remove&&V(i).triggerHandler("remove");n(t)}),V.widget=function(t,i,e){var s,n,o,a,r={},l=t.split(".")[0];return"__proto__"===(t=t.split(".")[1])||"constructor"===t?V.error("Invalid widget name: "+t):(a=l+"-"+t,e||(e=i,i=V.Widget),Array.isArray(e)&&(e=V.extend.apply(null,[{}].concat(e))),V.expr.pseudos[a.toLowerCase()]=function(t){return!!V.data(t,a)},V[l]=V[l]||{},s=V[l][t],n=V[l][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},V.extend(n,s,{version:e.version,_proto:V.extend({},e),_childConstructors:[]}),(o=new i).options=V.widget.extend({},o.options),V.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}r[e]="function"!=typeof s?s:function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}}),n.prototype=V.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},r,{constructor:n,namespace:l,widgetName:t,widgetFullName:a}),s?(V.each(s._childConstructors,function(t,e){var i=e.prototype;V.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),V.widget.bridge(t,n),n)}
vendor: 28,883 bytes, line 11124
11124,V.widget.extend=function(t){for(var e,i,s=c.call(arguments,1),n=0,o=s.length;n<o;n++)for(e in s[n])i=s[n][e],N.call(s[n],e)&&void 0!==i&&(V.isPlainObject(i)?t[e]=V.isPlainObject(t[e])?V.widget.extend({},t[e],i):V.widget.extend({},i):t[e]=i);return t},V.widget.bridge=function(o,e){var a=e.prototype.widgetFullName||o;V.fn[o]=function(i){var t="string"==typeof i,s=c.call(arguments,1),n=this;return t?this.length||"instance"!==i?this.each(function(){var t,e=V.data(this,a);return"instance"===i?(n=e,!1):e?"function"!=typeof e[i]||"_"===i.charAt(0)?V.error("no such method '"+i+"' for "+o+" widget instance"):(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:V.error("cannot call methods on "+o+" prior to initialization; attempted to call method '"+i+"'")}):n=void 0:(s.length&&(i=V.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=V.data(this,a);t?(t.option(i||{}),t._init&&t._init()):V.data(this,a,new e(i,this))})),n}},V.Widget=function(){},V.Widget._childConstructors=[],V.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=V(e||this.defaultElement||this)[0],this.element=V(e),this.uuid=E++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=V(),this.hoverable=V(),this.focusable=V(),this.classesElementLookup={},e!==this&&(V.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=V(e.style?e.ownerDocument:e.document||e),this.window=V(this.document[0].defaultView||this.document[0].parentWindow)),this.options=V.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:V.noop,_create:V.noop,_init:V.noop,destroy:function(){var i=this;this._destroy(),V.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:V.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return V.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=V.widget.extend({},this.options[t]),n=0;n<i.length-1;n++)s[i[n]]=s[i[n]]||{},s=s[i[n]];if(t=i.pop(),1===arguments.length)return void 0===s[t]?null:s[t];s[t]=e}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=e}return this._setOptions(o),this},_setOptions:function(t){for(var e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(t){var e,i,s;for(e in t)s=this.classesElementLookup[e],t[e]!==this.options.classes[e]&&s&&s.length&&(i=V(s.get()),this._removeClass(s,e),i.addClass(this._classes({element:i,keys:e,classes:t,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(n){var o=[],a=this;function t(t,e){for(var i,s=0;s<t.length;s++)i=a.classesElementLookup[t[s]]||V(),i=n.add?((()=>{var i=[];n.element.each(function(t,e){V.map(a.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),a._on(V(i),{remove:"_untrackClassesElement"})})(),V(V.uniqueSort(i.get().concat(n.element.get())))):V(i.not(n.element).get()),a.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=V.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\S+/g)||[],!0),n.extra&&t(n.extra.match(/\S+/g)||[]),o.join(" ")},_untrackClassesElement:function(i){var s=this;V.each(s.classesElementLookup,function(t,e){-1!==V.inArray(i.target,e)&&(s.classesElementLookup[t]=V(e.not(i.target).get()))}),this._off(V(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n="string"==typeof t||null===t,e={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s="boolean"==typeof s?s:i};return e.element.toggleClass(this._classes(e),s),this},_on:function(n,o,t){var a,r=this;"boolean"!=typeof n&&(t=o,o=n,n=!1),t?(o=a=V(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,a=this.widget()),V.each(t,function(t,e){function i(){if(n||!0!==r.options.disabled&&!V(this).hasClass("ui-state-disabled"))return("string"==typeof e?r[e]:e).apply(r,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||V.guid++);var t=t.match(/^([\w:-]*)\s*(.*)$/),s=t[1]+r.eventNamespace,t=t[2];t?a.on(s,t,i):o.on(s,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(e),this.bindings=V(this.bindings.not(t).get()),this.focusable=V(this.focusable.not(t).get()),this.hoverable=V(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(V(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(V(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(V(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(V(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=V.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!("function"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},V.each({show:"fadeIn",hide:"fadeOut"},function(o,a){V.Widget.prototype["_"+o]=function(e,t,i){var s,n=(t="string"==typeof t?{effect:t}:t)?!0!==t&&"number"!=typeof t&&t.effect||a:o;"number"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!V.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&V.effects&&V.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){V(this)[o](),i&&i.call(e[0]),t()})}}),V.widget;function C(t,e,i){return[parseFloat(t[0])*(h.test(t[0])?e/100:1),parseFloat(t[1])*(h.test(t[1])?i/100:1)]}function D(t,e){return parseInt(V.css(t,e),10)||0}function I(t){return null!=t&&t===t.window}x=Math.max,k=Math.abs,o=/left|center|right/,a=/top|center|bottom/,r=/[\+\-]\d+(\.[\d]+)?%?/,l=/^\w+/,h=/%$/,i=V.fn.position,V.position={scrollbarWidth:function(){var t,e,i;return void 0!==s?s:(i=(e=V("<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>")).children()[0],V("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i)},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.width<t.element[0].scrollWidth;return{width:"scroll"===i||"auto"===i&&t.height<t.element[0].scrollHeight?V.position.scrollbarWidth():0,height:e?V.position.scrollbarWidth():0}},getWithinInfo:function(t){var e=V(t||window),i=I(e[0]),s=!!e[0]&&9===e[0].nodeType;return{element:e,isWindow:i,isDocument:s,offset:!i&&!s?V(t).offset():{left:0,top:0},scrollLeft:e.scrollLeft(),scrollTop:e.scrollTop(),width:e.outerWidth(),height:e.outerHeight()}}},V.fn.position=function(u){var d,p,f,g,m,_,v,b,y,w,t,e;return u&&u.of?(_="string"==typeof(u=V.extend({},u)).of?V(document).find(u.of):V(u.of),v=V.position.getWithinInfo(u.within),b=V.position.getScrollInfo(v),y=(u.collision||"flip").split(" "),w={},e=9===(e=(t=_)[0]).nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:I(e)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:e.preventDefault?{width:0,height:0,offset:{top:e.pageY,left:e.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()},_[0].preventDefault&&(u.at="left top"),p=e.width,f=e.height,m=V.extend({},g=e.offset),V.each(["my","at"],function(){var t,e,i=(u[this]||"").split(" ");(i=1===i.length?o.test(i[0])?i.concat(["center"]):a.test(i[0])?["center"].concat(i):["center","center"]:i)[0]=o.test(i[0])?i[0]:"center",i[1]=a.test(i[1])?i[1]:"center",t=r.exec(i[0]),e=r.exec(i[1]),w[this]=[t?t[0]:0,e?e[0]:0],u[this]=[l.exec(i[0])[0],l.exec(i[1])[0]]}),1===y.length&&(y[1]=y[0]),"right"===u.at[0]?m.left+=p:"center"===u.at[0]&&(m.left+=p/2),"bottom"===u.at[1]?m.top+=f:"center"===u.at[1]&&(m.top+=f/2),d=C(w.at,p,f),m.left+=d[0],m.top+=d[1],this.each(function(){var i,t,a=V(this),r=a.outerWidth(),l=a.outerHeight(),e=D(this,"marginLeft"),s=D(this,"marginTop"),n=r+e+D(this,"marginRight")+b.width,o=l+s+D(this,"marginBottom")+b.height,h=V.extend({},m),c=C(w.my,a.outerWidth(),a.outerHeight());"right"===u.my[0]?h.left-=r:"center"===u.my[0]&&(h.left-=r/2),"bottom"===u.my[1]?h.top-=l:"center"===u.my[1]&&(h.top-=l/2),h.left+=c[0],h.top+=c[1],i={marginLeft:e,marginTop:s},V.each(["left","top"],function(t,e){V.ui.position[y[t]]&&V.ui.position[y[t]][e](h,{targetWidth:p,targetHeight:f,elemWidth:r,elemHeight:l,collisionPosition:i,collisionWidth:n,collisionHeight:o,offset:[d[0]+c[0],d[1]+c[1]],my:u.my,at:u.at,within:v,elem:a})}),u.using&&(t=function(t){var e=g.left-h.left,i=e+p-r,s=g.top-h.top,n=s+f-l,o={target:{element:_,left:g.left,top:g.top,width:p,height:f},element:{element:a,left:h.left,top:h.top,width:r,height:l},horizontal:i<0?"left":0<e?"right":"center",vertical:n<0?"top":0<s?"bottom":"middle"};p<r&&k(e+i)<p&&(o.horizontal="center"),f<l&&k(s+n)<f&&(o.vertical="middle"),x(k(e),k(i))>x(k(s),k(n))?o.important="horizontal":o.important="vertical",u.using.call(this,t,o)}),a.offset(V.extend(h,{using:t}))})):i.apply(this,arguments)},V.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,s=s.width,o=t.left-e.collisionPosition.marginLeft,a=n-o,r=o+e.collisionWidth-s-n;s<e.collisionWidth?0<a&&r<=0?(i=t.left+a+e.collisionWidth-s-n,t.left+=a-i):t.left=!(0<r&&a<=0)&&r<a?n+s-e.collisionWidth:n:0<a?t.left+=a:0<r?t.left-=r:t.left=x(t.left-o,t.left)},top:function(t,e){var i,s=e.within,s=s.isWindow?s.scrollTop:s.offset.top,n=e.within.height,o=t.top-e.collisionPosition.marginTop,a=s-o,r=o+e.collisionHeight-n-s;n<e.collisionHeight?0<a&&r<=0?(i=t.top+a+e.collisionHeight-n-s,t.top+=a-i):t.top=!(0<r&&a<=0)&&r<a?s+n-e.collisionHeight:s:0<a?t.top+=a:0<r?t.top-=r:t.top=x(t.top-o,t.top)}},flip:{left:function(t,e){var i=e.within,s=i.offset.left+i.scrollLeft,n=i.width,i=i.isWindow?i.scrollLeft:i.offset.left,o=t.left-e.collisionPosition.marginLeft,a=o-i,o=o+e.collisionWidth-n-i,r="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,l="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,h=-2*e.offset[0];a<0?((n=t.left+r+l+h+e.collisionWidth-n-s)<0||n<k(a))&&(t.left+=r+l+h):0<o&&(0<(s=t.left-e.collisionPosition.marginLeft+r+l+h-i)||k(s)<o)&&(t.left+=r+l+h)},top:function(t,e){var i=e.within,s=i.offset.top+i.scrollTop,n=i.height,i=i.isWindow?i.scrollTop:i.offset.top,o=t.top-e.collisionPosition.marginTop,a=o-i,o=o+e.collisionHeight-n-i,r="top"===e.my[1]?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,l="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,h=-2*e.offset[1];a<0?((n=t.top+r+l+h+e.collisionHeight-n-s)<0||n<k(a))&&(t.top+=r+l+h):0<o&&(0<(s=t.top-e.collisionPosition.marginTop+r+l+h-i)||k(s)<o)&&(t.top+=r+l+h)}},flipfit:{left:function(){V.ui.position.flip.left.apply(this,arguments),V.ui.position.fit.left.apply(this,arguments)},top:function(){V.ui.position.flip.top.apply(this,arguments),V.ui.position.fit.top.apply(this,arguments)}}};V.ui.position,V.extend(V.expr.pseudos,{data:V.expr.createPseudo(function(e){return function(t){return!!V.data(t,e)}})}),V.fn.extend({disableSelection:(t="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}),enableSelection:function(){return this.off(".ui-disableSelection")}});var t,u=V,d={},W=d.toString,F=/^([\-+])=\s*(\d+\.?\d*)/,L=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),t[4]?(parseInt(t[4],16)/255).toFixed(2):1]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16),t[4]?(parseInt(t[4]+t[4],16)/255).toFixed(2):1]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],p=u.Color=function(t,e,i,s){return new u.Color.fn.parse(t,e,i,s)},f={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},R={byte:{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},g=u.each;function m(t){return null==t?t+"":"object"==typeof t?d[W.call(t)]||"object":typeof t}function _(t,e,i){var s=R[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),s.mod?(t+s.mod)%s.mod:Math.min(s.max,Math.max(0,t)))}function Y(s){var n=p(),o=n._rgba=[];return s=s.toLowerCase(),g(L,function(t,e){var i=e.re.exec(s),i=i&&e.parse(i),e=e.space||"rgba";if(i)return i=n[e](i),n[f[e].cache]=i[f[e].cache],o=n._rgba=i._rgba,!1}),o.length?("0,0,0,0"===o.join()&&u.extend(o,y.transparent),n):y[s]}function v(t,e,i){return 6*(i=(i+1)%1)<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}g(f,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),u.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(t,e){d["[object "+e+"]"]=e.toLowerCase()}),p.fn=u.extend(p.prototype,{parse:function(n,t,e,i){if(void 0===n)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=u(n).css(t),t=void 0);var o=this,s=m(n),a=this._rgba=[];return void 0!==t&&(n=[n,t,e,i],s="array"),"string"===s?this.parse(Y(n)||y._default):"array"===s?(g(f.rgba.props,function(t,e){a[e.idx]=_(n[e.idx],e)}),this):"object"===s?(n instanceof p?g(f,function(t,e){n[e.cache]&&(o[e.cache]=n[e.cache].slice())}):g(f,function(t,i){var s=i.cache;g(i.props,function(t,e){if(!o[s]&&i.to){if("alpha"===t||null==n[t])return;o[s]=i.to(o._rgba)}o[s][e.idx]=_(n[t],e,!0)}),o[s]&&u.inArray(null,o[s].slice(0,3))<0&&(null==o[s][3]&&(o[s][3]=1),i.from)&&(o._rgba=i.from(o[s]))}),this):void 0},is:function(t){var n=p(t),o=!0,a=this;return g(f,function(t,e){var i,s=n[e.cache];return s&&(i=a[e.cache]||e.to&&e.to(a._rgba)||[],g(e.props,function(t,e){if(null!=s[e.idx])return o=s[e.idx]===i[e.idx]})),o}),o},_space:function(){var i=[],s=this;return g(f,function(t,e){s[e.cache]&&i.push(t)}),i.pop()},transition:function(t,a){var t=(h=p(t))._space(),e=f[t],i=0===this.alpha()?p("transparent"):this,r=i[e.cache]||e.to(i._rgba),l=r.slice(),h=h[e.cache];return g(e.props,function(t,e){var i=e.idx,s=r[i],n=h[i],o=R[e.type]||{};null!==n&&(null===s?l[i]=n:(o.mod&&(n-s>o.mod/2?s+=o.mod:s-n>o.mod/2&&(s-=o.mod)),l[i]=_((n-s)*a+s,e)))}),this[t](l)},blend:function(t){var e,i,s;return 1===this._rgba[3]?this:(e=this._rgba.slice(),i=e.pop(),s=p(t)._rgba,p(u.map(e,function(t,e){return(1-i)*s[e]+i*t})))},toRgbaString:function(){var t="rgba(",e=u.map(this._rgba,function(t,e){return null!=t?t:2<e?1:0});return 1===e[3]&&(e.pop(),t="rgb("),t+e.join(", ")+")"},toHslaString:function(){var t="hsla(",e=u.map(this.hsla(),function(t,e){return null==t&&(t=2<e?1:0),t=e&&e<3?Math.round(100*t)+"%":t});return 1===e[3]&&(e.pop(),t="hsl("),t+e.join(", ")+")"},toHexString:function(t){var e=this._rgba.slice(),i=e.pop();return t&&e.push(~~(255*i)),"#"+u.map(e,function(t){return("0"+(t||0).toString(16)).substr(-2)}).join("")},toString:function(){return this.toRgbaString()}}),p.fn.parse.prototype=p.fn,f.hsla.to=function(t){var e,i,s,n,o,a,r,l;return null==t[0]||null==t[1]||null==t[2]?[null,null,null,t[3]]:(e=t[0]/255,i=t[1]/255,s=t[2]/255,t=t[3],n=(l=Math.max(e,i,s))-(r=Math.min(e,i,s)),a=.5*(o=l+r),r=r===l?0:e===l?60*(i-s)/n+360:i===l?60*(s-e)/n+120:60*(e-i)/n+240,l=0==n?0:a<=.5?n/o:n/(2-o),[Math.round(r)%360,l,a,null==t?1:t])},f.hsla.from=function(t){var e,i,s;return null==t[0]||null==t[1]||null==t[2]?[null,null,null,t[3]]:(e=t[0]/360,s=t[1],i=t[3],s=2*(t=t[2])-(t=t<=.5?t*(1+s):t+s-t*s),[Math.round(255*v(s,t,e+1/3)),Math.round(255*v(s,t,e)),Math.round(255*v(s,t,e-1/3)),i])},g(f,function(r,t){var e=t.props,o=t.cache,a=t.to,l=t.from;p.fn[r]=function(t){var i,s,n;return a&&!this[o]&&(this[o]=a(this._rgba)),void 0===t?this[o].slice():(i=m(t),s="array"===i||"object"===i?t:arguments,n=this[o].slice(),g(e,function(t,e){t=s["object"===i?t:e.idx];null==t&&(t=n[e.idx]),n[e.idx]=_(t,e)}),l?((t=p(l(n)))[o]=n,t):p(n))},g(e,function(o,a){p.fn[o]||(p.fn[o]=function(t){var e=m(t),i="alpha"===o?this._hsla?"hsla":"rgba":r,s=this[i](),n=s[a.idx];return"undefined"===e?n:("function"===e&&(e=m(t=t.call(this,n))),null==t&&a.empty?this:("string"===e&&(e=F.exec(t))&&(t=n+parseFloat(e[2])*("+"===e[1]?1:-1)),s[a.idx]=t,this[i](s)))})})}),p.hook=function(t){t=t.split(" ");g(t,function(t,s){u.cssHooks[s]={set:function(t,e){var i;"transparent"===e||"string"===m(e)&&!(i=Y(e))||(e=(e=p(i||e)).toRgbaString()),t.style[s]=e}},u.fx.step[s]=function(t){t.colorInit||(t.start=p(t.elem,s),t.end=p(t.end),t.colorInit=!0),u.cssHooks[s].set(t.elem,t.start.transition(t.end,t.pos))}})},p.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"),u.cssHooks.borderColor={expand:function(i){var s={};return g(["Top","Right","Bottom","Left"],function(t,e){s["border"+e+"Color"]=i}),s}};var B,j,q,K,U,X,$,G,Q,b,y=u.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"},w="ui-effects-",e="ui-effects-style",T="ui-effects-animated";function J(t){for(var e,i=t.ownerDocument.defaultView.getComputedStyle(t),s={},n=i.length;n--;)"string"==typeof i[e=i[n]]&&(s[e.replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()})]=i[e]);return s}function P(t,e,i,s){return t={effect:t=V.isPlainObject(t)?(e=t).effect:t},"function"==typeof(e=null==e?{}:e)&&(s=e,i=null,e={}),"number"!=typeof e&&!V.fx.speeds[e]||(s=i,i=e,e={}),"function"==typeof i&&(s=i,i=null),e&&V.extend(t,e),i=i||e.duration,t.duration=V.fx.off?0:"number"==typeof i?i:i in V.fx.speeds?V.fx.speeds[i]:V.fx.speeds._default,t.complete=s||e.complete,t}function M(t){return!t||"number"==typeof t||V.fx.speeds[t]||"string"==typeof t&&!V.effects.effect[t]||"function"==typeof t||"object"==typeof t&&!t.effect}function Z(t,e){var i=e.outerWidth(),e=e.outerHeight(),t=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/.exec(t)||["",0,i,e,0];return{top:parseFloat(t[1])||0,right:"auto"===t[2]?i:parseFloat(t[2]),bottom:"auto"===t[3]?e:parseFloat(t[3]),left:parseFloat(t[4])||0}}V.effects={effect:{}},K=["add","remove","toggle"],U={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1},V.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,e){V.fx.step[e]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(u.style(t.elem,e,t.end),t.setAttr=!0)}}),V.effects.animateClass=function(n,t,e,i){var o=V.speed(t,e,i);return this.queue(function(){var i=V(this),t=i.attr("class")||"",e=(e=o.children?i.find("*").addBack():i).map(function(){return{el:V(this),start:J(this)}}),s=function(){V.each(K,function(t,e){n[e]&&i[e+"Class"](n[e])})};s(),e=e.map(function(){return this.end=J(this.el[0]),this.diff=((t,e)=>{var i,s,n={};for(i in e)s=e[i],t[i]===s||U[i]||!V.fx.step[i]&&isNaN(parseFloat(s))||(n[i]=s);return n})(this.start,this.end),this}),i.attr("class",t),e=e.map(function(){var t=this,e=V.Deferred(),i=V.extend({},o,{queue:!1,complete:function(){e.resolve(t)}});return this.el.animate(this.diff,i),e.promise()}),V.when.apply(V,e.get()).done(function(){s(),V.each(arguments,function(){var e=this.el;V.each(this.diff,function(t){e.css(t,"")})}),o.complete.call(i[0])})})},V.fn.extend({addClass:(q=V.fn.addClass,function(t,e,i,s){return e?V.effects.animateClass.call(this,{add:t},e,i,s):q.apply(this,arguments)}),removeClass:(j=V.fn.removeClass,function(t,e,i,s){return 1<arguments.length?V.effects.animateClass.call(this,{remove:t},e,i,s):j.apply(this,arguments)}),toggleClass:(B=V.fn.toggleClass,function(t,e,i,s,n){return"boolean"==typeof e||void 0===e?i?V.effects.animateClass.call(this,e?{add:t}:{remove:t},i,s,n):B.apply(this,arguments):V.effects.animateClass.call(this,{toggle:t},e,i,s)}),switchClass:function(t,e,i,s,n){return V.effects.animateClass.call(this,{add:e,remove:t},i,s,n)}}),V.expr&&V.expr.pseudos&&V.expr.pseudos.animated&&(V.expr.pseudos.animated=(X=V.expr.pseudos.animated,function(t){return!!V(t).data(T)||X(t)})),!0===V.uiBackCompat&&V.extend(V.effects,{save:function(t,e){for(var i=0,s=e.length;i<s;i++)null!==e[i]&&t.data(w+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;s<n;s++)null!==e[s]&&(i=t.data(w+e[s]),t.css(e[s],i))},setMode:function(t,e){return e="toggle"===e?t.is(":hidden")?"show":"hide":e},createWrapper:function(i){if(i.parent().is(".ui-effects-wrapper"))return i.parent();var s={width:i.outerWidth(!0),height:i.outerHeight(!0),float:i.css("float")},t=V("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),i[0]!==n&&!V.contains(i[0],n)||V(n).trigger("focus"),t=i.parent(),"static"===i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(V.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),V.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),t[0]!==e&&!V.contains(t[0],e)||V(e).trigger("focus")),t}}),V.extend(V.effects,{version:"1.14.1",define:function(t,e,i){return i||(i=e,e="effect"),V.effects.effect[t]=i,V.effects.effect[t].mode=e,i},scaledDimensions:function(t,e,i){var s;return 0===e?{height:0,width:0,outerHeight:0,outerWidth:0}:(s="horizontal"!==i?(e||100)/100:1,i="vertical"!==i?(e||100)/100:1,{height:t.height()*i,width:t.width()*s,outerHeight:t.outerHeight()*i,outerWidth:t.outerWidth()*s})},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();1<e&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(e,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(e)||"",t.removeData(e)},mode:function(t,e){t=t.is(":hidden");return"toggle"===e&&(e=t?"show":"hide"),e=(t?"hide"===e:"show"===e)?"none":e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(t){var e,i=t.css("position"),s=t.position();return t.css({marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()),/^(static|relative)/.test(i)&&(i="absolute",e=V("<"+t[0].nodeName+">").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data(w+"placeholder",e)),t.css({position:i,left:s.left,top:s.top}),e},removePlaceholder:function(t){var e=w+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(t){V.effects.restoreStyle(t),V.effects.removePlaceholder(t)},setTransition:function(s,t,n,o){return o=o||{},V.each(t,function(t,e){var i=s.cssUnit(e);0<i[0]&&(o[e]=i[0]*n+i[1])}),o}}),V.fn.extend({effect:function(){function t(t){var e=V(this),i=V.effects.mode(e,r)||o;e.data(T,!0),l.push(i),o&&("show"===i||i===o&&"hide"===i)&&e.show(),o&&"none"===i||V.effects.saveStyle(e),"function"==typeof t&&t()}var s=P.apply(this,arguments),n=V.effects.effect[s.effect],o=n.mode,e=s.queue,i=e||"fx",a=s.complete,r=s.mode,l=[];return V.fx.off||!n?r?this[r](s.duration,a):this.each(function(){a&&a.call(this)}):!1===e?this.each(t).each(h):this.queue(i,t).queue(i,h);function h(t){var e=V(this);function i(){"function"==typeof a&&a.call(e[0]),"function"==typeof t&&t()}s.mode=l.shift(),!0!==V.uiBackCompat||o?"none"===s.mode?(e[r](),i()):n.call(e[0],s,function(){e.removeData(T),V.effects.cleanUp(e),"hide"===s.mode&&e.hide(),i()}):(e.is(":hidden")?"hide"===r:"show"===r)?(e[r](),i()):n.call(e[0],s,i)}},show:(Q=V.fn.show,function(t){return M(t)?Q.apply(this,arguments):((t=P.apply(this,arguments)).mode="show",this.effect.call(this,t))}),hide:(G=V.fn.hide,function(t){return M(t)?G.apply(this,arguments):((t=P.apply(this,arguments)).mode="hide",this.effect.call(this,t))}),toggle:($=V.fn.toggle,function(t){return M(t)||"boolean"==typeof t?$.apply(this,arguments):((t=P.apply(this,arguments)).mode="toggle",this.effect.call(this,t))}),cssUnit:function(t){var i=this.css(t),s=[];return V.each(["em","px","%","pt"],function(t,e){0<i.indexOf(e)&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):Z(this.css("clip"),this)},transfer:function(t,e){var i=V(this),s=V(t.to),n="fixed"===s.css("position"),o=V("body"),a=n?o.scrollTop():0,o=n?o.scrollLeft():0,r=s.offset(),r={top:r.top-a,left:r.left-o,height:s.innerHeight(),width:s.innerWidth()},s=i.offset(),l=V("<div class='ui-effects-transfer'></div>");l.appendTo("body").addClass(t.className).css({top:s.top-a,left:s.left-o,height:i.innerHeight(),width:i.innerWidth(),position:n?"fixed":"absolute"}).animate(r,t.duration,t.easing,function(){l.remove(),"function"==typeof e&&e()})}}),V.fx.step.clip=function(t){t.clipInit||(t.start=V(t.elem).cssClip(),"string"==typeof t.end&&(t.end=Z(t.end,t.elem)),t.clipInit=!0),V(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})},b={},V.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,t){b[t]=function(t){return Math.pow(t,e+2)}}),V.extend(b,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;t<((e=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),V.each(b,function(t,e){V.easing["easeIn"+t]=e,V.easing["easeOut"+t]=function(t){return 1-e(1-t)},V.easing["easeInOut"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}});var tt,et,S,it=V.effects,st=(
vendor: 8,072 bytes, line 11124
11124V.effects.define("blind","hide",function(t,e){var i={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},s=V(this),n=t.direction||"up",o=s.cssClip(),a={clip:V.extend({},o)},r=V.effects.createPlaceholder(s);a.clip[i[n][0]]=a.clip[i[n][1]],"show"===t.mode&&(s.cssClip(a.clip),r&&r.css(V.effects.clipToBox(a)),a.clip=o),r&&r.animate(V.effects.clipToBox(a),t.duration,t.easing),s.animate(a,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("bounce",function(t,e){var i,s,n=V(this),o=t.mode,a="hide"===o,o="show"===o,r=t.direction||"up",l=t.distance,h=t.times||5,c=2*h+(o||a?1:0),u=t.duration/c,d=t.easing,p="up"===r||"down"===r?"top":"left",f="up"===r||"left"===r,g=0,t=n.queue().length;for(V.effects.createPlaceholder(n),r=n.css(p),l=l||n["top"==p?"outerHeight":"outerWidth"]()/3,o&&((s={opacity:1})[p]=r,n.css("opacity",0).css(p,f?2*-l:2*l).animate(s,u,d)),a&&(l/=Math.pow(2,h-1)),(s={})[p]=r;g<h;g++)(i={})[p]=(f?"-=":"+=")+l,n.animate(i,u,d).animate(s,u,d),l=a?2*l:l/2;a&&((i={opacity:0})[p]=(f?"-=":"+=")+l,n.animate(i,u,d)),n.queue(e),V.effects.unshift(n,t,1+c)}),V.effects.define("clip","hide",function(t,e){var i={},s=V(this),n=t.direction||"vertical",o="both"===n,a=o||"horizontal"===n,o=o||"vertical"===n,n=s.cssClip();i.clip={top:o?(n.bottom-n.top)/2:n.top,right:a?(n.right-n.left)/2:n.right,bottom:o?(n.bottom-n.top)/2:n.bottom,left:a?(n.right-n.left)/2:n.left},V.effects.createPlaceholder(s),"show"===t.mode&&(s.cssClip(i.clip),i.clip=n),s.animate(i,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("drop","hide",function(t,e){var i,s=V(this),n="show"===t.mode,o=t.direction||"left",a="up"===o||"down"===o?"top":"left",o="up"===o||"left"===o?"-=":"+=",r="+="==o?"-=":"+=",l={opacity:0};V.effects.createPlaceholder(s),i=t.distance||s["top"==a?"outerHeight":"outerWidth"](!0)/2,l[a]=o+i,n&&(s.css(l),l[a]=r+i,l.opacity=1),s.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("explode","hide",function(t,e){var i,s,n,o,a,r,l=t.pieces?Math.round(Math.sqrt(t.pieces)):3,h=l,c=V(this),u="show"===t.mode,d=c.show().css("visibility","hidden").offset(),p=Math.ceil(c.outerWidth()/h),f=Math.ceil(c.outerHeight()/l),g=[];function m(){g.push(this),g.length===l*h&&(c.css({visibility:"visible"}),V(g).remove(),e())}for(i=0;i<l;i++)for(o=d.top+i*f,r=i-(l-1)/2,s=0;s<h;s++)n=d.left+s*p,a=s-(h-1)/2,c.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-s*p,top:-i*f}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:f,left:n+(u?a*p:0),top:o+(u?r*f:0),opacity:u?0:1}).animate({left:n+(u?0:a*p),top:o+(u?0:r*f),opacity:u?1:0},t.duration||500,t.easing,m)}),V.effects.define("fade","toggle",function(t,e){var i="show"===t.mode;V(this).css("opacity",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("fold","hide",function(e,t){var i=V(this),s=e.mode,n="show"===s,s="hide"===s,o=e.size||15,a=/([0-9]+)%/.exec(o),r=!!e.horizFirst?["right","bottom"]:["bottom","right"],l=e.duration/2,h=V.effects.createPlaceholder(i),c=i.cssClip(),u={clip:V.extend({},c)},d={clip:V.extend({},c)},p=[c[r[0]],c[r[1]]],f=i.queue().length;a&&(o=parseInt(a[1],10)/100*p[s?0:1]),u.clip[r[0]]=o,d.clip[r[0]]=o,d.clip[r[1]]=0,n&&(i.cssClip(d.clip),h&&h.css(V.effects.clipToBox(d)),d.clip=c),i.queue(function(t){h&&h.animate(V.effects.clipToBox(u),l,e.easing).animate(V.effects.clipToBox(d),l,e.easing),t()}).animate(u,l,e.easing).animate(d,l,e.easing).queue(t),V.effects.unshift(i,f,4)}),V.effects.define("highlight","show",function(t,e){var i=V(this),s={backgroundColor:i.css("backgroundColor")};"hide"===t.mode&&(s.opacity=0),V.effects.saveStyle(i),i.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("size",function(s,e){var n,i=V(this),t=["fontSize"],o=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],a=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],r=s.mode,l="effect"!==r,h=s.scale||"both",c=s.origin||["middle","center"],u=i.css("position"),d=i.position(),p=V.effects.scaledDimensions(i),f=s.from||p,g=s.to||V.effects.scaledDimensions(i,0);V.effects.createPlaceholder(i),"show"===r&&(r=f,f=g,g=r),n={from:{y:f.height/p.height,x:f.width/p.width},to:{y:g.height/p.height,x:g.width/p.width}},"box"!==h&&"both"!==h||(n.from.y!==n.to.y&&(f=V.effects.setTransition(i,o,n.from.y,f),g=V.effects.setTransition(i,o,n.to.y,g)),n.from.x!==n.to.x&&(f=V.effects.setTransition(i,a,n.from.x,f),g=V.effects.setTransition(i,a,n.to.x,g))),"content"!==h&&"both"!==h||n.from.y!==n.to.y&&(f=V.effects.setTransition(i,t,n.from.y,f),g=V.effects.setTransition(i,t,n.to.y,g)),c&&(r=V.effects.getBaseline(c,p),f.top=(p.outerHeight-f.outerHeight)*r.y+d.top,f.left=(p.outerWidth-f.outerWidth)*r.x+d.left,g.top=(p.outerHeight-g.outerHeight)*r.y+d.top,g.left=(p.outerWidth-g.outerWidth)*r.x+d.left),delete f.outerHeight,delete f.outerWidth,i.css(f),"content"!==h&&"both"!==h||(o=o.concat(["marginTop","marginBottom"]).concat(t),a=a.concat(["marginLeft","marginRight"]),i.find("*[width]").each(function(){var t=V(this),e=V.effects.scaledDimensions(t),i={height:e.height*n.from.y,width:e.width*n.from.x,outerHeight:e.outerHeight*n.from.y,outerWidth:e.outerWidth*n.from.x},e={height:e.height*n.to.y,width:e.width*n.to.x,outerHeight:e.height*n.to.y,outerWidth:e.width*n.to.x};n.from.y!==n.to.y&&(i=V.effects.setTransition(t,o,n.from.y,i),e=V.effects.setTransition(t,o,n.to.y,e)),n.from.x!==n.to.x&&(i=V.effects.setTransition(t,a,n.from.x,i),e=V.effects.setTransition(t,a,n.to.x,e)),l&&V.effects.saveStyle(t),t.css(i),t.animate(e,s.duration,s.easing,function(){l&&V.effects.restoreStyle(t)})})),i.animate(g,{queue:!1,duration:s.duration,easing:s.easing,complete:function(){var t=i.offset();0===g.opacity&&i.css("opacity",f.opacity),l||(i.css("position","static"===u?"relative":u).offset(t),V.effects.saveStyle(i)),e()}})}),V.effects.define("scale",function(t,e){var i=V(this),s=t.mode,s=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||"effect"!==s?0:100),i=V.extend(!0,{from:V.effects.scaledDimensions(i),to:V.effects.scaledDimensions(i,s,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(i.from.opacity=1,i.to.opacity=0),V.effects.effect.size.call(this,i,e)}),V.effects.define("puff","hide",function(t,e){t=V.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});V.effects.effect.scale.call(this,t,e)}),V.effects.define("pulsate","show",function(t,e){var i=V(this),s=t.mode,n="show"===s,o=2*(t.times||5)+(n||"hide"===s?1:0),a=t.duration/o,r=0,l=1,s=i.queue().length;for(!n&&i.is(":visible")||(i.css("opacity",0).show(),r=1);l<o;l++)i.animate({opacity:r},a,t.easing),r=1-r;i.animate({opacity:r},a,t.easing),i.queue(e),V.effects.unshift(i,s,1+o)}),V.effects.define("shake",function(t,e){var i=1,s=V(this),n=t.direction||"left",o=t.distance||20,a=t.times||3,r=2*a+1,l=Math.round(t.duration/r),h="up"===n||"down"===n?"top":"left",n="up"===n||"left"===n,c={},u={},d={},p=s.queue().length;for(V.effects.createPlaceholder(s),c[h]=(n?"-=":"+=")+o,u[h]=(n?"+=":"-=")+2*o,d[h]=(n?"-=":"+=")+2*o,s.animate(c,l,t.easing);i<a;i++)s.animate(u,l,t.easing).animate(d,l,t.easing);s.animate(u,l,t.easing).animate(c,l/2,t.easing).queue(e),V.effects.unshift(s,p,1+r)}),V.effects.define("slide","show",function(t,e){var i,s,n=V(this),o={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},a=t.mode,r=t.direction||"left",l="up"===r||"down"===r?"top":"left",h="up"===r||"left"===r,c=t.distance||n["top"==l?"outerHeight":"outerWidth"](!0),u={};V.effects.createPlaceholder(n),i=n.cssClip(),s=n.position()[l],u[l]=(h?-1:1)*c+s,u.clip=n.cssClip(),u.clip[o[r][1]]=u.clip[o[r][0]],"show"===a&&(n.cssClip(u.clip),n.css(l,u[l]),u.clip=i,u[l]=s),n.animate(u,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),
11124it=!0===V.uiBackCompat?V.effects.define("transfer",function(t,e){V(this).transfer(t,e)}):it,V.ui.focusable=function(t,e){var i,s,n,o=t.nodeName.toLowerCase();return"area"===o?(n=(i=t.parentNode).name,!(!t.href||!n||"map"!==i.nodeName.toLowerCase())&&0<(i=V("img[usemap='#"+n+"']")).length&&i.is(":visible")):(/^(input|select|textarea|button|object)$/.test(o)?(s=!t.disabled)&&(n=V(t).closest("fieldset")[0])&&(s=!n.disabled):s="a"===o&&t.href||e,s&&V(t).is(":visible")&&"visible"===V(t).css("visibility"))},V.extend(V.expr.pseudos,{focusable:function(t){return V.ui.focusable(t,null!=V.attr(t,"tabindex"))}}),V.ui.focusable,V.ui.formResetMixin={_formResetHandler:function(){var e=V(this);setTimeout(function(){var t=e.data("ui-form-reset-instances");V.each(t,function(){this.refresh()})})},_bindFormResetHandler:function(){var t;this.form=V(this.element.prop("form")),this.form.length&&((t=this.form.data("ui-form-reset-instances")||[]).length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t))},_unbindFormResetHandler:function(){var t;this.form.length&&((t=this.form.data("ui-form-reset-instances")).splice(V.inArray(this,t),1),t.length?this.form.data("ui-form-reset-instances",t):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset"))}},V.escapeSelector||(V.escapeSelector=function(t){return CSS.escape(t+"")}),V.fn.even&&V.fn.odd||V.fn.extend({even:function(){return this.filter(function(t){return t%2==0})},odd:function(){return this.filter(function(t){return t%2==1})}}),V.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},V.fn.labels=function(){var t,e,i;return this.length?this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(e=this.eq(0).parents("label"),(t=this.attr("id"))&&(i=(i=this.eq(0).parents().last(
vendor: 16,441 bytes, line 11124
11124)).add((i.length?i:this).siblings()),t="label[for='"+CSS.escape(t)+"']",e=e.add(i.find(t).addBack(t))),this.pushStack(e)):this.pushStack([])},V.fn.scrollParent=function(t){var e=this.css("position"),i="absolute"===e,s=t?/(auto|scroll|hidden)/:/(auto|scroll)/,t=this.parents().filter(function(){var t=V(this);return(!i||"static"!==t.css("position"))&&s.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==e&&t.length?t:V(this[0].ownerDocument||document)},V.extend(V.expr.pseudos,{tabbable:function(t){var e=V.attr(t,"tabindex"),i=null!=e;return(!i||0<=e)&&V.ui.focusable(t,i)}}),V.fn.extend({uniqueId:(tt=0,function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++tt)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&V(this).removeAttr("id")})}}),V.widget("ui.accordion",{version:"1.14.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:function(t){return t.find("> li > :first-child").add(t.find("> :not(li)").filter(function(t){return t%2==0}))},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=V(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():V()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=V("<span>"),this._addClass(t,"ui-accordion-header-icon","ui-icon "+e.header),t.prependTo(this.headers),t=this.active.children(".ui-accordion-header-icon"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){"active"===t?this._activate(e):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e)&&this._createIcons())},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=V.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(V(t.target).attr("tabIndex",-1),V(n).attr("tabIndex",0),V(n).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===V.ui.keyCode.UP&&t.ctrlKey&&V(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=V()):!1===t.active?this._activate(0):this.active.length&&!V.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=V()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=V(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=V(this).outerHeight(!0)}),this.headers.next().each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){var t=V(this).is(":visible");t||V(this).show(),i=Math.max(i,V(this).css("height","").height()),t||V(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):V()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():s.next(),r=i.next(),r={oldHeader:i,oldPanel:r,newHeader:o?V():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,r)||(e.active=!o&&this.headers.index(s),this.active=n?V():s,this._toggle(r),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),e.icons&&(a=i.children(".ui-accordion-header-icon"),this._removeClass(a,null,e.icons.activeHeader)._addClass(a,null,e.icons.header)),n)||(this._removeClass(s,"ui-accordion-header-collapsed")._addClass(s,"ui-accordion-header-active","ui-state-active"),e.icons&&(t=s.children(".ui-accordion-header-icon"),this._removeClass(t,null,e.icons.header)._addClass(t,null,e.icons.activeHeader)),this._addClass(s.next(),"ui-accordion-content-active"))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(V(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){function s(){o._toggleComplete(e)}var n,o=this,a=0,r=t.css("box-sizing"),l=t.length&&(!i.length||t.index()<i.index()),h=this.options.animate||{},l=l&&h.down||h,c=(c="string"==typeof l?l:c)||l.easing||h.easing,u=(u="number"==typeof l?l:u)||l.duration||h.duration;return i.length?t.length?(n=t.show().outerHeight(),i.animate(this.hideProps,{duration:u,easing:c,step:function(t,e){e.now=Math.round(t)}}),void t.hide().animate(this.showProps,{duration:u,easing:c,complete:s,step:function(t,e){e.now=Math.round(t),"height"!==e.prop?"content-box"===r&&(a+=e.now):"content"!==o.options.heightStyle&&(e.now=Math.round(n-i.outerHeight()-a),a=0)}})):i.animate(this.hideProps,u,c,s):t.animate(this.showProps,u,c,s)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),this._trigger("activate",null,t)}}),V.widget("ui.menu",{version:"1.14.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=V(t.target),i=V(this.document[0].activeElement);!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active)&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){V.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=V(t.target).closest(".ui-menu-item"),i=V(t.currentTarget),e[0]!==i[0])||i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=V(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case V.ui.keyCode.PAGE_UP:this.previousPage(t);break;case V.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case V.ui.keyCode.HOME:this._move("first","first",t);break;case V.ui.keyCode.END:this._move("last","last",t);break;case V.ui.keyCode.UP:this.previous(t);break;case V.ui.keyCode.DOWN:this.next(t);break;case V.ui.keyCode.LEFT:this.collapse(t);break;case V.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case V.ui.keyCode.ENTER:case V.ui.keyCode.SPACE:this._activate(t);break;case V.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),t=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=V(this),e=t.prev(),i=V("<span>").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(t,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=V(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),e=(i=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(i,"ui-menu-item")._addClass(e,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!V.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(e=parseFloat(V.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(V.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-e-i,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s<e+t&&this.activeMenu.scrollTop(i+e-s+t))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(t){var e=V.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(e)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var t=i?this.element:V(e&&e.target).closest(this.element.find(".ui-menu"));t.length||(t=this.element),this._close(t),this.blur(e),this._removeClass(t.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=t},i?0:this.delay)},_close:function(t){(t=t||(this.active?this.active.parent():this.element)).find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","fal
11124se")},_closeOnDocumentClick:function(t){return!V(t.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this._menuItems(this.active.children(".ui-menu")).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_menuItems:function(t){return(t||this.element).find(this.options.items).filter(".ui-menu-item")},_move:function(t,e,i){var s;(s=this.active?"first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").last():this.active[t+"All"](".ui-menu-item").first():s)&&s.length&&this.active||(s=this._menuItems(this.activeMenu)[e]()),this.focus(i,s)},nextPage:function(t){var e,i,s;this.active?this.isLastItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.innerHeight(),0===V.fn.jquery.indexOf("3.2.")&&(s+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.nextAll(".ui-menu-item").each(function(){return(e=V(this)).offset().top-i-s<0}),this.focus(t,e)):this.focus(t,this._menuItems(this.activeMenu)[this.active?"last":"first"]())):this.next(t)},previousPage:function(t){var e,i,s;this.active?this.isFirstItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.innerHeight(),0===V.fn.jquery.indexOf("3.2.")&&(s+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.prevAll(".ui-menu-item").each(function(){return 0<(e=V(this)).offset().top-i+s}),this.focus(t,e)):this.focus(t,this._menuItems(this.activeMenu).first())):this.next(t)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||V(t.target).closest(".ui-menu-item");var e={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,e)},_filterMenuItems:function(t){var t=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),e=new RegExp("^"+t,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return e.test(String.prototype.trim.call(V(this).children(".ui-menu-item-wrapper").text()))})}}),V.widget("ui.autocomplete",{version:"1.14.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&"true"===this.element.prop("contentEditable"),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)i=!1,this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault();else if(!s){var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){n?(n=!1,t.preventDefault()):this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value(
vendor: 13,192 bytes, line 11124
11124)},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=V("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent)&&/^mouse/.test(t.originalEvent.type)?(this.menu.blur(),this.document.one("mousemove",function(){V(t.target).trigger(t.originalEvent)})):(s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(V("<div>").text(i))},100)))},menuselect:function(t,e){var e=e.item.data("ui-autocomplete-item"),i=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.trigger("focus"),this.previous=i),!1!==this._trigger("select",t,{item:e})&&this._value(e.value),this.term=this._value(),this.close(t),this.selectedItem=e}}),this.liveRegion=V("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||V.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=(t=(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))&&t[0]?t:this.element.closest(".ui-front, dialog")).length?t:this.document[0].body},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(V.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=V.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):!1!==this._trigger("search",e)?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")}.bind(this)},__response:function(t){t=t&&this._normalize(t),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:V.map(t,function(t){return"string"==typeof t?{label:t,value:t}:V.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var e=this.menu.element.empty();this._renderMenu(e,t),this.isNewMenu=!0,this.menu.refresh(),e.show(),this._resizeMenu(),e.position(V.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(i,t){var s=this;V.each(t,function(t,e){s._renderItemData(i,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(t,e){return V("<li>").append(V("<div>").text(e.label)).appendTo(t)},_move:function(t,e){this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur()):this.menu[t](e):this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())}}),V.extend(V.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(V.ui.autocomplete.escapeRegex(e),"i");return V.grep(t,function(t){return i.test(t.label||t.value||t)})}}),V.widget("ui.autocomplete",V.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1<t?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var e;this._superApply(arguments),this.options.disabled||this.cancelSearch||(e=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(V("<div>").text(e))},100))}}),V.ui.autocomplete,/ui-corner-([a-z]){2,6}/g);V.widget("ui.controlgroup",{version:"1.14.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var o=this,a=[];V.each(this.options.items,function(s,t){var e,n={};t&&("controlgroupLabel"===s?((e=o.element.find(t)).each(function(){var t=V(this);t.children(".ui-controlgroup-label-contents").length||t.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),o._addClass(e,null,"ui-widget ui-widget-content ui-state-default"),a=a.concat(e.get())):V.fn[s]&&(n=o["_"+s+"Options"]?o["_"+s+"Options"]("middle"):{classes:{}},o.element.find(t).each(function(){var t=V(this),e=t[s]("instance"),i=V.widget.extend({},n);"button"===s&&t.parent(".ui-spinner").length||((e=e||t[s]()[s]("instance"))&&(i.classes=o._resolveClassesValues(i.classes,e)),t[s](i),i=t[s]("widget"),V.data(i[0],"ui-controlgroup-data",e||t[s]("instance")),a.push(i[0]))})))}),this.childWidgets=V(V.uniqueSort(a)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var t=V(this).data("ui-controlgroup-data");t&&t[e]&&t[e]()})},_updateCornerClass:function(t,e){e=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),this._addClass(t,null,e)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){t=this._buildSimpleOptions(t,"ui-spinner");return t.classes["ui-spinner-up"]="",t.classes["ui-spinner-down"]="",t},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(i,s){var n={};return V.each(i,function(t){var e=s.options.classes[t]||"",e=String.prototype.trim.call(e.replace(st,""));n[t]=(e+" "+i[t]).replace(/\s+/g," ")}),n},_setOption:function(t,e){"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?this._callChildMethod(e?"disable":"enable"):this.refresh()},refresh:function(){var n,o=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),n=this.childWidgets,(n=this.options.onlyVisible?n.filter(":visible"):n).length&&(V.each(["first","last"],function(t,e){var i,s=n[e]().data("ui-controlgroup-data");s&&o["_"+s.widgetName+"Options"]?((i=o["_"+s.widgetName+"Options"](1===n.length?"only":e)).classes=o._resolveClassesValues(i.classes,s),s.element[s.widgetName](i)):o._updateCornerClass(n[e](),e)}),this._callChildMethod("refresh"))}}),V.widget("ui.checkboxradio",[V.ui.formResetMixin,{version:"1.14.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var t,e=this._super()||{};return this._readType(),t=this.element.labels(),this.label=V(t[t.length-1]),this.label.length||V.error("No label found for checkboxradio widget"),this.originalLabel="",(t=this.label.contents().not(this.element[0])).length&&(this.originalLabel+=t.clone().wrapAll("<div></div>").parent().html()),this.originalLabel&&(e.label=this.originalLabel),null!=(t=this.element[0].disabled)&&(e.disabled=t),e},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var t=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===t&&/radio|checkbox/.test(this.type)||V.error("Can't create checkboxradio on element.nodeName="+t+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var t=this.element[0].name,e="input[name='"+CSS.escape(t)+"']";return t?(this.form.length?V(this.form[0].elements).filter(e):V(e).filter(function(){return 0===V(V(this).prop("form")).length})).not(this.element):V([])},_toggleClasses:function(){var t=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",t)._toggleClass(this.icon,null,"ui-icon-blank",!t),"radio"===this.type&&this._getRadioGroup().each(function(){var t=V(this).checkboxradio("instance");t&&t._removeClass(t.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){"label"===t&&!e||(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e):this.refresh())},_updateIcon:function(t){var e="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=V("<span>"),this.iconSpace=V("<span> </span>
11124"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(e+=t?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,t?"ui-icon-blank":"ui-icon-check")):e+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",e),t||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),(t=this.iconSpace?t.not(this.iconSpace[0]):t).remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),V.ui.checkboxradio,V.widget("ui.button",{version:"1.14.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),null!=(t=this.element[0].disabled)&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(t){t.keyCode===V.ui.keyCode.SPACE&&(t.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(t,e){var t="iconPosition"!==t,i=t?this.options.iconPosition:e,s="top"===i||"bottom"===i;this.icon?t&&this._removeClass(this.icon,null,this.options.icon):(this.icon=V("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),t&&this._addClass(this.icon,null,e),this._attachIcon(i),s?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconS
vendor: 45,161 bytes, line 11124
11124pace||(this.iconSpace=V("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(i))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=(void 0===t.showLabel?this.options:t).showLabel,i=(void 0===t.icon?this.options:t).icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace)&&this.iconSpace.remove()),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e)&&this.element.trigger("blur")},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),!0===V.uiBackCompat&&(V.widget("ui.button",V.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){"text"===t?this._super("showLabel",e):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments))}}),V.fn.button=(et=V.fn.button,function(i){var t="string"==typeof i,s=Array.prototype.slice.call(arguments,1),n=this;return t?this.length||"instance"!==i?this.each(function(){var t,e=V(this).attr("type"),e=V.data(this,"ui-"+("checkbox"!==e&&"radio"!==e?"button":"checkboxradio"));return"instance"===i?(n=e,!1):e?"function"!=typeof e[i]||"_"===i.charAt(0)?V.error("no such method '"+i+"' for button widget instance"):(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:V.error("cannot call methods on button prior to initialization; attempted to call method '"+i+"'")}):n=void 0:(s.length&&(i=V.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=V(this).attr("type"),t="checkbox"!==t&&"radio"!==t?"button":"checkboxradio",e=V.data(this,"ui-"+t);e?(e.option(i||{}),e._init&&e._init()):"button"==t?et.call(V(this),i):V(this).checkboxradio(V.extend({icon:!1},i))})),n}),V.fn.buttonset=function(){return V.ui.controlgroup||V.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),V.ui.button;function nt(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:"",selectMonthLabel:"Select month",selectYearLabel:"Select year"},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,onUpdateDatepicker:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},V.extend(this._defaults,this.regional[""]),this.regional.en=V.extend(!0,{},this.regional[""]),this.regional["en-US"]=V.extend(!0,{},this.regional.en),this.dpDiv=ot(V("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function ot(t){var e="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.on("mouseout",e,function(){V(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&V(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&V(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",e,at)}function at(){V.datepicker._isDisabledDatepicker((S.inline?S.dpDiv.parent():S.input)[0])||(V(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),V(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&V(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&V(this).addClass("ui-datepicker-next-hover"))}function H(t,e){for(var i in V.extend(t,e),e)null==e[i]&&(t[i]=e[i])}V.extend(V.ui,{datepicker:{version:"1.14.1"}}),V.extend(nt.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return H(this._defaults,t||{}),this},_attachDatepicker:function(t,e){var i,s=t.nodeName.toLowerCase(),n="div"===s||"span"===s;t.id||(this.uuid+=1,t.id="dp"+this.uuid),(i=this._newInst(V(t),n)).settings=V.extend({},e||{}),"input"===s?this._connectDatepicker(t,i):n&&this._inlineDatepicker(t,i)},_newInst:function(t,e){return{id:t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1"),input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:e,dpDiv:e?ot(V("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,e){var i=V(t);e.append=V([]),e.trigger=V([]),i.hasClass(this.markerClassName)||(this._attachments(i,e),i.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(e),V.data(t,"datepicker",e),e.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,e){var i,s=this._get(e,"appendText"),n=this._get(e,"isRTL");e.append&&e.append.remove(),s&&(e.append=V("<span>").addClass(this._appendClass).text(s),t[n?"before":"after"](e.append)),t.off("focus",this._showDatepicker),e.trigger&&e.trigger.remove(),"focus"!==(s=this._get(e,"showOn"))&&"both"!==s||t.on("focus",this._showDatepicker),"button"!==s&&"both"!==s||(s=this._get(e,"buttonText"),i=this._get(e,"buttonImage"),this._get(e,"buttonImageOnly")?e.trigger=V("<img>").addClass(this._triggerClass).attr({src:i,alt:s,title:s}):(e.trigger=V("<button type='button'>").addClass(this._triggerClass),i?e.trigger.html(V("<img>").attr({src:i,alt:s,title:s})):e.trigger.text(s)),t[n?"before":"after"](e.trigger),e.trigger.on("click",function(){return V.datepicker._datepickerShowing&&V.datepicker._lastInput===t[0]?V.datepicker._hideDatepicker():(V.datepicker._datepickerShowing&&V.datepicker._lastInput!==t[0]&&V.datepicker._hideDatepicker(),V.datepicker._showDatepicker(t[0])),!1}))},_autoSize:function(t){var e,i,s,n,o,a;this._get(t,"autoSize")&&!t.inline&&(o=new Date(2009,11,20),(a=this._get(t,"dateFormat")).match(/[DM]/)&&(o.setMonth((e=function(t){for(n=s=i=0;n<t.length;n++)t[n].length>i&&(i=t[n].length,s=n);return s})(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length))},_inlineDatepicker:function(t,e){var i=V(t);i.hasClass(this.markerClassName)||(i.addClass(this.markerClassName).append(e.dpDiv),V.data(t,"datepicker",e),this._setDate(e,this._getDefaultDate(e),!0),this._updateDatepicker(e),this._updateAlternate(e),e.settings.disabled&&this._disableDatepicker(t),e.dpDiv.css("display","block"))},_dialogDatepicker:function(t,e,i,s,n){var o,a=this._dialogInst;return a||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=V("<input type='text' id='"+o+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),V("body").append(this._dialogInput),(a=this._dialogInst=this._newInst(this._dialogInput,!1)).settings={},V.data(this._dialogInput[0],"datepicker",a)),H(a.settings,s||{}),e=e&&e.constructor===Date?this._formatDate(a,e):e,this._dialogInput.val(e),this._pos=n?n.length?n:[n.pageX,n.pageY]:null,this._pos||(o=document.documentElement.clientWidth,s=document.documentElement.clientHeight,e=document.documentElement.scrollLeft||document.body.scrollLeft,n=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[o/2-100+e,s/2-150+n]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),a.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),V.blockUI&&V.blockUI(this.dpDiv),V.data(this._dialogInput[0],"datepicker",a),this},_destroyDatepicker:function(t){var e,i=V(t),s=V.data(t,"datepicker");i.hasClass(this.markerClassName)&&(e=t.nodeName.toLowerCase(),V.removeData(t,"datepicker"),"input"===e?(s.append.remove(),s.trigger.remove(),i.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):"div"!==e&&"span"!==e||i.removeClass(this.markerClassName).empty(),V.datepicker._hideDatepicker(),S===s)&&(S=null,this._curInst=null)},_enableDatepicker:function(e){var t,i=V(e),s=V.data(e,"datepicker");i.hasClass(this.markerClassName)&&("input"===(t=e.nodeName.toLowerCase())?(e.disabled=!1,s.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):"div"!==t&&"span"!==t||((s=i.children("."+this._inlineClass)).children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=V.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var t,i=V(e),s=V.data(e,"datepicker");i.hasClass(this.markerClassName)&&("input"===(t=e.nodeName.toLowerCase())?(e.disabled=!0,s.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):"div"!==t&&"span"!==t||((s=i.children("."+this._inlineClass)).children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=V.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(t)for(var e=0;e<this._disabledInputs.length;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(t){try{return V.data(t,"datepicker")}catch(t){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,e,i){var s,n,o=this._getInst(t);if(2===arguments.length&&"string"==typeof e)return"defaults"===e?V.extend({},V.datepicker._defaults):o?"all"===e?V.extend({},o.settings):this._get(o,e):null;s=e||{},"string"==typeof e&&((s={})[e]=i),o&&(this._curInst===o&&this._hideDatepicker(),e=this._getDateDatepicker(t,!0),i=this._getMinMaxDate(o,"min"),n=this._getMinMaxDate(o,"max"),H(o.settings,s),null!==i&&void 0!==s.dateFormat&&void 0===s.minDate&&(o.settings.minDate=this._formatDate(o,i)),null!==n&&void 0!==s.dateFormat&&void 0===s.maxDate&&(o.settings.maxDate=this._formatDate(o,n)),"disabled"in s&&(s.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(V(t),o),this._autoSize(o),this._setDate(o,e),this._updateAlternate(o),this._updateDatepicker(o))},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){t=this._getInst(t);t&&this._updateDatepicker(t)},_setDateDatepicker:function(t,e){t=this._getInst(t);t&&(this._setDate(t,e),this._updateDatepicker(t),this._updateAlternate(t))},_getDateDatepicker:function(t,e){t=this._getInst(t);return t&&!t.inline&&this._setDateFromField(t,e),t?this._getDate(t):null},_doKeyDown:function(t){var e,i,s=V.datepicker._getInst(t.target),n=!0,o=s.dpDiv.is(".ui-datepicker-rtl");if(s._keyEvent=!0,V.datepicker._datepickerShowing)switch(t.keyCode){case 9:V.datepicker._hideDatepicker(),n=!1;break;case 13:return(i=V("td."+V.datepicker._dayOverClass+":not(."+V.datepicker._currentClass+")",s.dpDiv))[0]&&V.datepicker._selectDay(t.target,s.selectedMonth,s.selectedYear,i[0]),(i=V.datepicker._get(s,"onSelect"))?(e=V.datepicker._formatDate(s),i.apply(s.input?s.input[0]:null,[e,s])):V.datepicker._hideDatepicker(),!1;case 27:V.datepicker._hideDatepicker();break;case 33:V.datepicker._adjustDate(t.target,t.ctrlKey?-V.datepicker._get(s,"stepBigMonths"):-V.datepicker._get(s,"stepMonths"),"M");break;case 34:V.datepicker._adjustDate(t.target,t.ctrlKey?+V.datepicker._get(s,"stepBigMonths"):+V.datepicker._get(s,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&V.datepicker._clearDate(t.target),n=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&V.datepicker._gotoToday(t.target),n=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&V.datepicker._adjustDate(t.target,o?1:-1,"D"),n=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&V.datepicker._adjustDate(t.target,t.ctrlKey?-V.datepicker._get(s,"stepBigMonths"):-V.datepicker._get(s,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&V.datepicker._adjustDate(t.target,-7,"D"),n=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&V.datepicker._adjustDate(t.target,o?-1:1,"D"),n=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&V.datepicker._adjustDate(t.target,t.ctrlKey?+V.datepicker._get(s,"stepBigMonths"):+V.datepicker._get(s,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&V.datepicker._adjustDate(t.target,7,"D"),n=t.ctrlKey||t.metaKey;break;default:n=!1}else 36===t.keyCode&&t.ctrlKey?V.datepicker._showDatepicker(this):n=!1;n&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var e,i=V.datepicker._getInst(t.target);if(V.datepicker._get(i,"constrainInput"))return i=V.datepicker._possibleChars(V.datepicker._get(i,"dateFormat")),e=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||e<" "||!i||-1<i.indexOf(e)},_doKeyUp:function(t){t=V.datepicker._getInst(t.target);if(t.input.val()!==t.lastVal)try{V.datepicker.parseDate(V.datepicker._get(t,"dateFormat"),t.input?t.input.val():null,V.datepicker._getFormatConfig(t))&&(V.datepicker._setDateFromField(t),V.datepicker._updateAlternate(t),V.datepicker._updateDatepicker(t))}catch(t){}return!0},_showDatepicker:function(t){var e,i,s,n;"input"!==(t=t.target||t).nodeName.toLowerCase()&&(t=V("input",t.parentNode)[0]),V.datepicker._isDisabledDatepicker(t)||V.datepicker._lastInput===t||(n=V.datepicker._getInst(t),V.datepicker._curInst&&V.datepicker._curInst!==n&&(V.datepicker._curInst.dpDiv.stop(!0,!0),n)&&V.datepicker._datepickerShowing&&V.datepicker._hideDatepicker(V.datepicker._curInst.input[0]),!1===(i=(i=V.datepicker._get(n,"beforeShow"))?i.apply(t,[t,n]):{}))||(H(n.settings,i),n.lastVal=null,V.datepicker._lastInput=t,V.datepicker._setDateFromField(n),V.datepicker._inDialog&&(t.value=""),V.datepicker._pos||(V.datepicker._pos=V.datepicker._findPos(t),V.datepicker._pos[1]+=t.offsetHeight),e=!1,V(t).parents().each(function(){return!(e|="fixed"===V(this).css("position"))}),i={left:V.datepicker._pos[0],top:V.datepicker._pos[1]},V.datepicker._pos=null,n.dpDiv.empty(),n.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),V.datepicker._updateDatepicker(n),i=V.datepicker._checkOffset(n,i,e),n.dpDiv.css({position:V.datepicker._inDialog&&V.blockUI?"static":e?"fixed":"absolute",display:"none",left:i.left+"px",top:i.top+"px"}),n.inline)||(i=V.datepicker._get(n,"showAnim"),s=V.datepicker._get(n,"duration"),n.dpDiv.css("z-index",(t=>{for(var e;t.length&&t[0]!==document;){if(("absolute"===(e=t.css("position"))||"relative"===e||"fixed"===e)&&(e=parseInt(t.css("zIndex"),10),!isNaN(e))&&0!==e)return e;t=t.parent()}return 0})(V(t))+1),V.datepicker._datepickerShowing=!0,V.effects&&V.effects.effect[i]?n.dpDiv.show(i,V.datepicker._get(n,"showOptions"),s):n.dpDiv[i||"show"](i?s:null),V.datepicker._shouldFocusInput(n)&&n.input.trigger("focus"),V.datepicker._curInst=n)},_updateDatepicker:function(t){this.maxRows=4,(S=t).dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var e,i=this._getNumberOfMonths(t),s=i[1],n=t.dpDiv.find("."+this._dayOverClass+" a"),o=V.datepicker._get(t,"onUpdateDatepicker");0<n.length&&at.apply(n.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),1<s&&t.dpDiv.addClass("ui-datepicker-multi-"+s).css("width",17*s+"em"),t.dpDiv[(1!==i[0]||1!==i[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===V.datepicker._curInst&&V.datepicker._datepickerShowing&&V.datepicker._shouldFocusInput(t)&&t.input.trigger("focus"),t.yearshtml&&(e=t.yearshtml,setTimeout(function(){e===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year").first().replaceWith(t.yearshtml),e=t.yearshtml=null},0)),o&&o.apply(t.input?t.input[0]:null,[t])},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")},_checkOffset:function(t,e,i){var s=t.dpDiv.outerWidth(),n=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,a=t.input?t.input.outerHeight():0,r=document.documentElement.clientWidth+(i?0:V(document).scrollLeft()),l=document.documentElement.clientHeight+(i?0:V(document).scrollTop());return e.left-=this._get(t,"isRTL")?s-o:0,e.left-=i&&e.left===t.input.offset().left?V(document).scrollLeft():0,e.top-=i&&e.top===t.input.offset().top+a?V(document).scrollTop():0,e.left-=Math.min(e.left,r<e.left+s&&s<r?Math.abs(e.left+s-r):0),e.top-=Math.min(e.top,l<e.top+n&&n<l?Math.abs(n+a):0),e},_findPos:function(t){for(var e=this._getInst(t),i=this._get(e,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||V.expr.pseudos.hidden(t));)t=t[i?"previousSibling":"nextSibling"];return[(e=V(t).offset()).left,e.top]},_hideDatepicker:function(t){var e,i,s=this._curInst;!s||t&&s!==V.data(t,"datepicker")||this._datepickerShowing&&(t=this._get(s,"showAnim"),i=this._get(s,"duration"),e=function(){V.datepicker._tidyDialog(s)},V.effects&&V.effects.effect[t]?s.dpDiv.hide(t,V.datepicker._get(s,"showOptions"),i,e):s.dpDiv["slideDown"===t?"slideUp":"fadeIn"===t?"fadeOut":"hide"](t?i:null,e),t||e(),this._datepickerShowing=!1,(i=this._get(s,"onClose"))&&i.apply(s.input?s.input[0]:null,[s.input?s.input.val():"",s]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),V.blockUI)&&(V.unblockUI(),V("body").append(this.dpDiv)),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(t){var e;V.datepicker._curInst&&(t=V(t.target),e=V.datepicker._getInst(t[0]),!(t[0].id===V.datepicker._mainDivId||0!==t.parents("#"+V.datepicker._mainDivId).length||t.hasClass(V.datepicker.markerClassName)||t.closest("."+V.datepicker._triggerClass).length||!V.datepicker._datepickerShowing||V.datepicker._inDialog&&V.blockUI)||t.hasClass(V.datepicker.markerClassName)&&V.datepicker._curInst!==e)&&V.datepicker._hideDatepicker()},_adjustDate:function(t,e,i){var t=V(t),s=this._getInst(t[0]);this._isDisabledDatepicker(t[0])||(this._adjustInstDate(s,e,i),this._updateDatepicker(s))},_gotoToday:function(t){var e,t=V(t),i=this._getInst(t[0]);this._get(i,"gotoCurrent")&&i.currentDay?(i.selectedDay=i.currentDay,i.drawMonth=i.selectedMonth=i.currentMonth,i.drawYear=i.selectedYear=i.currentYear):(e=new Date,i.selectedDay=e.getDate(),i.drawMonth=i.selectedMonth=e.getMonth(),i.drawYear=i.selectedYear=e.getFullYear()),this._notifyChange(i),this._adjustDate(t)},_selectMonthYear:function(t,e,i){var t=V(t),s=this._getInst(t[0]);s["selected"+("M"===i?"Month":"Year")]=s["draw"+("M"===i?"Month":"Year")]=parseInt(e.options[e.selectedIndex].value,10),this._notifyChange(s),this._adjustDate(t)},_selectDay:function(t,e,i,s){var n=V(t);V(s).hasClass(this._unselectableClass)||this._isDisabledDatepicker(n[0])||((n=this._getInst(n[0])).selectedDay=n.currentDay=parseInt(V("a",s).attr("data-date")),n.selectedMonth=n.currentMonth=e,n.selectedYear=n.currentYear=i,this._selectDate(t,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(t){t=V(t);this._selectDate(t,"")},_selectDate:function(t,e){var i,t=V(t),t=this._getInst(t[0]);e=null!=e?e:this._formatDate(t),t.input&&t.input.val(e),this._updateAlternate(t),(i=this._get(t,"onSelect"))?i.apply(t.input?t.input[0]:null,[e,t]):t.input&&t.input.trigger("change"),t.inline?this._updateDatepicker(t):(this._hideDatepicker(),this._lastInput=t.input[0],"object"!=typeof t.input[0]&&t.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(t){var e,i,s=this._get(t,"altField");s&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),e=this._getDate(t),i=this.formatDate(i,e,this._getFormatConfig(t)),V(document).find(s).val(i))},noWeekends:function(t){t=t.getDay();return[0<t&&t<6,""]},iso8601Week:function(t){var e,t=new Date(t.getTime());return t.setDate(t.getDate()+4-(t.getDay()||7)),e=t.getTime(),t.setMonth(0),t.setDate(1),Math.floor(Math.round((e-t)/864e5)/7)+1},parseDate:function(e,n,t){if(null==e||null==n)throw"Invalid arguments";if(""===(n="object"==typeof n?n.toString():n+""))return null;for(var i,s,o=0,a=(t?t.shortYearCutoff:null)||this._defaults.shortYearCutoff,a="string"!=typeof a?a:(new Date).getFullYear()%100+parseInt(a,10),r=(t?t.dayNamesShort:null)||this._defaults.dayNamesShort,l=(t?t.dayNames:null)||this._defaults.dayNames,h=(t?t.monthNamesShort:null)||this._defaults.monthNamesShort,c=(t?t.monthNames:null)||this._defaults.monthNames,u=-1,d=-1,p=-1,f=-1,g=!1,m=function(t){t=y+1<e.length&&e.charAt(y+1)===t;return t&&y++,t},_=function(t){var e=m(t),e="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,t=new RegExp("^\\d{"+("y"===t?e:1)+","+e+"}"),e=n.substring(o).match(t);if(e)return o+=e[0].length,parseInt(e[0],10);throw"Missing number at position "+o},v=function(t,e,i){var s=-1,t=V.map(m(t)?i:e,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(V.each(t,function(t,e){var i=e[1];if(n.substr(o,i.length).toLowerCase()===i.toLowerCase())return s=e[0],o+=i.length,!1}),-1!==s)return s+1;throw"Unknown name at position "+o},b=function(){if(n.charAt(o)!==e.charAt(y))throw"Unexpected literal at position "+o;o++},y=0;y<e.length;y++)if(g)"'"!==e.charAt(y)||m("'")?b():g=!1;else switch(e.charAt(y)){case"d":p=_("d");break;case"D":v("D",r,l);break;case"o":f=_("o");break;case"m":d=_("m");break;case"M":d=v("M",h,c);break;case"y":u=_("y");break;case"@":u=(s=new Date(_("@"))).getFullYear(),d=s.getMonth()+1,p=s.getDate();break;case"!":u=(s=new Date((_("!")-this._ticksTo1970)/1e4)).getFullYear(),d=s.getMonth()+1,p=s.getDate();break;case"'":m("'")?b():g=!0;break;default:b()}if(o<n.length&&(t=n.substr(o),!/^\s+/.test(t)))throw"Extra/unparsed characters found in date: "+t;if(-1===u?u=(new Date).getFullYear():u<100&&(u+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u<=a?0:-100)),-1<f)for(d=1,p=f;;){if(p<=(i=this._getDaysInMonth(u,d-1)))break;d++,p-=i}if((s=this._daylightSavingAdjust(new Date(u,d-1,p))).getFullYear()!==u||s.getMonth()+1!==d||s.getDate()!==p)throw"Invalid date";return s},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(e,t,i){if(!t)return"";function s(t,e,i){var s=""+e;if(c(t))for(;s.length<i;)s="0"+s;return s}function n(t,e,i,s){return(c(t)?s:i)[e]}var o,a=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,r=(i?i.dayNames:null)||this._defaults.dayNames,l=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,h=(i?i.monthNames:null)||this._defaults.monthNames,c=function(t){t=o+1<e.length&&e.charAt(o+1)===t;return t&&o++,t},u="",d=!1;if(t)for(o=0;o<e.length;o++)if(d)"'"!==e.charAt(o)||c("'")?u+=e.charAt(o):d=!1;else switch(e.charAt(o)){case"d":u+=s("d",t.getDate(),2);break;case"D":u+=n("D",t.getDay(),a,r);break;case"o":u+=s("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=s("m",t.getMonth()+1,2);break;case"M":u+=n("M",t.getMonth(),l,h);break;case"y":u+=c("y")?t.getFullYear():(t.getFullYear()%100<10?"0":"")+t.getFullYear()%100;break;case"@":u+=t.getTime();break;case"!":u+=1e4*t.getTime()+this._ticksTo1970;break;case"'":c("'")?u+="'":d=!0;break;default:u+=e.charAt(o)}return u},_possibleChars:function(e){for(var t="",i=!1,s=function(t){t=n+1<e.length&&e.charAt(n+1)===t;return t&&n++,t},n=0;n<e.length;n++)if(i)"'"!==e.charAt(n)||s("'")?t+=e.charAt(n):i=!1;else switch(e.charAt(n)){case"d":case"m":case"y":case"@":t+="0123456789";break;case"D":case"M":return null;case"'":s("'")?t+="'":i=!0;break;default:t+=e.charAt(n)}return t},_get:function(t,e){return(void 0!==t.settings[e]?t.settings:this._defaults)[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(t){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(r,t,e){var i,s=null==t||""===t?e:"string"==typeof t?(t=>{try{return V.datepicker.parseDate(V.datepicker._get(r,"dateFormat"),t,V.datepicker._getFormatConfig(r))}catch(t){}for(var e=(t.toLowerCase().match(/^c/)?V.datepicker._getDate(r):null)||new Date,i=e.getFullYear(),s=e.getMonth(),n=e.getDate(),o=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,a=o.exec(t);a;){switch(a[2]||"d"){case"d":case"D":n+=parseInt(a[1],10);break;case"w":case"W":n+=7*parseInt(a[1],10);break;case"m":case"M":s+=parseInt(a[1],10),n=Math.min(n,V.datepicker._getDaysInMonth(i,s));break;case"y":case"Y":i+=parseInt(a[1],10),n=Math.min(n,V.datepicker._getDaysInMonth(i,s))}a=o.exec(t)}return new Date(i,s,n)})(t):"number"==typeof t?isNaN(t)?e:(s=t,(i=new Date).setDate(i.getDate()+s),i):new Date(t.getTime());return(s=s&&"Invalid Date"===s.toString()?e:s)&&(s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)),this._daylightSavingAdjust(s)},_daylightSavingAdjust:function(t){return t?(t.setHours(12<t.getHours()?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,e=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=e.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=e.getMonth(),t.drawYear=t.selectedYear=t.currentYear=e.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){return!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay))},_attachHandlers:function(t){var e=this._get(t,"stepMonths"),i="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){V.datepicker._adjustDate(i,-e,"M")},next:function(){V.datepicker._adjustDate(i,+e,"M")},hide:function(){V.datepicker._hideDatepicker()},today:function(){V.datepicker._gotoToday(i)},selectDay:function(){return V.datepicker._selectDay(i,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return V.datepicker._selectMonthYear(i,this,"M"),!1},selectYear:function(){return V.datepicker._selectMonthYear(i,this,"Y"),!1}};V(this).on(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,N,W,F,L,a,r,R,l,h,c,u,d,p,f,g,m,_,Y,v,b,B,y,j,q,w,x,k,C=new Date,K=this._daylightSavingAdjust(new Date(C.getFullYear(),C.getMonth(),C.getDate())),D=this._get(t,"isRTL"),C=this._get(t,"showButtonPanel"),I=this._get(t,"hideIfNoPrevNext"),T=this._get(t,"navigationAsDateFormat"),P=this._getNumberOfMonths(t),M=this._get(t,"showCurrentAtPos"),S=this._get(t,"stepMonths"),U=1!==P[0]||1!==P[1],H=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),z=this._getMinMaxDate(t,"min"),O=this._getMinMaxDate(t,"max"),A=t.drawMonth-M,E=t.drawYear;if(A<0&&(A+=12,E--),O)for(e=this._daylightSavingAdjust(new Date(O.getFullYear(),O.getMonth()-P[0]*P[1]+1,O.getDate())),e=z&&e<z?z:e;this._daylightSavingAdjust(new Date(E,A,1))>e;)--A<0&&(A=11,E--);for(t.drawMonth=A,t.drawYear=E,M=this._get(t,"prevText"),M=T?this.formatDate(M,this._daylightSavingAdjust(new Date(E,A-S,1)),this._getFormatConfig(t)):M,i=this._canAdjustMonth(t,-1,E,A)?V("<a>").attr({class:"ui-datepicker-prev ui-corner-all","data-handler":"prev","data-event":"click",title:M}).append(V("<span>").addClass("ui-icon ui-icon-circle-triangle-"+(D?"e":"w")).text(M))[0].outerHTML:I?"":V("<a>").attr({class:"ui-datepicker-prev ui-corner-all ui-state-disabled",title:M}).append(V("<span>").addClass("ui-icon ui-icon-circle-triangle-"+(D?"e":"w")).text(M))[0].outerHTML,M=this._get(t,"nextText"),M=T?this.formatDate(M,this._daylightSavingAdjust(new Date(E,A+S,1)),this._getFormatConfig(t)):M,s=this._canAdjustMonth(t,1,E,A)?V("<a>").attr({class:"ui-datepicker-next ui-corner-all","data-handler":"next","data-event":"click",title:M}).append(V("<span>").addClass("ui-icon ui-icon-circle-triangle-"+(D?"w":"e")).text(M))[0].outerHTML:I?"":V("<a>").attr({class:"ui-datepicker-next ui-corner-all ui-state-disabled",title:M}).append(V("<span>").attr("class","ui-icon ui-icon-circle-triangle-"+(D?"w":"e")).text(M))[0].outerHTML,S=this._get(t,"currentText"),I=this._get(t,"gotoCurrent")&&t.currentDay?H:K,S=T?this.formatDate(S,I,this._getFormatConfig(t)):S,M="",t.inline||(M=V("<button>").attr({type:"button",class:"ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all","data-handler":"hide","data-event":"click"}).text(this._get(t,"closeText"))[0].outerHTML),T="",C&&(T=V("<div class='ui-datepicker-buttonpane ui-widget-content'>").append(D?M:"").append(this._isInRange(t,I)?V("<button>").attr({type:"button",class:"ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all","data-handler":"today","data-event":"click"}).text(S):"").append(D?"":M)[0].outerHTML),n=parseInt(this._get(t,"firstDay"),10),n=isNaN(n)?0:n,o=this._get(t,"showWeek"),N=this._get(t,"dayNames"),W=this._get(t,"dayNamesMin"),F=this._get(t,"monthNames"),L=this._get(t,"monthNamesShort"),a=this._get(t,"beforeShowDay"),r=this._get(t,"showOtherMonths"),R=this._get(t,"selectOtherMonths"),l=this._getDefaultDate(t),h="",u=0;u<P[0];u++){for(d="",this.maxRows=4,p=0;p<P[1];p++){if(f=this._daylightSavingAdjust(new Date(E,A,t.selectedDay)),g=" ui-corner-all",m="",U){if(m+="<div class='ui-datepicker-group",1<P[1])switch(p){case 0:m+=" ui-datepicker-group-first",g=" ui-corner-"+(D?"right":"left");break;case P[1]-1:m+=" ui-datepicker-group-last",g=" ui-corner-"+(D?"left":"right");break;default:m+=" ui-datepicker-group-middle",g=""}m+="'>"}for(m+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+g+"'>"+(/all|left/.test(g)&&0===u?D?s:i:"")+(/all|right/.test(g)&&0===u?D?i:s:"")+this._generateMonthYearHeader(t,A,E,z,O,0<u||0<p,F,L)+"</div><table class='ui-datepicker-calendar'><thead><tr>",_=o?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",c=0;c<7;c++)_+="<th scope='col'"+(5<=(c+n+6)%7?" class='ui-datepicker-week-end'":"")+"><span title='"+N[Y=(c+n)%7]+"'>"+W[Y]+"</span></th>";for(m+=_+"</tr></thead><tbody>",b=this._getDaysInMonth(E,A),E===t.selectedYear&&A===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,b)),v=(this._getFirstDayOfMonth(E,A)-n+7)%7,b=Math.ceil((v+b)/7),B=U&&this.maxRows>b?this.maxRows:b,this.maxRows=B,y=this._daylightSavingAdjust(new Date(E,A,1-v)),j=0;j<B;j++){for(m+="<tr>",q=o?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(y)+"</td>":"",c=0;c<7;c++)w=a?a.apply(t.input?t.input[0]:null,[y]):[!0,""],k=(x=y.getMonth()!==A)&&!R||!w[0]||z&&y<z||O&&O<y,q+="<td class='"+(5<=(c+n+6)%7?" ui-datepicker-week-end":"")+(x?" ui-datepicker-other-month":"")+(y.getTime()===f.getTime()&&A===t.selectedMonth&&t._keyEvent||l.getTime()===y.getTime()&&l.getTime()===f.getTime()?" "+this._dayOverClass:"")+(k?" "+this._unselectableClass+" ui-state-disabled":"")+(x&&!r?"":" "+w[1]+(y.getTime()===H.getTime()?" "+this._currentClass:"")+(y.getTime()===K.getTime()?" ui-datepicker-today":""))+"'"+(x&&!r||!w[2]?"":" title='"+w[2].replace(/'/g,"&#39;")+"'")+(k?"":" data-handler='selectDay' data-event='click' data-month='"+y.getMonth()+"' data-year='"+y.getFullYear()+"'")+">"+(x&&!r?"&#xa0;":k?"<span class='ui-state-default'>"+y.getDate()+"</span>":"<a class='ui-state-default"+(y.getTime()===K.getTime()?" ui-state-highlight":"")+(y.getTime()===H.getTime()?" ui-state-active":"")+(x?" ui-priority-secondary":"")+"' href='#' aria-current='"+(y.getTime()===H.getTime()?"true":"false")+"' data-date='"+y.getDate()+"'>"+y.getDate()+"</a>")+"</td>",y.setDate(y.getDate()+1),y=this._daylightSavingAdjust(y);m+=q+"</tr>"}11<++A&&(A=0,E++),d+=m+="</tbody></table>"+(U?"</div>"+(0<P[0]&&p===P[1]-1?"<div class='ui-datepicker-row-break'></div>":""):"")}h+=d}return h+=T,t._keyEvent=!1,h},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var l,h,c,u,d,p,f=this._get(t,"changeMonth"),g=this._get(t,"changeYear"),m=this._get(t,"showMonthAfterYear"),_=this._get(t,"selectMonthLabel"),v=this._get(t,"selectYearLabel"),b="<div class='ui-datepicker-title'>",y="";if(o||!f)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(l=s&&s.getFullYear()===i,h=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' aria-label='"+_+"' data-handler='selectMonth' data-event='change'>",c=0;c<12;c++)(!l||c>=s.getMonth())&&(!h||c<=n.getMonth())&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(m||(b+=y+(!o&&f&&g?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",o||!g)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(a=this._get(t,"yearRange").split(":"),u=(new Date).getFullYear(),d=(_=function(t){t=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?u+parseInt(t,10):parseInt(t,10);return isNaN(t)?u:t})(a[0]),p=Math.max(d,_(a[1]||"")),d=s?Math.max(d,s.getFullYear()):d,p=n?Math.min(p,n.getFullYear()):p,t.yearshtml+="<select class='ui-datepicker-year' aria-label='"+v+"' data-handler='selectYear' data-event='change'>";d<=p;d++)t.yearshtml+="<option value='"+d+"'"+(d===i?" selected='selected'":"")+">"+d+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),m&&(b+=(!o&&f&&g?"":"&#xa0;")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),e=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),s=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,e)));t.selectedDay=s.getDate(),t.drawMonth=t.selectedMonth=s.getMonth(),t.drawYear=t.selectedYear=s.getFullYear(),"M"!==i&&"Y"!==i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),t=this._getMinMaxDate(t,"max"),i=i&&e<i?i:e;return t&&t<i?t:i},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){t=this._get(t,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),i=this._daylightSavingAdjust(new Date(i,s+(e<0?e:n[0]*n[1]),1));return e<0&&i.setDate(this._getDaysInMonth(i.getFullYear(),i.getMonth())),this._isInRange(t,i)},_isInRange:function(t,e){var i,s=this._getMinMaxDate(t,"min"),n=this._getMinMaxDate(t,"max"),o=null,a=null,t=this._get(t,"yearRange");return t&&(t=t.split(":"),i=(new Date).getFullYear(),o=parseInt(t[0],10),a=parseInt(t[1],10),t[0].match(/[+\-].*/)&&(o+=i),t[1].match(/[+\-].*/))&&(a+=i),(!s||e.getTime()>=s.getTime())&&(!n||e.getTime()<=n.getTime())&&(!o||e.getFullYear()>=o)&&(!a||e.getFullYear()<=a)},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:"string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);s=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),s,this._getFormatConfig(t))}}),V.fn.datepicker=function(t){if(!this.length)return this;V.datepicker.initialized||(V(document).on("mousedown",V.datepicker._checkExternalClick),V.datepicker.initialized=!0),0===V("#"+V.datepicker._mainDivId).length&&V("body").append(V.datepicker.dpDiv);var e=Array.prototype.slice.call(arguments,1);return"string"==typeof t&&("isDisabled"===t||"getDate"===t||"widget"===t)||"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?V.datepicker["_"+t+"Datepicker"].apply(V.datepicker,[this[0]].concat(e)):this.each(function(){"string"==typeof t?V.datepicker["_"+t+"Datepicker"].apply(V.datepicker,[this].concat(e)):V.datepicker._attachDatepicker(this,t)})},V.datepicker=new nt,V.datepicker.initialized=!1,V.datepicker.uuid=(new Date).getTime(),V.datepicker.version="1.14.1";var z=!1;V(document).on("mouseup",function(){z=!1}),V.widget("ui.mouse",{version:"1.14.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(t){if(!0===V.data(t.target,e.widgetName+".preventClickEvent"))return V.removeData(t.target,e.widgetName+".preventClickEvent"),t.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){var e,i,s;if(!z)return this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),i=1===(this._mouseDownEvent=t).which,s="string"==typeof(e=this).options.cancel&&V(t.target).closest(this.options.cancel).length,i&&!s&&this._mouseCapture(t)&&(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?t.preventDefault():(!0===V.data(t.target,this.widgetName+".preventClickEvent")&&V.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),z=!0)),!0},_mouseMove:function(t){if(this._mouseMoved&&!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t);return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&V.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,z=!1,t.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),V.ui.plugin={add:function(t,e,i){var s,n=V.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n<o.length;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},V.widget("ui.draggable",V.ui.mouse,{version:"1.14.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){(this.helper||this.element).is(".ui-draggable-dragging")?this.destroyOnClear=!0:(this._removeHandleClassName(),this._mouseDestroy())},_mouseCapture:function(t){var e=this.options;return!(this.helper||e.disabled||0<V(t.target).closest(".ui-resizable-handle").length||(this.handle=this._getHandle(t),!this.handle)||(this._blurActiveElement(t),this._blockFrames(!0===e.iframeFix?"iframe":e.iframeFix),0))},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=V(this);return V("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var e=this.document[0].activeElement;V(t.target).closest(e).length||V(e).trigger("blur"
vendor: 16,399 bytes, line 11124
11124)},_mouseStart:function(t){var e=this.options;return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),V.ui.ddmanager&&(V.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0<this.helper.parents().filter(function(){return"fixed"===V(this).css("position")}).length,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this._setContainment(),!1===this._trigger("start",t)?(this._clear(),!1):(this._cacheHelperProportions(),V.ui.ddmanager&&!e.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),V.ui.ddmanager&&V.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(t,e){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!e){e=this._uiHash();if(!1===this._trigger("drag",t,e))return this._mouseUp(new V.Event("mouseup",t)),!1;this.position=e.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",V.ui.ddmanager&&V.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var e=this,i=!1;return V.ui.ddmanager&&!this.options.dropBehaviour&&(i=V.ui.ddmanager.drop(this,t)),this.dropped&&(i=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!i||"valid"===this.options.revert&&i||!0===this.options.revert||"function"==typeof this.options.revert&&this.options.revert.call(this.element,i)?V(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==e._trigger("stop",t)&&e._clear()}):!1!==this._trigger("stop",t)&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),V.ui.ddmanager&&V.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.trigger("focus"),V.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new V.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(t){return!this.options.handle||!!V(t.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(t){var e=this.options,i="function"==typeof e.helper,t=i?V(e.helper.apply(this.element[0],[t])):"clone"===e.helper?this.element.clone().removeAttr("id"):this.element;return t.parents("body").length||t.appendTo("parent"===e.appendTo?this.element[0].parentNode:e.appendTo),i&&t[0]===this.element[0]&&this._setPositionRelative(),t[0]===this.element[0]||/(fixed|absolute)/.test(t.css("position"))||t.css("position","absolute"),t},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),"left"in(t=Array.isArray(t)?{left:+t[0],top:+t[1]||0}:t)&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),e=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==e&&V.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),{top:(t=this._isRootNode(this.offsetParent[0])?{top:0,left:0}:t).top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){var t,e;return"relative"!==this.cssPosition?{top:0,left:0}:(t=this.element.position(),e=this._isRootNode(this.scrollParent[0]),{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())})},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,e=this.options,i=this.document[0];this.relativeContainer=null,e.containment?"window"===e.containment?this.containment=[V(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,V(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,V(window).scrollLeft()+V(window).width()-this.helperProportions.width-this.margins.left,V(window).scrollTop()+(V(window).height()||i.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:"document"===e.containment?this.containment=[0,0,V(i).width()-this.helperProportions.width-this.margins.left,(V(i).height()||i.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:e.containment.constructor===Array?this.containment=e.containment:("parent"===e.containment&&(e.containment=this.helper[0].parentNode),(e=(i=V(e.containment))[0])&&(t=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i)):this.containment=null},_convertPositionTo:function(t,e){e=e||this.position;var t="absolute"===t?1:-1,i=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*t+this.offset.parent.top*t-("fixed"===this.cssPosition?-this.offset.scroll.top:i?0:this.offset.scroll.top)*t,left:e.left+this.offset.relative.left*t+this.offset.parent.left*t-("fixed"===this.cssPosition?-this.offset.scroll.left:i?0:this.offset.scroll.left)*t}},_generatePosition:function(t,e){var i,s=this.options,n=this._isRootNode(this.scrollParent[0]),o=t.pageX,a=t.pageY;return n&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),{top:(a=e&&(this.containment&&(i=this.relativeContainer?(e=this.relativeContainer.offset(),[this.containment[0]+e.left,this.containment[1]+e.top,this.containment[2]+e.left,this.containment[3]+e.top]):this.containment,t.pageX-this.offset.click.left<i[0]&&(o=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(a=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(o=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3])&&(a=i[3]+this.offset.click.top),s.grid&&(e=s.grid[1]?this.originalPageY+Math.round((a-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,a=!i||e-this.offset.click.top>=i[1]||e-this.offset.click.top>i[3]?e:e-this.offset.click.top>=i[1]?e-s.grid[1]:e+s.grid[1],t=s.grid[0]?this.originalPageX+Math.round((o-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,o=!i||t-this.offset.click.left>=i[0]||t-this.offset.click.left>i[2]?t:t-this.offset.click.left>=i[0]?t-s.grid[0]:t+s.grid[0]),"y"===s.axis&&(o=this.originalPageX),"x"===s.axis)?this.originalPageY:a)-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:n?0:this.offset.scroll.top),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:n?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,e,i){return i=i||this._uiHash(),V.ui.plugin.call(this,t,[e,i,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),V.Widget.prototype._trigger.call(this,t,e,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),V.ui.plugin.add("draggable","connectToSortable",{start:function(e,t,i){var s=V.extend({},t,{item:i.element});i.sortables=[],V(i.options.connectToSortable).each(function(){var t=V(this).sortable("instance");t&&!t.options.disabled&&(i.sortables.push(t),t.refreshPositions(),t._trigger("activate",e,s))})},stop:function(e,t,i){var s=V.extend({},t,{item:i.element});i.cancelHelperRemoval=!1,V.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))})},drag:function(i,s,n){V.each(n.sortables,function(){var t=!1,e=this;e.positionAbs=n.positionAbs,e.helperProportions=n.helperProportions,e.offset.click=n.offset.click,e._intersectsWith(e.containerCache)&&(t=!0,V.each(n.sortables,function(){return this.positionAbs=n.positionAbs,this.helperProportions=n.helperProportions,this.offset.click=n.offset.click,t=this!==e&&this._intersectsWith(this.containerCache)&&V.contains(e.element[0],this.element[0])?!1:t})),t?(e.isOver||(e.isOver=1,n._parent=s.helper.parent(),e.currentItem=s.helper.appendTo(e.element).data("ui-sortable-item",!0),e.options._helper=e.options.helper,e.options.helper=function(){return s.helper[0]},i.target=e.currentItem[0],e._mouseCapture(i,!0),e._mouseStart(i,!0,!0),e.offset.click.top=n.offset.click.top,e.offset.click.left=n.offset.click.left,e.offset.parent.left-=n.offset.parent.left-e.offset.parent.left,e.offset.parent.top-=n.offset.parent.top-e.offset.parent.top,n._trigger("toSortable",i),n.dropped=e.element,V.each(n.sortables,function(){this.refreshPositions()}),n.currentItem=n.element,e.fromOutside=n),e.currentItem&&(e._mouseDrag(i),s.position=e.position)):e.isOver&&(e.isOver=0,e.cancelHelperRemoval=!0,e.options._revert=e.options.revert,e.options.revert=!1,e._trigger("out",i,e._uiHash(e)),e._mouseStop(i,!0),e.options.revert=e.options._revert,e.options.helper=e.options._helper,e.placeholder&&e.placeholder.remove(),s.helper.appendTo(n._parent),n._refreshOffsets(i),s.position=n._generatePosition(i,!0),n._trigger("fromSortable",i),n.dropped=!1,V.each(n.sortables,function(){this.refreshPositions()}))})}}),V.ui.plugin.add("draggable","cursor",{start:function(t,e,i){var s=V("body"),i=i.options;s.css("cursor")&&(i._cursor=s.css("cursor")),s.css("cursor",i.cursor)},stop:function(t,e,i){i=i.options;i._cursor&&V("body").css("cursor",i._cursor)}}),V.ui.plugin.add("draggable","opacity",{start:function(t,e,i){e=V(e.helper),i=i.options;e.css("opacity")&&(i._opacity=e.css("opacity")),e.css("opacity",i.opacity)},stop:function(t,e,i){i=i.options;i._opacity&&V(e.helper).css("opacity",i._opacity)}}),V.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,e,i){var s=i.options,n=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&"HTML"!==o.tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+o.offsetHeight-t.pageY<s.scrollSensitivity?o.scrollTop=n=o.scrollTop+s.scrollSpeed:t.pageY-i.overflowOffset.top<s.scrollSensitivity&&(o.scrollTop=n=o.scrollTop-s.scrollSpeed)),s.axis&&"y"===s.axis||(i.overflowOffset.left+o.offsetWidth-t.pageX<s.scrollSensitivity?o.scrollLeft=n=o.scrollLeft+s.scrollSpeed:t.pageX-i.overflowOffset.left<s.scrollSensitivity&&(o.scrollLeft=n=o.scrollLeft-s.scrollSpeed))):(s.axis&&"x"===s.axis||(t.pageY-V(a).scrollTop()<s.scrollSensitivity?n=V(a).scrollTop(V(a).scrollTop()-s.scrollSpeed):V(window).height()-(t.pageY-V(a).scrollTop())<s.scrollSensitivity&&(n=V(a).scrollTop(V(a).scrollTop()+s.scrollSpeed))),s.axis&&"y"===s.axis||(t.pageX-V(a).scrollLeft()<s.scrollSensitivity?n=V(a).scrollLeft(V(a).scrollLeft()-s.scrollSpeed):V(window).width()-(t.pageX-V(a).scrollLeft())<s.scrollSensitivity&&(n=V(a).scrollLeft(V(a).scrollLeft()+s.scrollSpeed)))),!1!==n&&V.ui.ddmanager&&!s.dropBehaviour&&V.ui.ddmanager.prepareOffsets(i,t)}}),V.ui.plugin.add("draggable","snap",{start:function(t,e,i){var s=i.options;i.snapElements=[],V(s.snap.constructor!==String?s.snap.items||":data(ui-draggable)":s.snap).each(function(){var t=V(this),e=t.offset();this!==i.element[0]&&i.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:e.top,left:e.left})})},drag:function(t,e,i){for(var s,n,o,a,r,l,h,c,u,d=i.options,p=d.snapTolerance,f=e.offset.left,g=f+i.helperProportions.width,m=e.offset.top,_=m+i.helperProportions.height,v=i.snapElements.length-1;0<=v;v--)l=(r=i.snapElements[v].left-i.margins.left)+i.snapElements[v].width,c=(h=i.snapElements[v].top-i.margins.top)+i.snapElements[v].height,g<r-p||l+p<f||_<h-p||c+p<m||!V.contains(i.snapElements[v].item.ownerDocument,i.snapElements[v].item)?(i.snapElements[v].snapping&&i.options.snap.release&&i.options.snap.release.call(i.element,t,V.extend(i._uiHash(),{snapItem:i.snapElements[v].item})),i.snapElements[v].snapping=!1):("inner"!==d.snapMode&&(s=Math.abs(h-_)<=p,n=Math.abs(c-m)<=p,o=Math.abs(r-g)<=p,a=Math.abs(l-f)<=p,s&&(e.position.top=i._convertPositionTo("relative",{top:h-i.helperProportions.height,left:0}).top),n&&(e.position.top=i._convertPositionTo("relative",{top:c,left:0}).top),o&&(e.position.left=i._convertPositionTo("relative",{top:0,left:r-i.helperProportions.width}).left),a)&&(e.position.left=i._convertPositionTo("relative",{top:0,left:l}).left),u=s||n||o||a,"outer"!==d.snapMode&&(s=Math.abs(h-m)<=p,n=Math.abs(c-_)<=p,o=Math.abs(r-f)<=p,a=Math.abs(l-g)<=p,s&&(e.position.top=i._convertPositionTo("relative",{top:h,left:0}).top),n&&(e.position.top=i._convertPositionTo("relative",{top:c-i.helperProportions.height,left:0}).top),o&&(e.position.left=i._convertPositionTo("relative",{top:0,left:r}).left),a)&&(e.position.left=i._convertPositionTo("relative",{top:0,left:l-i.helperProportions.width}).left),!i.snapElements[v].snapping&&(s||n||o||a||u)&&i.options.snap.snap&&i.options.snap.snap.call(i.element,t,V.extend(i._uiHash(),{snapItem:i.snapElements[v].item})),i.snapElements[v].snapping=s||n||o||a||u)}}),V.ui.plugin.add("draggable","stack",{start:function(t,e,i){var s,i=i.options,i=V.makeArray(V(i.stack)).sort(function(t,e){return(parseInt(V(t).css("zIndex"),10)||0)-(parseInt(V(e).css("zIndex"),10)||0)});i.length&&(s=parseInt(V(i[0]).css("zIndex"),10)||0,V(i).each(function(t){V(this).css("zIndex",s+t)}),this.css("zIndex",s+i.length))}}),V.ui.plugin.add("draggable","zIndex",{start:function(t,e,i){e=V(e.helper),i=i.options;e.css("zIndex")&&(i._zIndex=e.css("zIndex")),e.css("zIndex",i.zIndex)},stop:function(t,e,i){i=i.options;i._zIndex&&V(e.helper).css("zIndex",i._zIndex)}}),V.ui.draggable,V.widget("ui.resizable",V.ui.mouse,{version:"1.1
111244.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(t,e){var i=!1,s=V(t).css("overflow");if("hidden"===s)return!1;if("scroll"===s)return!0;if(0<t[s=e&&"left"===e?"scrollLeft":"scrollTop"])return!0;try{t[s]=1,i=0<t[s],t[s]=0}catch(t){}return i},_create:function(){var t,e=this.options,i=this;this._addClass("ui-resizable"),V.extend(this,{_aspectRatio:!!e.aspectRatio,aspectRatio:e.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:e.helper||e.ghost||e.animate?e.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(V("<div class='ui-wrapper'></div>").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this._proportionallyResize()),this._setupHandles(),e.autoHide&&V(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){V(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,a=this;if(this.handles=o.handles||(V(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=V(),this._addedHandles=V(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e<i.length;e++)s="ui-resizable-"+(t=String.prototype.trim.call(i[e])),n=V("<div>"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=V(this.handles[e]),this._on(this.handles[e],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=V(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?s.outerHeight():s.outerWidth(),i=["padding",/ne|nw|n
vendor: 4,452 bytes, line 11124
11124/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){a.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=V(this.handles[e])[0])!==t.target&&!V.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s,n=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),n.containment&&(e+=V(n.containment).scrollLeft()||0,i+=V(n.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this._helper||(s=this._calculateAdjustedElementDimensions(o)),this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:s.width,height:s.height},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:s.width,height:s.height},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof n.aspectRatio?n.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=V(".ui-resizable-"+this.axis).css("cursor"),V("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(i=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),V.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(i=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,e=e?0:o.sizeDiff.width,e={width:o.helper.width()-e,height:o.helper.height()-i},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(V.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper)&&!n.animate&&this._proportionallyResize(),V("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.helper.css(t),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px",this.helper.width(t.width)),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px",this.helper.height(t.height)),t},_updateVirtualBoundaries:function(t){var e,i,s,n=this.options,n={minWidth:this._isNumber(n.minWidth)?n.minWidth:0,maxWidth:this._isNumber(n.maxWidth)?n.maxWidth:1/0,minHeight:this._isNumber(n.minHeight)?n.minHeight:0,maxHeight:this._isNumber(n.maxHeight)?n.maxHeight:1/0};(this._aspectRatio||t)&&(t=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,e=n.maxHeight*this.aspectRatio,s=n.maxWidth/this.aspectRatio,n.minWidth<t&&(n.minWidth=t),n.minHeight<i&&(n.minHeight=i),e<n.maxWidth&&(n.maxWidth=e),s<n.maxHeight)&&(n.maxHeight=s),this._vBoundaries=n},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left
vendor: 6,375 bytes, line 11124
11124=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_calculateAdjustedElementDimensions:function(t){var e,i,s=t.get(0);return"content-box"!==t.css("box-sizing")||!this._hasScroll(s)&&!this._hasScroll(s,"left")?{height:parseFloat(t.css("height")),width:parseFloat(t.css("width"))}:(e=parseFloat(s.style.width),s=parseFloat(s.style.height),i=this._getPaddingPlusBorderDimensions(t),e=isNaN(e)?this._getElementTheoreticalSize(t,i,"width"):e,{height:isNaN(s)?this._getElementTheoreticalSize(t,i,"height"):s,width:e})},_getElementTheoreticalSize:function(t,e,i){return Math.max(0,Math.ceil(t.get(0)["offset"+i[0].toUpperCase()+i.slice(1)]-e[i]-.5))||0},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e<this._proportionallyResizeElements.length;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,e=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||V("<div></div>").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){V.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),V.ui.plugin.add("resizable","animate",{stop:function(e){var i=V(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,n=n?0:i.sizeDiff.width,n={width:i.size.width-n,height:i.size.height-o},o=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,a=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(V.extend(n,a&&o?{top:a,left:o}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&V(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),V.ui.plugin.add("resizable","containment",{start:function(){var i,s,t,e,n=V(this).resizable("instance"),o=n.options,a=n.element,o=o.containment,a=o instanceof V?o.get(0):/parent/.test(o)?a.parent().get(0):o;a&&(n.containerElement=V(a),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:V(document),left:0,top:0,width:V(document).width(),height:V(document).height()||document.body.parentNode.scrollHeight}):(i=V(a),s=[],V(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},o=n.containerOffset,e=n.containerSize.height,t=n.containerSize.width,t=n._hasScroll(a,"left")?a.scrollWidth:t,e=n._hasScroll(a)?a.scrollHeight:e,n.parentData={element:a,left:o.left,top:o.top,width:t,height:e}))},resize:function(t){var e=V(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,t=e._aspectRatio||t.shiftKey,o={top:0,left:0},a=e.containerElement,r=!0;a[0]!==document&&/static/.test(a.css("position"))&&(o=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-o.left),t&&(e.size.height=e.size.width/e.aspectRatio,r=!1),e.position.left
vendor: 38,457 bytes, line 11124
11124=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),t&&(e.size.width=e.size.height*e.aspectRatio,r=!1),e.position.top=e._helper?s.top:0),a=e.containerElement.get(0)===e.element.parent().get(0),i=/relative|absolute/.test(e.containerElement.css("position")),a&&i?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-o.left:e.offset.left-s.left)),a=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-o.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,t)&&(e.size.height=e.size.width/e.aspectRatio,r=!1),a+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-a,t)&&(e.size.width=e.size.height*e.aspectRatio,r=!1),r||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=V(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=V(t.helper),a=o.offset(),r=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o})}}),V.ui.plugin.add("resizable","alsoResize",{start:function(){var i=V(this).resizable("instance"),t=i.options;V(t.alsoResize).each(function(){var t=V(this),e=i._calculateAdjustedElementDimensions(t);t.data("ui-resizable-alsoresize",{width:e.width,height:e.height,left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=V(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,a={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};V(s.alsoResize).each(function(){var t=V(this),s=V(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];V.each(e,function(t,e){var i=(s[e]||0)+(a[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){V(this).removeData("ui-resizable-alsoresize")}}),V.ui.plugin.add("resizable","ghost",{start:function(){var t=V(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!0===V.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=V(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=V(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),V.ui.plugin.add("resizable","grid",{resize:function(){var t,e=V(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,a=e.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,l=r[0]||1,h=r[1]||1,c=Math.round((s.width-n.width)/l)*l,s=Math.round((s.height-n.height)/h)*h,u=n.width+c,d=n.height+s,p=i.maxWidth&&i.maxWidth<u,f=i.maxHeight&&i.maxHeight<d,g=i.minWidth&&i.minWidth>u,m=i.minHeight&&i.minHeight>d;i.grid=r,g&&(u+=l),m&&(d+=h),p&&(u-=l),f&&(d-=h),/^(se|s|e)$/.test(a)?(e.size.width=u,e.size.height=d):/^(ne)$/.test(a)?(e.size.width=u,e.size.height=d,e.position.top=o.top-s):/^(sw)$/.test(a)?(e.size.width=u,e.size.height=d,e.position.left=o.left-c):((d-h<=0||u-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0<d-h?(e.size.height=d,e.position.top=o.top-s):(d=h-t.height,e.size.height=d,e.position.top=o.top+n.height-d),0<u-l?(e.size.width=u,e.position.left=o.left-c):(u=l-t.width,e.size.width=u,e.position.left=o.left+n.width-u))}}),V.ui.resizable,V.widget("ui.dialog",{version:"1.14.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var e=V(this).css(t).offset().top;e<0&&V(this).css("top",t.top-e)}},resizable:!0,show:null,title:null,uiDialogTitleHeadingLevel:0,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&V.fn.draggable&&this._makeDraggable(),this.options.resizable&&V.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?V(t):this.document.find(t||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),(t=e.parent.children().eq(e.index)).length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:V.noop,enable:V.noop,close:function(t){var e=this;this._isOpen&&!1!==this._trigger("beforeClose",t)&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||V(this.document[0].activeElement).trigger("blur"),this._hide(this.uiDialog,this.options.hide,function(){e._trigger("close",t)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,e){var i=!1,s=this.uiDialog.siblings(".ui-front:visible").map(function(){return+V(this).css("z-index")}).get(),s=Math.max.apply(null,s);return s>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),i=!0),i&&!e&&this._trigger("focus",t),i},open:function(){var t=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=V(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;(t=(t=(t=(t=(t=t||this.element.find("[autofocus]")).length?t:this.element.find(":tabbable")).length?t:this.uiDialogButtonPane.find(":tabbable")).length?t:this.uiDialogTitlebarClose.filter(":tabbable")).length?t:this.uiDialog).eq(0).trigger("focus")},_restoreTabbableFocus:function(){var t=this.document[0].activeElement;this.uiDialog[0]===t||V.contains(this.uiDialog[0],t)||this._focusTabbable()},_keepFocus:function(t){t.preventDefault(),this._restoreTabbableFocus()},_createWrapper:function(){this.uiDialog=V("<div>").hide().attr({tabIndex:-1,role:"dialog","aria-modal":this.options.modal?"true":null}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(t){var e,i,s;this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===V.ui.keyCode.ESCAPE?(t.preventDefault(),this.close(t)):t.keyCode!==V.ui.keyCode.TAB||t.isDefaultPrevented()||(e=this.uiDialog.find(":tabbable"),i=e.first(),s=e.last(),t.target!==s[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==i[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){s.trigger("focus")}),t.preventDefault()):(this._delay(function(){i.trigger("focus")}),t.preventDefault()))},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){this.uiDialogTitlebar=V("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(t){V(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=V("<button type='button'></button>").button({label:V("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}});var t=Number.isInteger(this.options.uiDialogTitleHeadingLevel)&&0<this.options.uiDialogTitleHeadingLevel&&this.options.uiDialogTitleHeadingLevel<=6?"h"+this.options.uiDialogTitleHeadingLevel:"span",t=V("<"+t+">").uniqueId().prependTo(this.uiDialogTitlebar);this._addClass(t,"ui-dialog-title"),this._title(t),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html("&#160;")},_createButtonPane:function(){this.uiDialogButtonPane=V("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=V("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var s=this,t=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),V.isEmptyObject(t)||Array.isArray(t)&&!t.length?this._removeClass(this.uiDialog,"ui-dialog-buttons"):(V.each(t,function(t,e){var i;e=V.extend({type:"button"},e="function"==typeof e?{click:e,text:t}:e),i=e.click,t={icon:e.icon,iconPosition:e.iconPosition,showLabel:e.showLabel,icons:e.icons,text:e.text},delete e.click,delete e.icon,delete e.iconPosition,delete e.showLabel,delete e.icons,"boolean"==typeof e.text&&delete e.text,V("<button></button>",e).button(t).appendTo(s.uiButtonSet).on("click",function(){i.apply(s.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){var n=this,o=this.options;function a(t){return{position:t.position,offset:t.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(t,e){n._addClass(V(this),"ui-dialog-dragging"),n._blockFrames(),n._trigger("dragStart",t,a(e))},drag:function(t,e){n._trigger("drag",t,a(e))},stop:function(t,e){var i=e.offset.left-n.document.scrollLeft(),s=e.offset.top-n.document.scrollTop();o.position={my:"left top",at:"left"+(0<=i?"+":"")+i+" top"+(0<=s?"+":"")+s,of:n.window},n._removeClass(V(this),"ui-dialog-dragging"),n._unblockFrames(),n._trigger("dragStop",t,a(e))}})},_makeResizable:function(){var n=this,o=this.options,t=o.resizable,e=this.uiDialog.css("position"),t="string"==typeof t?t:"n,e,s,w,se,sw,ne,nw";function a(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:o.maxWidth,maxHeight:o.maxHeight,minWidth:o.minWidth,minHeight:this._minHeight(),handles:t,start:function(t,e){n._addClass(V(this),"ui-dialog-resizing"),n._blockFrames(),n._trigger("resizeStart",t,a(e))},resize:function(t,e){n._trigger("resize",t,a(e))},stop:function(t,e){var i=n.uiDialog.offset(),s=i.left-n.document.scrollLeft(),i=i.top-n.document.scrollTop();o.height=n.uiDialog.height(),o.width=n.uiDialog.width(),o.position={my:"left top",at:"left"+(0<=s?"+":"")+s+" top"+(0<=i?"+":"")+i,of:n.window},n._removeClass(V(this),"ui-dialog-resizing"),n._unblockFrames(),n._trigger("resizeStop",t,a(e))}}).css("position",e)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=V(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),e=V.inArray(this,t);-1!==e&&t.splice(e,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||this.document.data("ui-dialog-instances",t=[]),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};V.each(t,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(t,e){var i,s=this.uiDialog;"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:V("<a>").text(""+this.options.closeText).html()}),"draggable"===t&&((i=s.is(":data(ui-draggable)"))&&!e&&s.draggable("destroy"),!i)&&e&&this._makeDraggable(),"position"===t&&this._position(),"resizable"===t&&((i=s.is(":data(ui-resizable)"))&&!e&&s.resizable("destroy"),i&&"string"==typeof e&&s.resizable("option","handles",e),i||!1===e||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")),"modal"===t)&&s.attr("aria-modal",e?"true":null)},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=V(this);return V("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return!!V(t.target).closest(".ui-dialog").length||!!V(t.target).closest(".ui-datepicker").length},_createOverlay:function(){var i;this.options.modal&&(i=!0,this._delay(function(){i=!1}),this.document.data("ui-dialog-overlays")||this.document.on("focusin.ui-dialog",function(t){var e;i||(e=this._trackingInstances()[0])._allowInteraction(t)||(t.preventDefault(),e._focusTabbable())}.bind(this)),this.overlay=V("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1))},_destroyOverlay:function(){var t;this.options.modal&&this.overlay&&((t=this.document.data("ui-dialog-overlays")-1)?this.document.data("ui-dialog-overlays",t):(this.document.off("focusin.ui-dialog"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null)}}),!0===V.uiBackCompat&&V.widget("ui.dialog",V.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),V.ui.dialog;function rt(t,e,i){return e<=t&&t<e+i}V.widget("ui.droppable",{version:"1.14.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,e=this.options,i=e.accept;this.isover=!1,this.isout=!0,this.accept="function"==typeof i?i:function(t){return t.is(i)},this.proportions=function(){if(!arguments.length)return t=t||{width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};t=arguments[0]},this._addToManager(e.scope),e.addClasses&&this._addClass("ui-droppable")},_addToManager:function(t){V.ui.ddmanager.droppables[t]=V.ui.ddmanager.droppables[t]||[],V.ui.ddmanager.droppables[t].push(this)},_splice:function(t){for(var e=0;e<t.length;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var t=V.ui.ddmanager.droppables[this.options.scope];this._splice(t)},_setOption:function(t,e){var i;"accept"===t?this.accept="function"==typeof e?e:function(t){return t.is(e)}:"scope"===t&&(i=V.ui.ddmanager.droppables[this.options.scope],this._splice(i),this._addToManager(e)),this._super(t,e)},_activate:function(t){var e=V.ui.ddmanager.current;this._addActiveClass(),e&&this._trigger("activate",t,this.ui(e))},_deactivate:function(t){var e=V.ui.ddmanager.current;this._removeActiveClass(),e&&this._trigger("deactivate",t,this.ui(e))},_over:function(t){var e=V.ui.ddmanager.current;e&&(e.currentItem||e.element)[0]!==this.element[0]&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this._addHoverClass(),this._trigger("over",t,this.ui(e)))},_out:function(t){var e=V.ui.ddmanager.current;e&&(e.currentItem||e.element)[0]!==this.element[0]&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this._removeHoverClass(),this._trigger("out",t,this.ui(e)))},_drop:function(e,t){var i=t||V.ui.ddmanager.current,s=!1;return!(!i||(i.currentItem||i.element)[0]===this.element[0]||(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var t=V(this).droppable("instance");if(t.options.greedy&&!t.options.disabled&&t.options.scope===i.options.scope&&t.accept.call(t.element[0],i.currentItem||i.element)&&V.ui.intersect(i,V.extend(t,{offset:t.element.offset()}),t.options.tolerance,e))return!(s=!0)}),s)||!this.accept.call(this.element[0],i.currentItem||i.element))&&(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(i)),this.element)},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}}),V.ui.intersect=function(t,e,i,s){if(!e.offset)return!1;var n=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,a=n+t.helperProportions.width,r=o+t.helperProportions.height,l=e.offset.left,h=e.offset.top,c=l+e.proportions().width,u=h+e.proportions().height;switch(i){case"fit":return l<=n&&a<=c&&h<=o&&r<=u;case"intersect":return l<n+t.helperProportions.width/2&&a-t.helperProportions.width/2<c&&h<o+t.helperProportions.height/2&&r-t.helperProportions.height/2<u;case"pointer":return rt(s.pageY,h,e.proportions().height)&&rt(s.pageX,l,e.proportions().width);case"touch":return(h<=o&&o<=u||h<=r&&r<=u||o<h&&u<r)&&(l<=n&&n<=c||l<=a&&a<=c||n<l&&c<a);default:return!1}},V.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(t,e){var i,s,n=V.ui.ddmanager.droppables[t.options.scope]||[],o=e?e.type:null,a=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();t:for(i=0;i<n.length;i++)if(!(n[i].options.disabled||t&&!n[i].accept.call(n[i].element[0],t.currentItem||t.element))){for(s=0;s<a.length;s++)if(a[s]===n[i].element[0]){n[i].proportions().height=0;continue t}n[i].visible="none"!==n[i].element.css("display"),n[i].visible&&("mousedown"===o&&n[i]._activate.call(n[i],e),n[i].offset=n[i].element.offset(),n[i].proportions({width:n[i].element[0].offsetWidth,height:n[i].element[0].offsetHeight}))}},drop:function(t,e){var i=!1;return V.each((V.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&V.ui.intersect(t,this,this.options.tolerance,e)&&(i=this._drop.call(this,e)||i),!this.options.disabled)&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,e))}),i},dragStart:function(t,e){t.element.parentsUntil("body").on("scroll.droppable",function(){t.options.refreshPositions||V.ui.ddmanager.prepareOffsets(t,e)})},drag:function(n,o){n.options.refreshPositions&&V.ui.ddmanager.prepareOffsets(n,o),V.each(V.ui.ddmanager.droppables[n.options.scope]||[],function(){var t,e,i,s;this.options.disabled||this.greedyChild||!this.visible||(s=!(s=V.ui.intersect(n,this,this.options.tolerance,o))&&this.isover?"isout":s&&!this.isover?"isover":null)&&(this.options.greedy&&(e=this.options.scope,(i=this.element.parents(":data(ui-droppable)").filter(function(){return V(this).droppable("instance").options.scope===e})).length)&&((t=V(i[0]).droppable("instance")).greedyChild="isover"===s),t&&"isover"===s&&(t.isover=!1,t.isout=!0,t._out.call(t,o)),this[s]=!0,this["isout"===s?"isover":"isout"]=!1,this["isover"===s?"_over":"_out"].call(this,o),t)&&"isout"===s&&(t.isout=!1,t.isover=!0,t._over.call(t,o))})},dragStop:function(t,e){t.element.parentsUntil("body").off("scroll.droppable"),t.options.refreshPositions||V.ui.ddmanager.prepareOffsets(t,e)}},!0===V.uiBackCompat&&V.widget("ui.droppable",V.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}});V.ui.droppable,V.widget("ui.progressbar",{version:"1.14.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=V("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){if(void 0===t)return this.options.value;this.options.value=this._constrainedValue(t),this._refreshValue()},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=!1===t,"number"!=typeof t&&(t=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,e=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).width(e.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,t===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=V("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),V.widget("ui.selectable",V.ui.mouse,{version:"1.14.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var i=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){i.elementPos=V(i.element[0]).offset(),i.selectees=V(i.options.filter,i.element[0]),i._addClass(i.selectees,"ui-selectee"),i.selectees.each(function(){var t=V(this),e=t.offset(),e={left:e.left-i.elementPos.left,top:e.top-i.elementPos.top};V.data(this,"selectable-item",{element:this,$element:t,left:e.left,top:e.top,right:e.left+t.outerWidth(),bottom:e.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=V("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(i){var s=this,t=this.options;this.opos=[i.pageX,i.pageY],this.elementPos=V(this.element[0]).offset(),this.options.disabled||(this.selectees=V(t.filter,this.element[0]),this._trigger("start",i),V(t.appendTo).append(this.helper),this.helper.css({left:i.pageX,top:i.pageY,width:0,height:0}),t.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var t=V.data(this,"selectable-item");t.startselected=!0,i.metaKey||i.ctrlKey||(s._removeClass(t.$element,"ui-selected"),t.selected=!1,s._addClass(t.$element,"ui-unselecting"),t.unselecting=!0,s._trigger("unselecting",i,{unselecting:t.element}))}),V(i.target).parents().addBack().each(function(){var t,e=V.data(this,"selectable-item");if(e)return t=!i.metaKey&&!i.ctrlKey||!e.$element.hasClass("ui-selected"),s._removeClass(e.$element,t?"ui-unselecting":"ui-selected")._addClass(e.$element,t?"ui-selecting":"ui-unselecting"),e.unselecting=!t,e.selecting=t,(e.selected=t)?s._trigger("selecting",i,{selecting:e.element}):s._trigger("unselecting",i,{unselecting:e.element}),!1}))},_mouseDrag:function(s){var t,n,o,a,r,l,h;if(this.dragged=!0,!this.options.disabled)return o=(n=this).options,a=this.opos[0],r=this.opos[1],(l=s.pageX)<a&&(t=l,l=a,a=t),(h=s.pageY)<r&&(t=h,h=r,r=t),this.helper.css({left:a,top:r,width:l-a,height:h-r}),this.selectees.each(function(){var t=V.data(this,"selectable-item"),e=!1,i={};t&&t.element!==n.element[0]&&(i.left=t.left+n.elementPos.left,i.right=t.right+n.elementPos.left,i.top=t.top+n.elementPos.top,i.bottom=t.bottom+n.elementPos.top,"touch"===o.tolerance?e=!(l<i.left||i.right<a||h<i.top||i.bottom<r):"fit"===o.tolerance&&(e=a<i.left&&i.right<l&&r<i.top&&i.bottom<h),e?(t.selected&&(n._removeClass(t.$element,"ui-selected"),t.selected=!1),t.unselecting&&(n._removeClass(t.$element,"ui-unselecting"),t.unselecting=!1),t.selecting||(n._addClass(t.$element,"ui-selecting"),t.selecting=!0,n._trigger("selecting",s,{selecting:t.element}))):(t.selecting&&((s.metaKey||s.ctrlKey)&&t.startselected?(n._removeClass(t.$element,"ui-selecting"),t.selecting=!1,n._addClass(t.$element,"ui-selected"),t.selected=!0):(n._removeClass(t.$element,"ui-selecting"),t.selecting=!1,t.startselected&&(n._addClass(t.$element,"ui-unselecting"),t.unselecting=!0),n._trigger("unselecting",s,{unselecting:t.element}))),!t.selected||s.metaKey||s.ctrlKey||t.startselected||(n._removeClass(t.$element,"ui-selected"),t.selected=!1,n._addClass(t.$element,"ui-unselecting"),t.unselecting=!0,n._trigger("unselecting",s,{unselecting:t.element}))))}),!1},_mouseStop:function(e){var i=this;return this.dragged=!1,V(".ui-unselecting",this.element[0]).each(function(){var t=V.data(this,"selectable-item");i._removeClass(t.$element,"ui-unselecting"),t.unselecting=!1,t.startselected=!1,i._trigger("unselected",e,{unselected:t.element})}),V(".ui-selecting",this.element[0]).each(function(){var t=V.data(this,"selectable-item");i._removeClass(t.$element,"ui-selecting")._addClass(t.$element,"ui-selected"),t.selecting=!1,t.selected=!0,t.startselected=!0,i._trigger("selected",e,{selected:t.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),V.widget("ui.selectmenu",[V.ui.formResetMixin,{version:"1.14.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=V()},_drawButton:function(){var t,e=this,i=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.trigger("focus"),t.preventDefault()}}),this.element.hide(),this.button=V("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),t=V("<span>").appendTo(this.button),this._addClass(t,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(i).appendTo(this.button),!1!==this.options.width&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){e._rendered||e._refreshMenu()})},_drawMenu:function(){var i=this;this.menu=V("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=V("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,e){t.preventDefault(),i._select(e.item.data("ui-selectmenu-item"),t)},focus:function(t,e){e=e.item.data("ui-selectmenu-item");null!=i.focusIndex&&e.index!==i.focusIndex&&(i._trigger("focus",t,{item:e}),i.isOpen||i._select(e,t)),i.focusIndex=e.index,i.button.attr("aria-activedescendant",i.menuItems.eq(e.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t=this.element.find("option");this.menu.empty(),this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,t.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(V.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(t){var e=V("<span>");return this._setText(e,t.label),this._addClass(e,"ui-selectmenu-text"),e},_renderMenu:function(s,t){var n=this,o="";V.each(t,function(t,e){var i;e.optgroup!==o&&(i=V("<li>",{text:e.optgroup}),n._addClass(i,"ui-selectmenu-optgroup","ui-menu-divider"+(e.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),i.appendTo(s),o=e.optgroup),n._renderItemData(s,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(t,e){var i=V("<li>"),s=V("<div>",{title:e.element.attr("title")});return e.disabled&&this._addClass(i,null,"ui-state-disabled"),e.hidden?i.prop("hidden",!0):this._setText(s,e.label),i.append(s).appendTo(t)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var i,s=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),s+=":not(.ui-state-disabled)"),(i="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](s).eq(-1):i[t+"All"](s).eq(0)).length&&this.menuInstance.focus(e,i)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&((t=window.getSelection()).removeAllRanges(),t.addRange(this.range))},_documentClick:{mousedown:function(t){!this.isOpen||V(t.target).closest(".ui-selectmenu-menu, #"+CSS.escape(this.ids.button)).length||this.close(t)}},_buttonEvents:{mousedown:function(){var t=window.getSelection();t.rangeCount&&(this.range=t.getRangeAt(0))},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(t){var e=!0;switch(t.keyCode){case V.ui.keyCode.TAB:case V.ui.keyCode.ESCAPE:this.close(t),e=!1;break;case V.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case V.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case V.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case V.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case V.ui.keyCode.LEFT:this._move("prev",t);break;case V.ui.keyCode.RIGHT:this._move("next",t);break;case V.ui.keyCode.HOME:case V.ui.keyCode.PAGE_UP:this._move("first",t);break;case V.ui.keyCode.END:case V.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),e=!1}e&&t.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){t=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(t,e){var i;"icons"===t&&(i=this.button.find("span.ui-icon"),this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)),this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var t=this.options.appendTo;return t=(t=(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))&&t[0]?t:this.element.closest(".ui-front, dialog")).length?t:this.document[0].body},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;!1===t?this.button.css("width",""):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t))},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(t){var i=this,s=[];t.each(function(t,e){s.push(i._parseOption(V(e),t))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),hidden:i.prop("hidden")||t.prop("hidden"),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),V.widget("ui.slider",V.ui.mouse,{version:"1.14.1
vendor: 10,399 bytes, line 11124
11124",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,e=this.options,i=this.element.find(".ui-slider-handle"),s=[],n=e.values&&e.values.length||1;for(i.length>n&&(i.slice(n).remove(),i=i.slice(0,n)),t=i.length;t<n;t++)s.push("<span tabindex='0'></span>");this.handles=i.add(V(s.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(t){V(this).data("ui-slider-handle-index",t).attr("tabIndex",0)})},_createRange:function(){var t=this.options;t.range?(!0===t.range&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:Array.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=V("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),"min"!==t.range&&"max"!==t.range||this._addClass(this.range,"ui-slider-range-"+t.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,o,e,a,r=this,l=this.options;return!l.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e),s=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var e=Math.abs(i-r.values(t));(e<s||s===e&&(t===r._lastChangedValue||r.values(t)===l.min))&&(s=e,n=V(this),o=t)}),!1!==this._start(t,o))&&(this._mouseSliding=!0,this._handleIndex=o,this._addClass(n,null,"ui-state-active"),n.trigger("focus"),e=n.offset(),a=!V(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=a?{left:0,top:0}:{left:t.pageX-e.left-n.width()/2,top:t.pageY-e.top-n.height()/2-(parseInt(n.css("borderTopWidth"),10)||0)-(parseInt(n.css("borderBottomWidth"),10)||0)+(parseInt(n.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,i),this._animateOff=!0)},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},e=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,e),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,t="horizontal"===this.orientation?(e=this.elementSize.width,t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),t=t/e;return(t=1<t?1:t)<0&&(t=0),"vertical"===this.orientation&&(t=1-t),e=this._valueMax()-this._valueMin(),t=this._valueMin()+t*e,this._trimAlignValue(t)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n=this.value(),o=this.values();this._hasMultipleValues()&&(s=this.values(e?0:1),n=this.values(e),2===this.options.values.length&&!0===this.options.range&&(i=0===e?Math.min(s,i):Math.max(s,i)),o[e]=i),i!==n&&!1!==this._trigger("slide",t,this._uiHash(e,i,o))&&(this._hasMultipleValues()?this.values(e,i):this.value(i))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){if(!arguments.length)return this._value();this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0)},values:function(t,e){var i,s,n;if(1<arguments.length)this.options.values[t]=this._trimAlignValue(e),this._refreshValue(),this._change(null,t);else{if(!arguments.length)return this._values();if(!Array.isArray(t))return this._hasMultipleValues()?this._values(t):this.value();for(i=this.options.values,s=t,n=0;n<i.length;n+=1)i[n]=this._trimAlignValue(s[n]),this._change(null,n);this._refreshValue()}},_setOption:function(t,e){var i,s=0;switch("range"===t&&!0===this.options.range&&("min"===e?(this.options.value=this._values(0),this.options.values=null):"max"===e&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),Array.isArray(this.options.values)&&(s=this.options.values.length),this._super(t,e),t){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(e),this.handles.css("horizontal"===e?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),i=s-1;0<=i;i--)this._change(null,i);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return this._trimAlignValue(t)},_values:function(t){var e,i;if(arguments.length)return t=this.options.values[t],this._trimAlignValue(t);if(this._hasMultipleValues()){for(e=this.options.values.slice(),i=0;i<e.length;i+=1)e[i]=this._trimAlignValue(e[i]);return e}return[]},_trimAlignValue:function(t){var e,i;return t<=this._valueMin()?this._valueMin():t>=this._valueMax()?this._valueMax():(e=0<this.options.step?this.options.step:1,i=t-(t=(t-this._valueMin())%e),2*Math.abs(t)>=e&&(i+=0<t?e:-e),parseFloat(i.toFixed(5)))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step;(t=Math.round((t-e)/i)*i+e)>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return t=null!==this.options.min?Math.max(t,this._precisionOf(this.options.min)):t},_precisionOf:function(t){var t=t.toString(),e=t.indexOf(".");return-1===e?0:t.length-e-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,t,s,n,o=this.options.range,a=this.options,r=this,l=!this._animateOff&&a.animate,h={};this._hasMultipleValues()?this.handles.each(function(t){i=(r.values(t)-r._valueMin())/(r._valueMax()-r._valueMin())*100,h["horizontal"===r.orientation?"left":"bottom"]=i+"%",V(this).stop(1,1)[l?"animate":"css"](h,a.animate),!0===r.options.range&&("horizontal"===r.orientation?(0===t&&r.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},a.animate),1===t&&r.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:a.animate})):(0===t&&r.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},a.animate),1===t&&r.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:a.animate}))),e=i}):(t=this.value(),s=this._valueMin(),n=this._valueMax(),i=n!==s?(t-s)/(n-s)*100:0,h["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](h,a.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},a.animate),"max"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},a.animate),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},a.animate),"max"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},a.animate))},_handleEvents:{keydown:function(t){var e,i,s,n=V(t.target).data("ui-slider-handle-index");switch(t.keyCode){case V.ui.keyCode.HOME:case V.ui.keyCode.END:case V.ui.keyCode.PAGE_UP:case V.ui.keyCode.PAGE_DOWN:case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(t.preventDefault(),this._keySliding||(this._keySliding=!0,this._addClass(V(t.target),null,"ui-state-active"),!1!==this._start(t,n)))break;return}switch(s=this.options.step,e=i=this._hasMultipleValues()?this.values(n):this.value(),t.keyCode){case V.ui.keyCode.HOME:i=this._valueMin();break;case V.ui.keyCode.END:i=this._valueMax();break;case V.ui.keyCode.PAGE_UP:i=this._trimAlignValue(e+(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.PAGE_DOWN:i=this._trimAlignValue(e-(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:if(e===this._valueMax())return;i=this._trimAlignValue(e+s);break;case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(e===this._valueMin())return;i=this._trimAlignValue(e-s)}this._slide(t,n,i)},keyup:function(t){var e=V(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,e),this._change(t,e),this._removeClass(V(t.target),null,"ui-state-active"))}}}),V.widget("ui.sortable",V.ui.mouse,{version:"1.1
111244.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return e<=t&&t<e+i},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var t=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),V.each(this.items,function(){t._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;0<=t;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,e){var i=null,s=!1,n=this;return!(this.reverting||this.options.disabled||"static"===this.options.type||(this._refreshItems(t),V(t.target).parents().each(function(){if(V.data(this,n.widgetName+"-item")===n)return i=V(this),!1}),!(i=V.data(t.target,n.widgetName+"-item")===n?V(t.target):i))||(this.options.handle&&!e&&(V(this.options.handle,i).find("*").addBack().each(function(){this===t.target&&(s=!0)}),!s)||(this.currentItem=i,this._removeCurrentsFromItems(),0)))},_mouseStart:function(t,e,i){var s,n,o=this.options;if((this.currentContainer=this).refreshPositions(),this.appendTo=V("parent"!==o.appendTo?o.appendTo:this.currentItem.parent()),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},V.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),this.scrollParent=this.placeholder.scrollParent(),V.extend(this.offset,{parent:this._getParentOffset()}),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(n=this.document.find("body"),this._
vendor: 21,090 bytes, line 11124
11124storedStylesheet=V("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(n)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(s=this.containers.length-1;0<=s;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return V.ui.ddmanager&&(V.ui.ddmanager.current=this),V.ui.ddmanager&&!o.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this.helper.parent().is(this.appendTo)||(this.helper.detach().appendTo(this.appendTo),this.offset.parent=this._getParentOffset()),this.position=this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,this.lastPositionAbs=this.positionAbs=this._convertPositionTo("absolute"),this._mouseDrag(t),!0},_scroll:function(t){var e=this.options,i=!1;return this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<e.scrollSensitivity?this.scrollParent[0].scrollTop=i=this.scrollParent[0].scrollTop+e.scrollSpeed:t.pageY-this.overflowOffset.top<e.scrollSensitivity&&(this.scrollParent[0].scrollTop=i=this.scrollParent[0].scrollTop-e.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<e.scrollSensitivity?this.scrollParent[0].scrollLeft=i=this.scrollParent[0].scrollLeft+e.scrollSpeed:t.pageX-this.overflowOffset.left<e.scrollSensitivity&&(this.scrollParent[0].scrollLeft=i=this.scrollParent[0].scrollLeft-e.scrollSpeed)):(t.pageY-this.document.scrollTop()<e.scrollSensitivity?i=this.document.scrollTop(this.document.scrollTop()-e.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<e.scrollSensitivity&&(i=this.document.scrollTop(this.document.scrollTop()+e.scrollSpeed)),t.pageX-this.document.scrollLeft()<e.scrollSensitivity?i=this.document.scrollLeft(this.document.scrollLeft()-e.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<e.scrollSensitivity&&(i=this.document.scrollLeft(this.document.scrollLeft()+e.scrollSpeed))),i},_mouseDrag:function(t){var e,i,s,n,o=this.options;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),o.scroll&&!1!==this._scroll(t)&&(this._refreshItemPositions(!0),V.ui.ddmanager)&&!o.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t),this.dragDirection={vertical:this._getDragVerticalDirection(),horizontal:this._getDragHorizontalDirection()},e=this.items.length-1;0<=e;e--)if(s=(i=this.items[e]).item[0],(n=this._intersectsWithPointer(i))&&i.instance===this.currentContainer&&!(s===this.currentItem[0]||this.placeholder[1===n?"next":"prev"]()[0]===s||V.contains(this.placeholder[0],s)||"semi-dynamic"===this.options.type&&V.contains(this.element[0],s))){if(this.direction=1===n?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(i))break;this._rearrange(t,i),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),V.ui.ddmanager&&V.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,e){var i,s,n,o;if(t)return V.ui.ddmanager&&!this.options.dropBehaviour&&V.ui.ddmanager.drop(this,t),this.options.revert?(s=(i=this).placeholder.offset(),o={},(n=this.options.axis)&&"x"!==n||(o.left=s.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),n&&"y"!==n||(o.top=s.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,V(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){i._clear(t)})):this._clear(t,e),!1},cancel:function(){if(this.dragging){this._mouseUp(new V.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var t=this.containers.length-1;0<=t;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),V.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?V(this.domPosition.prev).after(this.currentItem):V(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var t=this._getItemsAsjQuery(e&&e.connected),i=[];return e=e||{},V(t).each(function(){var t=(V(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);t&&i.push((e.key||t[1]+"[]")+"="+(e.key&&e.expression?t[1]:t[2]))}),!i.length&&e.key&&i.push(e.key+"="),i.join("&")},toArray:function(t){var e=this._getItemsAsjQuery(t&&t.connected),i=[];return t=t||{},e.each(function(){i.push(V(t.item||this).attr(t.attribute||"id")||"")}),i},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,l=r+t.height,h=this.offset.click.top,c=this.offset.click.left,h="x"===this.options.axis||r<s+h&&s+h<l,c="y"===this.options.axis||o<e+c&&e+c<a;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?h&&c:o<e+this.helperProportions.width/2&&i-this.helperProportions.width/2<a&&r<s+this.helperProportions.height/2&&n-this.helperProportions.height/2<l},_intersectsWithPointer:function(t){var e="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),t="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width);return!(!e||!t)&&(e=this.dragDirection.vertical,t=this.dragDirection.horizontal,this.floating?"right"===t||"down"===e?2:1:e&&("down"===e?2:1))},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),t=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),i=this.dragDirection.vertical,s=this.dragDirection.horizontal;return this.floating&&s?"right"===s&&t||"left"===s&&!t:i&&("down"===i&&e||"up"===i&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!=t&&(0<t?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!=t&&(0<t?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(t){var e,i,s,n,o=[],a=[],r=this._connectWith();if(r&&t)for(e=r.length-1;0<=e;e--)for(i=(s=V(r[e],this.document[0])).length-1;0<=i;i--)(n=V.data(s[i],this.widgetFullName))&&n!==this&&!n.options.disabled&&a.push(["function"==typeof n.options.items?n.options.items.call(n.element):V(n.options.items,n.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),n]);function l(){o.push(this)}for(a.push(["function"==typeof this.options.items?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):V(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),e=a.length-1;0<=e;e--)a[e][0].each(l);return V(o)},_removeCurrentsFromItems:function(){var i=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=V.grep(this.items,function(t){for(var e=0;e<i.length;e++)if(i[e]===t.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var e,i,s,n,o,a,r,l,h=this.items,c=[["function"==typeof this.options.items?this.options.items.call(this.element[0],t,{item:this.currentItem}):V(this.options.items,this.element),this]],u=this._connectWith();if(u&&this.ready)for(e=u.length-1;0<=e;e--)for(i=(s=V(u[e],this.document[0])).length-1;0<=i;i--)(n=V.data(s[i],this.widgetFullName))&&n!==this&&!n.options.disabled&&(c.push(["function"==typeof n.options.items?n.options.items.call(n.element[0],t,{item:this.currentItem}):V(n.options.items,n.element),n]),this.containers.push(n));for(e=c.length-1;0<=e;e--)for(o=c[e][1],l=(a=c[e][i=0]).length;i<l;i++)(r=V(a[i])).data(this.widgetName+"-item",o),h.push({item:r,instance:o,width:0,height:0,left:0,top:0})},_refreshItemPositions:function(t){for(var e,i,s=this.items.length-1;0<=s;s--)e=this.items[s],this.currentContainer&&e.instance!==this.currentContainer&&e.item[0]!==this.currentItem[0]||(i=this.options.toleranceElement?V(this.options.toleranceElement,e.item):e.item,t||(e.width=i.outerWidth(),e.height=i.outerHeight()),i=i.offset(),e.left=i.left,e.top=i.top)},refreshPositions:function(t){var e,i;if(this.floating=!!this.items.length&&("x"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),this._refreshItemPositions(t),this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(e=this.containers.length-1;0<=e;e--)i=this.containers[e].element.offset(),this.containers[e].containerCache.left=i.left,this.containers[e].containerCache.top=i.top,this.containers[e].containerCache.width=this.containers[e].element.outerWidth(),this.containers[e].containerCache.height=this.containers[e].element.outerHeight();return this},_createPlaceholder:function(i){var s,n,o=(i=i||this).options;o.placeholder&&o.placeholder.constructor!==String||(s=o.placeholder,n=i.currentItem[0].nodeName.toLowerCase(),o.placeholder={element:function(){var t=V("<"+n+">",i.document[0]);return i._addClass(t,"ui-sortable-placeholder",s||i.currentItem[0].className)._removeClass(t,"ui-sortable-helper"),"tbody"===n?i._createTrPlaceholder(i.currentItem.find("tr").eq(0),V("<tr>",i.document[0]).appendTo(t)):"tr"===n?i._createTrPlaceholder(i.currentItem,t):"img"===n&&t.attr("src",i.currentItem.attr("src")),s||t.css("visibility","hidden"),t},update:function(t,e){s&&!o.forcePlaceholderSize||(e.height()&&(!o.forcePlaceholderSize||"tbody"!==n&&"tr"!==n)||e.height(i.currentItem.innerHeight()-parseInt(i.currentItem.css("paddingTop")||0,10)-parseInt(i.currentItem.css("paddingBottom")||0,10)),e.width())||e.width(i.currentItem.innerWidth()-parseInt(i.currentItem.css("paddingLeft")||0,10)-parseInt(i.currentItem.css("paddingRight")||0,10))}}),i.placeholder=V(o.placeholder.element.call(i.element,i.currentItem)),i.currentItem.after(i.placeholder),o.placeholder.update(i,i.placeholder)},_createTrPlaceholder:function(t,e){var i=this;t.children().each(function(){V("<td>&#160;</td>",i.document[0]).attr("colspan",V(this).attr("colspan")||1).appendTo(e)})},_contactContainers:function(t){for(var e,i,s,n,o,a,r,l,h,c=null,u=null,d=this.containers.length-1;0<=d;d--)V.contains(this.currentItem[0],this.containers[d].element[0])||(this._intersectsWith(this.containers[d].containerCache)?c&&V.contains(this.containers[d].element[0],c.element[0])||(c=this.containers[d],u=d):this.containers[d].containerCache.over&&(this.containers[d]._trigger("out",t,this._uiHash(this)),this.containers[d].containerCache.over=0));if(c)if(1===this.containers.length)this.containers[u].containerCache.over||(this.containers[u]._trigger("over",t,this._uiHash(this)),this.containers[u].containerCache.over=1);else{for(i=1e4,s=null,n=(l=c.floating||this._isFloating(this.currentItem))?"left":"top",o=l?"width":"height",h=l?"pageX":"pageY",e=this.items.length-1;0<=e;e--)V.contains(this.containers[u].element[0],this.items[e].item[0])&&this.items[e].item[0]!==this.currentItem[0]&&(a=this.items[e].item.offset()[n],r=!1,t[h]-a>this.items[e][o]/2&&(r=!0),Math.abs(t[h]-a)<i)&&(i=Math.abs(t[h]-a),s=this.items[e],this.direction=r?"up":"down");(s||this.options.dropOnEmpty)&&(this.currentContainer===this.containers[u]?this.currentContainer.containerCache.over||(this.containers[u]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1):(s?this._rearrange(t,s,null,!0):this._rearrange(t,null,this.containers[u].element,!0),this._trigger("change",t,this._uiHash()),this.containers[u]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[u],this.options.placeholder.update(this.currentContainer,this.placeholder),this.scrollParent=this.placeholder.scrollParent(),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this.containers[u]._trigger("over",t,this._uiHash(this)),this.containers[u].containerCache.over=1))}},_createHelper:function(t){var e=this.options,t="function"==typeof e.helper?V(e.helper.apply(this.element[0],[t,this.currentItem])):"clone"===e.helper?this.currentItem.clone():this.currentItem;return t.parents("body").length||this.appendTo[0].appendChild(t[0]),t[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),t[0].style.width&&!e.forceHelperSize||t.width(this.currentItem.width()),t[0].style.height&&!e.forceHelperSize||t.height(this.currentItem.height()),t},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),"left"in(t=Array.isArray(t)?{left:+t[0],top:+t[1]||0}:t)&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&V.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),{top:(t=this.offsetParent[0]===this.document[0].body?{top:0,left:0}:t).top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){var t;return"relative"===this.cssPosition?{top:(t=this.currentItem.position()).top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}:{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,e,i=this.options;"parent"===i.containment&&(i.containment=this.helper[0].parentNode),"document"!==i.containment&&"window"!==i.containment||(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===i.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===i.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(i.containment)||(t=V(i.containment)[0],i=V(i.containment).offset(),e="hidden"!==V(t).css("overflow"),this.containment=[i.left+(parseInt(V(t).css("borderLeftWidth"),10)||0)+(parseInt(V(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(V(t).css("borderTopWidth"),10)||0)+(parseInt(V(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(e?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(V(t).css("borderLeftWidth"),10)||0)-(parseInt(V(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(e?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(V(t).css("borderTopWidth"),10)||0)-(parseInt(V(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,e){e=e||this.position;var t="absolute"===t?1:-1,i="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&V.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,s=/(html|body)/i.test(i[0].tagName);return{top:e.top+this.offset.relative.top*t+this.offset.parent.top*t-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():s?0:i.scrollTop())*t,left:e.left+this.offset.relative.left*t+this.offset.parent.left*t-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():s?0:i.scrollLeft())*t}},_generatePosition:function(t){var e=this.options,i=t.pageX,s=t.pageY,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&V.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(i=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(s=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(i=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3])&&(s=this.containment[3]+this.offset.click.top),e.grid)&&(t=this.originalPageY+Math.round((s-this.originalPageY)/e.grid[1])*e.grid[1],s=!this.containment||t-this.offset.click.top>=this.containment[1]&&t-this.offset.click.top<=this.containment[3]?t:t-this.offset.click.top>=this.containment[1]?t-e.grid[1]:t+e.grid[1],t=this.originalPageX+Math.round((i-this.originalPageX)/e.grid[0])*e.grid[0],i=!this.containment||t-this.offset.click.left>=this.containment[0]&&t-this.offset.click.left<=this.containment[2]?t:t-this.offset.click.left>=this.containment[0]?t-e.grid[0]:t+e.grid[0]),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop()),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();function n(e,i,s){return function(t){s._trigger(e,t,i._uiHash(i))}}for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this===this.currentContainer||e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer))),i=this.containers.length-1;0<=i;i--)e||s.push(n("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(n("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.
vendor: 22,953 bytes, line 11124
11124_storedStylesheet&&(this._storedStylesheet.remove(),this._storedStylesheet=null),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i<s.length;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){!1===V.Widget.prototype._trigger.apply(this,arguments)&&this.cancel()},_uiHash:function(t){var e=t||this;return{helper:e.helper,placeholder:e.placeholder||V([]),position:e.position,originalPosition:e.originalPosition,offset:e.positionAbs,item:e.currentItem,sender:t?t.element:null}}});function O(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}V.widget("ui.spinner",{version:"1.14.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var s=this._super(),n=this.element;return V.each(["min","max","step"],function(t,e){var i=n.attr(e);null!=i&&i.length&&(s[e]=i)}),s},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t)},mousewheel:function(t,e){var i=this.document[0].activeElement;if(this.element[0]===i&&e){if(!this.spinning&&!this._start(t))return!1;this._spin((0<e?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(t){var e;e=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),function(){this.element[0]!==this.document[0].activeElement&&(this.element.trigger("focus"),this.previous=e)}.call(this),!1!==this._start(t)&&this._repeat(null,V(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(V(t.currentTarget).hasClass("ui-state-active"))return!1!==this._start(t)&&void this._repeat(null,V(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&0<this.uiSpinner.height()&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(t){var e=this.options,i=V.ui.keyCode;switch(t.keyCode){case i.UP:return this._repeat(null,1,t),!0;case i.DOWN:return this._repeat(null,-1,t),!0;case i.PAGE_UP:return this._repeat(null,e.page,t),!0;case i.PAGE_DOWN:return this._repeat(null,-e.page,t),!0}return!1},_start:function(t){return!(!this.spinning&&!1===this._trigger("start",t))&&(this.counter||(this.counter=1),this.spinning=!0)},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&!1===this._trigger("spin",e,{value:i})||(this._value(i),this.counter++)},_increment:function(t){var e=this.options.incremental;return e?"function"==typeof e?e(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return t=null!==this.options.min?Math.max(t,this._precisionOf(this.options.min)):t},_precisionOf:function(t){var t=t.toString(),e=t.indexOf(".");return-1===e?0:t.length-e-1},_adjustValue:function(t){var e=this.options,i=null!==e.min?e.min:0,s=t-i;return t=i+Math.round(s/e.step)*e.step,t=parseFloat(t.toFixed(this._precision())),null!==e.max&&t>e.max?e.max:null!==e.min&&t<e.min?e.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i;"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i))):("max"!==t&&"min"!==t&&"step"!==t||"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(i=this.buttons.first().find(".ui-icon"),this._removeClass(i,null,this.options.icons.up),this._addClass(i,null,e.up),i=this.buttons.last().find(".ui-icon"),this._removeClass(i,null,this.options.icons.down),this._addClass(i,null,e.down)),this._super(t,e))},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:O(function(t){this._super(t)}),_parse:function(t){return""===(t="string"==typeof t&&""!==t?window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t:t)||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null!==t&&t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&null!==(i=this._parse(t))&&(e||(i=this._adjustValue(i)),t=this._format(i)),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:O(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:O(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:O(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:O(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){if(!arguments.length)return this._parse(this.element.val());O(this._value).call(this,t)},widget:function(){return this.uiSpinner}}),!0===V.uiBackCompat&&V.widget("ui.spinner",V.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}});var A;V.ui.spinner,V.widget("ui.tabs",{version:"1.14.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:(A=/#.*$/,function(t){var e=t.href.replace(A,""),i=location.href.replace(A,"");try{e=decodeURIComponent(e)}catch(t){}try{i=decodeURIComponent(i)}catch(t){}return 1<t.hash.length&&e===i}),_create:function(){var e=this,t=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,t.collapsible),this._processTabs(),t.active=this._initialActive(),Array.isArray(t.disabled)&&(t.disabled=V.uniqueSort(t.disabled.concat(V.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),!1!==this.options.active&&this.anchors.length?this.active=this._findActive(t.active):this.active=V(),this._refresh(),this.active.length&&this.load(t.active)},_initialActive:function(){var i=this.options.active,t=this.options.collapsible,s=decodeURIComponent(location.hash.substring(1));return null===i&&(s&&this.tabs.each(function(t,e){if(V(e).attr("aria-controls")===s)return i=t,!1}),null!==(i=null===i?this.tabs.index(this.tabs.filter(".ui-tabs-active")):i)&&-1!==i||(i=!!this.tabs.length&&0)),!1!==i&&-1===(i=this.tabs.index(this.tabs.eq(i)))&&(i=!t&&0),i=!t&&!1===i&&this.anchors.length?0:i},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):V()}},_tabKeydown:function(t){var e=V(this.document[0].activeElement).closest("li"),i=this.tabs.index(e),s=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case V.ui.keyCode.RIGHT:case V.ui.keyCode.DOWN:i++;break;case V.ui.keyCode.UP:case V.ui.keyCode.LEFT:s=!1,i--;break;case V.ui.keyCode.END:i=this.anchors.length-1;break;case V.ui.keyCode.HOME:i=0;break;case V.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),void this._activate(i);case V.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),void this._activate(i!==this.options.active&&i);default:return}t.preventDefault(),clearTimeout(this.activating),i=this._focusNextTab(i,s),t.ctrlKey||t.metaKey||(e.attr("aria-selected","false"),this.tabs.eq(i).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",i)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===V.ui.keyCode.UP&&(t.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(t){return t.altKey&&t.keyCode===V.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===V.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,e){var i=this.tabs.length-1;for(;-1!==V.inArray(t=(t=i<t?0:t)<0?i:t,this.options.disabled);)t=e?t+1:t-1;return t},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){"active"===t?this._activate(e):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||!1!==this.options.active||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e))},refresh:function(){var t=this.options,e=this.tablist.children(":has(a[href])");t.disabled=V.map(e.filter(".ui-state-disabled"),function(t){return e.index(t)}),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!V.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=V()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=V()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var r=this,t=this.tabs,e=this.anchors,i=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(t){V(this).is(".ui-state-disabled")&&t.preventDefault()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return V("a",this)[0]}).attr({tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=V(),this.anchors.each(function(t,e){var i,s,n=V(e).uniqueId().attr("id"),o=V(e).closest("li"),a=o.attr("aria-controls");r._isLocal(e)?(s=decodeURIComponent(e.hash).substring(1),i=r.element.find("#"+CSS.escape(s))):(s=o.attr("aria-controls")||V({}).uniqueId()[0].id,(i=r.element.find("#"+s)).length||(i=r._createPanel(s)).insertAfter(r.panels[t-1]||r.tablist),i.attr("aria-live","polite")),i.length&&(r.panels=r.panels.add(i)),a&&o.data("ui-tabs-aria-controls",a),o.attr({"aria-controls":s,"aria-labelledby":n}),i.attr("aria-labelledby",n)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),t&&(this._off(t.not(this.tabs)),this._off(e.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(t){return V("<div>").attr("id",t).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(t){var e,i;for(Array.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1),i=0;e=this.tabs[i];i++)e=V(e),!0===t||-1!==V.inArray(i,t)?(e.attr("aria-disabled","true"),this._addClass(e,null,"ui-state-disabled")):(e.removeAttr("aria-disabled"),this._removeClass(e,null,"ui-state-disabled"));this.options.disabled=t,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!0===t)},_setupEvents:function(t){var i={};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,e=this.element.parent();"fill"===t?(i=e.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=V(this).outerHeight(!0)}),this.panels.each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,V(this).height("").height())}).height(i))},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget).closest("li"),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():this._getPanelForTab(s),r=i.length?this._getPanelForTab(i):V(),i={oldTab:i,oldPanel:r,newTab:o?V():s,newPanel:a};t.preventDefault(),s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||n&&!e.collapsible||!1===this._trigger("beforeActivate",t,i)||(e.active=!o&&this.tabs.index(s),this.active=n?V():s,this.xhr&&this.xhr.abort(),r.length||a.length||V.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,i))},_toggle:function(t,e){var i=this,s=e.newPanel,n=e.oldPanel;function o(){i.running=!1,i._trigger("activate",t,e)}function a(){i._addClass(e.newTab.closest("li"),"ui-tabs-active","ui-state-active"),s.length&&i.options.show?i._show(s,i.options.show,o):(s.show(),o())}this.running=!0,n.length&&this.options.hide?this._hide(n,this.options.hide,function(){i._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),a()}):(this._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n.hide(),a()),n.attr("aria-hidden","true"),e.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),s.length&&n.length?e.oldTab.attr("tabIndex",-1):s.length&&this.tabs.filter(function(){return 0===V(this).attr("tabIndex")}).attr("tabIndex",-1),s.attr("aria-hidden","false"),e.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var t=this._findActive(t);t[0]!==this.active[0]&&(t=(t=t.length?t:this.active).find(".ui-tabs-anchor")[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return!1===t?V():this.tabs.eq(t)},_getIndex:function(t){return t="string"==typeof t?this.anchors.index(this.anchors.filter("[href$='"+CSS.escape(t)+"']")):t},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){V.data(this,"ui-tabs-destroy")?V(this).remove():V(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var t=V(this),e=t.data("ui-tabs-aria-controls");e?t.attr("aria-controls",e).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var t=this.options.disabled;!1!==t&&(t=void 0!==i&&(i=this._getIndex(i),Array.isArray(t)?V.map(t,function(t){return t!==i?t:null}):V.map(this.tabs,function(t,e){return e!==i?e:null})),this._setOptionDisabled(t))},disable:function(t){var e=this.options.disabled;if(!0!==e){if(void 0===t)e=!0;else{if(t=this._getIndex(t),-1!==V.inArray(t,e))return;e=Array.isArray(e)?V.merge([t],e).sort():[t]}this._setOptionDisabled(e)}},load:function(t,s){t=this._getIndex(t);function n(t,e){"abort"===e&&o.panels.stop(!1,!0),o._removeClass(i,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===o.xhr&&delete o.xhr}var o=this,i=this.tabs.eq(t),t=i.find(".ui-tabs-anchor"),a=this._getPanelForTab(i),r={tab:i,panel:a};this._isLocal(t[0])||(this.xhr=V.ajax(this._ajaxSettings(t,s,r)),"canceled"!==this.xhr.statusText&&(this._addClass(i,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,i){a.html(t),o._trigger("load",s,r),n(i,e)}).fail(function(t,e){n(t,e)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,e){return n._trigger("beforeLoad",i,V.extend({jqXHR:t,ajaxSettings:e},s))}}},_getPanelForTab:function(t){t=V(t).attr("aria-controls");return this.element.find("#"+CSS.escape(t))}}),!0===V.uiBackCompat&&V.widget("ui.tabs",V.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),V.ui.tabs,V.widget("ui.tooltip",{version:"1.14.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var t=V(this).attr("title");return V("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(t,e){var i=(t.attr("aria-describedby")||"").split(/\s+/);i.push(e),t.data("ui-tooltip-id",e).attr("aria-describedby",String.prototype.trim.call(i.join(" ")))},_removeDescribedBy:function(t){var e=t.data("ui-tooltip-id"),i=(t.attr("aria-describedby")||"").split(/\s+/),e=V.inArray(e,i);-1!==e&&i.splice(e,1),t.removeData("ui-tooltip-id"),(i=String.prototype.trim.call(i.join(" ")))?t.attr("aria-describedby",i):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=V("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=V([])},_setOption:function(t,e){var i=this;this._super(t,e),"content"===t&&V.each(this.tooltips,function(t,e){i._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event("blur");i.target=i.currentTarget=e.element[0],s.close(i,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var t=V(this);if(t.is("[title]"))return t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")}))},_enable:function(){this.disabledTitles.each(function(){var t=V(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))}),this.disabledTitles=V([])},open:function(t){var i=this,e=V(t?t.target:this.element).closest(this.options.items);e.length&&!e.data("ui-tooltip-id")&&(e.attr("title")&&e.data("ui-tooltip-title",e.attr("title")),e.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&e.parents().each(function(){var t,e=V(this);e.data("ui-tooltip-open")&&((t=V.Event("blur")).target=t.currentTarget=this,i.close(t,!0)),e.attr("title")&&(e.uniqueId(),i.parents[this.id]={element:this,title:e.attr("title")},e.attr("title",""))}),this._registerCloseHandlers(t,e),this._updateContent(e,t))},_updateContent:function(e,i){var t=this.options.content,s=this,n=i?i.type:null;if("string"==typeof t||t.nodeType||t.jquery)return this._open(i,e,t);(t=t.call(e[0],function(t){e.data("ui-tooltip-open")&&(i&&(i.type=n),s._open(i,e,t))}))&&this._open(i,e,t)},_open:function(t,e,i){var s,n,o,a=V.extend({},this.options.position);function r(t){a.of=t,s.is(":hidden")||s.position(a)}i&&((o=this._find(e))?o.tooltip.find(".ui-tooltip-content").html(i):(e.is("[title]")&&(t&&"mouseover"===t.type?e.attr("title",""):e.removeAttr("title")),o=this._tooltip(e),s=o.tooltip,this._addDescribedBy(e,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.liveRegion.children().hide(),(o=V("<div>").html(s.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),o.removeAttr("id").find("[id]").removeAttr("id"),o.appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:r}),r(t)):s.position(V.extend({of:e},this.options.position)),s.hide(),this._show(s,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(n=this.delayedShow=setInterval(function(){s.is(":visible")&&(r(a.of),clearInterval(n))},13)),this._trigger("open",t,{tooltip:s}
11124)))},_registerCloseHandlers:function(t,e){var i={keyup:function(t){t.keyCode===V.ui.keyCode.ESCAPE&&((t=V.Event(t)).currentTarget=e[0],this.close(t,!0))}};e[0]!==this.element[0]&&(i.remove=function(){var t=this._find(e);t&&this._removeTooltip(t.tooltip)}),t&&"mouseover"!==t.type||(i.mouseleave="close"),t&&"focusin"!==t.type||(i.focusout="close"),this._on(!0,e,i)},close:function(t){var e,i=this,s=V(t?t.currentTarget:this.element),n=this._find(s);n?(e=n.tooltip,n.closing||(clearInterval(this.delayedShow),s.data("ui-tooltip-title")&&!s.attr("title")&&s.attr("title",s.data("ui-tooltip-title")),this._removeDescribedBy(s),n.hiding=!0,e.stop(!0),this._hide(e,this.options.hide,function(){i._removeTooltip(V(this))}),s.removeData("ui-tooltip-open"),this._off(s,"mouseleave focusout keyup"),s[0]!==this.element[0]&&this._off(s,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&V.each(this.parents,function(t,e){V(e.element).attr("title",e.title),delete i.parents[t]}),n.closing=!0,this._trigger("close",t,{tooltip:e}),n.hiding)||(n.closing=!1)):s.removeData("ui-tooltip-open")},_tooltip:function(t){var e=V("<div>").attr("role","tooltip"),i=V("<div>").appendTo(e),s=e.uniqueId().attr("id");return this._addClass(i,"ui-tooltip-content"),this._addClass(e,"ui-tooltip","ui-widget ui-widget-content"),e.appendTo(this._appendTo(t)),this.tooltips[s]={element:t,tooltip:e}},_find:function(t){t=t.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(t){clearInterval(this.delayedShow),t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){t=t.closest(".ui-front, dialog");return t=t.length?t:this.document[0].body},_destroy:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event("blur"),e=e.element;i.target=i.currentTarget=e[0],s.close(i,!0),V("#"+t).remove(),e.data("ui-tooltip-title")&&(e.attr("title")||e.attr("title",e.data("ui-tooltip-title")),e.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),!0===V.uiBackCompat&&V.widget("ui.tooltip",V.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),V.ui.tooltip});
11125�/*!
11126* Bootstrap.js by @fat & @mdo
11127* Copyright 2012 Twitter, Inc.
11128* http://www.apache.org/licenses/LICENSE-2.0.txt
11129*/
11130!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".
11130item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning||!this.$element.hasClass("in"))return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("c
11130ollapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(".dropdown-backdrop").remove(),e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",r),s.toggleClass("open")),n.focus(),!1},keydown:function(n){var r,s,o,u,a,f;if(!/(38|40|27)/.test(n.keyCode))return;r=e(this),n.preventDefault(),n.stopPropagation();if(r.is(".disabled, :disabled"))return;u=i(r),a=u.hasClass("open");if(!a||a&&n.keyCode==27)return n.which==27&&u.find(t).focus(),r.click();s=e("[role=menu] li:not(.divider):visible a",u);if(!s.length)return;f=s.index(s.filter(":focus")),n.keyCode==38&&f>0&&f--,n.keyCode==40&&f<s.length-1&&f++,~f||(f=0),s.eq(f).focus()}};var s=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.dropdown.data-api",r).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in"),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in"
vendor: 17,976 bytes, line 11130
11130),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!t)return;i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s,o,u,a;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" ");for(a=o.length;a--;)u=o[a],u=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):u!="manual"&&(i=u=="hover"?"mouseenter":"focus",s=u=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e.fn[this.type].defaults,r={},i;this._options&&e.each(this._options,function(e,t){n[e]!=t&&(r[e]=t)},this),i=e(t.currentTarget)[this.type](r).data(this.type);if(!i.options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout),i.hoverState="in",this.timeout=setTimeout(function(){i.hoverState=="in"&&i.show()},i.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,i,s,o,u=e.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(u);if(u.isDefaultPrevented())return;t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight;switch(s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(o,s),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n=this.tip(),r=n[0].offsetWidth,i=n[0].offsetHeight,s,o,u,a;n.offset(e).addClass(t).addClass("in"),s=n[0].offsetWidth,o=n[0].offsetHeight,t=="top"&&o!=i&&(e.top=e.top+i-o,a=!0),t=="bottom"||t=="top"?(u=0,e.left<0&&(u=e.left*-2,e.left=0,n.offset(e),s=n[0].offsetWidth,o=n[0].offsetHeight),this.replaceArrow(u-r+s,s,"left")):this.replaceArrow(o-i,o,"top"),a&&n.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function i(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip(),r=e.Event("hide");this.$element.trigger(r);if(r.isDefaultPrevented())return;return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?i():n.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},typeof t.getBoundingClientRect=="function"?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=(typeof n.content=="function"?n.content.call(t[0]):n.content)||t.attr("data-content"),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var n=e(this),r=n.data("target")||n.attr("href"),i=/^#\w/.test(r)&&e(r);return i&&i.length&&[[i.position().top+(!e.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}};var n=e.fn.scrollspy;e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=n,this},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
11130
11131�/* ========================================================================
11132 * bootstrap-switch - v3.0.2
11133 * http://www.bootstrap-switch.org
11134 * ========================================================================
11135 * Copyright 2012-2013 Mattia Larentis
11136 *
11137 * ========================================================================
11138 * Licensed under the Apache License, Version 2.0 (the "License");
11139 * you may not use this file except in compliance with the License.
11140 * You may obtain a copy of the License at
11141 *
11142 *     http://www.apache.org/licenses/LICENSE-2.0
11143 *
11144 * Unless required by applicable law or agreed to in writing, software
11145 * distributed under the License is distributed on an "AS IS" BASIS,
11146 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11147 * See the License for the specific language governing permissions and
11148 * limitations under the License.
11149 * ========================================================================
11150 */
11151
11152(function(){var t=[].slice;!function(e,s){"use strict";var o;return o=function(){function t(t,s){null==s&&(s={}),this.$element=e(t),this.options=e.extend({},e.fn.bootstrapSwitch.defaults,{state:this.$element.is(":checked"),size:this.$element.data("size"),animate:this.$element.data("animate"),disabled:this.$element.is(":disabled"),readonly:this.$element.is("[readonly]"),indeterminate:this.$element.data("indeterminate"),onColor:this.$element.data("on-color"),offColor:this.$element.data("off-color"),onText:this.$element.data("on-text"),offText:this.$element.data("off-text"),labelText:this.$element.data("label-text"),baseClass:this.$element.data("base-class"),wrapperClass:this.$element.data("wrapper-class"),radioAllOff:this.$element.data("radio-all-off")},s),this.$wrapper=e("<div>",{"class":function(t){return function(){var e;return e=[""+t.options.baseClass].concat(t._getClasses(t.options.wrapperClass)),e.push(t.options.state?""+t.options.baseClass+"-on":""+t.options.baseClass+"-off"),null!=t.options.size&&e.push(""+t.options.baseClass+"-"+t.options.size),t.options.animate&&e.push(""+t.options.baseClass+"-animate"),t.options.disabled&&e.push(""+t.options.baseClass+"-disabled"),t.options.readonly&&e.push(""+t.options.baseClass+"-readonly"),t.options.indeterminate&&e.push(""+t.options.baseClass+"-indeterminate"),t.$element.attr("id")&&e.push(""+t.options.baseClass+"-id-"+t.$element.attr("id")),e.join(" ")}}(this)()}),this.$container=e("<div>",{"class":""+this.options.baseClass+"-container"}),this.$on=e("<span>",{html:this.options.onText,"class":""+this.options.baseClass+"-handle-on "+this.options.baseClass+"-"+this.options.onColor}),this.$off=e("<span>",{html:this.options.offText,"class":""+this.options.baseClass+"-handle-off "+this.options.baseClass+"-"+this.options.offColor}),this.$label=e("<label>",{html:this.options.labelText,"class":""+this.options.baseClass+"-label"}),this.options.indeterminate&&this.$element.prop("indeterminate",!0),this.$element.on("init.bootstrapSwitch",function(e){return function(){return e.options.onInit.apply(t,arguments)}}(this)),this.$element.on("switchChange.bootstrapSwitch",function(e){return function(){return e.options.onSwitchChange.apply(t,arguments)}}(this)),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.$on).before(this.$label).before(this.$off).trigger("init.bootstrapSwitch"),this._elementHandlers(),this._handleHandlers(),this._labelHandlers(),this._formHandler()}return t.prototype._constructor=t,t.prototype.state=function(t,e){return"undefined"==typeof t?this.options.state:this.options.disabled||this.options.readonly||this.options.indeterminate?this.$element:this.options.state&&!this.options.radioAllOff&&this.$element.is(":radio")?this.$element:(t=!!t,this.$element.prop("checked",t).trigger("change.bootstrapSwitch",e),this.$element)},t.prototype.toggleState=function(t){return this.options.disabled||this.options.readonly||this.options.indeterminate?this.$element:this.$element.prop("checked",!this.options.state).trigger("change.bootstrapSwitch",t)},t.prototype.size=function(t){return"undefined"==typeof t?this.options.size:(null!=this.options.size&&this.$wrapper.removeClass(""+this.options.baseClass+"-"+this.options.size),t&&this.$wrapper.addClass(""+this.options.baseClass+"-"+t),this.options.size=t,this.$element)},t.prototype.animate=function(t){return"undefined"==typeof t?this.options.animate:(t=!!t,this.$wrapper[t?"addClass":"removeClass"](""+this.options.baseClass+"-animate"),this.options.animate=t,this.$element)},t.prototype.disabled=function(t){return"undefined"==typeof t?this.options.disabled:(t=!!t,this.$wrapper[t?"addClass":"removeClass"](""+this.options.baseClass+"-disabled"),this.$element.prop("disabled",t),this.options.disabled=t,this.$element)},t.prototype.toggleDisabled=function(){return this.$element.prop("disabled",!this.options.disabled),this.$wrapper.toggleClass(""+this.options.baseClass+"-disabled"),this.options.disabled=!this.options.disabled,this.$element},t.prototype.readonly=function(t){return"undefined"==typeof t?this.options.readonly:(t=!!t,this.$wrapper[t?"addClass":"removeClass"](""+this.options.baseClass+"-readonly"),this.$element.prop("readonly",t),this.options.readonly=t,this.$element)},t.prototype.toggleReadonly=function(){return this.$element.prop("readonly",!this.options.readonly),this.$wrapper.toggleClass(""+this.options.baseClass+"-readonly"),this.options.readonly=!this.options.readonly,this.$element},t.prototype.indeterminate=function(t){return"undefined"==typeof t?this.options.indeterminate:(t=!!t,this.$wrapper[t?"addClass":"removeClass"](""+this.options.baseClass+"-indeterminate"),this.$element.prop("indeterminate",t),this.options.indeterminate=t,this.$element)},t.prototype.toggleIndeterminate=function(){return this.$element.prop("indeterminate",!this.options.indeterminate),this.$wrapper.toggleClass(""+this.options.baseClass+"-indeterminate"),this.options.indeterminate=!this.options.indeterminate,this.$element},t.prototype.onColor=function(t){var e;return e=this.options.onColor,"undefined"==typeof t?e:(null!=e&&this.$on.removeClass(""+this.options.baseClass+"-"+e),this.$on.addClass(""+this.options.baseClass+"-"+t),this.options.onColor=t,this.$element)},t.prototype.offColor=function(t){var e;return e=this.options.offColor,"undefined"==typeof t?e:(null!=e&&this.$off.removeClass(""+this.options.baseClass+"-"+e),this.$off.addClass(""+this.options.baseClass+"-"+t),this.options.offColor=t,this.$element)},t.prototype.onText=function(t){return"undefined"==typeof t?this.options.onText:(this.$on.html(t),this.options.onText=t,this.$element)},t.prototype.offText=function(t){return"undefined"==typeof t?this.options.offText:(this.$off.html(t),this.options.offText=t,this.$element)},t.prototype.labelText=function(t){return"undefined"==typeof t?this.options.labelText:(this.$label.html(t),this.options.labelText=t,this.$element)},t.prototype.baseClass=function(){return this.options.baseClass},t.prototype.wrapperClass=function(t){return"undefined"==typeof t?this.options.wrapperClass:(t||(t=e.fn.bootstrapSwitch.defaults.wrapperClass),this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(" ")),this.$wrapper.addClass(this._getClasses(t).join(" ")),this.options.wrapperClass=t,this.$element)},t.prototype.radioAllOff=function(t){return"undefined"==typeof t?this.options.radioAllOff:(this.options.radioAllOff=t,this.$element)},t.prototype.onInit=function(t){return"undefined"==typeof t?this.options.onInit:(t||(t=e.fn.bootstrapSwitch.defaults.onInit),this.options.onInit=t,this.$element)},t.prototype.onSwitchChange=function(t){return"undefined"==typeof t?this.options.onSwitchChange:(t||(t=e.fn.bootstrapSwitch.defaults.onSwitchChange),this.options.onSwitchChange=t,this.$element)},t.prototype.destroy=function(){var t;return t=this.$element.closest("form"),t.length&&t.off("reset.bootstrapSwitch").removeData("bootstrap-switch"),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off(".bootstrapSwitch").removeData("bootstrap-switch"),this.$element},t.prototype._elementHandlers=function(){return this.$element.on({"change.bootstrapSwitch":function(t){return function(s,o){var n;return s.preventDefault(),s.stopImmediatePropagation(),n=t.$element.is(":checked"),n!==t.options.state?(t.options.state=n,t.$wrapper.removeClass(n?""+t.options.baseClass+"-off":""+t.options.baseClass+"-on").addClass(n?""+t.options.baseClass+"-on":""+t.options.baseClass+"-off"),o?void 0:(t.$element.is(":radio")&&e("[name='"+t.$element.attr("name")+"']").not(t.$element).prop("checked",!1).trigger("change.bootstrapSwitch",!0),t.$element.trigger("switchChange.bootstrapSwitch",[n]))):void 0}}(this),"focus.bootstrapSwitch":function(t){return function(e){return e.preventDefault(),t.$wrapper.addClass(""+t.options.baseClass+"-focused")}}(this),"blur.bootstrapSwitch":function(t){return function(e){return e.preventDefault(),t.$wrapper.removeClass(""+t.options.baseClass+"-focused")}}
11152(this),"keydown.bootstrapSwitch":function(t){return function(e){if(e.which&&!t.options.disabled&&!t.options.readonly&&!t.options.indeterminate)switch(e.which){case 37:return e.preventDefault(),e.stopImmediatePropagation(),t.state(!1);case 39:return e.preventDefault(),e.stopImmediatePropagation(),t.state(!0)}}}(this)})},t.prototype._handleHandlers=function(){return this.$on.on("click.bootstrapSwitch",function(t){return function(){return t.state(!1),t.$element.trigger("focus.bootstrapSwitch")}}(this)),this.$off.on("click.bootstrapSwitch",function(t){return function(){return t.state(!0),t.$element.trigger("focus.bootstrapSwitch")}}(this))},t.prototype._labelHandlers=function(){return this.$label.on({"mousemove.bootstrapSwitch touchmove.bootstrapSwitch":function(t){return function(e){var s,o,n,i;if(t.isLabelDragging)return e.preventDefault(),t.isLabelDragged=!0,o=e.pageX||e.originalEvent.touches[0].pageX,n=(o-t.$wrapper.offset().left)/t.$wrapper.width()*100,s=25,i=75,t.options.animate&&t.$wrapper.removeClass(""+t.options.baseClass+"-animate"),s>n?n=s:n>i&&(n=i),t.$container.css("margin-left",""+(n-i)+"%"),t.$element.trigger("focus.bootstrapSwitch")}}(this),"mousedown.bootstrapSwitch touchstart.bootstrapSwitch":function(t){return function(e){return t.isLabelDragging||t.options.disabled||t.options.readonly||t.options.indeterminate?void 0:(e.preventDefault(),t.isLabelDragging=!0,t.$element.trigger("focus.bootstrapSwitch"))}}(this),"mouseup.bootstrapSwitch touchend.bootstrapSwitch":function(t){return function(e){return t.isLabelDragging?(e.preventDefault(),t.isLabelDragged?(t.isLabelDragged=!1,t.state(parseInt(t.$container.css("margin-left"),10)>-(t.$container.width()/6)),t.options.animate&&t.$wrapper.addClass(""+t.options.baseClass+"-animate"),t.$container.css("margin-left","")):t.state(!t.options.state),t.isLabelDragging=!1):void 0}}(this),"mouseleave.bootstrapSwitch":function(t){return function(){return t.$label.trigger("mouseup.bootstrapSwitch")}}(this)})},t.prototype._formHandler=function(){var t;return t=this.$element.closest("form"),t.data("bootstrap-switch")?void 0:t.on("reset.bootstrapSwitch",function(){return s.setTimeout(function(){return t.find("input").filter(function(){return e(this).data("bootstrap-switch")}).each(function(){return e(this).bootstrapSwitch("state",this.checked)})},1)}).data("bootstrap-switch",!0)},t.prototype._getClasses=function(t){var s,o,n,i;if(!e.isArray(t))return[""+this.options.baseClass+"-"+t];for(o=[],n=0,i=t.length;i>n;n++)s=t[n],o.push(""+this.options.baseClass+"-"+s);return o},t}(),e.fn.bootstrapSwitch=function(){var s,n,i;return n=arguments[0],s=2<=arguments.length?t.call(arguments,1):[],i=this,this.each(function(){var t,a;return t=e(this),a=t.data("bootstrap-switch"),a||t.data("bootstrap-switch",a=new o(this,n)),"string"==typeof n?i=a[n].apply(a,s):void 0}),i},e.fn.bootstrapSwitch.Constructor=o,e.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,onColor:"primary",offColor:"default",onText:_("ON"),offText:_("OFF"),labelText:"&nbsp;",baseClass:"bootstrap-switch",wrapperClass:"wrapper",radioAllOff:!1,onInit:function(){},onSwitchChange:function(){}}}(window.jQuery,window)}).call(this);
11153�/*
11154* jQuery timepicker addon
11155* By: Trent Richardson [http://trentrichardson.com]
11156* Version 0.9.8
11157* Last Modified: 12/03/2011
11158*
11159* Copyright 2011 Trent Richardson
11160* Dual licensed under the MIT and GPL licenses.
11161* http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
11162* http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
11163*
11164* HERES THE CSS:
11165* .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
11166* .ui-timepicker-div dl { text-align: left; }
11167* .ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }
11168* .ui-timepicker-div dl dd { margin: 0 10px 10px 65px; }
11169* .ui-timepicker-div td { font-size: 90%; }
11170* .ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
11171*/
11172
11173(function($) {
11174
11175$.extend($.ui, { timepicker: { version: "0.9.8" } });
11176
11177/* Time picker manager.
11178   Use the singleton instance of this class, $.timepicker, to interact with the time picker.
11179   Settings for (groups of) time pickers are maintained in an instance object,
11180   allowing multiple different settings on the same page. */
11181
11182function Timepicker() {
11183	this.regional = []; // Available regional settings, indexed by language code
11184	this.regional[''] = { // Default regional settings
11185		currentText: 'Now',
11186		closeText: 'Done',
11187		ampm: false,
11188		amNames: ['AM', 'A'],
11189		pmNames: ['PM', 'P'],
11190		timeFormat: 'hh:mm tt',
11191		timeSuffix: '',
11192		timeOnlyTitle: _('Choose Time'),
11193		timeText: _('Time'),
11194		hourText: _('Hour'),
11195		minuteText: _('Minute'),
11196		secondText: _('Second'),
11197		millisecText: _('Millisecond'),
11198		timezoneText: _('Time Zone'),
11199		monthNames: [ _("January"), _("February"), _("March"), _("April"), _("May"), _("June"), _("July"), _("August"), _("September"), _("October"), _("November"), _("December")],
11200		dayNamesShort: [ _("Su"), _("Mo"), _("Tu"), _("We"), _("Th"), _("Fr"), _("Sa")]
11201	};
11202	this._defaults = { // Global defaults for all the datetime picker instances
11203		showButtonPanel: true,
11204		timeOnly: false,
11205		showHour: true,
11206		showMinute: true,
11207		showSecond: false,
11208		showMillisec: false,
11209		showTimezone: false,
11210		showTime: true,
11211		stepHour: 1,
11212		stepMinute: 1,
11213		stepSecond: 1,
11214		stepMillisec: 1,
11215		hour: 0,
11216		minute: 0,
11217		second: 0,
11218		millisec: 0,
11219		timezone: '+0000',
11220		hourMin: 0,
11221		minuteMin: 0,
11222		secondMin: 0,
11223		millisecMin: 0,
11224		hourMax: 23,
11225		minuteMax: 59,
11226		secondMax: 59,
11227		millisecMax: 999,
11228		minDateTime: null,
11229		maxDateTime: null,
11230		onSelect: null,
11231		hourGrid: 0,
11232		minuteGrid: 0,
11233		secondGrid: 0,
11234		millisecGrid: 0,
11235		alwaysSetTime: true,
11236		separator: ' ',
11237		altFieldTimeOnly: true,
11238		showTimepicker: true,
11239		timezoneIso8609: false,
11240		timezoneList: null,
11241		addSliderAccess: false,
11242		sliderAccessArgs: null
11243	};
11244	$.extend(this._defaults, this.regional['']);
11245}
11246
11247$.extend(Timepicker.prototype, {
11248	$input: null,
11249	$altInput: null,
11250	$timeObj: null,
11251	inst: null,
11252	hour_slider: null,
11253	minute_slider: null,
11254	second_slider: null,
11255	millisec_slider: null,
11256	timezone_select: null,
11257	hour: 0,
11258	minute: 0,
11259	second: 0,
11260	millisec: 0,
11261	timezone: '+0000',
11262	hourMinOriginal: null,
11263	minuteMinOriginal: null,
11264	secondMinOriginal: null,
11265	millisecMinOriginal: null,
11266	hourMaxOriginal: null,
11267	minuteMaxOriginal: null,
11268	secondMaxOriginal: null,
11269	millisecMaxOriginal: null,
11270	ampm: '',
11271	formattedDate: '',
11272	formattedTime: '',
11273	formattedDateTime: '',
11274	timezoneList: null,
11275
11276	/* Override the default settings for all instances of the time picker.
11277	   @param  settings  object - the new settings to use as defaults (anonymous object)
11278	   @return the manager object */
11279	setDefaults: function(settings) {
11280		extendRemove(this._defaults, settings || {});
11281		return this;
11282	},
11283
11284	//########################################################################
11285	// Create a new Timepicker instance
11286	//########################################################################
11287	_newInst: function($input, o) {
11288		var tp_inst = new Timepicker(),
11289			inlineSettings = {};
11290
11291		for (var attrName in this._defaults) {
11292			var attrValue = $input.attr('time:' + attrName);
11293			if (attrValue) {
11294				try {
11295					inlineSettings[attrName] = eval(attrValue);
11296				} catch (err) {
11297					inlineSettings[attrName] = attrValue;
11298				}
11299			}
11300		}
11301		tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, {
11302			beforeShow: function(input, dp_inst) {
11303				if ($.isFunction(o.beforeShow))
11304					o.beforeShow(input, dp_inst, tp_inst);
11305			},
11306			onChangeMonthYear: function(year, month, dp_inst) {
11307				// Update the time as well : this prevents the time from disappearing from the $input field.
11308				tp_inst._updateDateTime(dp_inst);
11309				if ($.isFunction(o.onChangeMonthYear))
11310					o.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst);
11311			},
11312			onClose: function(dateText, dp_inst) {
11313				if (tp_inst.timeDefined === true && $input.val() != '')
11314					tp_inst._updateDateTime(dp_inst);
11315				if ($.isFunction(o.onClose))
11316					o.onClose.call($input[0], dateText, dp_inst, tp_inst);
11317			},
11318			timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker');
11319		});
11320		tp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) { return val.toUpperCase() });
11321		tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) { return val.toUpperCase() });
11322
11323		if (tp_inst._defaults.timezoneList === null) {
11324			var timezoneList = [];
11325			for (var i = -11; i <= 12; i++)
11326				timezoneList.push((i >= 0 ? '+' : '-') + ('0' + Math.abs(i).toString()).slice(-2) + '00');
11327			if (tp_inst._defaults.timezoneIso8609)
11328				timezoneList = $.map(timezoneList, function(val) {
11329					return val == '+0000' ? 'Z' : (val.substring(0, 3) + ':' + val.substring(3));
11330				});
11331			tp_inst._defaults.timezoneList = timezoneList;
11332		}
11333
11334		tp_inst.hour = tp_inst._defaults.hour;
11335		tp_inst.minute = tp_inst._defaults.minute;
11336		tp_inst.second = tp_inst._defaults.second;
11337		tp_inst.millisec = tp_inst._defaults.millisec;
11338		tp_inst.ampm = '';
11339		tp_inst.$input = $input;
11340
11341		if (o.altField)
11342			tp_inst.$altInput = $(o.altField)
11343				.css({ cursor: 'pointer' })
11344				.focus(function(){ $input.trigger("focus"); });
11345
11346		if(tp_inst._defaults.minDate==0 || tp_inst._defaults.minDateTime==0)
11347		{
11348			tp_inst._defaults.minDate=new Date();
11349		}
11350		if(tp_inst._defaults.maxDate==0 || tp_inst._defaults.maxDateTime==0)
11351		{
11352			tp_inst._defaults.maxDate=new Date();
11353		}
11354
11355		// datepicker needs minDate/maxDate, timepicker needs minDateTime/maxDateTime..
11356		if(tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date)
11357			tp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime());
11358		if(tp_inst._defaults.minDateTime !== undefined && tp_inst._defaults.minDateTime instanceof Date)
11359			tp_inst._defaults.minDate = new Date(tp_inst._defaults.minDateTime.getTime());
11360		if(tp_inst._defaults.maxDate !== undefined && tp_inst._defaults.maxDate instanceof Date)
11361			tp_inst._defaults.maxDateTime = new Date(tp_inst._defaults.maxDate.getTime());
11362		if(tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date)
11363			tp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime());
11364		return tp_inst;
11365	},
11366
11367	//########################################################################
11368	// add our sliders to the calendar
11369	//########################################################################
11370	_addTimePicker: function(dp_inst) {
11371		var currDT = (this.$altInput && this._defaults.altFieldTimeOnly) ?
11372				this.$input.val() + ' ' + this.$altInput.val() :
11373				this.$input.val();
11374
11375		this.timeDefined = this._parseTime(currDT);
11376		this._limitMinMaxDateTime(dp_inst, false);
11377		this._injectTimePicker();
11378	},
11379
11380	//########################################################################
11381	// parse the time string from input value or _setTime
11382	//########################################################################
11383	_parseTime: function(timeString, withDate) {
11384		var regstr = this._defaults.timeFormat.toString()
11385				.replace(/h{1,2}/ig, '(\\d?\\d)')
11386				.replace(/m{1,2}/ig, '(\\d?\\d)')
11387				.replace(/s{1,2}/ig, '(\\d?\\d)')
11388				.replace(/l{1}/ig, '(\\d?\\d?\\d)')
11389				.replace(/t{1,2}/ig, this._getPatternAmpm())
11390				.replace(/z{1}/ig, '(z|[-+]\\d\\d:?\\d\\d)?')
11391				.replace(/\s/g, '\\s?') + this._defaults.timeSuffix + '$',
11392			order = this._getFormatPositions(),
11393			ampm = '',
11394			treg;
11395
11396		if (!this.inst) this.inst = $.datepicker._getInst(this.$input[0]);
11397
11398		if (withDate || !this._defaults.timeOnly) {
11399			// the time should come after x number of characters and a space.
11400			// x = at least the length of text specified by the date format
11401			var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat');
11402			// escape special regex characters in the seperator
11403			var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g");
11404			regstr = '.{' + dp_dateFormat.length + ',}' + this._defaults.separator.replace(specials, "\\$&") + regstr;
11405		}
11406
11407		treg = timeString.match(new RegExp(regstr, 'i'));
11408
11409		if (treg) {
11410			if (order.t !== -1) {
11411				if (treg[order.t] === undefined || treg[order.t].length === 0) {
11412					ampm = '';
11413					this.ampm = '';
11414				} else {
11415					ampm = $.inArray(treg[order.t].toUpperCase(), this.amNames) !== -1 ? 'AM' : 'PM';
11416					this.ampm = this._defaults[ampm == 'AM' ? 'amNames' : 'pmNames'][0];
11417				}
11418			}
11419
11420			if (order.h !== -1) {
11421				if (ampm == 'AM' && treg[order.h] == '12')
11422					this.hour = 0; // 12am = 0 hour
11423				else if (ampm == 'PM' && treg[order.h] != '12')
11424					this.hour = (parseFloat(treg[order.h]) + 12).toFixed(0); // 12pm = 12 hour, any other pm = hour + 12
11425				else this.hour = Number(treg[order.h]);
11426			}
11427
11428			if (order.m !== -1) this.minute = Number(treg[order.m]);
11429			if (order.s !== -1) this.second = Number(treg[order.s]);
11430			if (order.l !== -1) this.millisec = Number(treg[order.l]);
11431			if (order.z !== -1 && treg[order.z] !== undefined) {
11432				var tz = treg[order.z].toUpperCase();
11433				switch (tz.length) {
11434				case 1:	// Z
11435					tz = this._defaults.timezoneIso8609 ? 'Z' : '+0000';
11436					break;
11437				case 5:	// +hhmm
11438					if (this._defaults.timezoneIso8609)
11439						tz = tz.substring(1) == '0000'
11440						   ? 'Z'
11441						   : tz.substring(0, 3) + ':' + tz.substring(3);
11442					break;
11443				case 6:	// +hh:mm
11444					if (!this._defaults.timezoneIso8609)
11445						tz = tz == 'Z' || tz.substring(1) == '00:00'
11446						   ? '+0000'
11447						   : tz.replace(/:/, '');
11448					else if (tz.substring(1) == '00:00')
11449						tz = 'Z';
11450					break;
11451				}
11452				this.timezone = tz;
11453			}
11454
11455			return true;
11456
11457		}
11458		return false;
11459	},
11460
11461	//########################################################################
11462	// pattern for standard and localized AM/PM markers
11463	//########################################################################
11464	_getPatternAmpm: function() {
11465		var markers = [];
11466			o = this._defaults;
11467		if (o.amNames)
11468			$.merge(markers, o.amNames);
11469		if (o.pmNames)
11470			$.merge(markers, o.pmNames);
11471		markers = $.map(markers, function(val) { return val.replace(/[.*+?|()\[\]{}\\]/g, '\\$&') });
11472		return '(' + markers.join('|') + ')?';
11473	},
11474
11475	//########################################################################
11476	// figure out position of time elements.. cause js cant do named captures
11477	//########################################################################
11478	_getFormatPositions: function() {
11479		var finds = this._defaults.timeFormat.toLowerCase().match(/(h{1,2}|m{1,2}|s{1,2}|l{1}|t{1,2}|z)/g),
11480			orders = { h: -1, m: -1, s: -1, l: -1, t: -1, z: -1 };
11481
11482		if (finds)
11483			for (var i = 0; i < finds.length; i++)
11484				if (orders[finds[i].toString().charAt(0)] == -1)
11485					orders[finds[i].toString().charAt(0)] = i + 1;
11486
11487		return orders;
11488	},
11489
11490	//########################################################################
11491	// generate and inject html for timepicker into ui datepicker
11492	//########################################################################
11493	_injectTimePicker: function() {
11494		var $dp = this.inst.dpDiv,
11495			o = this._defaults,
11496			tp_inst = this,
11497			// Added by Peter Medeiros:
11498			// - Figure out what the hour/minute/second max should be based on the step values.
11499			// - Example: if stepMinute is 15, then minMax is 45.
11500			hourMax = parseInt((o.hourMax - ((o.hourMax - o.hourMin) % o.stepHour)) ,10),
11501			minMax  = parseInt((o.minuteMax - ((o.minuteMax - o.minuteMin) % o.stepMinute)) ,10),
11502			secMax  = parseInt((o.secondMax - ((o.secondMax - o.secondMin) % o.stepSecond)) ,10),
11503			millisecMax  = parseInt((o.millisecMax - ((o.millisecMax - o.millisecMin) % o.stepMillisec)) ,10),
11504			dp_id = this.inst.id.toString().replace(/([^A-Za-z0-9_])/g, '');
11505
11506		// Prevent displaying twice
11507		//if ($dp.find("div#ui-timepicker-div-"+ dp_id).length === 0) {
11508		if ($dp.find("div#ui-timepicker-div-"+ dp_id).length === 0 && o.showTimepicker) {
11509			var noDisplay = ' style="display:none;"',
11510				html =	'<div class="ui-timepicker-div" id="ui-timepicker-div-' + dp_id + '"><dl>' +
11511						'<dt class="ui_tpicker_time_label" id="ui_tpicker_time_label_' + dp_id + '"' +
11512						((o.showTime) ? '' : noDisplay) + '>' + o.timeText + '</dt>' +
11513						'<dd class="ui_tpicker_time" id="ui_tpicker_time_' + dp_id + '"' +
11514						((o.showTime) ? '' : noDisplay) + '></dd>' +
11515						'<dt class="ui_tpicker_hour_label" id="ui_tpicker_hour_label_' + dp_id + '"' +
11516						((o.showHour) ? '' : noDisplay) + '>' + o.hourText + '</dt>',
11517				hourGridSize = 0,
11518				minuteGridSize = 0,
11519				secondGridSize = 0,
11520				millisecGridSize = 0,
11521				size;
11522
11523 			// Hours
11524			html += '<dd class="ui_tpicker_hour"><div id="ui_tpicker_hour_' + dp_id + '"' +
11525						((o.showHour) ? '' : noDisplay) + '></div>';
11526			if (o.showHour && o.hourGrid > 0) {
11527				html += '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>';
11528
11529				for (var h = o.hourMin; h <= hourMax; h += parseInt(o.hourGrid,10)) {
11530					hourGridSize++;
11531					var tmph = (o.ampm && h > 12) ? h-12 : h;
11532					if (tmph < 10) tmph = '0' + tmph;
11533					if (o.ampm) {
11534						if (h == 0) tmph = 12 +'a';
11535						else if (h < 12) tmph += 'a';
11536						else tmph += 'p';
11537					}
11538					html += '<td>' + tmph + '</td>';
11539				}
11540
11541				html += '</tr></table></div>';
11542			}
11543			html += '</dd>';
11544
11545			// Minutes
11546			html += '<dt class="ui_tpicker_minute_label" id="ui_tpicker_minute_label_' + dp_id + '"' +
11547					((o.showMinute) ? '' : noDisplay) + '>' + o.minuteText + '</dt>'+
11548					'<dd class="ui_tpicker_minute"><div id="ui_tpicker_minute_' + dp_id + '"' +
11549							((o.showMinute) ? '' : noDisplay) + '></div>';
11550
11551			if (o.showMinute && o.minuteGrid > 0) {
11552				html += '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>';
11553
11554				for (var m = o.minuteMin; m <= minMax; m += parseInt(o.minuteGrid,10)) {
11555					minuteGridSize++;
11556					html += '<td>' + ((m < 10) ? '0' : '') + m + '</td>';
11557				}
11558
11559				html += '</tr></table></div>';
11560			}
11561			html += '</dd>';
11562
11563			// Seconds
11564			html += '<dt class="ui_tpicker_second_label" id="ui_tpicker_second_label_' + dp_id + '"' +
11565					((o.showSecond) ? '' : noDisplay) + '>' + o.secondText + '</dt>'+
11566					'<dd class="ui_tpicker_second"><div id="ui_tpicker_second_' + dp_id + '"'+
11567							((o.showSecond) ? '' : noDisplay) + '></div>';
11568
11569			if (o.showSecond && o.secondGrid > 0) {
11570				html += '<div style="padding-left: 1px"><table><tr>';
11571
11572				for (var s = o.secondMin; s <= secMax; s += parseInt(o.secondGrid,10)) {
11573					secondGridSize++;
11574					html += '<td>' + ((s < 10) ? '0' : '') + s + '</td>';
11575				}
11576
11577				html += '</tr></table></div>';
11578			}
11579			html += '</dd>';
11580
11581			// Milliseconds
11582			html += '<dt class="ui_tpicker_millisec_label" id="ui_tpicker_millisec_label_' + dp_id + '"' +
11583					((o.showMillisec) ? '' : noDisplay) + '>' + o.millisecText + '</dt>'+
11584					'<dd class="ui_tpicker_millisec"><div id="ui_tpicker_millisec_' + dp_id + '"'+
11585							((o.showMillisec) ? '' : noDisplay) + '></div>';
11586
11587			if (o.showMillisec && o.millisecGrid > 0) {
11588				html += '<div style="padding-left: 1px"><table><tr>';
11589
11590				for (var l = o.millisecMin; l <= millisecMax; l += parseInt(o.millisecGrid,10)) {
11591					millisecGridSize++;
11592					html += '<td>' + ((l < 10) ? '0' : '') + l + '</td>';
11593				}
11594
11595				html += '</tr></table></div>';
11596			}
11597			html += '</dd>';
11598
11599			// Timezone
11600			html += '<dt class="ui_tpicker_timezone_label" id="ui_tpicker_timezone_label_' + dp_id + '"' +
11601					((o.showTimezone) ? '' : noDisplay) + '>' + o.timezoneText + '</dt>';
11602			html += '<dd class="ui_tpicker_timezone" id="ui_tpicker_timezone_' + dp_id + '"'	+
11603							((o.showTimezone) ? '' : noDisplay) + '></dd>';
11604
11605			html += '</dl></div>';
11606			$tp = $(html);
11607
11608				// if we only want time picker...
11609			if (o.timeOnly === true) {
11610				$tp.prepend(
11611					'<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">' +
11612						'<div class="ui-datepicker-title">' + o.timeOnlyTitle + '</div>' +
11613					'</div>');
11614				$dp.find('.ui-datepicker-header, .ui-datepicker-calendar').hide();
11615			}
11616
11617			this.hour_slider = $tp.find('#ui_tpicker_hour_'+ dp_id).slider({
11618				orientation: "horizontal",
11619				value: this.hour,
11620				min: o.hourMin,
11621				max: hourMax,
11622				step: o.stepHour,
11623				slide: function(event, ui) {
11624					tp_inst.hour_slider.slider( "option", "value", ui.value);
11625					tp_inst._onTimeChange();
11626				}
11627			});
11628
11629
11630			// Updated by Peter Medeiros:
11631			// - Pass in Event and UI instance into slide function
11632			this.minute_slider = $tp.find('#ui_tpicker_minute_'+ dp_id).slider({
11633				orientation: "horizontal",
11634				value: this.minute,
11635				min: o.minuteMin,
11636				max: minMax,
11637				step: o.stepMinute,
11638				slide: function(event, ui) {
11639					tp_inst.minute_slider.slider( "option", "value", ui.value);
11640					tp_inst._onTimeChange();
11641				}
11642			});
11643
11644			this.second_slider = $tp.find('#ui_tpicker_second_'+ dp_id).slider({
11645				orientation: "horizontal",
11646				value: this.second,
11647				min: o.secondMin,
11648				max: secMax,
11649				step: o.stepSecond,
11650				slide: function(event, ui) {
11651					tp_inst.second_slider.slider( "option", "value", ui.value);
11652					tp_inst._onTimeChange();
11653				}
11654			});
11655
11656			this.millisec_slider = $tp.find('#ui_tpicker_millisec_'+ dp_id).slider({
11657				orientation: "horizontal",
11658				value: this.millisec,
11659				min: o.millisecMin,
11660				max: millisecMax,
11661				step: o.stepMillisec,
11662				slide: function(event, ui) {
11663					tp_inst.millisec_slider.slider( "option", "value", ui.value);
11664					tp_inst._onTimeChange();
11665				}
11666			});
11667
11668			this.timezone_select = $tp.find('#ui_tpicker_timezone_'+ dp_id).append('<select></select>').find("select");
11669			$.fn.append.apply(this.timezone_select,
11670				$.map(o.timezoneList, function(val, idx) {
11671					return $("<option />")
11672						.val(typeof val == "object" ? val.value : val)
11673						.text(typeof val == "object" ? val.label : val);
11674				})
11675			);
11676			this.timezone_select.val((typeof this.timezone != "undefined" && this.timezone != null && this.timezone != "") ? this.timezone : o.timezone);
11677			this.timezone_select.change(function() {
11678				tp_inst._onTimeChange();
11679			});
11680
11681			// Add grid functionality
11682			if (o.showHour && o.hourGrid > 0) {
11683				size = 100 * hourGridSize * o.hourGrid / (hourMax - o.hourMin);
11684
11685				$tp.find(".ui_tpicker_hour table").css({
11686					width: size + "%",
11687					marginLeft: (size / (-2 * hourGridSize)) + "%",
11688					borderCollapse: 'collapse'
11689				}).find("td").each( function(index) {
11690					$(this).click(function() {
11691						var h = $(this).html();
11692						if(o.ampm)	{
11693							var ap = h.substring(2).toLowerCase(),
11694								aph = parseInt(h.substring(0,2), 10);
11695							if (ap == 'a') {
11696								if (aph == 12) h = 0;
11697								else h = aph;
11698							} else if (aph == 12) h = 12;
11699							else h = aph + 12;
11700						}
11701						tp_inst.hour_slider.slider("option", "value", h);
11702						tp_inst._onTimeChange();
11703						tp_inst._onSelectHandler();
11704					}).css({
11705						cursor: 'pointer',
11706						width: (100 / hourGridSize) + '%',
11707						textAlign: 'center',
11708						overflow: 'hidden'
11709					});
11710				});
11711			}
11712
11713			if (o.showMinute && o.minuteGrid > 0) {
11714				size = 100 * minuteGridSize * o.minuteGrid / (minMax - o.minuteMin);
11715				$tp.find(".ui_tpicker_minute table").css({
11716					width: size + "%",
11717					marginLeft: (size / (-2 * minuteGridSize)) + "%",
11718					borderCollapse: 'collapse'
11719				}).find("td").each(function(index) {
11720					$(this).click(function() {
11721						tp_inst.minute_slider.slider("option", "value", $(this).html());
11722						tp_inst._onTimeChange();
11723						tp_inst._onSelectHandler();
11724					}).css({
11725						cursor: 'pointer',
11726						width: (100 / minuteGridSize) + '%',
11727						textAlign: 'center',
11728						overflow: 'hidden'
11729					});
11730				});
11731			}
11732
11733			if (o.showSecond && o.secondGrid > 0) {
11734				$tp.find(".ui_tpicker_second table").css({
11735					width: size + "%",
11736					marginLeft: (size / (-2 * secondGridSize)) + "%",
11737					borderCollapse: 'collapse'
11738				}).find("td").each(function(index) {
11739					$(this).click(function() {
11740						tp_inst.second_slider.slider("option", "value", $(this).html());
11741						tp_inst._onTimeChange();
11742						tp_inst._onSelectHandler();
11743					}).css({
11744						cursor: 'pointer',
11745						width: (100 / secondGridSize) + '%',
11746						textAlign: 'center',
11747						overflow: 'hidden'
11748					});
11749				});
11750			}
11751
11752			if (o.showMillisec && o.millisecGrid > 0) {
11753				$tp.find(".ui_tpicker_millisec table").css({
11754					width: size + "%",
11755					marginLeft: (size / (-2 * millisecGridSize)) + "%",
11756					borderCollapse: 'collapse'
11757				}).find("td").each(function(index) {
11758					$(this).click(function() {
11759						tp_inst.millisec_slider.slider("option", "value", $(this).html());
11760						tp_inst._onTimeChange();
11761						tp_inst._onSelectHandler();
11762					}).css({
11763						cursor: 'pointer',
11764						width: (100 / millisecGridSize) + '%',
11765						textAlign: 'center',
11766						overflow: 'hidden'
11767					});
11768				});
11769			}
11770
11771			var $buttonPanel = $dp.find('.ui-datepicker-buttonpane');
11772			if ($buttonPanel.length) $buttonPanel.before($tp);
11773			else $dp.append($tp);
11774
11775			this.$timeObj = $tp.find('#ui_tpicker_time_'+ dp_id);
11776
11777			if (this.inst !== null) {
11778				var timeDefined = this.timeDefined;
11779				this._onTimeChange();
11780				this.timeDefined = timeDefined;
11781			}
11782
11783			//Emulate datepicker onSelect behavior. Call on slidestop.
11784			var onSelectDelegate = function() {
11785				tp_inst._onSelectHandler();
11786			};
11787			this.hour_slider.bind('slidestop',onSelectDelegate);
11788			this.minute_slider.bind('slidestop',onSelectDelegate);
11789			this.second_slider.bind('slidestop',onSelectDelegate);
11790			this.millisec_slider.bind('slidestop',onSelectDelegate);
11791
11792			// slideAccess integration: http://trentrichardson.com/2011/11/11/jquery-ui-sliders-and-touch-accessibility/
11793			if (this._defaults.addSliderAccess){
11794				var sliderAccessArgs = this._defaults.sliderAccessArgs;
11795				setTimeout(function(){ // fix for inline mode
11796					if($tp.find('.ui-slider-access').length == 0){
11797						$tp.find('.ui-slider:visible').sliderAccess(sliderAccessArgs);
11798
11799						// fix any grids since sliders are shorter
11800						var sliderAccessWidth = $tp.find('.ui-slider-access:eq(0)').outerWidth(true);
11801						if(sliderAccessWidth){
11802							$tp.find('table:visible').each(function(){
11803								var $g = $(this),
11804									oldWidth = $g.outerWidth(),
11805									oldMarginLeft = $g.css('marginLeft').toString().replace('%',''),
11806									newWidth = oldWidth - sliderAccessWidth,
11807									newMarginLeft = ((oldMarginLeft * newWidth)/oldWidth) + '%';
11808
11809								$g.css({ width: newWidth, marginLeft: newMarginLeft });
11810							});
11811						}
11812					}
11813				},0);
11814			}
11815			// end slideAccess integration
11816
11817		}
11818	},
11819
11820	//########################################################################
11821	// This function tries to limit the ability to go outside the
11822	// min/max date range
11823	//########################################################################
11824	_limitMinMaxDateTime: function(dp_inst, adjustSliders){
11825		var o = this._defaults,
11826			dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay);
11827
11828		if(!this._defaults.showTimepicker) return; // No time so nothing to check here
11829
11830		if($.datepicker._get(dp_inst, 'minDateTime') !== null && $.datepicker._get(dp_inst, 'minDateTime') !== undefined && dp_date){
11831			var minDateTime = $.datepicker._get(dp_inst, 'minDateTime'),
11832				minDateTimeDate = new Date(minDateTime.getFullYear(), minDateTime.getMonth(), minDateTime.getDate(), 0, 0, 0, 0);
11833
11834			if(this.hourMinOriginal === null || this.minuteMinOriginal === null || this.secondMinOriginal === null || this.millisecMinOriginal === null){
11835				this.hourMinOriginal = o.hourMin;
11836				this.minuteMinOriginal = o.minuteMin;
11837				this.secondMinOriginal = o.secondMin;
11838				this.millisecMinOriginal = o.millisecMin;
11839			}
11840
11841			if(dp_inst.settings.timeOnly || minDateTimeDate.getTime() == dp_date.getTime()) {
11842				this._defaults.hourMin = minDateTime.getHours();
11843				if (this.hour <= this._defaults.hourMin) {
11844					this.hour = this._defaults.hourMin;
11845					this._defaults.minuteMin = minDateTime.getMinutes();
11846					if (this.minute <= this._defaults.minuteMin) {
11847						this.minute = this._defaults.minuteMin;
11848						this._defaults.secondMin = minDateTime.getSeconds();
11849					} else if (this.second <= this._defaults.secondMin){
11850						this.second = this._defaults.secondMin;
11851						this._defaults.millisecMin = minDateTime.getMilliseconds();
11852					} else {
11853						if(this.millisec < this._defaults.millisecMin)
11854							this.millisec = this._defaults.millisecMin;
11855						this._defaults.millisecMin = this.millisecMinOriginal;
11856					}
11857				} else {
11858					this._defaults.minuteMin = this.minuteMinOriginal;
11859					this._defaults.secondMin = this.secondMinOriginal;
11860					this._defaults.millisecMin = this.millisecMinOriginal;
11861				}
11862			}else{
11863				this._defaults.hourMin = this.hourMinOriginal;
11864				this._defaults.minuteMin = this.minuteMinOriginal;
11865				this._defaults.secondMin = this.secondMinOriginal;
11866				this._defaults.millisecMin = this.millisecMinOriginal;
11867			}
11868		}
11869
11870		if($.datepicker._get(dp_inst, 'maxDateTime') !== null && $.datepicker._get(dp_inst, 'maxDateTime') !== undefined && dp_date){
11871			var maxDateTime = $.datepicker._get(dp_inst, 'maxDateTime'),
11872				maxDateTimeDate = new Date(maxDateTime.getFullYear(), maxDateTime.getMonth(), maxDateTime.getDate(), 0, 0, 0, 0);
11873
11874			if(this.hourMaxOriginal === null || this.minuteMaxOriginal === null || this.secondMaxOriginal === null){
11875				this.hourMaxOriginal = o.hourMax;
11876				this.minuteMaxOriginal = o.minuteMax;
11877				this.secondMaxOriginal = o.secondMax;
11878				this.millisecMaxOriginal = o.millisecMax;
11879			}
11880
11881			if(dp_inst.settings.timeOnly || maxDateTimeDate.getTime() == dp_date.getTime()){
11882				this._defaults.hourMax = maxDateTime.getHours();
11883				if (this.hour >= this._defaults.hourMax) {
11884					this.hour = this._defaults.hourMax;
11885					this._defaults.minuteMax = maxDateTime.getMinutes();
11886					if (this.minute >= this._defaults.minuteMax) {
11887						this.minute = this._defaults.minuteMax;
11888						this._defaults.secondMax = maxDateTime.getSeconds();
11889					} else if (this.second >= this._defaults.secondMax) {
11890						this.second = this._defaults.secondMax;
11891						this._defaults.millisecMax = maxDateTime.getMilliseconds();
11892					} else {
11893						if(this.millisec > this._defaults.millisecMax) this.millisec = this._defaults.millisecMax;
11894						this._defaults.millisecMax = this.millisecMaxOriginal;
11895					}
11896				} else {
11897					this._defaults.minuteMax = this.minuteMaxOriginal;
11898					this._defaults.secondMax = this.secondMaxOriginal;
11899					this._defaults.millisecMax = this.millisecMaxOriginal;
11900				}
11901			}else{
11902				this._defaults.hourMax = this.hourMaxOriginal;
11903				this._defaults.minuteMax = this.minuteMaxOriginal;
11904				this._defaults.secondMax = this.secondMaxOriginal;
11905				this._defaults.millisecMax = this.millisecMaxOriginal;
11906			}
11907		}
11908
11909		if(adjustSliders !== undefined && adjustSliders === true){
11910			var hourMax = parseInt((this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)) ,10),
11911                minMax  = parseInt((this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)) ,10),
11912                secMax  = parseInt((this._defaults.secondMax - ((this._defaults.secondMax - this._defaults.secondMin) % this._defaults.stepSecond)) ,10),
11913				millisecMax  = parseInt((this._defaults.millisecMax - ((this._defaults.millisecMax - this._defaults.millisecMin) % this._defaults.stepMillisec)) ,10);
11914
11915			if(this.hour_slider)
11916				this.hour_slider.slider("option", { min: this._defaults.hourMin, max: hourMax }).slider('value', this.hour);
11917			if(this.minute_slider)
11918				this.minute_slider.slider("option", { min: this._defaults.minuteMin, max: minMax }).slider('value', this.minute);
11919			if(this.second_slider)
11920				this.second_slider.slider("option", { min: this._defaults.secondMin, max: secMax }).slider('value', this.second);
11921			if(this.millisec_slider)
11922				this.millisec_slider.slider("option", { min: this._defaults.millisecMin, max: millisecMax }).slider('value', this.millisec);
11923		}
11924
11925	},
11926
11927
11928	//########################################################################
11929	// when a slider moves, set the internal time...
11930	// on time change is also called when the time is updated in the text field
11931	//########################################################################
11932	_onTimeChange: function() {
11933		var hour   = (this.hour_slider) ? this.hour_slider.slider('value') : false,
11934			minute = (this.minute_slider) ? this.minute_slider.slider('value') : false,
11935			second = (this.second_slider) ? this.second_slider.slider('value') : false,
11936			millisec = (this.millisec_slider) ? this.millisec_slider.slider('value') : false,
11937			timezone = (this.timezone_select) ? this.timezone_select.val() : false,
11938			o = this._defaults;
11939
11940		if (typeof(hour) == 'object') hour = false;
11941		if (typeof(minute) == 'object') minute = false;
11942		if (typeof(second) == 'object') second = false;
11943		if (typeof(millisec) == 'object') millisec = false;
11944		if (typeof(timezone) == 'object') timezone = false;
11945
11946		if (hour !== false) hour = parseInt(hour,10);
11947		if (minute !== false) minute = parseInt(minute,10);
11948		if (second !== false) second = parseInt(second,10);
11949		if (millisec !== false) millisec = parseInt(millisec,10);
11950
11951		var ampm = o[hour < 12 ? 'amNames' : 'pmNames'][0];
11952
11953		var tmptime = (this._defaults.timeFormat).toString();
11954
11955		// tmptime is the format, if it contains tt, then ampm is true
11956		if (tmptime == 'h:mm tt') {
11957			ampm = true;
11958		}
11959
11960		// If the update was done in the input field, the input field should not be updated.
11961		// If the update was done using the sliders, update the input field.
11962		var hasChanged = (hour != this.hour || minute != this.minute
11963				|| second != this.second || millisec != this.millisec
11964				|| (this.ampm.length > 0
11965				    && (hour < 12) != ($.inArray(this.ampm.toUpperCase(), this.amNames) !== -1))
11966				|| timezone != this.timezone);
11967
11968		if (hasChanged) {
11969
11970			if (hour !== false)this.hour = hour;
11971			if (minute !== false) this.minute = minute;
11972			if (second !== false) this.second = second;
11973			if (millisec !== false) this.millisec = millisec;
11974			if (timezone !== false) this.timezone = timezone;
11975
11976			if (!this.inst) this.inst = $.datepicker._getInst(this.$input[0]);
11977
11978			this._limitMinMaxDateTime(this.inst, true);
11979		}
11980		if (o.ampm) this.ampm = ampm;
11981
11982		this._formatTime();
11983		if (this.$timeObj) this.$timeObj.text(this.formattedTime + o.timeSuffix);
11984		this.timeDefined = true;
11985		if (hasChanged) this._updateDateTime();
11986	},
11987
11988	//########################################################################
11989	// call custom onSelect.
11990	// bind to sliders slidestop, and grid click.
11991	//########################################################################
11992	_onSelectHandler: function() {
11993		var onSelect = this._defaults.onSelect;
11994		var inputEl = this.$input ? this.$input[0] : null;
11995		if (onSelect && inputEl) {
11996			onSelect.apply(inputEl, [this.formattedDateTime, this]);
11997		}
11998	},
11999
12000	//########################################################################
12001	// format the time all pretty...
12002	//########################################################################
12003	_formatTime: function(time, format, ampm) {
12004		if (ampm == undefined) ampm = this._defaults.ampm;
12005		time = time || { hour: this.hour, minute: this.minute, second: this.second, millisec: this.millisec, ampm: this.ampm, timezone: this.timezone };
12006		var tmptime = (format || this._defaults.timeFormat).toString();
12007
12008		// tmptime is the format, if it contains tt, then ampm is true
12009		if (tmptime == 'h:mm tt') {
12010			ampm = true;
12011		}
12012
12013		var hour = parseInt(time.hour, 10);
12014		if (ampm) {
12015			if (!$.inArray(time.ampm.toUpperCase(), this.amNames) !== -1)
12016				hour = hour % 12;
12017			if (hour === 0)
12018				hour = 12;
12019		}
12020		tmptime = tmptime.replace(/(?:hh?|HH?|mm?|ss?|[tT]{1,2}|[lz])/g, function(match) {
12021			switch (match.toLowerCase()) {
12022				case 'hh': return ('0' + hour).slice(-2);
12023				case 'h':  return hour;
12024				case 'HH': return hour;
12025				case 'mm': return ('0' + time.minute).slice(-2);
12026				case 'm':  return time.minute;
12027				case 'ss': return ('0' + time.second).slice(-2);
12028				case 's':  return time.second;
12029				case 'l':  return ('00' + time.millisec).slice(-3);
12030				case 'z':  return time.timezone;
12031				case 't': case 'tt':
12032					if (ampm) {
12033						var _ampm = time.ampm;
12034						if (match.length == 1)
12035							_ampm = _ampm.charAt(0);
12036						if (tmptime == 'h:mm tt') {
12037							// return am if the hour is less than 12
12038							return time.hour < 12 ? 'am' : 'pm';
12039						}
12040						return match.charAt(0) == 'T' ? _ampm.toUpperCase() : _ampm.toLowerCase();
12041					}
12042					return '';
12043			}
12044		});
12045
12046		if (arguments.length) return tmptime;
12047		else this.formattedTime = tmptime;
12048	},
12049
12050	//########################################################################
12051	// update our input with the new date time..
12052	//########################################################################
12053	_updateDateTime: function(dp_inst) {
12054		dp_inst = this.inst || dp_inst;
12055		var dt = $.datepicker._daylightSavingAdjust(new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay)),
12056			dateFmt = $.datepicker._get(dp_inst, 'dateFormat'),
12057			formatCfg = $.datepicker._getFormatConfig(dp_inst),
12058			timeAvailable = dt !== null && this.timeDefined;
12059		this.formattedDate = $.datepicker.formatDate(dateFmt, (dt === null ? new Date() : dt), formatCfg);
12060		var formattedDateTime = this.formattedDate;
12061		if (dp_inst.lastVal !== undefined && (dp_inst.lastVal.length > 0 && this.$input.val().length === 0))
12062			return;
12063
12064		if (this._defaults.timeOnly === true) {
12065			formattedDateTime = this.formattedTime;
12066		} else if (this._defaults.timeOnly !== true && (this._defaults.alwaysSetTime || timeAvailable)) {
12067			formattedDateTime += this._defaults.separator + this.formattedTime + this._defaults.timeSuffix;
12068		}
12069
12070		this.formattedDateTime = formattedDateTime;
12071
12072		if(!this._defaults.showTimepicker) {
12073			this.$input.val(this.formattedDate);
12074		} else if (this.$altInput && this._defaults.altFieldTimeOnly === true) {
12075			this.$altInput.val(this.formattedTime);
12076			this.$input.val(this.formattedDate);
12077		} else if(this.$altInput) {
12078			this.$altInput.val(formattedDateTime);
12079			this.$input.val(formattedDateTime);
12080		} else {
12081			this.$input.val(formattedDateTime);
12082		}
12083
12084		this.$input.trigger("change");
12085	}
12086
12087});
12088
12089$.fn.extend({
12090	//########################################################################
12091	// shorthand just to use timepicker..
12092	//########################################################################
12093	timepicker: function(o) {
12094		o = o || {};
12095		var tmp_args = arguments;
12096
12097		if (typeof o == 'object') tmp_args[0] = $.extend(o, { timeOnly: true });
12098
12099		return $(this).each(function() {
12100			$.fn.datetimepicker.apply($(this), tmp_args);
12101		});
12102	},
12103
12104	//########################################################################
12105	// extend timepicker to datepicker
12106	//########################################################################
12107	datetimepicker: function(o) {
12108		o = o || {};
12109		var $input = this,
12110		tmp_args = arguments;
12111
12112		if (typeof(o) == 'string'){
12113			if(o == 'getDate')
12114				return $.fn.datepicker.apply($(this[0]), tmp_args);
12115			else
12116				return this.each(function() {
12117					var $t = $(this);
12118					$t.datepicker.apply($t, tmp_args);
12119				});
12120		}
12121		else
12122			return this.each(function() {
12123				var $t = $(this);
12124				$t.datepicker($.timepicker._newInst($t, o)._defaults);
12125			});
12126	}
12127});
12128
12129//########################################################################
12130// the bad hack :/ override datepicker so it doesnt close on select
12131// inspired: http://stackoverflow.com/questions/1252512/jquery-datepicker-prevent-closing-picker-when-clicking-a-date/1762378#1762378
12132//########################################################################
12133$.datepicker._base_selectDate = $.datepicker._selectDate;
12134$.datepicker._selectDate = function (id, dateStr) {
12135	var inst = this._getInst($(id)[0]),
12136		tp_inst = this._get(inst, 'timepicker');
12137
12138	if (tp_inst) {
12139		tp_inst._limitMinMaxDateTime(inst, true);
12140		inst.inline = inst.stay_open = true;
12141		//This way the onSelect handler called from calendarpicker get the full dateTime
12142		this._base_selectDate(id, dateStr);
12143		inst.inline = inst.stay_open = false;
12144		this._notifyChange(inst);
12145		this._updateDatepicker(inst);
12146	}
12147	else this._base_selectDate(id, dateStr);
12148};
12149
12150//#############################################################################################
12151// second bad hack :/ override datepicker so it triggers an event when changing the input field
12152// and does not redraw the datepicker on every selectDate event
12153//#############################################################################################
12154$.datepicker._base_updateDatepicker = $.datepicker._updateDatepicker;
12155$.datepicker._updateDatepicker = function(inst) {
12156
12157	// don't popup the datepicker if there is another instance already opened
12158	var input = inst.input[0];
12159	if($.datepicker._curInst &&
12160	   $.datepicker._curInst != inst &&
12161	   $.datepicker._datepickerShowing &&
12162	   $.datepicker._lastInput != input) {
12163		return;
12164	}
12165
12166	if (typeof(inst.stay_open) !== 'boolean' || inst.stay_open === false) {
12167
12168		this._base_updateDatepicker(inst);
12169
12170		// Reload the time control when changing something in the input text field.
12171		var tp_inst = this._get(inst, 'timepicker');
12172		if(tp_inst) tp_inst._addTimePicker(inst);
12173	}
12174};
12175
12176//#######################################################################################
12177// third bad hack :/ override datepicker so it allows spaces and colon in the input field
12178//#######################################################################################
12179$.datepicker._base_doKeyPress = $.datepicker._doKeyPress;
12180$.datepicker._doKeyPress = function(event) {
12181	var inst = $.datepicker._getInst(event.target),
vendor: 1,508 bytes, lines 12182-12216
12182		tp_inst = $.datepicker._get(inst, 'timepicker');
12183
12184	if (tp_inst) {
12185		if ($.datepicker._get(inst, 'constrainInput')) {
12186			var ampm = tp_inst._defaults.ampm,
12187				dateChars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')),
12188				datetimeChars = tp_inst._defaults.timeFormat.toString()
12189								.replace(/[hms]/g, '')
12190								.replace(/TT/g, ampm ? 'APM' : '')
12191								.replace(/Tt/g, ampm ? 'AaPpMm' : '')
12192								.replace(/tT/g, ampm ? 'AaPpMm' : '')
12193								.replace(/T/g, ampm ? 'AP' : '')
12194								.replace(/tt/g, ampm ? 'apm' : '')
12195								.replace(/t/g, ampm ? 'ap' : '') +
12196								" " +
12197								tp_inst._defaults.separator +
12198								tp_inst._defaults.timeSuffix +
12199								(tp_inst._defaults.showTimezone ? tp_inst._defaults.timezoneList.join('') : '') +
12200								(tp_inst._defaults.amNames.join('')) +
12201								(tp_inst._defaults.pmNames.join('')) +
12202								dateChars,
12203				chr = String.fromCharCode(event.charCode === undefined ? event.keyCode : event.charCode);
12204			return event.ctrlKey || (chr < ' ' || !dateChars || datetimeChars.indexOf(chr) > -1);
12205		}
12206	}
12207
12208	return $.datepicker._base_doKeyPress(event);
12209};
12210
12211//#######################################################################################
12212// Override key up event to sync manual input changes.
12213//#######################################################################################
12214$.datepicker._base_doKeyUp = $.datepicker._doKeyUp;
12215$.datepicker._doKeyUp = function (event) {
12216	var inst = $.datepicker._getInst(event.target),
12217		tp_inst = $.datepicker._get(inst, 'timepicker');
12218
12219	if (tp_inst) {
12220		if (tp_inst._defaults.timeOnly && (inst.input.val() != inst.lastVal)) {
12221			try {
12222				$.datepicker._updateDatepicker(inst);
12223			}
12224			catch (err) {
12225				$.datepicker.log(err);
12226			}
12227		}
12228	}
12229
12230	return $.datepicker._base_doKeyUp(event);
12231};
12232
12233//#######################################################################################
12234// override "Today" button to also grab the time.
12235//#######################################################################################
12236$.datepicker._base_gotoToday = $.datepicker._gotoToday;
12237$.datepicker._gotoToday = function(id) {
12238	var inst = this._getInst($(id)[0]),
12239		$dp = inst.dpDiv;
12240	this._base_gotoToday(id);
12241	var now = new Date();
12242	var tp_inst = this._get(inst, 'timepicker');
12243	if (tp_inst._defaults.showTimezone && tp_inst.timezone_select) {
12244		var tzoffset = now.getTimezoneOffset(); // If +0100, returns -60
12245		var tzsign = tzoffset > 0 ? '-' : '+';
12246		tzoffset = Math.abs(tzoffset);
12247		var tzmin = tzoffset % 60
12248		tzoffset = tzsign + ('0' + (tzoffset - tzmin) / 60).slice(-2) + ('0' + tzmin).slice(-2);
12249		if (tp_inst._defaults.timezoneIso8609)
12250			tzoffset = tzoffset.substring(0, 3) + ':' + tzoffset.substring(3);
12251		tp_inst.timezone_select.val(tzoffset);
12252	}
12253	this._setTime(inst, now);
12254	$( '.ui-datepicker-today', $dp).click();
12255};
12256
12257//#######################################################################################
12258// Disable & enable the Time in the datetimepicker
12259//#######################################################################################
12260$.datepicker._disableTimepickerDatepicker = function(target, date, withDate) {
12261	var inst = this._getInst(target),
12262	tp_inst = this._get(inst, 'timepicker');
12263	$(target).datepicker('getDate'); // Init selected[Year|Month|Day]
12264	if (tp_inst) {
12265		tp_inst._defaults.showTimepicker = false;
12266		tp_inst._updateDateTime(inst);
12267	}
12268};
12269
12270$.datepicker._enableTimepickerDatepicker = function(target, date, withDate) {
12271	var inst = this._getInst(target),
12272	tp_inst = this._get(inst, 'timepicker');
12273	$(target).datepicker('getDate'); // Init selected[Year|Month|Day]
12274	if (tp_inst) {
12275		tp_inst._defaults.showTimepicker = true;
12276		tp_inst._addTimePicker(inst); // Could be disabled on page load
12277		tp_inst._updateDateTime(inst);
12278	}
12279};
12280
12281//#######################################################################################
12282// Create our own set time function
12283//#######################################################################################
12284$.datepicker._setTime = function(inst, date) {
12285	var tp_inst = this._get(inst, 'timepicker');
12286	if (tp_inst) {
12287		var defaults = tp_inst._defaults,
12288			// calling _setTime with no date sets time to defaults
12289			hour = date ? date.getHours() : defaults.hour,
12290			minute = date ? date.getMinutes() : defaults.minute,
12291			second = date ? date.getSeconds() : defaults.second,
12292			millisec = date ? date.getMilliseconds() : defaults.millisec;
12293
12294		//check if within min/max times..
12295		if ((hour < defaults.hourMin || hour > defaults.hourMax) || (minute < defaults.minuteMin || minute > defaults.minuteMax) || (second < defaults.secondMin || second > defaults.secondMax) || (millisec < defaults.millisecMin || millisec > defaults.millisecMax)) {
12296			hour = defaults.hourMin;
12297			minute = defaults.minuteMin;
12298			second = defaults.secondMin;
12299			millisec = defaults.millisecMin;
12300		}
12301
12302		tp_inst.hour = hour;
12303		tp_inst.minute = minute;
12304		tp_inst.second = second;
12305		tp_inst.millisec = millisec;
12306
12307		if (tp_inst.hour_slider) tp_inst.hour_slider.slider('value', hour);
12308		if (tp_inst.minute_slider) tp_inst.minute_slider.slider('value', minute);
12309		if (tp_inst.second_slider) tp_inst.second_slider.slider('value', second);
12310		if (tp_inst.millisec_slider) tp_inst.millisec_slider.slider('value', millisec);
12311
12312		tp_inst._onTimeChange();
12313		tp_inst._updateDateTime(inst);
12314	}
12315};
12316
12317//#######################################################################################
12318// Create new public method to set only time, callable as $().datepicker('setTime', date)
12319//#######################################################################################
12320$.datepicker._setTimeDatepicker = function(target, date, withDate) {
12321	var inst = this._getInst(target),
12322		tp_inst = this._get(inst, 'timepicker');
12323
12324	if (tp_inst) {
12325		this._setDateFromField(inst);
12326		var tp_date;
12327		if (date) {
12328			if (typeof date == "string") {
12329				tp_inst._parseTime(date, withDate);
12330				tp_date = new Date();
12331				tp_date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second, tp_inst.millisec);
12332			}
12333			else tp_date = new Date(date.getTime());
12334			if (tp_date.toString() == 'Invalid Date') tp_date = undefined;
12335			this._setTime(inst, tp_date);
12336		}
12337	}
12338
12339};
12340
12341//#######################################################################################
12342// override setDate() to allow setting time too within Date object
12343//#######################################################################################
12344$.datepicker._base_setDateDatepicker = $.datepicker._setDateDatepicker;
12345$.datepicker._setDateDatepicker = function(target, date) {
12346	var inst = this._getInst(target),
12347	tp_date = (date instanceof Date) ? new Date(date.getTime()) : date;
12348
12349	this._updateDatepicker(inst);
12350	this._base_setDateDatepicker.apply(this, arguments);
12351	this._setTimeDatepicker(target, tp_date, true);
12352};
12353
12354//#######################################################################################
12355// override getDate() to allow getting time too within Date object
12356//#######################################################################################
12357$.datepicker._base_getDateDatepicker = $.datepicker._getDateDatepicker;
12358$.datepicker._getDateDatepicker = function(target, noDefault) {
12359	var inst = this._getInst(target),
12360		tp_inst = this._get(inst, 'timepicker');
12361
12362	if (tp_inst) {
12363		this._setDateFromField(inst, noDefault);
12364		var date = this._getDate(inst);
12365		if (date && tp_inst._parseTime($(target).val(), tp_inst.timeOnly)) date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second, tp_inst.millisec);
12366		return date;
12367	}
12368	return this._base_getDateDatepicker(target, noDefault);
12369};
12370
12371//#######################################################################################
12372// override parseDate() because UI 1.8.14 throws an error about "Extra characters"
12373// An option in datapicker to ignore extra format characters would be nicer.
12374//#######################################################################################
12375$.datepicker._base_parseDate = $.datepicker.parseDate;
12376$.datepicker.parseDate = function(format, value, settings) {
12377	var date;
12378	try {
12379		date = this._base_parseDate(format, value, settings);
12380	} catch (err) {
12381		// Hack!  The error message ends with a colon, a space, and
12382		// the "extra" characters.  We rely on that instead of
12383		// attempting to perfectly reproduce the parsing algorithm.
12384		date = this._base_parseDate(format, value.substring(0,value.length-(err.length-err.indexOf(':')-2)), settings);
12385	}
12386	return date;
12387};
12388
12389//#######################################################################################
12390// override formatDate to set date with time to the input
12391//#######################################################################################
12392$.datepicker._base_formatDate=$.datepicker._formatDate;
12393$.datepicker._formatDate = function(inst, day, month, year){
12394	var tp_inst = this._get(inst, 'timepicker');
12395	if(tp_inst)
12396	{
12397		if(day)
12398			var b = this._base_formatDate(inst, day, month, year);
12399		tp_inst._updateDateTime(inst);
12400		return tp_inst.$input.val();
12401	}
12402	return this._base_formatDate(inst);
12403}
12404
12405//#######################################################################################
12406// override options setter to add time to maxDate(Time) and minDate(Time). MaxDate
12407//#######################################################################################
12408$.datepicker._base_optionDatepicker = $.datepicker._optionDatepicker;
12409$.datepicker._optionDatepicker = function(target, name, value) {
12410	var inst = this._getInst(target),
12411		tp_inst = this._get(inst, 'timepicker');
12412	if (tp_inst) {
12413		var min,max,onselect;
12414		if (typeof name == 'string') { // if min/max was set with the string
12415			if (name==='minDate' || name==='minDateTime' )
12416				min = value;
12417			else if (name==='maxDate' || name==='maxDateTime')
12418				max = value;
12419			else if (name==='onSelect')
12420				onselect=value;
12421		} else if (typeof name == 'object') { //if min/max was set with the JSON
12422			if(name.minDate)
12423				min = name.minDate;
12424			else if (name.minDateTime)
12425				min = name.minDateTime;
12426			else if (name.maxDate)
12427				max = name.maxDate;
12428			else if (name.maxDateTime)
12429				max = name.maxDateTime;
12430		}
12431		if(min){ //if min was set
12432			if(min==0)
12433				min=new Date();
12434			else
12435				min= new Date(min);
12436
12437			tp_inst._defaults.minDate = min;
12438			tp_inst._defaults.minDateTime = min;
12439		} else if (max){ //if max was set
12440			if(max==0)
12441				max=new Date();
12442			else
12443				max= new Date(max);
12444			tp_inst._defaults.maxDate = max;
12445			tp_inst._defaults.maxDateTime = max;
12446		}
12447		else if (onselect)
12448			tp_inst._defaults.onSelect=onselect;
12449	}
12450	if (value === undefined)
12451		return this._base_optionDatepicker(target, name);
12452	return this._base_optionDatepicker(target, name, value);
12453};
12454
12455//#######################################################################################
12456// jQuery extend now ignores nulls!
12457//#######################################################################################
12458function extendRemove(target, props) {
12459	$.extend(target, props);
12460	for (var name in props)
12461		if (props[name] === null || props[name] === undefined)
12462			target[name] = props[name];
12463	return target;
12464}
12465
12466$.timepicker = new Timepicker(); // singleton instance
12467$.timepicker.version = "0.9.8";
12468
12469})(jQuery);
12470
12471�
vendor: 58,890 bytes, lines 12471-12472
12471!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var H;function _(){return H.apply(null,arguments)}function y(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function F(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function c(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function L(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var t in e)if(c(e,t))return;return 1}function g(e){return void 0===e}function w(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function V(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function G(e,t){for(var n=[],s=e.length,i=0;i<s;++i)n.push(t(e[i],i));return n}function E(e,t){for(var n in t)c(t,n)&&(e[n]=t[n]);return c(t,"toString")&&(e.toString=t.toString),c(t,"valueOf")&&(e.valueOf=t.valueOf),e}function l(e,t,n,s){return Wt(e,t,n,s,!0).utc()}function p(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function A(e){var t,n,s=e._d&&!isNaN(e._d.getTime());return s&&(t=p(e),n=j.call(t.parsedDateParts,function(e){return null!=e}),s=t.overflow<0&&!t.empty&&!t.invalidEra&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n),e._strict)&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e)?s:(e._isValid=s,e._isValid)}function I(e){var t=l(NaN);return null!=e?E(p(t),e):p(t).userInvalidated=!0,t}var j=Array.prototype.some||function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1},Z=_.momentProperties=[],z=!1;function q(e,t){var n,s,i,r=Z.length;if(g(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),g(t._i)||(e._i=t._i),g(t._f)||(e._f=t._f),g(t._l)||(e._l=t._l),g(t._strict)||(e._strict=t._strict),g(t._tzm)||(e._tzm=t._tzm),g(t._isUTC)||(e._isUTC=t._isUTC),g(t._offset)||(e._offset=t._offset),g(t._pf)||(e._pf=p(t)),g(t._locale)||(e._locale=t._locale),0<r)for(n=0;n<r;n++)g(i=t[s=Z[n]])||(e[s]=i);return e}function $(e){q(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===z&&(z=!0,_.updateOffset(this),z=!1)}function k(e){return e instanceof $||null!=e&&null!=e._isAMomentObject}function B(e){!1===_.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function e(r,a){var o=!0;return E(function(){if(null!=_.deprecationHandler&&_.deprecationHandler(null,r),o){for(var e,t,n=[],s=arguments.length,i=0;i<s;i++){if(e="","object"==typeof arguments[i]){for(t in e+="\n["+i+"] ",arguments[0])c(arguments[0],t)&&(e+=t+": "+arguments[0][t]+", ");e=e.slice(0,-2)}else e=arguments[i];n.push(e)}B(r+"\nArguments: "+Array.prototype.slice.call(n).join("")+"\n"+(new Error).stack),o=!1}return a.apply(this,arguments)},a)}var J={};function Q(e,t){null!=_.deprecationHandler&&_.deprecationHandler(e,t),J[e]||(B(t),J[e]=!0)}function a(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function X(e,t){var n,s=E({},e);for(n in t)c(t,n)&&(F(e[n])&&F(t[n])?(s[n]={},E(s[n],e[n]),E(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)c(e,n)&&!c(t,n)&&F(e[n])&&(s[n]=E({},s[n]));return s}function K(e){null!=e&&this.set(e)}_.suppressDeprecationWarnings=!1,_.deprecationHandler=null;var ee=Object.keys||function(e){var t,n=[];for(t in e)c(e,t)&&n.push(t);return n};function r(e,t,n){var s=""+Math.abs(e);return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,t-s.length)).toString().substr(1)+s}var te=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ne=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,se={},ie={};function s(e,t,n,s){var i="string"==typeof s?function(){return this[s]()}:s;e&&(ie[e]=i),t&&(ie[t[0]]=function(){return r(i.apply(this,arguments),t[1],t[2])}),n&&(ie[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function re(e,t){return e.isValid()?(t=ae(t,e.localeData()),se[t]=se[t]||function(s){for(var e,i=s.match(te),t=0,r=i.length;t<r;t++)ie[i[t]]?i[t]=ie[i[t]]:i[t]=(e=i[t]).match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"");return function(e){for(var t="",n=0;n<r;n++)t+=a(i[n])?i[n].call(e,s):i[n];return t}}(t),se[t](e)):e.localeData().invalidDate()}function ae(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(ne.lastIndex=0;0<=n&&ne.test(e);)e=e.replace(ne,s),ne.lastIndex=0,--n;return e}var oe={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function o(e){return"string"==typeof e?oe[e]||oe[e.toLowerCase()]:void 0}function ue(e){var t,n,s={};for(n in e)c(e,n)&&(t=o(n))&&(s[t]=e[n]);return s}var le={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};var de=/\d/,t=/\d\d/,he=/\d{3}/,ce=/\d{4}/,fe=/[+-]?\d{6}/,n=/\d\d?/,me=/\d\d\d\d?/,_e=/\d\d\d\d\d\d?/,ye=/\d{1,3}/,ge=/\d{1,4}/,we=/[+-]?\d{1,6}/,pe=/\d+/,ke=/[+-]?\d+/,Me=/Z|[+-]\d\d:?\d\d/gi,ve=/Z|[+-]\d\d(?::?\d\d)?/gi,i=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,u=/^[1-9]\d?/,d=/^([1-9]\d|\d)/;function h(e,n,s){Ye[e]=a(n)?n:function(e,t){return e&&s?s:n}}function De(e,t){return c(Ye,e)?Ye[e](t._strict,t._locale):new RegExp(f(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function f(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function m(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function M(e){var e=+e,t=0;return t=0!=e&&isFinite(e)?m(e):t}var Ye={},Se={};function v(e,n){var t,s,i=n;for("string"==typeof e&&(e=[e]),w(n)&&(i=function(e,t){t[n]=M(e)}),s=e.length,t=0;t<s;t++)Se[e[t]]=i}function Oe(e,i){v(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}function be(e){return e%4==0&&e%100!=0||e%400==0}var D=0,Y=1,S=2,O=3,b=4,T=5,Te=6,xe=7,Ne=8;function We(e){return be(e)?366:365}s("Y",0,0,function(){var e=this.year();return e<=9999?r(e,4):"+"+e}),s(0,["YY",2],0,function(){return this.year()%100}),s(0,["YYYY",4],0,"year"),s(0,["YYYYY",5],0,"year"),s(0,["YYYYYY",6,!0],0,"year"),h("Y",ke),h("YY",n,t),h("YYYY",ge,ce),h("YYYYY",we,fe),h("YYYYYY",we,fe),v(["YYYYY","YYYYYY"],D),v("YYYY",function(e,t){t[D]=2===e.length?_.parseTwoDigitYear(e):M(e)}),v("YY",function(e,t){t[D]=_.parseTwoDigitYear(e)}),v("Y",function(e,t){t[D]=parseInt(e,10)}),_.parseTwoDigitYear=function(e){return M(e)+(68<M(e)?1900:2e3)};var x,Pe=Re("FullYear",!0);function Re(t,n){return function(e){return null!=e?(Ue(this,t,e),_.updateOffset(this,n),this):Ce(this,t)}}function Ce(e,t){if(!e.isValid())return NaN;var n=e._d,s=e._isUTC;switch(t){case"Milliseconds":return s?n.getUTCMilliseconds():n.getMilliseconds();case"Seconds":return s?n.getUTCSeconds():n.getSeconds();case"Minutes":return s?n.getUTCMinutes():n.getMinutes();case"Hours":return s?n.getUTCHours():n.getHours();case"Date":return s?n.getUTCDate():n.getDate();case"Day":return s?n.getUTCDay():n.getDay();case"Month":return s?n.getUTCMonth():n.getMonth();case"FullYear":return s?n.getUTCFullYear():n.getFullYear();default:return NaN}}function Ue(e,t,n){var s,i,r;if(e.isValid()&&!isNaN(n)){switch(s=e._d,i=e._isUTC,t){case"Milliseconds":return i?s.setUTCMilliseconds(n):s.setMilliseconds(n);case"Seconds":return i?s.setUTCSeconds(n):s.setSeconds(n);case"Minutes":return i?s.setUTCMinutes(n):s.setMinutes(n);case"Hours":return i?s.setUTCHours(n):s.setHours(n);case"Date":return i?s.setUTCDate(n):s.setDate(n);case"FullYear":break;default:return}t=n,r=e.month(),e=29!==(e=e.date())||1!==r||be(t)?e:28,i?s.setUTCFullYear(t,r,e):s.setFullYear(t,r,e)}}function He(e,t){var n;return isNaN(e)||isNaN(t)?NaN:(n=(t%(n=12)+n)%n,e+=(t-n)/12,1==n?be(e)?29:28:31-n%7%2)}x=Array.prototype.indexOf||function(e){for(var t=0;t<this.length;++t)if(this[t]===e)return t;return-1},s("M",["MM",2],"Mo",function(){return this.month()+1}),s("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),s("MMMM",0,0,function(e){return this.localeData().months(this,e)}),h("M",n,u),h("MM",n,t),h("MMM",function(e,t){return t.monthsShortRegex(e)}),h("MMMM",function(e,t){return t.monthsRegex(e)}),v(["M","MM"],function(e,t){t[Y]=M(e)-1}),v(["MMM","MMMM"],function(e,t,n,s){s=n._locale.monthsParse(e,s,n._strict);null!=s?t[Y]=s:p(n).invalidMonth=e});var Fe="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Le="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Ve=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ge=i,Ee=i;function Ae(e,t){if(e.isValid()){if("string"==typeof t)if(/^\d+$/.test(t))t=M(t);else if(!w(t=e.localeData().monthsParse(t)))return;var n=(n=e.date())<29?n:Math.min(n,He(e.year(),t));e._isUTC?e._d.setUTCMonth(t,n):e._d.setMonth(t,n)}}function Ie(e){return null!=e?(Ae(this,e),_.updateOffset(this,!0),this):Ce(this,"Month")}function je(){function e(e,t){return t.length-e.length}for(var t,n,s=[],i=[],r=[],a=0;a<12;a++)n=l([2e3,a]),t=f(this.monthsShort(n,"")),n=f(this.months(n,"")),s.push(t),i.push(n),r.push(n),r.push(t);s.sort(e),i.sort(e),r.sort(e),this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ze(e,t,n,s,i,r,a){var o;return e<100&&0<=e?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}function ze(e){var t;return e<100&&0<=e?((t=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,t)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function qe(e,t,n){n=7+t-n;return n-(7+ze(e,0,n).getUTCDay()-t)%7-1}function $e(e,t,n,s,i){var r,t=1+7*(t-1)+(7+n-s)%7+qe(e,s,i),n=t<=0?We(r=e-1)+t:t>We(e)?(r=e+1,t-We(e)):(r=e,t);return{year:r,dayOfYear:n}}function Be(e,t,n){var s,i,r=qe(e.year(),t,n),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?s=r+N(i=e.year()-1,t,n):r>N(e.year(),t,n)?(s=r-N(e.year(),t,n),i=e.year()+1):(i=e.year(),s=r),{week:s,year:i}}function N(e,t,n){var s=qe(e,t,n),t=qe(e+1,t,n);return(We(e)-s+t)/7}s("w",["ww",2],"wo","week"),s("W",["WW",2],"Wo","isoWeek"),h("w",n,u),h("ww",n,t),h("W",n,u),h("WW",n,t),Oe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=M(e)});function Je(e,t){return e.slice(t,7).concat(e.slice(0,t))}s("d",0,"do","day"),s("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),s("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),s("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),s("e",0,0,"weekday"),s("E",0,0,"isoWeekday"),h("d",n),h("e",n),h("E",n),h("dd",function(e,t){return t.weekdaysMinRegex(e)}),h("ddd",function(e,t){return t.weekdaysShortRegex(e)}),h("dddd",function(e,t){return t.weekdaysRegex(e)}),Oe(["dd","ddd","dddd"],function(e,t,n,s){s=n._locale.weekdaysParse(e,s,n._strict);null!=s?t.d=s:p(n).invalidWeekday=e}),Oe(["d","e","E"],function(e,t,n,s){t[s]=M(e)});var Qe="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Xe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ke="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),et=i,tt=i,nt=i;function st(){function e(e,t){return t.length-e.length}for(var t,n,s,i=[],r=[],a=[],o=[],u=0;u<7;u++)s=l([2e3,1]).day(u),t=f(this.weekdaysMin(s,"")),n=f(this.weekdaysShort(s,"")),s=f(this.weekdays(s,"")),i.push(t),r.push(n),a.push(s),o.push(t),o.push(n),o.push(s);i.sort(e),r.sort(e),a.sort(e),o.sort(e),this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function it(){return this.hours()%12||12}function rt(e,t){s(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function at(e,t){return t._meridiemParse}s("H",["HH",2],0,"hour"),s("h",["hh",2],0,it),s("k",["kk",2],0,function(){return this.hours()||24}),s("hmm",0,0,function(){return""+it.apply(this)+r(this.minutes(),2)}),s("hmmss",0,0,function(){return""+it.apply(this)+r(this.minutes(),2)+r(this.seconds(),2)}),s("Hmm",0,0,function(){return""+this.hours()+r(this.minutes(),2)}),s("Hmmss",0,0,function(){return""+this.hours()+r(this.minutes(),2)+r(this.seconds(),2)}),rt("a",!0),rt("A",!1),h("a",at),h("A",at),h("H",n,d),h("h",n,u),h("k",n,u),h("HH",n,t),h("hh",n,t),h("kk",n,t),h("hmm",me),h("hmmss",_e),h("Hmm",me),h("Hmmss",_e),v(["H","HH"],O),v(["k","kk"],function(e,t,n){e=M(e);t[O]=24===e?0:e}),v(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),v(["h","hh"],function(e,t,n){t[O]=M(e),p(n).bigHour=!0}),v("hmm",function(e,t,n){var s=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s)),p(n).bigHour=!0}),v("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s,2)),t[T]=M(e.substr(i)),p(n).bigHour=!0}),v("Hmm",function(e,t,n){var s=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s))}),v("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s,2)),t[T]=M(e.substr(i))});i=Re("Hours",!0);var ot,ut={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{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"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Fe,monthsShort:Le,week:{dow:0,doy:6},weekdays:Qe,weekdaysMin:Ke,weekdaysShort:Xe,meridiemParse:/[ap]\.?m?\.?/i},W={},lt={};function dt(e){return e&&e.toLowerCase().replace("_","-")}function ht(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=dt(e[r]).split("-")).length,n=(n=dt(e[r+1]))?n.split("-"):null;0<t;){if(s=ct(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&function(e,t){for(var n=Math.min(e.length,t.length),s=0;s<n;s+=1)if(e[s]!==t[s])return s;return n}(i,n)>=t-1)break;t--}r++}return ot}function ct(t){var e,n;if(void 0===W[t]&&"undefined"!=typeof module&&module&&module.exports&&(n=t)&&n.match("^[^/\\\\]*$"))try{e=ot._abbr,require("./locale/"+t),ft(e)}catch(e){W[t]=null}return W[t]}function ft(e,t){return e&&((t=g(t)?P(e):mt(e,t))?ot=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ot._abbr}function mt(e,t){if(null===t)return delete W[e],null;var n,s=ut;if(t.abbr=e,null!=W[e])Q("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=W[e]._config;else if(null!=t.parentLocale)if(null!=W[t.parentLocale])s=W[t.parentLocale]._config;else{if(null==(n=ct(t.parentLocale)))return lt[t.parentLocale]||(lt[t.parentLocale]=[]),lt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return W[e]=new K(X(s,t)),lt[e]&&lt[e].forEach(function(e){mt(e.name,e.config)}),ft(e),W[e]}function P(e){var t;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return ot;if(!y(e)){if(t=ct(e))return t;e=[e]}return ht(e)}function _t(e){var t=e._a;return t&&-2===p(e).overflow&&(t=t[Y]<0||11<t[Y]?Y:t[S]<1||t[S]>He(t[D],t[Y])?S:t[O]<0||24<t[O]||24===t[O]&&(0!==t[b]||0!==t[T]||0!==t[Te])?O:t[b]<0||59<t[b]?b:t[T]<0||59<t[T]?T:t[Te]<0||999<t[Te]?Te:-1,p(e)._overflowDayOfYear&&(t<D||S<t)&&(t=S),p(e)._overflowWeeks&&-1===t&&(t=xe),p(e)._overflowWeekday&&-1===t&&(t=Ne),p(e).overflow=t),e}var yt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,gt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,wt=/Z|[+-]\d\d(?::?\d\d)?/,pt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],kt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Mt=/^\/?Date\((-?\d+)/i,vt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Dt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Yt(e){var t,n,s,i,r,a,o=e._i,u=yt.exec(o)||gt.exec(o),o=pt.length,l=kt.length;if(u){for(p(e).iso=!0,t=0,n=o;t<n;t++)if(pt[t][1].exec(u[1])){i=pt[t][0],s=!1!==pt[t][2];break}if(null==i)e._isValid=!1;else{if(u[3]){for(t=0,n=l;t<n;t++)if(kt[t][1].exec(u[3])){r=(u[2]||" ")+kt[t][0];break}if(null==r)return void(e._isValid=!1)}if(s||null==r){if(u[4]){if(!wt.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),xt(e)}else e._isValid=!1}}else e._isValid=!1}function St(e,t,n,s,i,r){e=[function(e){e=parseInt(e,10);{if(e<=49)return 2e3+e;if(e<=999)return 1900+e}return e}(e),Le.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&e.push(parseInt(r,10)),e}function Ot(e){var t,n,s=vt.exec(e._i.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));s?(t=St(s[4],s[3],s[2],s[5],s[6],s[7]),function(e,t,n){if(!e||Xe.indexOf(e)===new Date(t[0],t[1],t[2]).getDay())return 1;p(n).weekdayMismatch=!0,n._isValid=!1}(s[1],t,e)&&(e._a=t,e._tzm=(t=s[8],n=s[9],s=s[10],t?Dt[t]:n?0:60*(((t=parseInt(s,10))-(n=t%100))/100)+n),e._d=ze.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),p(e).rfc2822=!0)):e._isValid=!1}function bt(e,t,n){return null!=e?e:null!=t?t:n}function Tt(e){var t,n,s,i,r,a,o,u,l,d,h,c=[];if(!e._d){for(s=e,i=new Date(_.now()),n=s._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()],e._w&&null==e._a[S]&&null==e._a[Y]&&(null!=(i=(s=e)._w).GG||null!=i.W||null!=i.E?(u=1,l=4,r=bt(i.GG,s._a[D],Be(R(),1,4).year),a=bt(i.W,1),((o=bt(i.E,1))<1||7<o)&&(d=!0)):(u=s._locale._week.dow,l=s._locale._week.doy,h=Be(R(),u,l),r=bt(i.gg,s._a[D],h.year),a=bt(i.w,h.week),null!=i.d?((o=i.d)<0||6<o)&&(d=!0):null!=i.e?(o=i.e+u,(i.e<0||6<i.e)&&(d=!0)):o=u),a<1||a>N(r,u,l)?p(s)._overflowWeeks=!0:null!=d?p(s)._overflowWeekday=!0:(h=$e(r,a,o,u,l),s._a[D]=h.year,s._dayOfYear=h.dayOfYear)),null!=e._dayOfYear&&(i=bt(e._a[D],n[D]),(e._dayOfYear>We(i)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),d=ze(i,0,e._dayOfYear),e._a[Y]=d.getUTCMonth(),e._a[S]=d.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=c[t]=n[t];for(;t<7;t++)e._a[t]=c[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[O]&&0===e._a[b]&&0===e._a[T]&&0===e._a[Te]&&(e._nextDay=!0,e._a[O]=0),e._d=(e._useUTC?ze:Ze).apply(null,c),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[O]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(p(e).weekdayMismatch=!0)}}function xt(e){if(e._f===_.ISO_8601)Yt(e);else if(e._f===_.RFC_2822)Ot(e);else{e._a=[],p(e).empty=!0;for(var t,n,s,i,r,a=""+e._i,o=a.length,u=0,l=ae(e._f,e._locale).match(te)||[],d=l.length,h=0;h<d;h++)n=l[h],(t=(a.match(De(n,e))||[])[0])&&(0<(s=a.substr(0,a.indexOf(t))).length&&p(e).unusedInput.push(s),a=a.slice(a.indexOf(t)+t.length),u+=t.length),ie[n]?(t?p(e).empty=!1:p(e).unusedTokens.push(n),s=n,r=e,null!=(i=t)&&c(Se,s)&&Se[s](i,r._a,r,s)):e._strict&&!t&&p(e).unusedTokens.push(n);p(e).charsLeftOver=o-u,0<a.length&&p(e).unusedInput.push(a),e._a[O]<=12&&!0===p(e).bigHour&&0<e._a[O]&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[O]=function(e,t,n){if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((e=e.isPM(n))&&t<12&&(t+=12),t=e||12!==t?t:0):t}(e._locale,e._a[O],e._meridiem),null!==(o=p(e).era)&&(e._a[D]=e._locale.erasConvertYear(o,e._a[D])),Tt(e),_t(e)}}function Nt(e){var t,n,s,i=e._i,r=e._f;if(e._locale=e._locale||P(e._l),null===i||void 0===r&&""===i)return I({nullInput:!0});if("string"==typeof i&&(e._i=i=e._locale.preparse(i)),k(i))return new $(_t(i));if(V(i))e._d=i;else if(y(r)){var a,o,u,l,d,h,c=e,f=!1,m=c._f.length;if(0===m)p(c).invalidFormat=!0,c._d=new Date(NaN);else{for(l=0;l<m;l++)d=0,h=!1,a=q({},c),null!=c._useUTC&&(a._useUTC=c._useUTC),a._f=c._f[l],xt(a),A(a)&&(h=!0),d=(d+=p(a).charsLeftOver)+10*p(a).unusedTokens.length,p(a).score=d,f?d<u&&(u=d,o=a):(null==u||d<u||h)&&(u=d,o=a,h)&&(f=!0);E(c,o||a)}}else if(r)xt(e);else if(g(r=(i=e)._i))i._d=new Date(_.now());else V(r)?i._d=new Date(r.valueOf()):"string"==typeof r?(n=i,null!==(t=Mt.exec(n._i))?n._d=new Date(+t[1]):(Yt(n),!1===n._isValid&&(delete n._isValid,Ot(n),!1===n._isValid)&&(delete n._isValid,n._strict?n._isValid=!1:_.createFromInputFallback(n)))):y(r)?(i._a=G(r.slice(0),function(e){return parseInt(e,10)}),Tt(i)):F(r)?(t=i)._d||(s=void 0===(n=ue(t._i)).day?n.date:n.day,t._a=G([n.year,n.month,s,n.hour,n.minute,n.second,n.millisecond],function(e){return e&&parseInt(e,10)}),Tt(t)):w(r)?i._d=new Date(r):_.createFromInputFallback(i);return A(e)||(e._d=null),e}function Wt(e,t,n,s,i){var r={};return!0!==t&&!1!==t||(s=t,t=void 0),!0!==n&&!1!==n||(s=n,n=void 0),(F(e)&&L(e)||y(e)&&0===e.length)&&(e=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=i,r._l=n,r._i=e,r._f=t,r._strict=s,(i=new $(_t(Nt(i=r))))._nextDay&&(i.add(1,"d"),i._nextDay=void 0),i}function R(e,t,n,s){return Wt(e,t,n,s,!1)}_.createFromInputFallback=e("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),_.ISO_8601=function(){},_.RFC_2822=function(){};me=e("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=R.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:I()}),_e=e("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=R.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:I()});function Pt(e,t){var n,s;if(!(t=1===t.length&&y(t[0])?t[0]:t).length)return R();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Rt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ct(e){var e=ue(e),t=e.year||0,n=e.quarter||0,s=e.month||0,i=e.week||e.isoWeek||0,r=e.day||0,a=e.hour||0,o=e.minute||0,u=e.second||0,l=e.millisecond||0;this._isValid=function(e){var t,n,s=!1,i=Rt.length;for(t in e)if(c(e,t)&&(-1===x.call(Rt,t)||null!=e[t]&&isNaN(e[t])))return!1;for(n=0;n<i;++n)if(e[Rt[n]]){if(s)return!1;parseFloat(e[Rt[n]])!==M(e[Rt[n]])&&(s=!0)}return!0}(e),this._milliseconds=+l+1e3*u+6e4*o+1e3*a*60*60,this._days=+r+7*i,this._months=+s+3*n+12*t,this._data={},this._locale=P(),this._bubble()}function Ut(e){return e instanceof Ct}function Ht(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){s(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+r(~~(e/60),2)+n+r(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),h("Z",ve),h("ZZ",ve),v(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Vt(ve,e)});var Lt=/([\+\-]|\d\d)/gi;function Vt(e,t){var t=(t||"").match(e);return null===t?null:0===(t=60*(e=((t[t.length-1]||[])+"").match(Lt)||["-",0,0])[1]+M(e[2]))?0:"+"===e[0]?t:-t}function Gt(e,t){var n;return t._isUTC?(t=t.clone(),n=(k(e)||V(e)?e:R(e)).valueOf()-t.valueOf(),t._d.setTime(t._d.valueOf()+n),_.updateOffset(t,!1),t):R(e).local()}function Et(e){return-Math.round(e._d.getTimezoneOffset())}function At(){return!!this.isValid()&&this._isUTC&&0===this._offset}_.updateOffset=function(){};var It=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,jt=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function C(e,t){var n,s=e;return Ut(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:w(e)||!isNaN(+e)?(s={},t?s[t]=+e:s.milliseconds=+e):(t=It.exec(e))?(n="-"===t[1]?-1:1,s={y:0,d:M(t[S])*n,h:M(t[O])*n,m:M(t[b])*n,s:M(t[T])*n,ms:M(Ht(1e3*t[Te]))*n}):(t=jt.exec(e))?(n="-"===t[1]?-1:1,s={y:Zt(t[2],n),M:Zt(t[3],n),w:Zt(t[4],n),d:Zt(t[5],n),h:Zt(t[6],n),m:Zt(t[7],n),s:Zt(t[8],n)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(t=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Gt(t,e),e.isBefore(t)?n=zt(e,t):((n=zt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(R(s.from),R(s.to)),(s={}).ms=t.milliseconds,s.M=t.months),n=new Ct(s),Ut(e)&&c(e,"_locale")&&(n._locale=e._locale),Ut(e)&&c(e,"_isValid")&&(n._isValid=e._isValid),n}function Zt(e,t){e=e&&parseFloat(e.replace(",","."));return(isNaN(e)?0:e)*t}function zt(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function qt(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(Q(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),$t(this,C(e,t),s),this}}function $t(e,t,n,s){var i=t._milliseconds,r=Ht(t._days),t=Ht(t._months);e.isValid()&&(s=null==s||s,t&&Ae(e,Ce(e,"Month")+t*n),r&&Ue(e,"Date",Ce(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s)&&_.updateOffset(e,r||t)}C.fn=Ct.prototype,C.invalid=function(){return C(NaN)};Fe=qt(1,"add"),Qe=qt(-1,"subtract");function Bt(e){return"string"==typeof e||e instanceof String}function Jt(e){return k(e)||V(e)||Bt(e)||w(e)||function(t){var e=y(t),n=!1;e&&(n=0===t.filter(function(e){return!w(e)&&Bt(t)}).length);return e&&n}(e)||function(e){var t,n,s=F(e)&&!L(e),i=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],a=r.length;for(t=0;t<a;t+=1)n=r[t],i=i||c(e,n);return s&&i}(e)||null==e}function Qt(e,t){var n,s;return e.date()<t.date()?-Qt(t,e):-((n=12*(t.year()-e.year())+(t.month()-e.month()))+(t-(s=e.clone().add(n,"months"))<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(1+n,"months")-s)))||0}function Xt(e){return void 0===e?this._locale._abbr:(null!=(e=P(e))&&(this._locale=e),this)}_.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",_.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";Ke=e("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function Kt(){return this._locale}var en=126227808e5;function tn(e,t){return(e%t+t)%t}function nn(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-en:new Date(e,t,n).valueOf()}function sn(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-en:Date.UTC(e,t,n)}function rn(e,t){return t.erasAbbrRegex(e)}function an(){for(var e,t,n,s=[],i=[],r=[],a=[],o=this.eras(),u=0,l=o.length;u<l;++u)e=f(o[u].name),t=f(o[u].abbr),n=f(o[u].narrow),i.push(e),s.push(t),r.push(n),a.push(e),a.push(t),a.push(n);this._erasRegex=new RegExp("^("+a.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+i.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+s.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+r.join("|")+")","i")}function on(e,t){s(0,[e,e.length],0,t)}function un(e,t,n,s,i){var r;return null==e?Be(this,s,i).year:(r=N(e,s,i),function(e,t,n,s,i){e=$e(e,t,n,s,i),t=ze(e.year,0,e.dayOfYear);return this.year(t.getUTCFullYear()),this.month(t.getUTCMonth()),this.date(t.getUTCDate()),this}.call(this,e,t=r<t?r:t,n,s,i))}s("N",0,0,"eraAbbr"),s("NN",0,0,"eraAbbr"),s("NNN",0,0,"eraAbbr"),s("NNNN",0,0,"eraName"),s("NNNNN",0,0,"eraNarrow"),s("y",["y",1],"yo","eraYear"),s("y",["yy",2],0,"eraYear"),s("y",["yyy",3],0,"eraYear"),s("y",["yyyy",4],0,"eraYear"),h("N",rn),h("NN",rn),h("NNN",rn),h("NNNN",function(e,t){return t.erasNameRegex(e)}),h("NNNNN",function(e,t){return t.erasNarrowRegex(e)}),v(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,s){s=n._locale.erasParse(e,s,n._strict);s?p(n).era=s:p(n).invalidEra=e}),h("y",pe),h("yy",pe),h("yyy",pe),h("yyyy",pe),h("yo",function(e,t){return t._eraYearOrdinalRegex||pe}),v(["y","yy","yyy","yyyy"],D),v(["yo"],function(e,t,n,s){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[D]=n._locale.eraYearOrdinalParse(e,i):t[D]=parseInt(e,10)}),s(0,["gg",2],0,function(){return this.weekYear()%100}),s(0,["GG",2],0,function(){return this.isoWeekYear()%100}),on("gggg","weekYear"),on("ggggg","weekYear"),on("GGGG","isoWeekYear"),on("GGGGG","isoWeekYear"),h("G",ke),h("g",ke),h("GG",n,t),h("gg",n,t),h("GGGG",ge,ce),h("gggg",ge,ce),h("GGGGG",we,fe),h("ggggg",we,fe),Oe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=M(e)}),Oe(["gg","GG"],function(e,t,n,s){t[s]=_.parseTwoDigitYear(e)}),s("Q",0,"Qo","quarter"),h("Q",de),v("Q",function(e,t){t[Y]=3*(M(e)-1)}),s("D",["DD",2],"Do","date"),h("D",n,u),h("DD",n,t),h("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),v(["D","DD"],S),v("Do",function(e,t){t[S]=M(e.match(n)[0])});ge=Re("Date",!0);s("DDD",["DDDD",3],"DDDo","dayOfYear"),h("DDD",ye),h("DDDD",he),v(["DDD","DDDD"],function(e,t,n){n._dayOfYear=M(e)}),s("m",["mm",2],0,"minute"),h("m",n,d),h("mm",n,t),v(["m","mm"],b);var ln,ce=Re("Minutes",!1),we=(s("s",["ss",2],0,"second"),h("s",n,d),h("ss",n,t),v(["s","ss"],T),Re("Seconds",!1));for(s("S",0,0,function(){return~~(this.millisecond()/100)}),s(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),s(0,["SSS",3],0,"millisecond"),s(0,["SSSS",4],0,function(){return 10*this.millisecond()}),s(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),s(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),s(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),s(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),s(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),h("S",ye,de),h("SS",ye,t),h("SSS",ye,he),ln="SSSS";ln.length<=9;ln+="S")h(ln,pe);function dn(e,t){t[Te]=M(1e3*("0."+e))}for(ln="S";ln.length<=9;ln+="S")v(ln,dn);fe=Re("Milliseconds",!1),s("z",0,0,"zoneAbbr"),s("zz",0,0,"zoneName");u=$.prototype;function hn(e){return e}u.add=Fe,u.calendar=function(e,t){1===arguments.length&&(arguments[0]?Jt(arguments[0])?(e=arguments[0],t=void 0):function(e){for(var t=F(e)&&!L(e),n=!1,s=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],i=0;i<s.length;i+=1)n=n||c(e,s[i]);return t&&n}(arguments[0])&&(t=arguments[0],e=void 0):t=e=void 0);var e=e||R(),n=Gt(e,this).startOf("day"),n=_.calendarFormat(this,n)||"sameElse",t=t&&(a(t[n])?t[n].call(this,e):t[n]);return this.format(t||this.localeData().calendar(n,this,R(e)))},u.clone=function(){return new $(this)},u.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Gt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=o(t)){case"year":r=Qt(this,s)/12;break;case"month":r=Qt(this,s);break;case"quarter":r=Qt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:m(r)},u.endOf=function(e){var t,n;if(void 0!==(e=o(e))&&"millisecond"!==e&&this.isValid()){switch(n=this._isUTC?sn:nn,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-tn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-tn(t,1e3)-1;break}this._d.setTime(t),_.updateOffset(this,!0)}return this},u.format=function(e){return e=e||(this.isUtc()?_.defaultFormatUtc:_.defaultFormat),e=re(this,e),this.localeData().postformat(e)},u.from=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||R(e).isValid())?C({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},u.fromNow=function(e){return this.from(R(),e)},u.to=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||R(e).isValid())?C({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},u.toNow=function(e){return this.to(R(),e)},u.get=function(e){return a(this[e=o(e)])?this[e]():this},u.invalidAt=function(){return p(this).overflow},u.isAfter=function(e,t){return e=k(e)?e:R(e),!(!this.isValid()||!e.isValid())&&("millisecond"===(t=o(t)||"millisecond")?this.valueOf()>e.valueOf():e.valueOf()<this.clone().startOf(t).valueOf())},u.isBefore=function(e,t){return e=k(e)?e:R(e),!(!this.isValid()||!e.isValid())&&("millisecond"===(t=o(t)||"millisecond")?this.valueOf()<e.valueOf():this.clone().endOf(t).valueOf()<e.valueOf())},u.isBetween=function(e,t,n,s){return e=k(e)?e:R(e),t=k(t)?t:R(t),!!(this.isValid()&&e.isValid()&&t.isValid())&&("("===(s=s||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===s[1]?this.isBefore(t,n):!this.isAfter(t,n))},u.isSame=function(e,t){var e=k(e)?e:R(e);return!(!this.isValid()||!e.isValid())&&("millisecond"===(t=o(t)||"millisecond")?this.valueOf()===e.valueOf():(e=e.valueOf(),this.clone().startOf(t).valueOf()<=e&&e<=this.clone().endOf(t).valueOf()))},u.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},u.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},u.isValid=function(){return A(this)},u.lang=Ke,u.locale=Xt,u.localeData=Kt,u.max=_e,u.min=me,u.parsingFlags=function(){return E({},p(this))},u.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t,n=[];for(t in e)c(e,t)&&n.push({unit:t,priority:le[t]});return n.sort(function(e,t){return e.priority-t.priority}),n}(e=ue(e)),s=n.length,i=0;i<s;i++)this[n[i].unit](e[n[i].unit]);else if(a(this[e=o(e)]))return this[e](t);return this},u.startOf=function(e){var t,n;if(void 0!==(e=o(e))&&"millisecond"!==e&&this.isValid()){switch(n=this._isUTC?sn:nn,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=tn(t,6e4);break;case"second":t=this._d.valueOf(),t-=tn(t,1e3);break}this._d.setTime(t),_.updateOffset(this,!0)}return this},u.subtract=Qe,u.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},u.toObject=function(){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()}},u.toDate=function(){return new Date(this.valueOf())},u.toISOString=function(e){var t;return this.isValid()?(t=(e=!0!==e)?this.clone().utc():this).year()<0||9999<t.year()?re(t,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):a(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",re(t,"Z")):re(t,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ"):null},u.inspect=function(){var e,t,n;return this.isValid()?(t="moment",e="",this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z"),t="["+t+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",this.format(t+n+"-MM-DD[T]HH:mm:ss.SSS"+(e+'[")]'))):"moment.invalid(/* "+this._i+" */)"},"undefined"!=typeof Symbol&&null!=Symbol.for&&(u[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),u.toJSON=function(){return this.isValid()?this.toISOString():null},u.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},u.unix=function(){return Math.floor(this.valueOf()/1e3)},u.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},u.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},u.eraName=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;n<s;++n){if(e=this.clone().startOf("day").valueOf(),t[n].since<=e&&e<=t[n].until)return t[n].name;if(t[n].until<=e&&e<=t[n].since)return t[n].name}return""},u.eraNarrow=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;n<s;++n){if(e=this.clone().startOf("day").valueOf(),t[n].since<=e&&e<=t[n].until)return t[n].narrow;if(t[n].until<=e&&e<=t[n].since)return t[n].narrow}return""},u.eraAbbr=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;n<s;++n){if(e=this.clone().startOf("day").valueOf(),t[n].since<=e&&e<=t[n].until)return t[n].abbr;if(t[n].until<=e&&e<=t[n].since)return t[n].abbr}return""},u.eraYear=function(){for(var e,t,n=this.localeData().eras(),s=0,i=n.length;s<i;++s)if(e=n[s].since<=n[s].until?1:-1,t=this.clone().startOf("day").valueOf(),n[s].since<=t&&t<=n[s].until||n[s].until<=t&&t<=n[s].since)return(this.year()-_(n[s].since).year())*e+n[s].offset;return this.year()},u.year=Pe,u.isLeapYear=function(){return be(this.year())},u.weekYear=function(e){return un.call(this,e,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)},u.isoWeekYear=function(e){return un.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},u.quarter=u.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},u.month=Ie,u.daysInMonth=function(){return He(this.year(),this.month())},u.week=u.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},u.isoWeek=u.isoWeeks=function(e){var t=Be(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},u.weeksInYear=function(){var e=this.localeData()._week;return N(this.year(),e.dow,e.doy)},u.weeksInWeekYear=function(){var e=this.localeData()._week;return N(this.weekYear(),e.dow,e.doy)},u.isoWeeksInYear=function(){return N(this.year(),1,4)},u.isoWeeksInISOWeekYear=function(){return N(this.isoWeekYear(),1,4)},u.date=ge,u.day=u.days=function(e){var t,n,s;return this.isValid()?(t=Ce(this,"Day"),null!=e?(n=e,s=this.localeData(),e="string"!=typeof n?n:isNaN(n)?"number"==typeof(n=s.weekdaysParse(n))?n:null:parseInt(n,10),this.add(e-t,"d")):t):null!=e?this:NaN},u.weekday=function(e){var t;return this.isValid()?(t=(this.day()+7-this.localeData()._week.dow)%7,null==e?t:this.add(e-t,"d")):null!=e?this:NaN},u.isoWeekday=function(e){var t,n;return this.isValid()?null!=e?(t=e,n=this.localeData(),n="string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t,this.day(this.day()%7?n:n-7)):this.day()||7:null!=e?this:NaN},u.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},u.hour=u.hours=i,u.minute=u.minutes=ce,u.second=u.seconds=we,u.millisecond=u.milliseconds=fe,u.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?i:Et(this);if("string"==typeof e){if(null===(e=Vt(ve,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Et(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?$t(this,C(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,_.updateOffset(this,!0),this._changeInProgress=null)),this},u.utc=function(e){return this.utcOffset(0,e)},u.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e)&&this.subtract(Et(this),"m"),this},u.parseZone=function(){var e;return null!=this._tzm?this.utcOffset(this._tzm,!1,!0):"string"==typeof this._i&&(null!=(e=Vt(Me,this._i))?this.utcOffset(e):this.utcOffset(0,!0)),this},u.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?R(e).utcOffset():0,(this.utcOffset()-e)%60==0)},u.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},u.isLocal=function(){return!!this.isValid()&&!this._isUTC},u.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},u.isUtc=At,u.isUTC=At,u.zoneAbbr=function(){return this._isUTC?"UTC":""},u.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},u.dates=e("dates accessor is deprecated. Use date instead.",ge),u.months=e("months accessor is deprecated. Use month instead",Ie),u.years=e("years accessor is deprecated. Use year instead",Pe),u.zone=e("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,t),this):-this.utcOffset()}),u.isDSTShifted=e("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){var e,t;return g(this._isDSTShifted)&&(q(e={},this),(e=Nt(e))._a?(t=(e._isUTC?l:R)(e._a),this._isDSTShifted=this.isValid()&&0<function(e,t,n){for(var s=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),r=0,a=0;a<s;a++)(n&&e[a]!==t[a]||!n&&M(e[a])!==M(t[a]))&&r++;return r+i}(e._a,t.toArray())):this._isDSTShifted=!1),this._isDSTShifted});d=K.prototype;function cn(e,t,n,s){var i=P(),s=l().set(s,t);return i[n](s,e)}function fn(e,t,n){if(w(e)&&(t=e,e=void 0),e=e||"",null!=t)return cn(e,t,n,"month");for(var s=[],i=0;i<12;i++)s[i]=cn(e,i,n,"month");return s}function mn(e,t,n,s){t=("boolean"==typeof e?w(t)&&(n=t,t=void 0):(t=e,e=!1,w(n=t)&&(n=t,t=void 0)),t||"");var i,r=P(),a=e?r._week.dow:0,o=[];if(null!=n)return cn(t,(n+a)%7,s,"day");for(i=0;i<7;i++)o[i]=cn(t,(i+a)%7,s,"day");return o}d.calendar=function(e,t,n){return a(e=this._calendar[e]||this._calendar.sameElse)?e.call(t,n):e},d.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(te).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])},d.invalidDate=function(){return this._invalidDate},d.ordinal=function(e){return this._ordinal.replace("%d",e)},d.preparse=hn,d.postformat=hn,d.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return a(i)?i(e,t,n,s):i.replace(/%d/i,e)},d.pastFuture=function(e,t){return a(e=this._relativeTime[0<e?"future":"past"])?e(t):e.replace(/%s/i,t)},d.set=function(e){var t,n;for(n in e)c(e,n)&&(a(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},d.eras=function(e,t){for(var n,s=this._eras||P("en")._eras,i=0,r=s.length;i<r;++i){switch(typeof s[i].since){case"string":n=_(s[i].since).startOf("day"),s[i].since=n.valueOf();break}switch(typeof s[i].until){case"undefined":s[i].until=1/0;break;case"string":n=_(s[i].until).startOf("day").valueOf(),s[i].until=n.valueOf();break}}return s},d.erasParse=function(e,t,n){var s,i,r,a,o,u=this.eras();for(e=e.toUpperCase(),s=0,i=u.length;s<i;++s)if(r=u[s].name.toUpperCase(),a=u[s].abbr.toUpperCase(),o=u[s].narrow.toUpperCase(),n)switch(t){case"N":case"NN":case"NNN":if(a===e)return u[s];break;case"NNNN":if(r===e)return u[s];break;case"NNNNN":if(o===e)return u[s];break}else if(0<=[r,a,o].indexOf(e))return u[s]},d.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?_(e.since).year():_(e.since).year()+(t-e.offset)*n},d.erasAbbrRegex=function(e){return c(this,"_erasAbbrRegex")||an.call(this),e?this._erasAbbrRegex:this._erasRegex},d.erasNameRegex=function(e){return c(this,"_erasNameRegex")||an.call(this),e?this._erasNameRegex:this._erasRegex},d.erasNarrowRegex=function(e){return c(this,"_erasNarrowRegex")||an.call(this),e?this._erasNarrowRegex:this._erasRegex},d.months=function(e,t){return e?(y(this._months)?this._months:this._months[(this._months.isFormat||Ve).test(t)?"format":"standalone"])[e.month()]:y(this._months)?this._months:this._months.standalone},d.monthsShort=function(e,t){return e?(y(this._monthsShort)?this._monthsShort:this._monthsShort[Ve.test(t)?"format":"standalone"])[e.month()]:y(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},d.monthsParse=function(e,t,n){var s,i;if(this._monthsParseExact)return function(e,t,n){var s,i,r,e=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=l([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=x.call(this._shortMonthsParse,e))?i:null:-1!==(i=x.call(this._longMonthsParse,e))?i:null:"MMM"===t?-1!==(i=x.call(this._shortMonthsParse,e))||-1!==(i=x.call(this._longMonthsParse,e))?i:null:-1!==(i=x.call(this._longMonthsParse,e))||-1!==(i=x.call(this._shortMonthsParse,e))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=l([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(i="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},d.monthsRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||je.call(this),e?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=Ee),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},d.monthsShortRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||je.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=Ge),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},d.week=function(e){return Be(e,this._week.dow,this._week.doy).week},d.firstDayOfYear=function(){return this._week.doy},d.firstDayOfWeek=function(){return this._week.dow},d.weekdays=function(e,t){return t=y(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"],!0===e?Je(t,this._week.dow):e?t[e.day()]:t},d.weekdaysMin=function(e){return!0===e?Je(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},d.weekdaysShort=function(e){return!0===e?Je(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},d.weekdaysParse=function(e,t,n){var s,i;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,e=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=l([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=x.call(this._weekdaysParse,e))?i:null:"ddd"===t?-1!==(i=x.call(this._shortWeekdaysParse,e))?i:null:-1!==(i=x.call(this._minWeekdaysParse,e))?i:null:"dddd"===t?-1!==(i=x.call(this._weekdaysParse,e))||-1!==(i=x.call(this._shortWeekdaysParse,e))||-1!==(i=x.call(this._minWeekdaysParse,e))?i:null:"ddd"===t?-1!==(i=x.call(this._shortWeekdaysParse,e))||-1!==(i=x.call(this._weekdaysParse,e))||-1!==(i=x.call(this._minWeekdaysParse,e))?i:null:-1!==(i=x.call(this._minWeekdaysParse,e))||-1!==(i=x.call(this._weekdaysParse,e))||-1!==(i=x.call(this._shortWeekdaysParse,e))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=l([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(i="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},d.weekdaysRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||st.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=et),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},d.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||st.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=tt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},d.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||st.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=nt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},d.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},d.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},ft("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===M(e%100/10)?"th":1==t?"st":2==t?"nd":3==t?"rd":"th")}}),_.lang=e("moment.lang is deprecated. Use moment.locale instead.",ft),_.langData=e("moment.langData is deprecated. Use moment.localeData instead.",P);var _n=Math.abs;function yn(e,t,n,s){t=C(t,n);return e._milliseconds+=s*t._milliseconds,e._days+=s*t._days,e._months+=s*t._months,e._bubble()}function gn(e){return e<0?Math.floor(e):Math.ceil(e)}function wn(e){return 4800*e/146097}function pn(e){return 146097*e/4800}function kn(e){return function(){return this.as(e)}}de=kn("ms"),t=kn("s"),ye=kn("m"),he=kn("h"),Fe=kn("d"),_e=kn("w"),me=kn("M"),Qe=kn("Q"),i=kn("y"),ce=de;function Mn(e){return function(){return this.isValid()?this._data[e]:NaN}}var we=Mn("milliseconds"),fe=Mn("seconds"),ge=Mn("minutes"),Pe=Mn("hours"),d=Mn("days"),vn=Mn("months"),Dn=Mn("years");var Yn=Math.round,Sn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function On(e,t,n,s){var i=C(e).abs(),r=Yn(i.as("s")),a=Yn(i.as("m")),o=Yn(i.as("h")),u=Yn(i.as("d")),l=Yn(i.as("M")),d=Yn(i.as("w")),i=Yn(i.as("y")),r=(r<=n.ss?["s",r]:r<n.s&&["ss",r])||(a<=1?["m"]:a<n.m&&["mm",a])||(o<=1?["h"]:o<n.h&&["hh",o])||(u<=1?["d"]:u<n.d&&["dd",u]);return(r=(r=null!=n.w?r||(d<=1?["w"]:d<n.w&&["ww",d]):r)||(l<=1?["M"]:l<n.M&&["MM",l])||(i<=1?["y"]:["yy",i]))[2]=t,r[3]=0<+e,r[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,r)}var bn=Math.abs;function Tn(e){return(0<e)-(e<0)||+e}function xn(){var e,t,n,s,i,r,a,o,u,l,d;return this.isValid()?(e=bn(this._milliseconds)/1e3,t=bn(this._days),n=bn(this._months),(o=this.asSeconds())?(s=m(e/60),i=m(s/60),e%=60,s%=60,r=m(n/12),n%=12,a=e?e.toFixed(3).replace(/\.?0+$/,""):"",u=Tn(this._months)!==Tn(o)?"-":"",l=Tn(this._days)!==Tn(o)?"-":"",d=Tn(this._milliseconds)!==Tn(o)?"-":"",(o<0?"-":"")+"P"+(r?u+r+"Y":"")+(n?u+n+"M":"")+(t?l+t+"D":"")+(i||s||e?"T":"")+(i?d+i+"H":"")+(s?d+s+"M":"")+(e?d+a+"S":"")):"P0D"):this.localeData().invalidDate()}var U=Ct.prototype;return U.isValid=function(){return this._isValid},U.abs=function(){var e=this._data;return this._milliseconds=_n(this._milliseconds),this._days=_n(this._days),this._months=_n(this._months),e.milliseconds=_n(e.milliseconds),e.seconds=_n(e.seconds),e.minutes=_n(e.minutes),e.hours=_n(e.hours),e.months=_n(e.months),e.years=_n(e.years),this},U.add=function(e,t){return yn(this,e,t,1)},U.subtract=function(e,t){return yn(this,e,t,-1)},U.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=o(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,n=this._months+wn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(pn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},U.asMilliseconds=de,U.asSeconds=t,U.asMinutes=ye,U.asHours=he,U.asDays=Fe,U.asWeeks=_e,U.asMonths=me,U.asQuarters=Qe,U.asYears=i,U.valueOf=ce,U._bubble=function(){var e=this._milliseconds,t=this._days,n=this._months,s=this._data;return 0<=e&&0<=t&&0<=n||e<=0&&t<=0&&n<=0||(e+=864e5*gn(pn(n)+t),n=t=0),s.milliseconds=e%1e3,e=m(e/1e3),s.seconds=e%60,e=m(e/60),s.minutes=e%60,e=m(e/60),s.hours=e%24,t+=m(e/24),n+=e=m(wn(t)),t-=gn(pn(e)),e=m(n/12),n%=12,s.days=t,s.months=n,s.years=e,this},U.clone=function(){return C(this)},U.get=function(e){return e=o(e),this.isValid()?this[e+"s"]():NaN},U.milliseconds=we,U.seconds=fe,U.minutes=ge,U.hours=Pe,U.days=d,U.weeks=function(){return m(this.days()/7)},U.months=vn,U.years=Dn,U.humanize=function(e,t){var n,s;return this.isValid()?(n=!1,s=Sn,"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(n=e),"object"==typeof t&&(s=Object.assign({},Sn,t),null!=t.s)&&null==t.ss&&(s.ss=t.s-1),e=this.localeData(),t=On(this,!n,s,e),n&&(t=e.pastFuture(+this,t)),e.postformat(t)):this.localeData().invalidDate()},U.toISOString=xn,U.toString=xn,U.toJSON=xn,U.locale=Xt,U.localeData=Kt,U.toIsoString=e("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",xn),U.lang=Ke,s("X",0,0,"unix"),s("x",0,0,"valueOf"),h("x",ke),h("X",/[+-]?\d+(\.\d{1,3})?/),v("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),v("x",function(e,t,n){n._d=new Date(M(e))}),_.version="2.30.1",H=R,_.fn=u,_.min=function(){return Pt("isBefore",[].slice.call(arguments,0))},_.max=function(){return Pt("isAfter",[].slice.call(arguments,0))},_.now=function(){return Date.now?Date.now():+new Date},_.utc=l,_.unix=function(e){return R(1e3*e)},_.months=function(e,t){return fn(e,t,"months")},_.isDate=V,_.locale=ft,_.invalid=I,_.duration=C,_.isMoment=k,_.weekdays=function(e,t,n){return mn(e,t,n,"weekdays")},_.parseZone=function(){return R.apply(null,arguments).parseZone()},_.localeData=P,_.isDuration=Ut,_.monthsShort=function(e,t){return fn(e,t,"monthsShort")},_.weekdaysMin=function(e,t,n){return mn(e,t,n,"weekdaysMin")},_.defineLocale=mt,_.updateLocale=function(e,t){var n,s;return null!=t?(s=ut,null!=W[e]&&null!=W[e].parentLocale?W[e].set(X(W[e]._config,t)):(t=X(s=null!=(n=ct(e))?n._config:s,t),null==n&&(t.abbr=e),(s=new K(t)).parentLocale=W[e],W[e]=s),ft(e)):null!=W[e]&&(null!=W[e].parentLocale?(W[e]=W[e].parentLocale,e===ft()&&ft(e)):null!=W[e]&&delete W[e]),W[e]},_.locales=function(){return ee(W)},_.weekdaysShort=function(e,t,n){return mn(e,t,n,"weekdaysShort")},_.normalizeUnits=o,_.relativeTimeRounding=function(e){return void 0===e?Yn:"function"==typeof e&&(Yn=e,!0)},_.relativeTimeThreshold=function(e,t){return void 0!==Sn[e]&&(void 0===t?Sn[e]:(Sn[e]=t,"s"===e&&(Sn.ss=t-1),!0))},_.calendarFormat=function(e,t){return(e=e.diff(t,"days",!0))<-6?"sameElse":e<-1?"lastWeek":e<0?"lastDay":e<1?"sameDay":e<2?"nextDay":e<7?"nextWeek":"sameElse"},_.prototype=u,_.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},_});
12472//# sourceMappingURL=moment.min.js.map
12472
12473�!function(c,M){"use strict";"object"==typeof module&&module.exports?module.exports=M(require("moment")):"function"==typeof define&&define.amd?define(["moment"],M):M(c.moment)}(this,function(i){"use strict";void 0===i.version&&i.default&&(i=i.default);var M,b={},n={},p={},z={},e={};i&&"string"==typeof i.version||S("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");var c=i.version.split("."),a=+c[0],A=+c[1];function r(c){return 96<c?c-87:64<c?c-29:c-48}function o(c){var M=0,a=c.split("."),A=a[0],o=a[1]||"",i=1,b=0,n=1;for(45===c.charCodeAt(0)&&(n=-(M=1));M<A.length;M++)b=60*b+r(A.charCodeAt(M));for(M=0;M<o.length;
vendor: 4,573 bytes, line 12473
12473M++)i/=60,b+=r(o.charCodeAt(M))*i;return b*n}function q(c){for(var M=0;M<c.length;M++)c[M]=o(c[M])}function O(c,M){var a,A=[];for(a=0;a<M.length;a++)A[a]=c[M[a]];return A}function d(c){var M=c.split("|"),a=M[2].split(" "),A=M[3].split(""),o=M[4].split(" ");return q(a),q(A),q(o),function(c,M){for(var a=0;a<M;a++)c[a]=Math.round((c[a-1]||0)+6e4*c[a]);c[M-1]=1/0}(o,A.length),{name:M[0],abbrs:O(M[1].split(" "),A),offsets:O(a,A),untils:o,population:0|M[5]}}function f(c){c&&this._set(d(c))}function t(c,M){this.name=c,this.zones=M}function N(c){var M=c.toTimeString(),a=M.match(/\([a-z ]+\)/i);"GMT"===(a=a&&a[0]?(a=a[0].match(/[A-Z]/g))?a.join(""):void 0:(a=M.match(/[A-Z]{3,5}/g))?a[0]:void 0)&&(a=void 0),this.at=+c,this.abbr=a,this.offset=c.getTimezoneOffset()}function u(c){this.zone=c,this.offsetScore=0,this.abbrScore=0}function L(c,M){for(var a,A;A=6e4*((M.at-c.at)/12e4|0);)(a=new N(new Date(c.at+A))).offset===c.offset?c=a:M=a;return c}function l(c,M){return c.offsetScore!==M.offsetScore?c.offsetScore-M.offsetScore:c.abbrScore!==M.abbrScore?c.abbrScore-M.abbrScore:c.zone.population!==M.zone.population?M.zone.population-c.zone.population:M.zone.name.localeCompare(c.zone.name)}function W(c,M){var a,A;for(q(M),a=0;a<M.length;a++)A=M[a],e[A]=e[A]||{},e[A][c]=!0}function B(){try{var c=Intl.DateTimeFormat().resolvedOptions().timeZone;if(c&&3<c.length){var M=z[s(c)];if(M)return M;S("Moment Timezone found "+c+" from the Intl api, but did not have that data loaded.")}}catch(c){}var a,A,o,i=function(){var c,M,a,A=(new Date).getFullYear()-2,o=new N(new Date(A,0,1)),i=[o];for(a=1;a<48;a++)(M=new N(new Date(A,a,1))).offset!==o.offset&&(c=L(o,M),i.push(c),i.push(new N(new Date(c.at+6e4)))),o=M;for(a=0;a<4;a++)i.push(new N(new Date(A+a,0,1))),i.push(new N(new Date(A+a,6,1)));return i}(),b=i.length,n=function(c){var M,a,A,o=c.length,i={},b=[];for(M=0;M<o;M++)for(a in A=e[c[M].offset]||{})A.hasOwnProperty(a)&&(i[a]=!0);for(M in i)i.hasOwnProperty(M)&&b.push(z[M]);return b}(i),p=[];for(A=0;A<n.length;A++){for(a=new u(m(n[A]),b),o=0;o<b;o++)a.scoreOffsetAt(i[o]);p.push(a)}return p.sort(l),0<p.length?p[0].zone.name:void 0}function s(c){return(c||"").toLowerCase().replace(/\//g,"_")}function X(c){var M,a,A,o;for("string"==typeof c&&(c=[c]),M=0;M<c.length;M++)o=s(a=(A=c[M].split("|"))[0]),b[o]=c[M],z[o]=a,W(o,A[2].split(" "))}function m(c,M){c=s(c);var a,A=b[c];return A instanceof f?A:"string"==typeof A?(A=new f(A),b[c]=A):n[c]&&M!==m&&(a=m(n[c],m))?((A=b[c]=new f)._set(a),A.name=z[c],A):null}function T(c){var M,a,A,o;for("string"==typeof c&&(c=[c]),M=0;M<c.length;M++)A=s((a=c[M].split("|"))[0]),o=s(a[1]),n[A]=o,z[A]=a[0],n[o]=A,z[o]=a[1]}function E(c){X(c.zones),T(c.links),function(c){var M,a,A,o;if(c&&c.length)for(M=0;M<c.length;M++)a=(o=c[M].split("|"))[0].toUpperCase(),A=o[1].split(" "),p[a]=new t(a,A)}(c.countries),C.dataVersion=c.version}function R(c){var M="X"===c._f||"x"===c._f;return!(!c._a||void 0!==c._tzm||M)}function S(c){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(c)}function C(c){var M=Array.prototype.slice.call(arguments,0,-1),a=arguments[arguments.length-1],A=m(a),o=i.utc.apply(null,M);return A&&!i.isMoment(c)&&R(o)&&o.add(A.parse(o),"minutes"),o.tz(a),o}(a<2||2==a&&A<6)&&S("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js "+i.version+". See momentjs.com"),f.prototype={_set:function(c){this.name=c.name,this.abbrs=c.abbrs,this.untils=c.untils,this.offsets=c.offsets,this.population=c.population},_index:function(c){var M,a=+c,A=this.untils;for(M=0;M<A.length;M++)if(a<A[M])return M},countries:function(){var M=this.name;return Object.keys(p).filter(function(c){return-1!==p[c].zones.indexOf(M)})},parse:function(c){var M,a,A,o,i=+c,b=this.offsets,n=this.untils,p=n.length-1;for(o=0;o<p;o++)if(M=b[o],a=b[o+1],A=b[o?o-1:o],M<a&&C.moveAmbiguousForward?M=a:A<M&&C.moveInvalidForward&&(M=A),i<n[o]-6e4*M)return b[o];return b[p]},abbr:function(c){return this.abbrs[this._index(c)]},offset:function(c){return S("zone.offset has been deprecated in favor of zone.utcOffset"),this.offsets[this._index(c)]},utcOffset:function(c){return this.offsets[this._index(c)]}},u.prototype.scoreOffsetAt=function(c){this.offsetScore+=Math.abs(this.zone.utcOffset(c.at)-c.offset),this.zone.abbr(c.at).replace(/[^A-Z]/g,"")!==c.abbr&&this.abbrScore++},C.version="0.5.40",C.dataVersion="",C._zones=b,C._links=n,C._names=z,C._countries=p,C.add=X,C.link=T,C.load=E,C.zone=m,C.zoneExists=function c(M){return c.didShowError||(c.didShowError=!0,S("moment.tz.zoneExists('"+M+"') has been deprecated 
12473in favor of !moment.tz.zone('"+M+"')")),!!m(M)},C.guess=function(c){return M&&!c||(M=B()),M},C.names=function(){var c,M=[];for(c in z)z.hasOwnProperty(c)&&(b[c]||b[n[c]])&&z[c]&&M.push(z[c]);return M.sort()},C.Zone=f,C.unpack=d,C.unpackBase60=o,C.needsOffset=R,C.moveInvalidForward=!0,C.moveAmbiguousForward=!1,C.countries=function(){return Object.keys(p)},C.zonesForCountry=function(c,M){if(!(c=function(c){return c=c.toUpperCase(),p[c]||null}(c)))return null;var a=c.zones.sort();return M?a.map(function(c){return{name:c,offset:m(c).utcOffset(new Date)}}):a};var h,g=i.fn;function P(c){return function(){return this._z?this._z.abbr(this):c.call(this)}}function D(c){return function(){return this._z=null,c.apply(this,arguments)}}i.tz=C,i.defaultZone=null,i.updateOffset=function(c,M){var a,A=i.defaultZone;if(void 0===c._z&&(A&&R(c)&&!c._isUTC&&(c._d=i.utc(c._a)._d,c.utc().add(A.parse(c),"minutes")),c._z=A),c._z)if(a=c._z.utcOffset(c),Math.abs(a)<16&&(a/=60),void 0!==c.utcOffset){var o=c._z;c.utcOffset(-a,M),c._z=o}else c.zone(a,M)},g.tz=function(c,M){if(c){if("string"!=typeof c)throw new Error("Time zone name must be a string, got "+c+" ["+typeof c+"]");return this._z=m(c),this._z?i.updateOffset(this,M):S("Moment Timezone has no data for "+c+". See http://momentjs.com/timezone/docs/#/data-loading/."),this}if(this._z)return this._z.name},g.zoneName=P(g.zoneName),g.zoneAbbr=P(g.zoneAbbr),g.utc=D(g.utc),g.local=D(g.local),g.utcOffset=(h=g.utcOffset,function(){return 0<arguments.length&&(this._z=null),h.apply(this,arguments)}),i.tz.setDefault=function(c){return(a<2||2==a&&A<9)&&S("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js "+i.version+"."),i.defaultZone=c?m(c):null,i};var _=i.momentProperties;return"[object Array]"===Object.prototype.toString.call(_)?(_.push("_z"),_.push("_a")):_&&(_._z=null),E({version:"2022g",zones:["Africa/Abidjan|GMT|0|0||48e5","Africa/Nairobi|EAT|-30|0||47e5","Africa/Algiers|WET WEST CET CEST|0 -10 -10 -20|01012320102|3bX0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5","Africa/Lagos|WAT|-10|0||17e6","Africa/Bissau|-01 GMT|10 0|01|cap0|39e4","Africa/Maputo|CAT|-20|0||26e5","Africa/Cairo|EET EEST|-20 -30|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|LX0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6","Africa/Casablanca|+00 +01|0 -10|01010101010101010101010101010101010101010101010101010101010101010101010|aS00 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e
1247300 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600|32e5","Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|0101010102323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|aS00 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|85e3","Africa/El_Aaiun|-01 +00 +01|10 0 -10|01212121212121212121212121212121212121212121212121212121212121212121|fi10 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e
1247300 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600|20e4","Africa/Johannesburg|SAST|-20|0||84e5","Africa/Juba|CAT CAST EAT|-20 -30 -30|01010101010101010101010101010101020|LW0 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 PeX0|","Africa/Khartoum|CAT CAST EAT|-20 -30 -30|01010101010101010101010101010101020|LW0 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5","Africa/Monrovia|MMT GMT|I.u 0|01|4SoI.u|11e5","Africa/Ndjamena|WAT WAST|-10 -20|010|nNb0 Wn0|13e5","Africa/Sao_Tome|GMT WAT|0 -10|010|1UQN0 2q00|","Africa/Tripoli|EET CET CEST|-20 -10 -20|0121212121212121210120120|tda0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5","Africa/Tunis|CET CEST|-10 -20|0101010101010101010|hOn0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5","Africa/Windhoek|SAST CAT WAT|-20 -20 -10|01212121212121212121212121212121212121212121212121|Ndy0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4","America/Adak|BST BDT AHST HST HDT|b0 a0 a0 a0 90|0101010101010101010101010101234343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|Kd0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326","America/Anchorage|AHST AHDT YST AKST AKDT|a0 90 90 90 80|0101010101010101010101010101234343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|Kc0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4","America/Puerto_Rico|AST|40|0||24e5","America/Araguaina|-03 -02|30 20|01010101010101010101010101010|CxD0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4","America/Argentina/Buenos_Aires|-03 -02|30 20|01010101010101010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|","America/Argentina/Catamarca|-03 -02 -04|30 20 40|01010101210102010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Cordoba|-03 -02 -04|30 20 40|01010101210101010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|","America/Argentina/Jujuy|-03 -02 -04|30 20 40|010101202101010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|","America/Argentina/La_Rioja|-03 -02 -04|30 20 40|010101012010102010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Mendoza|-03 -02 -04|30 20 40|01010120202102010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|","America/Argentina/Rio_Gallegos|-03 -02 -04|30 20 40|01010101010102010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Salta|-03 -02 -04|30 20 40|010101012101010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|","America/Argentina/San_Juan|-03 -02 -04|30 20 40|010101012010102010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|","America/Argentina/San_Luis|-03 -02 -04|30 20 40|010101202020102020|9Rf0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|","America/Argentina/Tucuman|-03 -02 -04|30 20 40|0101010121010201010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|","America/Argentina/Ushuaia|-03 -02 -04|30 20 40|01010101010102010|9Rf0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|","America/Asuncion|-04 -03|40 30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|6FE0 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0|28e5","America/Panama|EST|50|0||15e5","America/Bahia_Banderas|PST MST MDT CDT CST|80 70 60 50 60|01212121212121212121212121212134343434343434343434343434|80 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|84e3","America/Bahia|
12473-03 -02|30 20|010101010101010101010101010101010101010|CxD0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5","America/Barbados|AST ADT|40 30|010101010|i7G0 IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4","America/Belem|-03 -02|30 20|0101010|CxD0 Rb0 1tB0 IL0 1Fd0 FX0|20e5","America/Belize|CST CDT|60 50|01010|9xG0 qn0 lxB0 mn0|57e3","America/Boa_Vista|-04 -03|40 30|01010101010|CxE0 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2","America/Bogota|-05 -04|50 40|010|Snh0 1PX0|90e5","America/Boise|MST MDT|70 60|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K90 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4","America/Cambridge_Bay|MST MDT CST CDT EST|70 60 60 50 50|010101010101010101010101010101010101010101010101010101012342101010101010101010101010101010101010101010101010101010101010|5E90 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2","America/Campo_Grande|-04 -03|40 30|010101010101010101010101010101010101010101010101010101010101010101010|CxE0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4","America/Cancun|CST EST EDT CDT|60 50 40 50|012121230303030303030303030303030303030301|t9G0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4","America/Caracas|-04 -0430|40 4u|010|1wmv0 kqo0|29e5","America/Cayenne|-03|30|0||58e3","America/Chicago|CST CDT|60 50|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K80 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5","America/Chihuahua|CST CDT MDT MST|60 50 60 70|0101023232323232323232323232323232323232323232323232320|13Vk0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|81e4","America/Ciudad_Juarez|CST CDT MDT MST|60 50 60 70|010102323232323232323232323232323232323232323232323232032323232323232323|13Vk0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 cm0 EP0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Costa_Rica|CST CDT|60 50|010101010|mgS0 Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5","America/Phoenix|MST|70|0||42e5","America/Cuiaba|-04 -03|40 30|0101010101010101010101010101010101010101010101010101010101010101010|CxE0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4","America/Danmarkshavn|-03 -02 GMT|30 20 0|0101010101010101010101010101010102|oXh0 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8","America/Dawson_Creek|PST PDT MST|80 70 70|0101012|Ka0 1cL0 1cN0 1fz0 1cN0 ML0|12e3","America/Dawson|YST PST PDT MST|90 80 70 70|012121212121212121212121212121212121212121212121212121212121212121212121212121212123|9ix0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|13e2","America/Denver|MST MDT|70 60|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K90 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5","America/Detroit|EST EDT|50 40|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|85H0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5","America/Edmonton|MST MDT|70 60|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|5E90 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5","America/Eirunepe|-05 -04|50 40|01010101010|CxF0 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3","America/El_Salvador|CST CDT|60 50|01010|Gcu0 WL0 1qN0 WL0|11e5","America/Tijuana|PST PDT|80 70|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|fmy0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5","America/Fort_Nelson|PST PDT MST|80 70 70|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010102|Ka0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2","America/Fort_Wayne|EST EDT|50 40|01010101010101010101010101010101010101010101010101010|K70 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Fortaleza|-03 -02|30 20|01010101010101010|CxD0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5","America/Glace_Bay|AST ADT|40 30|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|5E60 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","America/Godthab|-03 -02|30 20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|oXh0 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0|17e3","America/Goose_Bay|AST ADT ADDT|40 30 20|010101010101010101010101010101010101020101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K60 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2","America/Grand_Turk|EST EDT AST|50 40 40|0101010101010101010101010101010101010101010101010101010101010101010101010210101010101010101010101010|mG70 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 7jA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2","America/Guatemala|CST CDT|60 50|010101010|9tG0 An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5","America/Guayaquil|-05 -04|50 40|010|TKR0 rz0|27e5","America/Guyana|-0345 -03 -04|3J 30 40|012|dzfJ Ey0f|80e4","America/Halifax|AST ADT|40 30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K60 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4","America/Havana|CST CDT|50 40|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K50 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5","America/Hermosillo|PST MST MDT|80 70 60|01212121|80 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4","America/Indiana/Knox|CST CDT EST|60 50 50|01010101010101010101010101010101010101010101210101010101010101010101010101010101010101010101010|K80 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Marengo|EST EDT CDT|50 40 50|010101010201010101010101010101010101010101010101010101010101010|K70 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Petersburg|CST CDT EST EDT|60 50 50 40|0101010101010101210123232323232323232323232323232323232323232323232|K80 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Tell_City|EST EDT CDT CST|50 40 50 60|01023232323232323232323232323232323232323232323232323|K70 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Vevay|EST EDT|50 40|010101010101010101010101010101010101010101010101010101010|K70 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0
12473 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Vincennes|EST EDT CDT CST|50 40 50 60|01023201010101010101010101010101010101010101010101010|K70 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Winamac|EST EDT CDT CST|50 40 50 60|01023101010101010101010101010101010101010101010101010|K70 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Inuvik|PST PDT MDT MST|80 70 60 70|01010101010101023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|5Ea0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2","America/Iqaluit|EST EDT CST CDT|50 40 60 50|01010101010101010101010101010101010101010101010101010101230101010101010101010101010101010101010101010101010101010101010|5E70 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2","America/Jamaica|EST EDT|50 40|010101010101010101010|9Kv0 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4","America/Juneau|PST PDT YDT YST AKST AKDT|80 70 80 90 90 80|0101010101010101010102010101345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|Ka0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3","America/Kentucky/Louisville|EST EDT CDT|50 40 50|010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K70 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Kentucky/Monticello|CST CDT EST EDT|60 50 50 40|010101010101010101010101010101010101010101010101010101010101012323232323232323232323232323232323232323232323232323232323232|K80 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/La_Paz|-04|40|0||19e5","America/Lima|-05 -04|50 40|010101010|CVF0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6","America/Los_Angeles|PST PDT|80 70|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|Ka0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6","America/Maceio|-03 -02|30 20|0101010101010101010|CxD0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4","America/Managua|CST EST CDT|60 50 50|010202010102020|86u0 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5","America/Manaus|-04 -03|40 30|010101010|CxE0 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5","America/Martinique|AST ADT|40 30|010|oXg0 19X0|39e4","America/Matamoros|CST CDT|60 50|0101010101010101010101010101010101010101010101010101010101010101010101010|IqU0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4","America/Mazatlan|PST MST MDT|80 70 60|01212121212121212121212121212121212121212121212121212121|80 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|44e4","America/Menominee|EST CDT CST|50 50 60|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|85H0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2","America/Merida|CST EST CDT|60 50 50|010202020202
12473020202020202020202020202020202020202020202020|t9G0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|11e5","America/Metlakatla|PST PDT AKST AKDT|80 70 90 80|0101010101010101010101010101023232302323232323232323232323232|Ka0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Mexico_City|CST CDT|60 50|0101010101010101010101010101010101010101010101010101010|13Vk0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|20e6","America/Miquelon|AST -03 -02|40 30 20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|p9g0 gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2","America/Moncton|AST ADT|40 30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K60 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3","America/Monterrey|CST CDT|60 50|010101010101010101010101010101010101010101010101010101010|IqU0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|41e5","America/Montevideo|-03 -02 -0130 -0230|30 20 1u 2u|0101023010101010101010101010101010101010101010101010|JD0 jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5","America/Toronto|EST EDT|50 40|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K70 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5","America/New_York|EST EDT|50 40|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K70 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6","America/Nome|BST BDT YST AKST AKDT|b0 a0 90 90 80|0101010101010101010101010101234343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|Kd0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2","America/Noronha|-02 -01|20 10|01010101010101010|CxC0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2","America/North_Dakota/Beulah|MST MDT CST CDT|70 60 60 50|010101010101010101010101010101010101010101010101010101010101010101010101010101010123232323232323232323232323232323232323232|K90 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/North_Dakota/Center|MST MDT CST CDT|70 60 60 50|010101010101010101010101010101010101010101010123232323232323232323232323232323232323232323232323232323232323232323232323232|K90 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/North_Dakota/New_Salem|MST MDT CST CDT|70 60 60 50|010101010101010101010101010101010101010101010101010101010101010101012323232323232323232323232323232323232323232323232323232|K90 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Ojinaga|CST CDT MDT MST|60 50 60 70|01010232323232323232323232323232323232323232323232323201010101010101010|13Vk0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 Rc0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3","America/Paramaribo|-0330 -03|3u 30|01|zSPu|24e4","America/Port-au-Prince|EST EDT|50 40|01010101010101010101010101010101010101010101010101010101010101010101010|wu50 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Rio_Branco|-05 -04|50 40|010101010|CxF0 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4","America/Porto_Velho|-04 -03|40 30|0101010|CxE0 Rb0 1tB0 IL0 1Fd0 FX0|37e4","America/Punta_Arenas|-03 -04|30 40|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|yP0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|","America/Winnipeg|CST CDT|60 50|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K80 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4","America/Rankin_Inlet|CST CDT EST|60 50 50|01010101010101010101010101010101010101010101010101010101012101010101010101010101010101010101010101010101010101010101010|5E80 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2","America/Recife|-03 -02|30 20|01010101010101010|CxD0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5","America/Regina|CST|60|0||19e4","America/Resolute|CST CDT EST|60 50 50|01010101010101010101010101010101010101010101010101010101012101010101012101010101010101010101010101010101010101010101010|5E80 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229","America/Santarem|-04 -03|40 30|01010101|CxE0 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4","America/Santiago|-03 -04|30 40|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|yP0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0|62e5","America/Santo_Domingo|-0430 EST AST|4u 50 40|0101010101212|ksu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5","America/Sao_Paulo|-03 -02|30 20|010101010101010101010101010101010101010101010101010101010101010101010|CxD0 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6","America/Scoresbysund|-02 -01 +00|20 10 0|0102121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|oXg0 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|452","America/Sitka|PST PDT YST AKST AKDT|80 70 90 90 80|0101010101010101010101010101234343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|Ka0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2","America/St_Johns|NST NDT NDDT|3u 2u 1u|010101010101010101010101010101010101020101010101010101010101010101010101010101010101010101010101010101010101010101010101010|K5u 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Swift_Current|MST CST|70 60|01|5E90|16e3","America/Tegucigalpa|CST CDT|60 50|0101010|Gcu0 WL0 1qN0 WL0 GRd0 AL0|11e5","America/Thule|AST ADT|40 30|010101010101010101010101010101010101010101010101010101010101010101010101010101010|PHG0 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656","America/Vancouver|PST PDT|80 70|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|Ka0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 
1247314p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Whitehorse|PST PDT MST|80 70 70|01010101010101010101010101010101010101010101010101010101010101010101010101010101012|p7K0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|23e3","America/Yakutat|YST YDT AKST AKDT|90 80 90 80|0101010101010101010101010101023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|Kb0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642","Antarctica/Casey|+08 +11|-80 -b0|010101010101|1ARS0 T90 40P0 KL0 blz0 3m10 1o30 14k0 1kr0 12l0 1o01|10","Antarctica/Davis|+07 +05|-70 -50|01010|1ART0 VB0 3Wn0 KN0|70","Pacific/Port_Moresby|+10|-a0|0||25e4","Antarctica/Macquarie|AEDT AEST|-b0 -a0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|qg0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 3Co0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|1","Antarctica/Mawson|+06 +05|-60 -50|01|1ARU0|60","Pacific/Auckland|NZST NZDT|-c0 -d0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|bKC0 IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00|14e5","Antarctica/Palmer|-03 -02 -04|30 20 40|010202020202
1247302020202020202020202020202020202020202020202020202020202020|9Rf0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40","Antarctica/Rothera|-00 -03|0 30|01|gOo0|130","Asia/Riyadh|+03|-30|0||57e5","Antarctica/Troll|-00 +00 +02|0 0 -20|012121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|40","Asia/Urumqi|+06|-60|0||32e5","Europe/Berlin|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|oXd0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|41e5","Asia/Almaty|+06 +07 +05|-60 -70 -50|0101010101010101010102010101010101010101010101010|rn60 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5","Asia/Amman|EET EEST +03|-20 -30 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101012|8kK0 KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00|25e5","Asia/Anadyr|+13 +14 +12 +11|-d0 -e0 -c0 -b0|010202020202
12473020202023202020202020202020202020202020202020232|rmX0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3","Asia/Aqtau|+05 +06 +04|-50 -60 -40|0101010101010101010201010120202020202020202020|sAj0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4","Asia/Aqtobe|+05 +06 +04|-50 -60 -40|01010101010101010102010101010101010101010101010|rn70 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4","Asia/Ashgabat|+05 +06 +04|-50 -60 -40|01010101010101010101020|rn70 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4","Asia/Atyrau|+05 +06 +04|-50 -60 -40|010101010101010101020101010101010102020202020|sAj0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|","Asia/Baghdad|+03 +04|-30 -40|01010101010101010101010101010101010101010101010101010|u190 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5","Asia/Qatar|+04 +03|-40 -30|01|5QI0|96e4","Asia/Baku|+04 +05 +03|-40 -50 -30|010101010101010101010201010101010101010101010101010101010101010|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5","Asia/Bangkok|+07|-70|0||15e6","Asia/Barnaul|+07 +08 +06|-70 -80 -60|01010101010101010101020101010102020202020202020202020202020202020|rn50 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|","Asia/Beirut|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|61a0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0|22e5","Asia/Bishkek|+06 +07 +05|-60 -70 -50|0101010101010101010102020202020202020202020202020|rn60 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4","Asia/Brunei|+08|-80|0||42e4","Asia/Kolkata|IST|-5u|0||15e6","Asia/Chita|+09 +10 +08|-90 -a0 -80|0101010101010101010102010101010101010101010101010101010101010120|rn30 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4","Asia/Choibalsan|+07 +08 +10 +09|-70 -80 -a0 -90|012323232323232323232323232323232323232323232313131|jsF0 cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3","Asia/Shanghai|CST CDT|-80 -90|0101010101010|DKG0 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6","Asia/Colombo|+0530 +0630 +06|-5u -6u -60|0120|14giu 11zu n3cu|22e5","Asia/Dhaka|+06 +07|-60 -70|010|1A5R0 1i00|16e6","Asia/Damascus|EET EEST +03|-20 -30 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101012|M00 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0|26e5","Asia/Dili|+09 +08|-90 -80|010|fpr0 Xld0|19e4","Asia/Dubai|+04|-40|0||39e5","Asia/Dushanbe|+06 +07 +05|-60 -70 -50|0101010101010101010102|rn60 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4","Asia/Famagusta|EET EEST +03|-20 -30 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101012010101010101010101010101010|cPa0 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|","Asia/Gaza|IST IDT EET EEST|-20 -30 -20 -30|010101010101010101010101010101023232323232323232323232323232323232323232323232323232323232323232323232|aXa0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18
12473N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 XA0 1qp0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0|18e5","Asia/Hebron|IST IDT EET EEST|-20 -30 -20 -30|01010101010101010101010101010102323232323232323232323232323232323232323232323232323232323232323232323232|aXa0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 XA0 1qp0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0|25e4","Asia/Ho_Chi_Minh|+08 +07|-80 -70|01|dfs0|90e5","Asia/Hong_Kong|HKT HKST|-80 -90|01010101010101010|H7u 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5","Asia/Hovd|+06 +07 +08|-60 -70 -80|01212121212121212121212121212121212121212121212121|jsG0 cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3","Asia/Irkutsk|+08 +09 +07|-80 -90 -70|010101010101010101010201010101010101010101010101010101010101010|rn40 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Europe/Istanbul|EET EEST +03 +04|-20 -30 -30 -40|01010101010123201010101010101010101010101010101010101010101010101010101010101012|8jz0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6","Asia/Jakarta|WIB|-70|0||31e6","Asia/Jayapura|WIT|-90|0||26e4","Asia/Jerusalem|IST IDT|-20 -30|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|aXa0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0|81e4","Asia/Kabul|+0430|-4u|0||46e5","Asia/Kamchatka|+12 +13 +11|-c0 -d0 -b0|0101010101010101010102010101010101010101010101010101010101020|rn00 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4","Asia/Karachi|+05 PKT PKST|-50 -50 -60|01212121|2Xv0 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6","Asia/Kathmandu|+0530 +0545|-5u -5J|01|CVuu|12e5","Asia/Khandyga|+09 +10 +08 +11|-90 -a0 -80 -b0|01010101010101010101020101010101010101010101010131313131313131310|rn30 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2","Asia/Krasnoyarsk|+07 +08 +06|-70 -80 -60|010101010101010101010201010101010101010101010101010101010101010|rn50 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5","Asia/Kuala_Lumpur|+0730 +08|-7u -80|01|td40|71e5","Asia/Macau|CST CDT|-80 -90|01010101010101010|H7u 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4","Asia/Magadan|+11 +12 +10|-b0 -c0 -a0|0101010101010101010102010101010101010101010101010101010101010120|rn10 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3","Asia/Makassar|WITA|-80|0||15e5","Asia/Manila|PST PDT|-80 -90|010|k0E0 1db0|24e6","Asia/Nicosia|EET EEST|-20 -30|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|cPa0 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|32e4","Asia/Novokuznetsk|+07 +08 +06|-70 -80 -60|0101010101010101010102010101010101010101010101010101010101020|rn50 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4","Asia/Novosibirsk|+07 +08 +06|-70 -80 -60|010101010101010101010201010202020202
1247302020202020202020202020202020|rn50 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5","Asia/Omsk|+06 +07 +05|-60 -70 -50|010101010101010101010201010101010101010101010101010101010101010|rn60 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5","Asia/Oral|+05 +06 +04|-50 -60 -40|010101010101010202020202020202020202020202020|rn70 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4","Asia/Pontianak|WITA WIB|-80 -70|01|HNs0|23e4","Asia/Pyongyang|KST KST|-90 -8u|010|1P4D0 6BA0|29e5","Asia/Qostanay|+05 +06 +04|-50 -60 -40|0101010101010101010201010101010101010101010101|rn70 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|","Asia/Qyzylorda|+05 +06|-50 -60|010101010101010101010101010101010101010101010|rn70 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4","Asia/Rangoon|+0630|-6u|0||48e5","Asia/Sakhalin|+11 +12 +10|-b0 -c0 -a0|010101010101010101010201010101010202020202020202020202020202020|rn10 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4","Asia/Samarkand|+05 +06|-50 -60|010101010101010101010|rn70 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4","Asia/Seoul|KST KDT|-90 -a0|01010|Gf50 11A0 1o00 11A0|23e6","Asia/Srednekolymsk|+11 +12 +10|-b0 -c0 -a0|010101010101010101010201010101010101010101010101010101010101010|rn10 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2","Asia/Taipei|CST CDT|-80 -90|0101010|akg0 1db0 1cN0 1db0 97B0 AL0|74e5","Asia/Tashkent|+06 +07 +05|-60 -70 -50|0101010101010101010102|rn60 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5","Asia/Tbilisi|+04 +05 +03|-40 -50 -30|01010101010101010101020202010101010101010101020|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5","Asia/Tehran|+0330 +0430 +04 +05|-3u -4u -40 -50|0123201010101010101010101010101010101010101010101010101010101010101010|hyHu 1pc0 120u Rc0 XA0 Wou JX0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0|14e6","Asia/Thimphu|+0530 +06|-5u -60|01|HcGu|79e3","Asia/Tokyo|JST|-90|0||38e6","Asia/Tomsk|+07 +08 +06|-70 -80 -60|01010101010101010101020101010101010101010101020202020202020202020|rn50 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5","Asia/Ulaanbaatar|+07 +08 +09|-70 -80 -90|01212121212121212121212121212121212121212121212121|jsF0 cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5","Asia/Ust-Nera|+09 +12 +11 +10|-90 -c0 -b0 -a0|0121212121212121212123212121212121212121212121212121212121212123|rn30 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2","Asia/Vladivostok|+10 +11 +09|-a0 -b0 -90|010101010101010101010201010101010101010101010101010101010101010|rn20 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Asia/Yakutsk|+09 +10 +08|-90 -a0 -80|010101010101010101010201010101010101010101010101010101010101010|rn30 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4","Asia/Yekaterinburg|+05 +06 +04|-50 -60 -40|010101010101010101010201010101010101010101010101010101010101010|rn70 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5","Asia/Yerevan|+04 +05 +03|-40 -50 -30|01010101010101010101020202020101010101010101010101010101010|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5","Atlantic/Azores|-01 +00 WET|10 0 0|0101010101010101010101010101010121010101010101010101010101010101010101010101010101010101010101010101010101010|hAN0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|25e4","Atlantic/Bermuda|AST ADT|40 30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|avi0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3","Atlantic/Canary|WET WEST|0 -10|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|oXc0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|54e4","Atlantic/Cape_Verde|-02 -01|20 10|01|elE0|50e4","Atlantic/Faroe|WET WEST|0 -10|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|rm10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|49e3","Atlantic/Madeira|WET WEST|0 -10|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hAM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|27e4","Atlantic/South_Georgia|-02|20|0||30","Atlantic/Stanley|-04 -03 -02|40 30 20|01212101010101010101010101010101010101010101010101010101|wrg0 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2","Australia/Sydney|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|4r40 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|40e5","Australia/Adelaide|ACST ACDT|-9u -au|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|4r4u LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|11e5","Australia/Brisbane|AEST AEDT|-a0 -b0|010101010|4r40 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5","Australia/Broken_Hill|ACST ACDT|-9u -au|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|4r4u LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|18e3","Australia/Hobart|AEDT AEST|-b0 -a0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|qg0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|21e4","Australia/Darwin|ACST|-9u|0||12e4","Australia/Eucla|+0845 +0945|-8J -9J|0101010101010|bHRf Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368","Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|01212121213131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 
124731cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu|347","Australia/Lindeman|AEST AEDT|-a0 -b0|0101010101010|4r40 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10","Australia/Melbourne|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|4r40 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|39e5","Australia/Perth|AWST AWDT|-80 -90|0101010101010|bHS0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5","Europe/Brussels|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|21e5","Pacific/Easter|-06 -07 -05|60 70 50|010101010101010101010101020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202|yP0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0|30e2","EET|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|","Europe/Dublin|IST GMT|-10 0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|4re0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|12e5","Etc/GMT-1|+01|-10|0||","Pacific/Guadalcanal|+11|-b0|0||11e4","Pacific/Tarawa|+12|-c0|0||29e3","Etc/GMT-13|+13|-d0|0||","Etc/GMT-14|+14|-e0|0||","Etc/GMT-2|+02|-20|0||","Indian/Maldives|+05|-50|0||35e4","Pacific/Palau|+09|-90|0||21e3","Etc/GMT+1|-01|10|0||","Pacific/Tahiti|-10|a0|0||18e4","Pacific/Niue|-11|b0|0||12e2","Etc
12473/GMT+12|-12|c0|0||","Etc/GMT+5|-05|50|0||","Etc/GMT+6|-06|60|0||","Etc/GMT+7|-07|70|0||","Etc/GMT+8|-08|80|0||","Pacific/Gambier|-09|90|0||125","Etc/UTC|UTC|0|0||","Europe/Andorra|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|B7d0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|79e3","Europe/Astrakhan|+04 +05 +03|-40 -50 -30|0101010101010101020202020202020202020202020202020202020202020|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5","Europe/Athens|EET EEST|-20 -30|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|cOK0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|35e5","Europe/London|BST GMT|-10 0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|4re0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|10e6","Europe/Belgrade|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|wdd0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|12e5","Europe/Prague|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|muN0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|13e5","Europe/Bucharest|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|mRa0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|19e5","Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|oXb0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cO0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|17e5","Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|rm10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|38e4","Europe/Chisinau|MSK MSD EEST EET|-30 -40 -30 -20|010101010101010101012323232323232323232323232323232323232323232323232323232323232323232323232323232323|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|67e4","
12473Europe/Gibraltar|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|tLB0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|30e3","Europe/Helsinki|EET EEST|-20 -30|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|rm00 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|12e5","Europe/Kaliningrad|MSK MSD EEST EET +03|-30 -40 -30 -20 -30|010101010101010102323232323232323232323232323232323232323232343|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4","Europe/Kiev|MSK MSD EEST EET|-30 -40 -30 -20|0101010101010101010123232323232323232323232323232323232323232323232323232323232323232323232323232323|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o10 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|34e5","Europe/Kirov|+04 +05 +03|-40 -50 -30|010101010101010102020202020202020202020202020202020202020202|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4","Europe/Lisbon|CET WET WEST CEST|-10 0 -10 -20|01212121212121212121212121212121203030302121212121212121212121212121212121212121212121212121212121212121212121|go00 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|27e5","Europe/Madrid|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|apy0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|62e5","Europe/Malta|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|XX0 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|42e4","Europe/Minsk|MSK MSD EEST EET +03|-30 -40 -30 -20 -30|010101010101010101023232323232323232323232323232323232323234|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5","Europe/Paris|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|fbc0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|11e6","Europe/Moscow|MSK MSD EEST EET MSK|-30 -40 -30 -20 -40|0101010101010101010102301010101010101010101010101010101010101040|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6","Europe/Riga|MSK MSD EEST EET|-30 -40 -30 -20|010101010101010102323232323232323232323232323232323232323232323232323232323232323232323232323232323|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|64e4","Europe/Rome|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|XX0 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|39e5","Europe/Samara|+04 +05 +03|-40 -50 -30|01010101010101010202010101010101010101010101010101010101020|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5","Europe/Saratov|+04 +05 +03|-40 -50 -30|010101010101010202020202
124730202020202020202020202020202020202020|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|","Europe/Simferopol|MSK MSD EET EEST MSK|-30 -40 -20 -30 -40|0101010101010101010232323101010323232323232323232323232323232323240|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eN0 1cM0 1cM0 1cM0 1cM0 dV0 WO0 1cM0 1cM0 1fy0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4","Europe/Sofia|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|muJ0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|12e5","Europe/Tallinn|MSK MSD EEST EET|-30 -40 -30 -20|0101010101010101023232323232323232323232323232323232323232323232323232323232323232323232323232323|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|41e4","Europe/Tirane|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|axz0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|42e4","Europe/Ulyanovsk|+04 +05 +03 +02|-40 -50 -30 -20|010101010101010102023202020202020202020202020202020202020202020|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5","Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|oXb0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|18e5","Europe/Vilnius|MSK MSD EEST EET CEST CET|-30 -40 -30 -20 -20 -10|01010101010101010232323232323232323454323232323232323232323232323232323232323232323232323232323|rn90 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|54e4","Europe/Volgograd|+04 +05 +03|-40 -50 -30|010101010101010202020202
1247302020202020202020202020202020202020202|rn80 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0 5gn0|10e5","Europe/Warsaw|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|17e5","Pacific/Honolulu|HST|a0|0||37e4","Indian/Chagos|+05 +06|-50 -60|01|13ij0|30e2","Indian/Mauritius|+04 +05|-40 -50|01010|v5U0 14L0 12kr0 11z0|15e4","Pacific/Kwajalein|-12 +12|c0 -c0|01|Vxo0|14e3","MET|MET MEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|","Pacific/Chatham|+1245 +1345|-cJ -dJ|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|bKC0 IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00|600","Pacific/Apia|-11 -10 +14 +13|b0 a0 -e0 -d0|010123232323232323232323|1Dbn0 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0|37e3","Pacific/Bougainville|+10 +11|-a0 -b0|01|1NwE0|18e4","Pacific/Efate|+11 +12|-b0 -c0|01010101010101010101010|9EA0 Dc0 n610 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3","Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1","Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483","Pacific/Fiji|+12 +13|-c0 -d0|01010101010101010101010101010|1ace0 LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0|88e4","Pacific/Galapagos|-05 -06|50 60|0101|CVF0 gNd0 rz0|25e3","Pacific/Guam|GST GDT ChST|-a0 -b0 -a0|010101010102|JQ0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4","Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2","Pacific/Kosrae|+12 +11|-c0 -b0|01|1aAA0|66e2","Pacific/Marquesas|-0930|9u|0||86e2","Pacific/Pago_Pago|SST|b0|0||37e2","Pacific/Nauru|+1130 +12|-bu -c0|01|maCu|10e3","Pacific/Norfolk|+1130 +1230 +11 +12|-bu -cu -b0 -c0|010232323232323232323232323|bHOu Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|25e4","Pacific/Noumea|+11 +12|-b0 -c0|0101010|jhp0 xX0 1PB0 yn0 HeP0 Ao0|98e3","Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56","Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3","Pacific/Tongatapu|+13 +14|-d0 -e0|010101010|1csd0 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3","WET|WET WEST|0 -10|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|"],links:["Africa/Abidjan|Africa/Accra","Africa/Abidjan|Africa/Bamako","Africa/Abidjan|Africa/Banjul","Africa/Abidjan|Africa/Conakry","Africa/Abidjan|Africa/Dakar","Africa/Abidjan|Africa/Freetown","Africa/Abidjan|Africa/Lome","Africa/Abidjan|Africa/Nouakchott","Africa/Abidjan|Africa/Ouagadougou","Africa/Abidjan|Africa/Timbuktu","Africa/Abidjan|Atlantic/Reykjavik","Africa/Abidjan|Atlantic/St_Helena","Africa/Abidjan|Etc/GMT","Africa/Abidjan|Etc/GMT+0","Africa/Abidjan|Etc/GMT-0","Africa/Abidjan|Etc/GMT0","Africa/Abidjan|Etc/Greenwich","Africa/Abidjan|GMT","Africa/Abidjan|GMT+0","Africa/Abidjan|GMT-0","Africa/Abidjan|GMT0","Africa/Abidjan|Greenwich","Africa/Abidjan|Iceland","Africa/Cairo|Egypt","Africa/Johannesburg|Africa/Maseru","Africa/Johannesburg|Africa/Mbabane","Africa/Lagos|Africa/Bangui","Africa/Lagos|Africa/Brazzaville","Africa/Lagos|Africa/Douala","Africa/Lagos|Africa/Kinshasa","Africa/Lagos|Africa/Libreville","Africa/Lagos|Africa/Luanda","Africa/Lagos|Africa/Malabo","Africa/Lagos|Africa/Niamey","Africa/Lagos|Africa/Porto-Novo","Africa/Maputo|Africa/Blantyre","Africa/Maputo|Africa/Bujumbura","Africa/Maputo|Africa/Gaborone","Africa/Maputo|Africa/Harare","Africa/Maputo|Africa/Kigal
12473i","Africa/Maputo|Africa/Lubumbashi","Africa/Maputo|Africa/Lusaka","Africa/Nairobi|Africa/Addis_Ababa","Africa/Nairobi|Africa/Asmara","Africa/Nairobi|Africa/Asmera","Africa/Nairobi|Africa/Dar_es_Salaam","Africa/Nairobi|Africa/Djibouti","Africa/Nairobi|Africa/Kampala","Africa/Nairobi|Africa/Mogadishu","Africa/Nairobi|Indian/Antananarivo","Africa/Nairobi|Indian/Comoro","Africa/Nairobi|Indian/Mayotte","Africa/Tripoli|Libya","America/Adak|America/Atka","America/Adak|US/Aleutian","America/Anchorage|US/Alaska","America/Argentina/Buenos_Aires|America/Buenos_Aires","America/Argentina/Catamarca|America/Argentina/ComodRivadavia","America/Argentina/Catamarca|America/Catamarca","America/Argentina/Cordoba|America/Cordoba","America/Argentina/Cordoba|America/Rosario","America/Argentina/Jujuy|America/Jujuy","America/Argentina/Mendoza|America/Mendoza","America/Cayenne|Etc/GMT+3","America/Chicago|CST6CDT","America/Chicago|US/Central","America/Denver|America/Shiprock","America/Denver|MST7MDT","America/Denver|Navajo","America/Denver|US/Mountain","America/Detroit|US/Michigan","America/Edmonton|America/Yellowknife","America/Edmonton|Canada/Mountain","America/Fort_Wayne|America/Indiana/Indianapolis","America/Fort_Wayne|America/Indianapolis","America/Fort_Wayne|US/East-Indiana","America/Godthab|America/Nuuk","America/Halifax|Canada/Atlantic","America/Havana|Cuba","America/Indiana/Knox|America/Knox_IN","America/Indiana/Knox|US/Indiana-Starke","America/Iqaluit|America/Pangnirtung","America/Jamaica|Jamaica","America/Kentucky/Louisville|America/Louisville","America/La_Paz|Etc/GMT+4","America/Los_Angeles|PST8PDT","America/Los_Angeles|US/Pacific","America/Manaus|Brazil/West","America/Mazatlan|Mexico/BajaSur","America/Mexico_City|Mexico/General","America/New_York|EST5EDT","America/New_York|US/Eastern","America/Noronha|Brazil/DeNoronha","America/Panama|America/Atikokan","America/Panama|America/Cayman","America/Panama|America/Coral_Harbour","America/Panama|EST","America/Phoenix|America/Creston","America/Phoenix|MST","America/Phoenix|US/Arizona","America/Puerto_Rico|America/Anguilla","America/Puerto_Rico|America/Antigua","America/Puerto_Rico|America/Aruba","America/Puerto_Rico|America/Blanc-Sablon","America/Puerto_Rico|America/Curacao","America/Puerto_Rico|America/Dominica","America/Puerto_Rico|America/Grenada","America/Puerto_Rico|America/Guadeloupe","America/Puerto_Rico|America/Kralendijk","America/Puerto_Rico|America/Lower_Princes","America/Puerto_Rico|America/Marigot","America/Puerto_Rico|America/Montserrat","America/Puerto_Rico|America/Port_of_Spain","America/Puerto_Rico|America/St_Barthelemy","America/Puerto_Rico|America/St_Kitts","America/Puerto_Rico|America/St_Lucia","America/Puerto_Rico|America/St_Thomas","America/Puerto_Rico|America/St_Vincent","America/Puerto_Rico|America/Tortola","America/Puerto_Rico|America/Virgin","America/Regina|Canada/Saskatchewan","America/Rio_Branco|America/Porto_Acre","America/Rio_Branco|Brazil/Acre","America/Santiago|Chile/Continental","America/Sao_Paulo|Brazil/East","America/St_Johns|Canada
12473/Newfoundland","America/Tijuana|America/Ensenada","America/Tijuana|America/Santa_Isabel","America/Tijuana|Mexico/BajaNorte","America/Toronto|America/Montreal","America/Toronto|America/Nassau","America/Toronto|America/Nipigon","America/Toronto|America/Thunder_Bay","America/Toronto|Canada/Eastern","America/Vancouver|Canada/Pacific","America/Whitehorse|Canada/Yukon","America/Winnipeg|America/Rainy_River","America/Winnipeg|Canada/Central","Asia/Ashgabat|Asia/Ashkhabad","Asia/Bangkok|Asia/Phnom_Penh","Asia/Bangkok|Asia/Vientiane","Asia/Bangkok|Etc/GMT-7","Asia/Bangkok|Indian/Christmas","Asia/Brunei|Asia/Kuching","Asia/Brunei|Etc/GMT-8","Asia/Dhaka|Asia/Dacca","Asia/Dubai|Asia/Muscat","Asia/Dubai|Etc/GMT-4","Asia/Dubai|Indian/Mahe","Asia/Dubai|Indian/Reunion","Asia/Ho_Chi_Minh|Asia/Saigon","Asia/Hong_Kong|Hongkong","Asia/Jerusalem|Asia/Tel_Aviv","Asia/Jerusalem|Israel","Asia/Kathmandu|Asia/Katmandu","Asia/Kolkata|Asia/Calcutta","Asia/Kuala_Lumpur|Asia/Singapore","Asia/Kuala_Lumpur|Singapore","Asia/Macau|Asia/Macao","Asia/Makassar|Asia/Ujung_Pandang","Asia/Nicosia|Europe/Nicosia","Asia/Qatar|Asia/Bahrain","Asia/Rangoon|Asia/Yangon","Asia/Rangoon|Indian/Cocos","Asia/Riyadh|Antarctica/Syowa","Asia/Riyadh|Asia/Aden","Asia/Riyadh|Asia/Kuwait","Asia/Riyadh|Etc/GMT-3","Asia/Seoul|ROK","Asia/Shanghai|Asia/Chongqing","Asia/Shanghai|Asia/Chungking","Asia/Shanghai|Asia/Harbin","Asia/Shanghai|PRC","Asia/Taipei|ROC","Asia/Tehran|Iran","Asia/Thimphu|Asia/Thimbu","Asia/Tokyo|Japan","Asia/Ulaanbaatar|Asia/Ulan_Bator","Asia/Urumqi|Antarctica/Vostok","Asia/Urumqi|Asia/Kashgar","Asia/Urumqi|Etc/GMT-6","Atlantic/Faroe|Atlantic/Faeroe","Atlantic/South_Georgia|Etc/GMT+2","Australia/Adelaide|Australia/South","Australia/Brisbane|Australia/Queensland","Australia/Broken_Hill|Australia/Yancowinna","Australia/Darwin|Australia/North","Australia/Hobart|Australia/Currie","Australia/Hobart|Australia/Tasmania","Australia/Lord_Howe|Australia/LHI","Australia/Melbourne|Australia/Victoria","Australia/Perth|Australia/West","Australia/Sydney|Australia/ACT","Australia/Sydney|Australia/Canberra","Australia/Sydney|Australia/NSW","Etc/UTC|Etc/UCT","Etc/UTC|Etc/Universal","Etc/UTC|Etc/Zulu","Etc/UTC|UCT","Etc/UTC|UTC","Etc/UTC|Universal","Etc/UTC|Zulu","Europe/Belgrade|Europe/Ljubljana","Europe/Belgrade|Europe/Podgorica","Europe/Belgrade|Europe/Sarajevo","Europe/Belgrade|Europe/Skopje","Europe/Belgrade|Europe/Zagreb","Europe/Berlin|Arctic/Longyearbyen","Europe/Berlin|Atlantic/Jan_Mayen","Europe/Berlin|Europe/Copenhagen","Europe/Berlin|Europe/Oslo","Europe/Berlin|Europe/Stockholm","Europe/Brussels|CET","Europe/Brussels|Europe/Amsterdam","Europe/Brussels|Europe/Luxembourg","Europe/Chisinau|Europe/Tiraspol","Europe/Dublin|Eire","Europe/Helsinki|Europe/Mariehamn","Europe/Istanbul|Asia/Istanbul","Europe/Istanbul|Turkey","Europe/Kiev|Europe/Kyiv","Europe/Kiev|Europe/Uzhgorod","Europe/Kiev|Europe/Zaporozhye","Europe/Lisbon|Portugal","Europe/London|Europe/Belfast","Europe/London|Europe/Guernsey","Europe/London|Europe/Isle_of_Man","Europe/London|Europe/Jersey","Europe/London|GB","Europe/London|GB-Eire","Europe/Moscow|W-SU","Europe/Paris|Europe/Monaco","Europe/Prague|Europe/Bratislava","Europe/Rome|Europe/San_Marino","Europe/Rome|Europe/Vatican","Europe/Warsaw|Poland","Europe/Zurich|Europe/Busingen","Europe/Zurich|Europe/Vaduz","Indian/Maldives|Etc/GMT-5","Indian/Maldives|Indian/Kerguelen","Pacific/Auckland|Antarctica/McMurdo","Pacific/Auckland|Antarctica/South_Pole","Pacific/Auckland|NZ","Pacific/Chatham|NZ-CHAT","Pacific/Easter|Chile/EasterIsland","Pacific/Enderbury|Pacific/Kanton","Pacific/Gambier|Etc/GMT+9","Pacific/Guadalcanal|Etc/GMT-11","Pacific/Guadalcanal|Pacific/Pohnpei","Pacific/Guadalcanal|Pacific/Ponape","Pacific/Guam|Pacific/Saipan","Pacific/Honolulu|HST","Pacific/Honolulu|Pacific/Johnston","Pacific/Honolulu|US/Hawaii","Pacific/Kwajalein|Kwajalein","Pacific/Niue|Etc/GMT+11","Pacific/Pago_Pago|Pacific/Midway","Pacific/Pago_Pago|Pacific/Samoa","Pacific/Pago_Pago|US/Samoa","Pacific/Palau|Etc/GMT-9","Pacific/Port_Moresby|Antarctica/DumontDUrville","Pacific/Port_Moresby|Etc/GMT-10","Pacific/Port_Moresby|Pacific/Chuuk","Pacific/Port_Moresby|Pacific/Truk","Pacific/Port_Moresby|Pacific/Yap","Pacific/Tahiti|Etc/GMT+10","Pacific/Tarawa|Etc/GMT-12","Pacific/Tarawa|Pacific/Funafuti","Pacific/Tarawa|Pacific/Majuro","Pacific/Tarawa|Pacific/Wake","Pacific/Tarawa|Pacific/Wallis"],countries:["AD|Europe/Andorra","AE|Asia/Dubai","AF|Asia/Kabul","AG|America/Puerto_Rico America/Antigua","AI|America/Puerto_Rico America/Anguilla","AL|Europe/Tirane","AM|Asia/Yerevan","AO|Africa/Lagos Africa/Luanda","AQ|Antarctica/Casey Antarctica/Davis Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Troll Asia/Urumqi Pacific/Auckland Pacific/Port_Moresby Asia/Riyadh Antarctica/McMurdo Antarctica/DumontDUrville Antarctica/Syowa Antarctica/Vostok","AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia","AS|Pacific/Pago_Pago","AT|Europe/Vienna","AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla","AW|America/Puerto_Rico America/Aruba","AX|Europe/Helsinki Europe/Mariehamn","AZ|Asia/Baku","BA|Europe/Belgrade Europe/Sarajevo","BB|America/Barbados","BD|Asia/Dhaka","BE|Europe/Brussels","BF|Africa/Abidjan Africa/Ouagadougou","BG|Europe/Sofia","BH|Asia/Qatar Asia/Bahrain","BI|Africa/Maputo Africa/Bujumbura","BJ|Africa/Lagos Africa/Porto-Novo","BL|America/Puerto_Rico America/St_Barthelemy","BM|Atlantic/Bermuda","BN|Asia/Kuching Asia/Brunei","BO|America/La_Paz","BQ|America/Puerto_Rico America/Kralendijk","BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco","BS|America/Toronto America/Nassau","BT|Asia/Thimphu","BW|Africa/Maputo Africa/Gaborone","BY|Europe/Minsk","BZ|America/Belize","CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Toronto America/Iqaluit America/Winnipeg America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver America/Panama America/Puerto_Rico America/Phoenix America/Blanc-Sablon America/Atikokan America/Creston","CC|Asia/Yangon Indian/Cocos","CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi","CF|Africa/Lagos Africa/Bangui","CG|Africa/Lagos Africa/Brazzaville","CH|Europe/Zurich","CI|Africa/Abidjan","CK|Pacific/Rarotonga","CL|America/Santiago America/Punta_Arenas Pacific/Easter","CM|Africa/Lagos Africa/Douala","CN|Asia/Shanghai Asia/Urumqi","CO|America/Bogota","CR|America/Costa_Rica","CU|America/Havana","CV|Atlantic/Cape_Verde","CW|America/Puerto_Rico America/Curacao","CX|Asia/Bangkok Indian/Christmas","CY|Asia/Nicosia Asia/Famagusta","CZ|Europe/Prague","DE|Europe/Zurich Europe/Berlin Europe/Busingen","DJ|Africa/Nairobi Africa/Djibouti","DK|Europe/Berlin Europe/Copenhagen","DM|America/Puerto_Rico America/Dominica","DO|America/Santo_Domingo","DZ|Africa/Algiers","EC|America/Guayaquil Pacific/Galapagos","EE|Europe/Tallinn","EG|Africa/Cairo","EH|Africa/El_Aaiun","ER|Africa/Nairobi Africa/Asmara","ES|Europe/Madrid Africa/Ceuta Atlantic/Canary","ET|Africa/Nairobi Africa/Addis_Ababa","FI|Europe/Helsinki","FJ|Pacific/Fiji","FK|Atlantic/Stanley","FM|Pacific/Kosrae Pacific/Port_Moresby Pacific/Guadalcanal Pacific/Chuuk Pacific/Pohnpei","FO|Atlantic/Faroe","FR|Europe/Paris","GA|Africa/Lagos Africa/Libreville","GB|Europe/London","GD|America/Puerto_Rico America/Grenada","GE|Asia/Tbilisi","GF|America/Cayenne","GG|Europe/London 
12473Europe/Guernsey","GH|Africa/Abidjan Africa/Accra","GI|Europe/Gibraltar","GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule","GM|Africa/Abidjan Africa/Banjul","GN|Africa/Abidjan Africa/Conakry","GP|America/Puerto_Rico America/Guadeloupe","GQ|Africa/Lagos Africa/Malabo","GR|Europe/Athens","GS|Atlantic/South_Georgia","GT|America/Guatemala","GU|Pacific/Guam","GW|Africa/Bissau","GY|America/Guyana","HK|Asia/Hong_Kong","HN|America/Tegucigalpa","HR|Europe/Belgrade Europe/Zagreb","HT|America/Port-au-Prince","HU|Europe/Budapest","ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura","IE|Europe/Dublin","IL|Asia/Jerusalem","IM|Europe/London Europe/Isle_of_Man","IN|Asia/Kolkata","IO|Indian/Chagos","IQ|Asia/Baghdad","IR|Asia/Tehran","IS|Africa/Abidjan Atlantic/Reykjavik","IT|Europe/Rome","JE|Europe/London Europe/Jersey","JM|America/Jamaica","JO|Asia/Amman","JP|Asia/Tokyo","KE|Africa/Nairobi","KG|Asia/Bishkek","KH|Asia/Bangkok Asia/Phnom_Penh","KI|Pacific/Tarawa Pacific/Kanton Pacific/Kiritimati","KM|Africa/Nairobi Indian/Comoro","KN|America/Puerto_Rico America/St_Kitts","KP|Asia/Pyongyang","KR|Asia/Seoul","KW|Asia/Riyadh Asia/Kuwait","KY|America/Panama America/Cayman","KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral","LA|Asia/Bangkok Asia/Vientiane","LB|Asia/Beirut","LC|America/Puerto_Rico America/St_Lucia","LI|Europe/Zurich Europe/Vaduz","LK|Asia/Colombo","LR|Africa/Monrovia","LS|Africa/Johannesburg Africa/Maseru","LT|Europe/Vilnius","LU|Europe/Brussels Europe/Luxembourg","LV|Europe/Riga","LY|Africa/Tripoli","MA|Africa/Casablanca","MC|Europe/Paris Europe/Monaco","MD|Europe/Chisinau","ME|Europe/Belgrade Europe/Podgorica","MF|America/Puerto_Rico America/Marigot","MG|Africa/Nairobi Indian/Antananarivo","MH|Pacific/Tarawa Pacific/Kwajalein Pacific/Majuro","MK|Europe/Belgrade Europe/Skopje","ML|Africa/Abidjan Africa/Bamako","MM|Asia/Yangon","MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan","MO|Asia/Macau","MP|Pacific/Guam Pacific/Saipan","MQ|America/Martinique","MR|Africa/Abidjan Africa/Nouakchott","MS|America/Puerto_Rico America/Montserrat","MT|Europe/Malta","MU|Indian/Mauritius","MV|Indian/Maldives","MW|Africa/Maputo Africa/Blantyre","MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Chihuahua America/Ciudad_Juarez America/Ojinaga America/Mazatlan America/Bahia_Banderas America/Hermosillo America/Tijuana","MY|Asia/Kuching Asia/Singapore Asia/Kuala_Lumpur","MZ|Africa/Maputo","NA|Africa/Windhoek","NC|Pacific/Noumea","NE|Africa/Lagos Africa/Niamey","NF|Pacific/Norfolk","NG|Africa/Lagos","NI|America/Managua","NL|Europe/Brussels Europe/Amsterdam","NO|Europe/Berlin Europe/Oslo","NP|Asia/Kathmandu","NR|Pacific/Nauru","NU|Pacific/Niue","NZ|Pacific/Auckland Pacific/Chatham","OM|Asia/Dubai Asia/Muscat","PA|America/Panama","PE|America/Lima","PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier","PG|Pacific/Port_Moresby Pacific/Bougainville","PH|Asia/Manila","PK|Asia/Karachi","PL|Europe/Warsaw","PM|America/Miquelon","PN|Pacific/Pitcairn","PR|America/Puerto_Rico","PS|Asia/Gaza Asia/Hebron","PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores","PW|Pacific/Palau","PY|America/Asuncion","QA|Asia/Qatar","RE|Asia/Dubai Indian/Reunion","RO|Europe/Bucharest","RS|Europe/Belgrade","RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr","RW|Africa/Maputo Africa/Kigali","SA|Asia/Riyadh","SB|Pacific/Guadalcanal","SC|Asia/Dubai Indian/Mahe","SD|Africa/Khartoum","SE|Europe/Berlin Europe/Stockholm","SG|Asia/Singapore","SH|Africa/Abidjan Atlantic/St_Helena","SI|Europe/Belgrade Europe/Ljubljana","SJ|Europe/Berlin Arctic/Longyearbyen","SK|Europe/Prague Europe/Bratislava","SL|Africa/Abidjan Africa/Freetown","SM|Europe/Rome Europe/San_Marino","SN|Africa/Abidjan Africa/Dakar","SO|Africa/Nairobi Africa/Mogadishu","SR|America/Paramaribo","SS|Africa/Juba","ST|Africa/Sao_Tome","SV|America/El_Salvador","SX|America/Puerto_Rico America/Lower_Princes","SY|Asia/Damascus","SZ|Africa/Johannesburg Africa/Mbabane","TC|America/Grand_Turk","TD|Africa/Ndjamena","TF|Asia/Dubai Indian/Maldives Indian/Kerguelen","TG|Africa/Abidjan Africa/Lome","TH|Asia/Bangkok","TJ|Asia/Dushanbe","TK|Pacific/Fakaofo","TL|Asia/Dili","TM|Asia/Ashgabat","TN|Africa/Tunis","TO|Pacific/Tongatapu","TR|Europe/Istanbul","TT|America/Puerto_Rico America/Port_of_Spain","TV|Pacific/Tarawa Pacific/Funafuti","TW|Asia/Taipei","TZ|Africa/Nairobi Africa/Dar_es_Salaam","UA|Europe/Simferopol Europe/Kyiv","UG|Africa/Nairobi Africa/Kampala","UM|Pacific/Pago_Pago Pacific/Tarawa Pacific/Honolulu Pacific/Midway Pacific/Wake","US|America/Ne
12473w_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu","UY|America/Montevideo","UZ|Asia/Samarkand Asia/Tashkent","VA|Europe/Rome Europe/Vatican","VC|America/Puerto_Rico America/St_Vincent","VE|America/Caracas","VG|America/Puerto_Rico America/Tortola","VI|America/Puerto_Rico America/St_Thomas","VN|Asia/Bangkok Asia/Ho_Chi_Minh","VU|Pacific/Efate","WF|Pacific/Tarawa Pacific/Wallis","WS|Pacific/Apia","YE|Asia/Riyadh Asia/Aden","YT|Africa/Nairobi Indian/Mayotte","ZA|Africa/Johannesburg","ZM|Africa/Maputo Africa/Lusaka","ZW|Africa/Maputo Africa/Harare"]}),i});
12474�(function($){
12475    $.fn.validationEngineLanguage = function(){
12476    };
12477    $.validationEngineLanguage = {
12478        newLang: function(){
12479            $.validationEngineLanguage.allRules = {
12480                "required": { // Add your regex rules here, you can take telephone as an example
12481                    "regex": "none",
12482                    "alertText": "* " + _("This field is required"),
12483                    "alertTextCheckboxMultiple": "* " + _("Please select an option"),
12484                    "alertTextCheckboxe": "* " + _("This checkbox is required"),
12485                    "alertTextDateRange": "* " + _("Both date range fields are required")
12486                },
12487                "dateRange": {
12488                    "regex": "none",
12489                    "alertText": "* " + _("Invalid") + " ",
12490                    "alertText2": _("Date Range")
12491                },
12492                "dateTimeRange": {
12493                    "regex": "none",
12494                    "alertText": "* " + _("Invalid") + " ",
12495                    "alertText2": _("Date Time Range")
12496                },
12497                //NETSAPIENS: added time range
12498                "timeRange": {
12499                    "regex": "none",
12500                    "alertText": "* " + _("Invalid") + " ",
12501                    "alertText2": _("Time Range")
12502                },
12503                "minSize": {
12504                    "regex": "none",
12505                    "alertText": "* " + _("Minimum") + " ",
12506                    "alertText2": " " + _("characters required")
12507                },
12508                "maxSize": {
12509                    "regex": "none",
12510                    "alertText": "* " + _("Maximum") + " ",
12511                    "alertText2": " " + _("characters allowed")
12512                },
12513                "groupRequired": {
12514                    "regex": "none",
12515                    "alertText": "* " + _("You must fill one of the following fields")
12516                },
12517                "min": {
12518                    "regex": "none",
12519                    "alertText": "* " + _("Minimum value is") + " "
12520                },
12521                "max": {
12522                    "regex": "none",
12523                    "alertText": "* " + _("Maximum value is") + " "
12524                },
12525                "past": {
12526                    "regex": "none",
12527                    "alertText": "* " + _("Date prior to") + " "
12528                },
12529                "future": {
12530                    "regex": "none",
12531                    "alertText": "* " + _("Date past") + " "
12532                },
12533                "maxCheckbox": {
12534                    "regex": "none",
12535                    "alertText": "* " + _("Maximum") + " ",
12536                    "alertText2": " " + _("options allowed")
12537                },
12538                "minCheckbox": {
12539                    "regex": "none",
12540                    "alertText": "* " + _("Select at least") + " ",
12541                    "alertText2": " " + _("option")
12542                },
12543                "minDateCount": {
12544                    "regex": "none",
12545                    "alertText": "* " + _("Select at least one date"),
12546                },
12547                "minHolidayCount": {
12548                    "regex": "none",
12549                    "alertText": "* " + _("Select at least one holiday"),
12550                },
12551                "maxWeekendCount": {
12552                    "regex": "none",
12553                    "alertText": "* " + _("Maximum of ") + " ",
12554                    "alertText2": " " + _("weekend days")
12555                },
12556                "minWeekendCount": {
12557                    "regex": "none",
12558                    "alertText": "* " + _("Minimum of ") + " ",
12559                    "alertText2": " " + _("weekend days")
12560                },
12561                "badTime": {
12562                    "regex": "none",
12563                    "alertText": "* " + _("The second time is not after the first"),
12564                },
12565                "badTimeOverlap": {
12566                    "regex": "none",
12567                    "alertText": "* " + _("The time ranges overlap"),
12568                },
12569                "badExtensionField": {
12570                    "regex": "none",
12571                    "alertText": "* " + _("No matches found!"),
12572                },
12573                "badDateFormat": {
12574                    "regex": "none",
12575                    "alertText": "* " + _("Invalid date format")
12576                },
12577                "badDate": {
12578                    "regex": "none",
12579                    "alertText": "* " + _("The second date is not after the first"),
12580                },
12581                "badHolidayEndDate": {
12582                    "regex": "none",
12583                    "alertText": "* " + _("The end date is not after the holiday dates"),
12584                },
12585                "badSdateEndDate": {
12586                    "regex": "none",
12587                    "alertText": "* " + _("The end date is not after the latest date"),
12588                },
12589                "badDOWEndDate": {
12590                    "regex": "none",
12591                    "alertText": "* " + _("The end date is not after the start date"),
12592                },
12593                "equals": {
12594                    "regex": "none",
12595                    "alertText": "* " + _("Fields do not match")
12596                },
12597                "notEquals": {
12598                    "regex": "none",
12599                    "alertText": "* " + _("Fields must not match")
12600                },
12601                "phone": {
12602                    // credit: jquery.h5validate.js / orefalo
12603                    // "regex": /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/,
12604                    "regex": /([0-9\s\-]{7,})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/, //  recognizes + or 011 beginnings , min = 7 , max = nomax
12605                    "alertText": "* " + _("Invalid phone number")
12606                },
12607               "email": {
12608                    "regex": /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,12}$/i,
12609                    "alertText": "* " + _("Invalid email address")
12610                },
12611                "emails": {
12612                     "regex": /^(|([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$/i,
12613                     "alertText": "* " + _("Invalid email addresses")
12614                 },
12615                "integer": {
12616                    "regex": /^[\-\+]?\d+$/,
12617                    "alertText": "* " + _("Not a valid number")
12618                },
12619                "number": {
12620                    // Number, including positive, negative, and floating decimal. credit: orefalo
12621                    "regex": /^[\-\+]?(([0-9]+)([\.,]([0-9]+))?|([\.,]([0-9]+))?)$/,
12622                    "alertText": "* " + _("Invalid floating decimal number")
12623                },
12624                "date": {
12625                    "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
12626                    "alertText": "* " + _("Invalid date, must be in YYYY-MM-DD format")
12627                },
12628                // NETSAPIENS: added custom datepicker and time regex
12629                "datepicker": {
12630                    "regex": '.*',
12631                    "alertText": "* " + _("Invalid date, format must be {0}")
12632                },
12633                "dateTimepicker": {
12634                	"regex": '.*',
12635                	"alertText": "* " + _("Invalid date, format must be {0}")
12636                },
12637                "dataRangeValidate": {
12638                    "url": "/portal/callhistory/validateField",
12639                    "alertText": "* " + _("This phone extension already exists")
12640                },
12641                "time": {
12642                    "regex": /^([1-9]|1[0-2]):[0-5]\d\s+[ap]m$/i,
12643                    "alertText": "* " + _("Invalid time, format must be HH:MM am/pm")
12644                },
12645                "ipv4": {
12646                    "regex": /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
12647                    "alertText": "* " + _("Invalid IP address")
12648                },
12649                // NETSAPIENS: match a string with .mp3 or .wav at the end of it for filetype checking
12650                "onlyMp3wav": {
12651                    "regex": /((.mp3)|(.wav)|(.WAV)|(.MP3))$/,
12652                    "alertText": "* " + _(".MP3 or .WAV only")
12653                },
12654                "onlJson": {
12655                    "regex": /((.json)|(.JSON))$/,
12656                    "alertText": "* " + _(".json only")
12657                },
12658                "url": {
12659                    "regex": /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
12660                    "alertText": "* " + _("Invalid URL")
12661                },
12662                "onlyNumberSp": {
12663                    "regex": /^[0-9\ ]+$/,
12664                    "alertText": "* " + _("Numbers only")
12665                },
12666                "onlyNumbers": {
12667                    "regex": /^\d+$/,
12668                    "alertText": "* " + _("Numbers only")
12669                },
12670                "onlyNumbersWC": {
12671                		"regex": /^[0-9\ \*\[\]]+$/,
12672                    "alertText": "* " + _("Numbers only")
12673                },
12674                "onlyLetterSp": {
12675                    "regex": /^[a-zA-ZÀ-ÿ\ \']+$/,
12676                    "alertText": "* " + _("Letters only")
12677                },
12678                "onlyLetterNumber": {
12679                    "regex": /^[0-9a-zA-ZÀ-ÿ]+$/,
12680                    "alertText": "* " + _("No spaces or special characters allowed")
12681                },
12682                "phonenumberString": {
12683                    "regex": /^[0-9a-zA-Z ()-]+$/,
12684                    "alertText": "* " + _("Please enter a single phone number")
12685                },
12686                "validTimeFormat": {
12687                    "regex": /^(?!.*--)(?:(?:[0-9]{1,2}.[0-9]{2}\s?(?:AM|PM|am|pm)?)?(?:\s?-?\s?[0-9]{1,2}.[0-9]{2}\s?(?:AM|PM|am|pm)?)?)?$|^$/,
12688                    "alertText": "* " + _("Please enter a valid time format")
12689                },
12690                // letters, numbers, spaces and underscores
12691                "onlyLetterNumberSp": {
12692                    "regex": /^\w[\ \w]*$/,
12693                    "alertText": "* " + _("No special characters allowed")
12694                },
12695                "onlyLetterNumberSpDotUnder": {
12696                    "regex": /^[0-9a-zA-ZÀ-ÿ._ ]+$/,
12697                    "alertText": "* " + _("No special characters allowed")
12698                },
12699                "onlyLetterNumberSpDashUnder": {
12700                    "regex": /^[0-9a-zA-ZÀ-ÿ\ _-]+$/,
12701                    "alertText": "* " + _("No special characters allowed")
12702                },
12703                "onlyLetterNumberDotDashUnder": {
12704                    "regex": /^[0-9a-zA-ZÀ-ÿ._-]+$/,
12705                    "alertText": "* " + _("No special characters or spaces allowed")
12706                },
12707                "onlyLetterNumberDot": {
12708                    "regex": /^[0-9a-zA-ZÀ-ÿ.]+$/,
12709                    "alertText": "* " + _("No special characters except dots allowed")
12710                },
12711                "onlyLetterNumberDotDash": {
12712                    "regex": /^[0-9a-zA-ZÀ-ÿ.\-]+$/,
12713                    "alertText": "* " + _("No special characters except hyphens and dots allowed")
12714                },
12715                "onlyLetterStart": {
12716                    "regex": /^[a-zA-Z]/,
12717                    "alertText": "* " + _("Must start with a letter")
12718                },
12719                // "onlyLetterNumberDotNoFrontNumber": {
12720                //     "regex": /^[a-zA-Z]([a-zA-Z0-9.]+)*$/,
12721                //     "alertText": "* " + _("No special characters except dots allowed. Must start with a letter")
12722                // },
12723                "onlyLetterNumberUnderHash": {
12724                    "regex": /^[0-9a-zA-ZÀ-ÿ#_]+$/,
12725                    "alertText": "* " + _("No special characters or spaces other than _ or #")
12726                },
12727                "onlyLetterNumberDotDashUnderSpFwd": {
12728                    "regex": /^[0-9a-zA-ZÀ-ÿ._ /-]+$/,
12729                    "alertText": "* " + _("No special characters other than spaces, dots, hyphens, underscores or forward slashes")
12730                },
12731                "onlyLetterNumberDotDashUnder": {
12732                    "regex": /^[0-9a-zA-ZÀ-ÿ._-]+$/,
12733                    "alertText": "* " + _("No special characters other than dots, hyphens & underscores")
12734                },
12735                "onlyLetterNumberDashUnderSp": {
12736                    "regex": /^[0-9a-zA-ZÀ-ÿ_ -]+$/,
12737                    "alertText": "* " + _("No special characters other than hyphens, spaces & underscores")
12738                },
12739                //NETSAPIESN: several custom regex below
12740                "ompPhoneNumber": {
12741                    "regex": /^\w+$/,
12742                    "alertText": "* " + _("Letters and numbers only")
12743                },
12744                "option4validate": {
12745                    "url": "/portal/timeframes/option4check/",
12746                    "alertText": "* " + _("Please select at least 1 option"),
12747                    "extraDataDynamic": ['#checkboxCnt','#from-0']
12748                },
12749                "currentPassword": {
12750                    "url": "/portal/users/validateField",
12751                    "alertText": "* " + _("The password provided is not val
12751id")
12752                },
12753                "mfaPasscode": {
12754                    "url": "/portal/users/validateField",
12755                    "alertText": "* " + _("The passcode provided is not valid"),
12756                    "extraDataDynamic": ['#mfa_key', '#mfa_vendor', '#mfa_type']
12757                },
12758                "newExtension": {
12759                    "url": "/portal/users/validateField",
12760                    "alertText": "* " + _("This extension is already in use")
12761                },
12762                "newExtensionDynamic": {
12763                    "url": "/portal/users/validateField/true",
12764                    "alertText": "* " + _("This extension is already in use"),
12765                    "extraDataDynamic": ['#createuser']
12766                },
12767                "newDomain": {
12768                    "url": "/portal/domains/validateField",
12769                    "alertText": "* " + _("This domain is already in use")
12770                },
12771                "domainNotStar": {
12772                    "url": "/portal/domains/validateNotStar/false",
12773                    "alertText": "* " + _("This entry is invalid")
12774                },
12775                "domainCompany": {
12776                    "url": "/portal/domains/validateCompany",
12777                    "alertText": "* " + _("This URL is already taken")
12778                },
12779                "maxUser": {
12780                    "url": "/portal/domains/validateField/maxUser",
12781                    "alertText": "* " + _("Users already exceed the maximum allowed")
12782                },
12783                "newReseller": {
12784                    "url": "/portal/resellers/validateField",
12785                    "alertText": "* " + _("This reseller is already in use")
12786                },
12787                "newSchedule": {
12788                    "url": "/portal/cdrschedule/validateField",
12789                    "alertText": "* " + _("This schedule is already in use")
12790                },
12791                "newAddressEndpoint": {
12792                    "url": "/portal/inventory/validateField",
12793                    "alertText": "* " + _("This call back number is already in use")
12794                },
12795                "newTimeFrame": {
12796                    "url": "/portal/timeframes/validateField",
12797                    "alertText": "* " + _("This name is already in use")
12798                },
12799                "newDevice": {
12800                    "url": "/portal/phones/validateField",
12801                    "alertText": "* " + _("This phone extension already exists")
12802                },
12803                "newSipTrunk": {
12804                    "url": "/portal/siptrunks/validateField",
12805                    "alertText": "* " + _("This sip trunk already exists")
12806                },
12807                "newRouteProfile": {
12808                    "url": "/portal/routeprofiles/validateField",
12809                    "alertText": "* " + _("This route profile already exists")
12810                },
12811                "newQueue": {
12812                    "url": "/portal/callqueues/validateField",
12813                    "alertText": "* " + _("This callqueue already exists")
12814                },
12815                "newPhonenumber": {
12816                    "url": "/portal/inventory/validateField",
12817                    "alertText": "* " + _("This phone number already exists")
12818                },
12819                "checkConfDevice": {
12820                	"url": "/portal/conferences/validateField",
12821                    "alertText": "* " + _("This extension already has a bridge")
12822                },
12823                "checkConfPin": {
12824                	"url": "/portal/conferences/validateField",
12825                  "alertText": "* " + _("If leader pin is set, participant pin also needs to be set"),
12826                  "extraDataDynamic": ['#ConferencePinLeader','#ConferencePinParticipant']
12827                },
12828                "agentAdd": {
12829                	"url": "/portal/callqueues/validateField",
12830                    "alertText": "* " + _("Please enter a valid users phone extension")
12831                },
12832                "checkDeptNewSite": {
12833                    "url": "/portal/users/checkSiteAndDept/true",
12834                    "alertText": "* " + _("This name is already in use")
12835                },
12836                "checkSiteNewDept": {
12837                    "url": "/portal/users/checkSiteAndDept",
12838                    "alertText": "* " + _("This name is already in use")
12839                },
12840                "checkMac": {
12841                	"url": "/portal/phones/checkMac",
12842                    "alertText": _("This MAC Address is already in use"),
12843                },
12844                "checkMacAdd": {
12845                	"url": "/portal/phones/checkMac/1",
12846                    "alertText": _("This MAC Address is already in use"),
12847                },
12848                "checkMacSyntax": {
12849                	"regex": /^(?:[0-9a-fA-F]{2}[:;.]?){6}$/,
12850                    "alertText": "* " +_("Incorrect Format"),
12851                },
12852                "checkTemplate": {
12853                	"url": "/portal/inventory/checkTemplate",
12854                    "alertText": _("This template name is already in use"),
12855                      "extraDataDynamic": ["#new_pc_name"],
12856                        "extraData": "",
12857                },
12858                "noweakpass": {
12859                    "url": "/portal/users/checkPassword",
12860                    "alertText": "* " + _("Choose a stronger password"),
12861                    "extraDataDynamic": ['#UserId','#UserExtension']
12862                },
12863                "validateSecurePwd": {
12864                    "url": "/portal/resets/validateSecurePassword",
12865                    "extraDataDynamic": ['#resetPassword', '#new-password']
12866                },
12867                "validateVMPin": {
12868                    "url": "/portal/resets/validateVMPin",
12869                    "extraDataDynamic": ['#resetVmPin', '#new-pin']
12870                },
12871                "ajaxMaxDays": {
12872                    "url": "/portal/callhistory/checkrange",
12873                    "extraDataDynamic": ['#from-0', '#to-0'],
12874                    "alertText": "* " + _("The range is to large, please try a smaller window"),
12875                    "onFailure": "alert('error');"
12876                },
12877
12878                "ajaxMaxDaysCDR": {
12879                    "url": "/portal/cdrschedule/checkrange",
12880                    "extraDataDynamic": ['#from-0'],
12881                    "alertText": "* " + _("The range is to large, please try a smaller window"),
12882                    "onFailure": "alert('error')"
12883                },
12884
12885                // --- CUSTOM RULES -- Those are specific to the demos, they can be removed or changed to your likings
12886                "ajaxUserCall": {
12887                    "url": "ajaxValidateFieldUser",
12888                    // you may want to pass extra data on the aja
12888x call
12889                    "extraData": "name=eric",
12890                    "alertText": "* " + _("This user is already taken"),
12891                    "alertTextLoad": "* " + _("Validating, please wait")
12892                },
12893                "ajaxUserCallPhp": {
12894                    "url": "phpajax/ajaxValidateFieldUser.php",
12895                    // you may want to pass extra data on the ajax call
12896                    //"extraData": "name=eric",
12897
12898                    // if you provide an "alertTextOk", it will show as a green prompt when the field validates
12899                    "alertTextOk": "* " + _("This username is available"),
12900                    "alertText": "* " + _("This user is already taken"),
12901                    "alertTextLoad": "* " + _("Validating, please wait")
12902                },
12903                "ajaxNameCall": {
12904                    // remote json service location
12905                    "url": "ajaxValidateFieldName",
12906                    // error
12907                    "alertText": "* " + _("This name is already taken"),
12908                    // if you provide an "alertTextOk", it will show as a green prompt when the field validates
12909                    "alertTextOk": "* " + _("This name is available"),
12910                    // speaks by itself
12911                    "alertTextLoad": "* " + _("Validating, please wait")
12912                },
12913                "ajaxNameCallPhp": {
12914	                    // remote json service location
12915	                    "url": "phpajax/ajaxValidateFieldName.php",
12916	                    // error
12917	                    "alertText": "* " + _("This name is already taken"),
12918	                    // speaks by itself
12919	                    "alertTextLoad": "* " + _("Validating, please wait")
12920	                },
12921                "validate2fields": {
12922                    "alertText": "* " + _("Please input HELLO")
12923                },
12924                "validateRequireLeader": {
12925                    "alertText": "* " + _("If \"Require a Leader to start\" is used, leader pin must be set.")
12926                },
12927                //tls warning:homegrown not fielded
12928                "dateFormat":{
12929                    "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
12930                    "alertText": "* " + _("Invalid Date")
12931                },
12932                //tls warning:homegrown not fielded
12933                "dateTimeFormat": {
12934	                "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
12935                    "alertText": "* " + _("Invalid Date or Date Format"),
12936                    "alertText2": _("Expected Format:") + " ",
12937                    "alertText3": _("mm/dd/yyyy hh:mm:ss AM|PM or") + " ",
12938                    "alertText4": _("yyyy-mm-dd hh:mm:ss AM|PM")
12939	            },
12940                "addSSL": {
12941                	"url": "/portal/uiconfigs/validateField",
12942                    "alertTextLoad": "* " + _("Validating, please wait"),
12943                    "extraDataDynamic": ['#UiconfigType'],
12944                    
12945                },
12946
12947                //https://github.com/posabsolute/jQuery-Validation-Engine/blob/master/README.md
12948            };
12949
12950        }
12951    };
12952
12953    $.validationEngineLanguage.newLang();
12954
12955})(jQuery);
12956
12957�/*
12958 * Inline Form Validation Engine 2.5, jQuery plugin
12959 *
12960 * Copyright(c) 2010, Cedric Dugas
12961 * http://www.position-absolute.com
12962 *
12963 * 2.0 Rewrite by Olivier Refalo
12964 * http://www.crionics.com
12965 *
12966 * Form validation engine allowing custom regex rules to be added.
12967 * Licensed under the MIT License
12968 */
12969(function($) {
12970
12971    var methods = {
12972
12973        /**
12974         * Kind of the constructor, called before any action
12975         * @param {Map} user options
12976         */
12977        init: function(options) {
12978            var form = this;
12979            if (!form.data('jqv') || form.data('jqv') == null ) {
12980                options = methods._saveOptions(form, options);
12981				// bind all formError elements to close on click
12982				$("body").on("click",".formError", function() {
12983
12984					$(this).fadeOut(150, function() {
12985					 // remove prompt once invisible
12986					   $(this).parent('.formErrorOuter').remove();
12987					   $(this).remove();
12988					});
12989				});
12990
12991            }
12992            return this;
12993        },
12994        /**
12995         * Attachs jQuery.validationEngine to form.submit and field.blur events
12996         * Takes an optional params: a list of options
12997         * ie. jQuery("#formID1").validationEngine('attach', {promptPosition : "centerRight"});
12998         */
12999        attach: function(userOptions) {
13000
13001            var form = this;
13002            var options;
13003
13004            if(userOptions)
13005                options = methods._saveOptions(form, userOptions);
13006            else
13007                options = form.data('jqv');
13008
13009			var validateAttribute = (form.find("[data-validation-engine*=validate]")) ? "data-validation-engine" : "class";
13010
13011            if (!options.binded) {
13012				if (options.bindMethod == "bind"){
13013
13014					// bind fields
13015                    form.find("[class*=validate]").not("[type=checkbox]").not("[type=radio]").not(".datepicker").bind(options.validationEventTrigger, methods._onFieldEvent);
13016                    form.find("[class*=validate][type=checkbox],[class*=validate][type=radio]").bind("click", methods._onFieldEvent);
13017					form.find("[class*=validate][class*=datepicker]").bind(options.validationEventTrigger,{"delay": 300}, methods._onFieldEvent);
13018
13019                    // bind form.submit
13020                    form.bind("submit", methods._onSubmitEvent);
13021				} else if (options.bindMethod == "live") {
13022                    // bind fields with LIVE (for persistant state)
13023                    form.find("[class*=validate]").not("[type=checkbox]").not(".datepicker").live(options.validationEventTrigger, methods._onFieldEvent);
13024                    form.find("[class*=validate][type=checkbox]").live("click", methods._onFieldEvent);
13025					form.find("[class*=validate][class*=datepicker]").live(options.validationEventTrigger,{"delay": 300}, methods._onFieldEvent);
13026
13027                    // bind form.submit
13028                    form.live("submit", methods._onSubmitEvent);
13029				}
13030
13031               	options.binded = true;
13032
13033				if (options.autoPositionUpdate) {
13034	    			$(window).bind("resize", {
13035						"noAnimation": true,
13036						"formElem": form
13037	    				}, methods.updatePromptsPosition);
13038				}
13039
13040           }
13041           return this;
13042        },
13043        /**
13044         * Unregisters any bindings that may point to jQuery.validaitonEngine
13045         */
13046        detach: function() {
13047            var form = this;
13048            var options = form.data('jqv');
13049            if (options.binded) {
13050
13051                // unbind fields
13052                form.find("[class*=validate]").not("[type=checkbox]").unbind(options.validationEventTrigger, methods._onFieldEvent);
13053                form.find("[class*=validate][type=checkbox],[class*=validate][type=radio]").unbind("click", methods._onFieldEvent);
13054
13055                // unbind form.submit
13056                form.unbind("submit", methods.onAjaxFormComplete);
13057
13058                // unbind live fields (kill)
13059                if (form.find("[class*=validate]").length && form.find("[class*=validate]").not("[type=checkbox]").length)
13060                  form.find("[class*=validate]").not("[type=checkbox]").off(options.validationEventTrigger, methods._onFieldEvent);
13061
13062                if (form.find("[class*=validate][type=checkbox]").length)
13063                  form.find("[class*=validate][type=checkbox]").off("click", methods._onFieldEvent);
13064
13065
13066				// unbind form.submit
13067                form.off("submit", methods.onAjaxFormComplete);
13068
13069                form.removeData('jqv');
13070
13071				if (options.autoPositionUpdate) {
13072		    		$(window).unbind("resize", methods.updatePromptsPosition)
13073				}
13074           	}
13075            return this;
13076        },
13077        /**
13078         * Validates the form fields, shows prompts accordingly.
13079         * Note: There is no ajax form validation with this method, only field ajax validation are evaluated
13080         *
13081         * @return true if the form validates, false if it fails
13082         */
13083        validate: function() {
13084            return methods._validateFields(this);
13085        },
13086        /**
13087         * Validates one field, shows prompt accordingly.
13088         * Note: There is no ajax form validation with this method, only field ajax validation are evaluated
13089         *
13090         * @return false if the form validates, true if it fails
13091         */
13092        validateField: function() {
13093            var element = $(this);
13094
13095            // field validation
13096            var form = element.closest('form'),
13097                options = (form.data('jqv')) ? form.data('jqv') : $.validationEngine.defaults,
13098                valid = methods._validateField(element, options);
13099
13100            return valid;
13101        },
13102        /**
13103         * Validates the form fields, shows prompts accordingly.
13104         * Note: this methods performs fields and form ajax validations(if setup)
13105         *
13106         * @return true if the form validates, false if it fails, undefined if ajax is used for form validation
13107         */
13108        validateform: function() {
13109            return methods._onSubmitEvent.call(this);
13110        },
13111		/**
13112         *  Redraw prompts position, useful when you change the DOM state when validating
13113         */
13114        updatePromptsPosition: function(event) {
13115
13116			if (event && this == window)
13117				var form = event.data.formElem, noAnimation = event.data.noAnimation;
13118		    else
13119				var form = $(this.closest('form'));
13120
13121			var options = form.data('jqv');
13122	        // No option, take default one
13123		    form.find('[class*=validate]').not(':hidden').not(":disabled").each(function(){
13124			   	var field = $(this);
13125			   	var prompt = methods._getPrompt(field);
13126			   	var promptText = $(prompt).find(".formErrorContent").html();
13127
13128			   	if(prompt)
13129					methods._updatePrompt(field, $(prompt), promptText, undefined, false, options, noAnimation);
13130		    })
13131	        return this;
13132        },
13133        /**
13134         * Displays a prompt on a element.
13135         * Note that the element needs an id!
13136         *
13137         * @param {String} promptText html text to display type
13138         * @param {String} type the type of bubble: 'pass' (green), 'load' (black) anything else (red)
13139         * @param {String} possible values topLeft, topRight, bottomLeft, centerRight, bottomRight
13140         */
13141        showPrompt: function(promptText, type, promptPosition, showArrow) {
13142
13143            var form = this.closest('form');
13144            var options = form.data('jqv');
13145            // No option, take default one
13146			if(!options) options = methods._saveOptions(this, options);
13147            if(promptPosition)
13148                options.promptPosition=promptPosition;
13149            options.showArrow = showArrow==true;
13150
13151            methods._showPrompt(this, promptText, type, false, options);
13152            return this;
13153        },
13154        /**
13155         * Closes all error prompts on the page
13156         */
13157        hidePrompt: function() {
13158        	var promptClass =  "."+ methods._getClassName($(this).attr("id")) + "formError";
13159            $(promptClass).fadeTo("fast", 0.3, function() {
13160                $(this).parent('.formErrorOuter').remove();
13161                $(this).remove();
13162            });
13163            return this;
13164        },
13165        /**
13166         * Closes form error prompts, CAN be invidual
13167         */
13168        hide: function() {
13169        var closingtag;
13170        	if($(this).is("form")){
13171        		closingtag = "parentForm"+methods._getClassName($(this).attr("id"));
13172        	}else{
13173        		closingtag = methods._getClassName($(this).attr("id")) +"formError";
13174        	}
13175            $('.'+closingtag).fadeTo("fast", 0.3, function() {
13176                $(this).parent('.formErrorOuter').remove();
13177                $(this).remove();
13178            });
13179            return this;
13180        },
13181        /**
13182         * Closes all error prompts on the page
13183         */
13184        hideAll: function() {
13185            $('.formError').fadeTo("fast", 0.3, function() {
13186            $(this).parent('.formErrorOuter').remove();
13187                $(this).remove();
13188            });
13189            return this;
13190        },
13191        /**
13192         * Typically called when user exists a field using tab or a mouse click, triggers a field
13193         * validation
13194         */
13195        _onFieldEvent: function(event) {
13196            var field = $(this);
13197            var form = field.closest('form');
13198            var options = form.data('jqv');
13199            // validate the current field
13200			window.setTimeout(function() {
13201                methods._validateField(field, options);
13202				if (options.InvalidFields.length == 0 && options.onSuccess) {
13203					options.onSuccess();
13204				} else if (options.InvalidFields.length > 0 && options.onFailure) {
13205					options.onFailure();
13206				}
13207			}, (event.data) ? event.data.delay : 0);
13208
13209        },
13210        /**
13211         * Called when the form is submited, shows prompts accordingly
13212         *
13213         * @param {jqObject}
13214         *            form
13215         * @return false if form submission needs to be cancelled
13216         */
13217        _onSubmitEvent: function() {
13218            var form = $(this);
13219            var options = form.data('jqv');
13220
13221            // validate each field (- skip field ajax validation, no necessary since we will perform an ajax form validation)
13222            var r=methods._validateFields(form, true, true);
13223
13224            if (r && options.ajaxFormValidation) {
13225                methods._validateFormWithAjax(form, options);
13226                return false;
13227            }
13228
13229            if(options.onValidationComplete) {
13230                //#NETSAPIENS: patched from validationEngine 2.6
13231                return !!options.onValidationComplete(form, r);
13232            }
13233            return r;
13234        },
13235
13236        /**
13237         * Return true if the ajax field validations passed so far
13238         * @param {Object} options
13239         * @return true, is all ajax validation passed so far (remember aja
13239x is async)
13240         */
13241        _checkAjaxStatus: function(options) {
13242            var status = true;
13243            $.each(options.ajaxValidCache, function(key, value) {
13244                if (!value) {
13245                    status = false;
13246                    // break the each
13247                    return false;
13248                }
13249            });
13250            return status;
13251        },
13252        /**
13253         * Validates form fields, shows prompts accordingly
13254         *
13255         * @param {jqObject}
13256         *            form
13257         * @param {skipAjaxFieldValidation}
13258         *            boolean - when set to true, ajax field validation is skipped, typically used when the submit button is clicked
13259         *
13260         * @return true if form is valid, false if not, undefined if ajax form validation is done
13261         */
13262        _validateFields: function(form, submitEvent) {
13263            var options = form.data('jqv');
13264
13265            // this variable is set to true if an error is found
13266            var errorFound = false;
13267
13268            // Trigger hook, start validation
13269            form.trigger("jqv.form.validating");
13270            // first, evaluate status of non ajax fields
13271            var first_err=null;
13272            form.find('[class*=validate]').not(':hidden').not(":disabled").each( function() {
13273                var field = $(this);
13274                errorFound |= methods._validateField(field, options, submitEvent);
13275                // NETSAPIENS: fixes the datepicker from popping up after validation
13276                //field.focus();
13277                if (options.doNotShowAllErrosOnSubmit)
13278                    return false;
13279                if (errorFound && first_err===null) first_err=field;
13280            });
13281            // second, check to see if all ajax calls completed ok
13282            errorFound |= !methods._checkAjaxStatus(options);
13283
13284            // thrird, check status and scroll the container accordingly
13285            form.trigger("jqv.form.result", [errorFound]);
13286
13287            if (errorFound) {
13288                if (options.scroll) {
13289                    var destination=first_err.offset().top;
13290                    var fixleft = first_err.offset().left;
13291
13292                    //prompt positioning adjustment support. Usage: positionType:Xshift,Yshift (for ex.: bottomLeft:+20 or bottomLeft:-20,+10)
13293                    var positionType=options.promptPosition;
13294                    if (typeof(positionType)=='string') {
13295                      if (positionType.indexOf(":")!=-1) {
13296                        positionType=positionType.substring(0,positionType.indexOf(":"));
13297                      }
13298                    }
13299
13300                    if (positionType!="bottomRight"&&
13301                        positionType!="bottomLeft") {
13302                        var prompt_err= methods._getPrompt(first_err);
13303                        destination=prompt_err.offset().top;
13304                    }
13305
13306                    // get the position of the first error, there should be at least one, no need to check this
13307                    //var destination = form.find(".formError:not('.greenPopup'):first").offset().top;
13308                    if (options.isOverflown) {
13309                        var overflowDIV = $(options.overflownDIV);
13310                          if(!overflowDIV.length) return false;
13311                        var scrollContainerScroll = overflowDIV.scrollTop();
13312                          var scrollContainerPos = -parseInt(overflowDIV.offset().top);
13313
13314                          destination += scrollContainerScroll + scrollContainerPos - 5;
13315                        var scrollContainer = $(options.overflownDIV + ":not(:animated)");
13316
13317                          scrollContainer.animate({ scrollTop: destination }, 1100);
13318                    }else{
13319                        $("html:not(:animated),body:not(:animated)").animate({
13320                            scrollTop: destination,
13321                            scrollLeft: fixleft
13322                         }, 1100, function(){
13323                            if(options.focusFirstField && first_err) first_err.focus();
13324                        });
13325                    }
13326
13327                } else if(options.focusFirstField && first_err)
13328                  first_err.focus();
13329                return false;
13330            }
13331            return true;
13332        },
13333        /**
13334         * This method is called to perform an ajax form validation.
13335         * During this process all the (field, value) pairs are sent to the server which returns a list of invalid fields or true
13336         *
13337         * @param {jqObject} form
13338         * @param {Map} options
13339         */
13340        _validateFormWithAjax: function(form, options) {
13341
13342            var data = form.serialize();
13343			var url = (options.ajaxFormValidationURL) ? options.ajaxFormValidationURL : form.attr("action");
13344            $.ajax({
13345                type: "GET",
13346                url: url,
13347                cache: false,
13348                dataType: "json",
13349                data: data,
13350                form: form,
13351                methods: methods,
13352                options: options,
13353                beforeSend: function() {
13354                    return options.onBeforeAjaxFormValidation(form, options);
13355                },
13356                error: function(data, transport) {
13357                    methods._ajaxError(data, transport);
13358                },
13359                success: function(json) {
13360
13361                    if (json !== true) {
13362
13363                        // getting to this case doesn't necessary means that the form is invalid
13364                        // the server may return green or closing prompt actions
13365                        // this flag helps figuring it out
13366                        var errorInForm=false;
13367                        for (var i = 0; i < json.length; i++) {
13368                            var value = json[i];
13369
13370                            var errorFieldId = value[0];
13371                            var errorField = $($("#" + errorFieldId)[0]);
13372
13373                            // make sure we found the element
13374                            if (errorField.length == 1) {
13375
13376                                // promptText or selector
13377                                var msg = value[2];
13378								// if the field is valid
13379                                if (value[1] === true) {
13380
13381                                    if (msg === ""  || !msg){
13382                                        // if for some reason, status==true and error="", just close the prompt
13383                                        methods._closePrompt(errorField);
13384                                    } else {
13385                                        // the field is valid, but we are displaying a green prompt
13386                                        if (options.allrules[msg]) {
13387                                            var txt = options.allrules[msg].alertTextOk;
13388                                            if (txt)
13389                                                msg = txt;
13390                                        }
13391                                        methods._showPrompt(errorField, msg, "pass", false, options, true);
13392                                    }
13393
13394                                } else {
13395                                    // the field is invalid, show the red error prompt
13396                                    errorInForm|=true;
13397                                    if (options.allrules[msg]) {
13398                                        var txt = options.allrules[msg].alertText;
13399                                        if (txt)
13400                                            msg = txt;
13401                                    }
13402                                    methods._showPrompt(errorField, msg, "", false, options, true);
13403                                }
13404                            }
13405                        }
13406                        options.onAjaxFormComplete(!errorInForm, form, json, options);
13407                    } else
13408                        options.onAjaxFormComplete(true, form, "", options);
13409                }
13410            });
13411
13412        },
13413        /**
13414         * Validates field, shows prompts accordingly
13415         *
13416         * @param {jqObject}
13417         *            field
13418         * @param {Array[String]}
13419         *            field's validation rules
13420         * @param {Map}
13421         *            user options
13422         * @return true if field is valid
13423         */
13424        _validateField: function(field, options, submitEvent) {
13425            if (!field.attr("id"))
13426                $.error("jQueryValidate: an ID attribute is required for this field: " + field.attr("name") + " class:" +
13427                field.attr("class"));
13428
13429            var rulesParsing = field.attr('class');
13430            var getRules = /validate\[(.*)\]/.exec(rulesParsing);
13431
13432            if (!getRules)
13433                return false;
13434            var str = getRules[1];
13435            var rules = str.split(/\[|,|\]/);
13436
13437            // true if we ran the ajax validation, tells the logic to stop messing with prompts
13438            var isAjaxValidator = false;
13439            var fieldName = field.attr("rel"); //NETSAPIENS: changed selector from 'name' to 'rel'
13440            var promptText = "";
13441            var promptType = ""; //NETSAPIENS: added promptType from 2.6.2 for ajax
13442            var isAjax = false;  //NETSAPIENS: to prevent double prompts conflict with inline ajax[] fields
13443            var required = false;
13444            options.isError = false;
13445            options.showArrow = true;
13446
13447            var form = $(field.closest("form"));
13448
13449            for (var i = 0; i < rules.length; i++) {
13450                // Fix for adding spaces in the rules
13451                rules[i] = rules[i].replace(" ", "");
13452                var errorMsg = undefined;
13453                switch (rules[i]) {
13454
13455                    case "required":
13456                        required = true;
13457                        errorMsg = methods._required(field, rules, i, options);
13458                        break;
13459                    case "custom":
13460                        errorMsg = methods._customRegex(field, rules, i, options);
13461                        break;
13462                    case "groupRequired":
13463                        // Check is its the first of group, if not, reload validation with first field
13464                        // AND continue normal validation on present field
13465                        var classGroup = "[class*=" +rules[i + 1] +"]";
13466                        var firstOfGroup = form.find(classGroup).eq(0);
13467                        if(firstOfGroup[0] != field[0]){
13468                          methods._validateField(firstOfGroup, options, submitEvent);
13469                          options.showArrow = true;
13470                          continue;
13471                        }
13472                        errorMsg = methods._groupRequired(field, rules, i, options);
13473                        if(errorMsg) required = true;
13474                        options.showArrow = false;
13475                        break;
13476                    case "ajax":
13477                        // NETSAPIENS: patched from 2.6.2
13478                        // AJAX defaults to returning it's loading message
13479                        //errorMsg = methods._ajax(field, rules, i, options, submitEvent);
13480                        //if (errorMsg) {
13481                        //  promptType = "load";
13482                        //}
13483                        //methods._ajax(field, rules, i, options, submitEvent);
13484
13485                        isAjax = true;
13486                        var ajaxIdx = i;
13487
13488                        break;
13489                    case "minSize":
13490                        errorMsg = methods._minSize(field, rules, i, options);
13491                        break;
13492                    case "maxSize":
13493                        errorMsg = methods._maxSize(field, rules, i, options);
13494                        break;
13495                    case "min":
13496                        errorMsg = methods._min(field, rules, i, options);
13497                        break;
13498                    case "max":
13499                        errorMsg = methods._max(field, rules, i, options);
13500                        break;
13501                    case "past":
13502                        errorMsg = methods._past(field, rules, i, options);
13503                        break;
13504                    case "future":
13505                        errorMsg = methods._future(field, rules, i, options);
13506                        break;
13507                    case "dateRange":
13508                        var classGroup = "[class*=" + rules[i + 1] + "]";
13509                        var firstOfGroup = form.find(classGroup).eq(0);
13510                        var secondOfGroup = form.find(classGroup).eq(1);
13511
13512                        //if one entry out of the pair has value then proceed to run through validation
13513                        if (firstOfGroup[0].value || secondOfGroup[0].value) {
13514                            errorMsg = methods._dateRange(firstOfGroup, secondOfGroup, rules, i, options);
13515                        }
13516                        if (errorMsg) required = true;
13517                        //NETSAPIENS: changed showArrow from 'false' to 'true'
13518                        options.showArrow = true;
13519                        break;
13520
13521                    case "dateTimeRange":
13522                        var classGroup = "[class*=" + rules[i + 1] + "]";
13523                        var firstOfGroup = form.find(classGroup).eq(0);
13524                        var secondOfGroup = form.find(classGroup).eq(1);
13525
13526                        //if one entry out of the pair has value then proceed to run through validation
13527                        if (firstOfGroup[0].value || secondOfGroup[0].value) {
13528                            errorMsg = methods._dateTimeRange(firstOfGroup, secondOfGroup, rules, i, options);
13529                        }
13530                        if (errorMsg) required = true;
13531                        options.showArrow = false;
13532                        break;
13533                    //NETSAPIENS: custom case for time range
13534                    case "timeRange":
13535                        var classGroup = "[class*=" + rules[i + 1] + "]";
13536                        var firstOfGroup = form.find(classGroup).eq(0);
13537                        var secondOfGroup = form.find(classGroup).eq(1);
13538
13539                        //if one entry out of the pair has value then proceed to run through validation
13540                        if (firstOfGroup[0].value || secondOfGroup[0].value) {
13541                            errorMsg = methods._timeRange(firstOfGroup, secondOfGroup, rules, i, options);
13542                        }
13543                        if (errorMsg) required = true;
13544                        options.showArrow = true;
13545                        break;
13546                    //NETSAPIENS: changed selector from 'name' to 'rel'
13547                    case "maxCheckbox":
13548                        errorMsg = methods._maxCheckbox(form, field, rules, i, options);
13549                        field = $(form.find("input[rel='" + fieldName + "']"));
13550                        break;
13551                    //NETSAPIENS: changed selector from 'name' to 'rel'
13552                    case "minCheckbox":
13553                        errorMsg = methods._minCheckbox(form, field, rules, i, options);
13554                        field = $(form.find("input[rel='" + fieldName + "']"));
13555                        break;
13556                    case "minDateCount":
13557                        errorMsg = methods._minDateCount(form, field, rules, i, options);
13558                        if (errorMsg) required = true;
13559                        options.focusFirstField = false;
13560                        break;
13561                    case "minHolidayCount":
13562                        errorMsg = methods._minHolidayCount(form, field, rules, i, options);
13563                        if (errorMsg) required = true;
13564                        options.focusFirstField = false;
13565                        break;
13566                    case "maxWeekendCount":
13567                        errorMsg = methods._maxWeekendCount(form, field, rules, i, options);
13568                        required = true;
13569                        break;
13570                    case "minWeekendCount":
13571                        errorMsg = methods._minWeekendCount(form, field, rules, i, options);
13572                        required = true;
13573                        break;
13574                    case "badTime":
13575                        errorMsg = methods._badTime(field, rules, i, options);
13576                        if (errorMsg) required = true;
13577                        options.focusFirstField = false;
13578                        options.isError = true;
13579                        break;
13580                    case "badTimeOverlap":
13581                        errorMsg = methods._badTimeOverlap(field, rules, i, options);
13582                        if (errorMsg) required = true;
13583                        options.focusFirstField = false;
13584                        options.isError = true;
13585                        break;
13586                    case "badExtensionField":
13587                        errorMsg = methods._badExtensionField(field, rules, i, options);
13588                        if (errorMsg) required = true;
13589                        options.focusFirstField = false;
13590                        options.isError = true;
13591                        break;
13592                    case "badDateFormat":
13593                        errorMsg = methods._badDateFormat(field, rules, i, options);
13594                        if (errorMsg) required = true;
13595                        options.focusFirstField = false;
13596                        options.isError = true;
13597                        break;
13598                    case "badDate":
13599                        errorMsg = methods._badDate(field, rules, i, options);
13600                        options.focusFirstField = false;
13601                        options.isError = true;
13602                        break;
13603                    case "badHolidayEndDate":
13604                        errorMsg = methods._badHolidayEndDate(field, rules, i, options);
13605                        options.focusFirstField = false;
13606                        options.isError = true;
13607                        break;
13608                    case "badSdateEndDate":
13609                        errorMsg = methods._badSdateEndDate(field, rules, i, options);
13610                        options.focusFirstField = false;
13611                        options.isError = true;
13612                        break;
13613                    case "badDOWEndDate":
13614                        errorMsg = methods._badDOWEndDate(field, rules, i, options);
13615                        options.focusFirstField = false;
13616                        options.isError = true;
13617                        break;
13618                    case "equals":
13619                        errorMsg = methods._equals(field, rules, i, options);
13620                        break;
13621                    case "notEquals":
13622                        errorMsg = methods._notEquals(field, rules, i, options);
13623                        break;
13624                    case "funcCall":
13625                        errorMsg = methods._funcCall(field, rules, i, options);
13626                        break;
13627                    case "creditCard":
13628                        errorMsg = methods._creditCard(field, rules, i, options);
13629                        break;
13630
13631                    default:
13632                        break;
13633                    //$.error("jQueryValidator rule not found"+rules[i]);
13634                }
13635                if (errorMsg !== undefined) {
13636                    promptText += errorMsg + "<br/>";
13637                    options.isError = true;
13638                }
13639            }
13640            // If the rules required is not added, an empty field is not validated
13641            if(!required && field.val() == "") options.isError = false;
13642
13643            // Hack for radio/checkbox group button, the validation go into the
13644            // first radio/checkbox of the group
13645            var fieldType = field.prop("type");
13646            //NETSAPIENS: changed selector from 'name' to 'rel'
13647            if ((fieldType == "radio" || fieldType == "checkbox") && form.find("input[rel='" + fieldName + "']").length > 1) {
13648                field = $(form.find("input[rel='" + fieldName + "'][type!=hidden]:first"));
13649                options.showArrow = false;
13650            }
13651
13652            if (fieldType == "text" && form.find("input[rel='" + fieldName + "']").length > 1) {
13653                field = $(form.find("input[rel='" + fieldName + "'][type!=hidden]:first"));
13654                options.showArrow = false;
13655            }
13656
13657
13658            if (options.isError){
13659                //NETSAPIENS: patched from 2.6.2, added promptType (but doesn't look necessary for ajax validation so far)
13660                //NOTICE: this _showPrompt call causes conflict with the prompt that appears with ajax[] option
13661                methods._showPrompt(field, promptText, promptType, false, options);
13662            }else if (!options.isError && isAjax) {
13663                methods._ajax(field, rules, ajaxIdx, options, submitEvent);
13664            }else{
13665                if (!isAjaxValidator) methods._closePrompt(field);
13666            }
13667
13668            if (!isAjaxValidator) {
13669              field.trigger("jqv.field.result", [field, options.isError, promptText]);
13670            }
13671
13672            /* Record error */
13673            var errindex = $.inArray(field[0], options.InvalidFields);
13674            if (errindex == -1) {
13675                if (options.isError)
13676                    options.InvalidFields.push(field[0]);
13677            } else if (!options.isError) {
13678                options.InvalidFields.splice(errindex, 1);
13679            }
13680
13681            return options.isError;
13682        },
13683        /**
13684         * Required validation
13685         *
13686         * @param {jqObject} field
13687         * @param {Array[String]} rules
13688         * @param {int} i rules index
13689         * @param {Map}
13690         *            user options
13691         * @return an error string if validation failed
13692         */
13693        _required: function(field, rules, i, options) {
13694            switch (field.prop("type")) {
13695                case "text":
13696                case "password":
13697                case "textarea":
13698                case "file":
13699                default:
13700                    if (!field.val())
13701                        return options.allrules[rules[i]].alertText;
13702                    break;
13703                case "radio":
13704                case "checkbox":
13705					var form = field.closest("form");
13706                    var name = field.attr("name");
13707                    if (form.find("input[name='" + name + "']:checked").length == 0) {
13708                        if (form.find("input[name='" + name + "']").length == 1)
13709                            return options.allrules[rules[i]].alertTextCheckboxe;
13710                        else
13711                            return options.allrules[rules[i]].alertTextCheckboxMultiple;
13712                    }
13713                    break;
13714                // required for <select>
13715                case "select-one":
13716                    // added by [email protected] for select boxes, Thank y
13716ou
13717                    if (!field.val())
13718                        return options.allrules[rules[i]].alertText;
13719                    break;
13720                case "select-multiple":
13721                    // added by [email protected] for select boxes, Thank you
13722                    if (!field.find("option:selected").val())
13723                        return options.allrules[rules[i]].alertText;
13724                    break;
13725            }
13726        },
13727		/**
13728         * Validate that 1 from the group field is required
13729         *
13730         * @param {jqObject} field
13731         * @param {Array[String]} rules
13732         * @param {int} i rules index
13733         * @param {Map}
13734         *            user options
13735         * @return an error string if validation failed
13736         */
13737        _groupRequired: function(field, rules, i, options) {
13738            var classGroup = "[class*=" +rules[i + 1] +"]";
13739			var isValid = false;
13740			// Check all fields from the group
13741			field.closest("form").find(classGroup).each(function(){
13742				if(!methods._required($(this), rules, i, options)){
13743					isValid = true;
13744					return false;
13745				}
13746			})
13747
13748			if(!isValid) return options.allrules[rules[i]].alertText;
13749        },
13750        /**
13751         * Validate Regex rules
13752         *
13753         * @param {jqObject} field
13754         * @param {Array[String]} rules
13755         * @param {int} i rules index
13756         * @param {Map}
13757         *            user options
13758         * @return an error string if validation failed
13759         */
13760        _customRegex: function(field, rules, i, options) {
13761            var customRule = rules[i + 1];
13762			var rule = options.allrules[customRule];
13763			if(!rule) {
13764				alert("jqv:custom rule not found "+customRule);
13765				return;
13766			}
13767
13768			var ex=rule.regex;
13769			if(!ex) {
13770				alert("jqv:custom regex not found "+customRule);
13771				return;
13772			}
13773            var pattern = new RegExp(ex);
13774
13775            if (!pattern.test(field.val()))
13776                return options.allrules[customRule].alertText;
13777        },
13778        /**
13779         * Validate custom function outside of the engine scope
13780         *
13781         * @param {jqObject} field
13782         * @param {Array[String]} rules
13783         * @param {int} i rules index
13784         * @param {Map}
13785         *            user options
13786         * @return an error string if validation failed
13787         */
13788        _funcCall: function(field, rules, i, options) {
13789            var functionName = rules[i + 1];
13790            var fn = window[functionName] || options.customFunctions[functionName];
13791            if (typeof(fn) == 'function')
13792                return fn(field, rules, i, options);
13793
13794        },
13795        /**
13796         * Field match
13797         *
13798         * @param {jqObject} field
13799         * @param {Array[String]} rules
13800         * @param {int} i rules index
13801         * @param {Map}
13802         *            user options
13803         * @return an error string if validation failed
13804         */
13805        _equals: function(field, rules, i, options) {
13806            var equalsField = rules[i + 1];
13807
13808            if (field.val() != $("#" + equalsField).val())
13809                return options.allrules.equals.alertText;
13810        },
13811
13812        /**
13813         * Field match
13814         *
13815         * @param {jqObject} field
13816         * @param {Array[String]} rules
13817         * @param {int} i rules index
13818         * @param {Map}
13819         *            user options
13820         * @return an error string if validation failed
13821         */
13822        _notEquals: function(field, rules, i, options) {
13823            var equalsField = rules[i + 1];
13824
13825            if (field.val() === $("#" + equalsField).val())
13826                return options.allrules.notEquals.alertText;
13827        },
13828
13829        /**
13830         * Check the maximum size (in characters)
13831         *
13832         * @param {jqObject} field
13833         * @param {Array[String]} rules
13834         * @param {int} i rules index
13835         * @param {Map}
13836         *            user options
13837         * @return an error string if validation failed
13838         */
13839        _maxSize: function(field, rules, i, options) {
13840            var max = rules[i + 1];
13841            var len = field.val().length;
13842
13843            if (len > max) {
13844                var rule = options.allrules.maxSize;
13845                return rule.alertText + max + rule.alertText2;
13846            }
13847        },
13848        /**
13849         * Check the minimum size (in characters)
13850         *
13851         * @param {jqObject} field
13852         * @param {Array[String]} rules
13853         * @param {int} i rules index
13854         * @param {Map}
13855         *            user options
13856         * @return an error string if validation failed
13857         */
13858        _minSize: function(field, rules, i, options) {
13859            var min = rules[i + 1];
13860            var len = field.val().length;
13861
13862            if (len < min) {
13863                var rule = options.allrules.minSize;
13864                return rule.alertText + min + rule.alertText2;
13865            }
13866        },
13867        /**
13868         * Check number minimum value
13869         *
13870         * @param {jqObject} field
13871         * @param {Array[String]} rules
13872         * @param {int} i rules index
13873         * @param {Map}
13874         *            user options
13875         * @return an error string if validation failed
13876         */
13877        _min: function(field, rules, i, options) {
13878            var min = parseFloat(rules[i + 1]);
13879            var len = parseFloat(field.val());
13880
13881            if (len < min) {
13882                var rule = options.allrules.min;
13883                if (rule.alertText2) return rule.alertText + min + rule.alertText2;
13884                return rule.alertText + min;
13885            }
13886        },
13887        /**
13888         * Check number maximum value
13889         *
13890         * @param {jqObject} field
13891         * @param {Array[String]} rules
13892         * @param {int} i rules index
13893         * @param {Map}
13894         *            user options
13895         * @return an error string if validation failed
13896         */
13897        _max: function(field, rules, i, options) {
13898            var max = parseFloat(rules[i + 1]);
13899            var len = parseFloat(field.val());
13900
13901            if (len >max ) {
13902                var rule = options.allrules.max;
13903                if (rule.alertText2) return rule.alertText + max + rule.alertText2;
13904                //orefalo: to review, also do the translations
13905                return rule.alertText + max;
13906            }
13907        },
13908        /**
13909         * Checks date is in the past
13910         *
13911         * @param {jqObject} field
13912         * @param {Array[String]} rules
13913         * @param {int} i rules index
13914         * @param {Map}
13915         *            user options
13916         * @return an error string if validation failed
13917         */
13918        _past: function(field, rules, i, options) {
13919
13920            var p=rules[i + 1];
13921            var pdate = (p.toLowerCase() == "now")? new Date():methods._parseDate(p);
13922            var vdate = methods._parseDate(field.val());
13923
13924            if (vdate > pdate ) {
13925                var rule = options.allrules.past;
13926                if (rule.alertText2) return rule.alertText + methods._dateToString(pdate) + rule.alertText2;
13927                return rule.alertText + methods._dateToString(pdate);
13928            }
13929        },
13930        /**
13931         * Checks date is in the future
13932         *
13933         * @param {jqObject} field
13934         * @param {Array[String]} rules
13935         * @param {int} i rules index
13936         * @param {Map}
13937         *            user options
13938         * @return an error string if validation failed
13939         */
13940        _future: function(field, rules, i, options) {
13941
13942            var p=rules[i + 1];
13943            var pdate = (p.toLowerCase() == "now")? new Date():methods._parseDate(p);
13944            var vdate = methods._parseDate(field.val());
13945
13946            if (vdate < pdate ) {
13947                var rule = options.allrules.future;
13948                if (rule.alertText2) return rule.alertText + methods._dateToString(pdate) + rule.alertText2;
13949                return rule.alertText + methods._dateToString(pdate);
13950            }
13951        },
13952        /**
13953        * Checks if valid date
13954        *
13955        * @param {string} date string
13956        * @return a bool based on determination of valid date
13957        */
13958        _isDate: function (value) {
13959            var dateRegEx = new RegExp(/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?
13959:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/);
13960            if (dateRegEx.test(value)) {
13961                return true;
13962            }
13963            return false;
13964        },
13965        /**
13966        * Checks if valid date time
13967        *
13968        * @param {string} date string
13969        * @return a bool based on determination of valid date time
13970        */
13971        _isDateTime: function (value){
13972            var dateTimeRegEx = new RegExp(/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/);
13973            if (dateTimeRegEx.test(value)) {
13974                return true;
13975            }
13976            return false;
13977        },
13978        //NETSAPIENS: custom regex function for time, _isTime
13979        /**
13980        * Checks if valid date time
13981        *
13982        * @param {string} date string
13983        * @return a bool based on determination of valid date time
13984        */
13985        _isTime: function (value){
13986            var timeRegEx = new RegExp(/^(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$/);
13987            if (timeRegEx.test(value)) {
13988                return true;
13989            }
13990            return false;
13991        },
13992        //Checks if the start date is before the end date
13993        //returns true if end is later than start
13994        _dateCompare: function (start, end) {
13995            //NETSAPIENS: changed '<' to '<='
13996            return (new Date(start.toString()) <= new Date(end.toString()));
13997        },
13998        /**
13999        * Checks date range
14000        *
14001        * @param {jqObject} first field name
14002        * @param {jqObject} second field name
14003        * @return an error string if validation failed
14004        */
14005        _dateRange: function (first, second, rules, i, options) {
14006            //are not both populated
14007            if ((!first[0].value && second[0].value) || (first[0].value && !second[0].value)) {
14008                //NETSAPIENS: commented out because 'required' serves same purpose in this case
14009                //return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
14010                return;
14011            }
14012
14013            //are not both dates
14014            if (!methods._isDate(first[0].value) || !methods._isDate(second[0].value)) {
14015                return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
14016            }
14017
14018            //are both dates but range is off
14019            if (!methods._dateCompare(first[0].value, second[0].value)) {
14020                return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
14021            }
14022        },
14023
14024
14025        /**
14026        * Checks date time range
14027        *
14028        * @param {jqObject} first field name
14029        * @param {jqObject} second field name
14030        * @return an error string if validation failed
14031        */
14032        _dateTimeRange: function (first, second, rules, i, options) {
14033            //are not both populated
14034            if ((!first[0].value && second[0].value) || (first[0].value && !second[0].value)) {
14035                return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
14036            }
14037            //are not both dates
14038            if (!methods._isDateTime(first[0].value) || !methods._isDateTime(second[0].value)) {
14039                return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
14040            }
14041            //are both dates but range is off
14042            if (!methods._dateCompare(first[0].value, second[0].value)) {
14043                return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
14044            }
14045        },
14046        //NETSAPIENS: added custom time range function, _timeRange
14047        /**
14048        * Checks time range
14049        *
14050        * @param {jqObject} first field name
14051        * @param {jqObject} second field name
14052        * @return an error string if validation failed
14053        */
14054        _timeRange: function (first, second, rules, i, options) {
14055            //are not both populated
14056            if ((!first[0].value && second[0].value) || (first[0].value && !second[0].value)) {
14057                return;
14058            }
14059            //are not both times
14060            if (!methods._isTime(first[0].value) || !methods._isTime(second[0].value)) {
14061                return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
14062            }
14063            //are both times but range is off
14064            if (!methods._dateCompare('12/12/12 ' + first[0].value, '12/12/12 ' + second[0].value)) {
14065                return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
14066            }
14067        },
14068        /**
14069         * Max number of checkbox selected
14070         *
14071         * @param {jqObject} field
14072         * @param {Array[String]} rules
14073         * @param {int} i rules index
14074         * @param {Map}
14075         *            user options
14076         * @return an error string if validation failed
14077         */
14078        _maxCheckbox: function(form, field, rules, i, options) {
14079
14080            var nbCheck = rules[i + 1];
14081            var groupname = field.attr("name");
14082            var groupSize = form.find("input[name='" + groupname + "']:checked").length;
14083            if (groupSize > nbCheck) {
14084                options.showArrow = false;
14085                if (options.allrules.maxCheckbox.alertText2) return options.allrules.maxCheckbox.alertText + " " + nbCheck + " " + options.allrules.maxCheckbox.alertText2;
14086                return options.allrules.maxCheckbox.alertText;
14087            }
14088        },
14089        /**
14090         * Min number of checkbox selected
14091         *
14092         * @param {jqObject} field
14093         * @param {Array[String]} rules
14094         * @param {int} i rules index
14095         * @param {Map}
14096         *            user options
14097         * @return an error string if validation failed
14098         */
14099        _minCheckbox: function(form, field, rules, i, options) {
14100			//NETSAPIENS: changed selector from 'name' to 'rel'
14101            var nbCheck = rules[i + 1];
14102            var groupname = field.attr("rel");
14103            var groupSize = form.find("input[rel='" + groupname + "']:checked").length;
14104            if (groupSize < nbCheck) {
14105                options.showArrow = false;
14106                return options.allrules.minCheckbox.alertText + " " + nbCheck + " " + options.allrules.minCheckbox.alertText2;
14107            }
14108        },
14109        _minDateCount: function(form, field, rules, i, options) {
14110            // Search for the startDate-0 input in the entire document
14111            var startDateInput = $(document).find('#startDate-0');
14112            var value = startDateInput.val(); // Get the value of the input
14113
14114            // make sure to allow edit (prefilled on the grid)
14115            var startDateInputPrefilled = $(document).find('#TimeframeSpecificDates0StartDate');
14116            var valuePrefilled = startDateInputPrefilled.val(); // Get the value of the input
14117
14118            // Check for any other prefilled in case of multiple date ranges by checking for any inputs with data-class attribute 'prefilledTimeframeSpecificDates'
14119            var startDateInputsWithDataClass = $(document).find("[data-class='prefilledTimeframeSpecificDates']");
14120
14121            // If any exists, return
14122            if (startDateInputsWithDataClass.length > 0) {
14123                return;
14124            }
14125
14126            // for if added a date and then removed it, shoudl check against more than just startDate-0
14127            var startDateAddedGrid = $(document).find('.startDateAddedGrid');
14128            if (startDateAddedGrid.length > 0) {
14129                return;
14130            }
14131
14132            // Check if the input exists and is not blank
14133            if ((startDateInput.length > 0 || startDateInputPrefilled.length > 0) && (value !== '' || valuePrefilled !== '')) {
14134            } else {
14135                // If the condition is not met, return the appropriate error message
14136                return options.allrules.minDateCount.alertText; // Ensure this rule exists in your options.allrules object
14137            }
14138        },
14139        _minHolidayCount: function(form, field, rules, i, options) {
14140            // Search for elements with the class .holiday-name-grid in the entire document
14141            var holidayNameInputs = $(document).find('.holiday-name-grid');
14142        
14143            // Check if at least one element exists
14144            if (holidayNameInputs.length > 0) {
14145                // At least one .holiday-name-grid element exists, no error message needed
14146            } else {
14147                // If no elements found, return the appropriate error message
14148                return options.allrules.minHolidayCount.alertText; // Ensure this rule exists in your options.allrules object
14149            }
14150        },
14151        _maxWeekendCount: function(form, field, rules, i, options) {
14152            var nbCheck = rules[i + 1];
14153            var groupname = field.attr("rel");
14154            var groupSize = form.find("input[rel='" + groupname + "']:checked").length;
14155            if (groupSize <= nbCheck) {
14156                options.showArrow = false;
14157                return options.allrules.maxWeekendCount.alertText + " " + nbCheck + " " + options.allrules.maxWeekendCount.alertText2;
14158            }
14159        },
14160        _minWeekendCount: function(form, field, rules, i, options) {
14161            var nbCheck = rules[i + 1];
14162            var groupname = field.attr("rel");
14163            var groupSize = form.find("input[rel='" + groupname + "']:not(:checked)").length;
14164
14165            if (groupSize < nbCheck) {
14166                options.showArrow = false;
14167                return options.allrules.minWeekendCount.alertText + " " + nbCheck + " " + options.allrules.minWeekendCount.alertText2;
14168            }
14169        },
14170        _badTime: function(field, rules, i, options) {
14171            return options.allrules.badTime.alertText;
14172        },
14173        _badTimeOverlap: function(field, rules, i, options) {
14174            return options.allrules.badTimeOverlap.alertText;
14175        },
14176        _badExtensionField: function(field, rules, i, options) {
14177            return options.allrules.badExtensionField.alertText;
14178        },
14179        _badDateFormat: function(field, rules, i, options) {
14180            return options.allrules.badDateFormat.alertText;
14181        },
14182        _badDate: function(field, rules, i, options) {
14183            return options.allrules.badDate.alertText;
14184        },
14185        _badHolidayEndDate: function(field, rules, i, options) {
14186            return options.allrules.badHolidayEndDate.alertText;
14187        },
14188        _badSdateEndDate: function(field, rules, i, options) {
14189            return options.allrules.badSdateEndDate.alertText;
14190        },
14191        _badDOWEndDate: function(field, rules, i, options) {
14192            return options.allrules.badDOWEndDate.alertText;
14193        },
14194        /**
14195         * Checks that it is a valid credit card number according to the
14196         * Luhn checksum algorithm.
14197         *
14198         * @param {jqObject} field
14199         * @param {Array[String]} rules
14200         * @param {int} i rules index
14201         * @param {Map}
14202         *            user options
14203         * @return an error string if validation failed
14204         */
14205        _creditCard: function(field, rules, i, options) {
14206            //spaces and dashes may be valid characters, but must be stripped to calculate the checksum.
14207            var valid = false, cardNumber = field.val().replace(/ +/g, '').replace(/-+/g, '');
14208
14209            var numDigits = cardNumber.length;
14210            if (numDigits >= 14 && numDigits <= 16 && parseInt(cardNumber) > 0) {
14211
14212                var sum = 0, i = numDigits - 1, pos = 1, digit, luhn = new String();
14213                do {
14214                    digit = parseInt(cardNumber.charAt(i));
14215                    luhn += (pos++ % 2 == 0) ? digit * 2 : digit;
14216                } while (--i >= 0)
14217
14218                for (i = 0; i < luhn.length; i++) {
14219                    sum += parseInt(luhn.charAt(i));
14220                }
14221                valid = sum % 10 == 0;
14222            }
14223            if (!valid) return options.allrules.creditCard.alertText;
14224        },
14225        /**
14226         * Ajax field validation
14227         *
14228         * @param {jqObject} field
14229         * @param {Array[String]} rules
14230         * @param {int} i rules index
14231         * @param {Map}
14232         *            user options
14233         * @return nothing! the ajax validator handles the prompts itself
14234         */
14235        _ajax: function(field, rules, i, options, submitEvent) {
14236
14237            var errorSelector = rules[i + 1];
14238            var rule = options.allrules[errorSelector];
14239            var extraData = rule.extraData;
14240            var extraDataDynamic = rule.extraDataDynamic;
14241
14242            if (typeof submitEvent == 'undefined') {
14243                submitEvent = false;
14244            }
14245
14246            if (!options.isError) {
14247                // password validation values can potentially have hazardous characters,
14248                // so we need to encode fieldValue before passing it through. however,
14249                // I did not want to risk breaking unrelated validation rules so we'll
14250                // only encode the password validation ruleset specifically.
14251                var encodableRules = [
14252                    "/portal/resets/validateSecurePassword",
14253                    "/portal/users/validateField",
14254                    "/portal/resets/validateVMPin"
14255                ];
14256
14257                var data = {
14258                    'fieldId': field.attr("id"),
14259                    'fieldValue': field.val(),
14260                    'extraData': extraData
14261                }
14262
14263                if (extraDataDynamic) {
14264                    var tmpData = [];
14265                    var domIds = String(extraDataDynamic).split(",");
14266                    for (var i = 0; i < domIds.length; i++) {
14267                        var id = domIds[i];
14268                        if ($(id).length) {
14269                            var paramName = id.replace('#', '');
14270                            var inputValue = field.closest('form').find(id).val();
14271                            var paramVal = escape(inputValue);
14272
14273                            data[paramName] = paramVal;
14274                        }
14275                    }
14276                }
14277
14278                $.ajax({
14279                    type: 'POST',
14280                    url: rule.url,
14281                    async: !submitEvent, //NETSAPIENS: added async option for form submits. Waits for "get" to complete before proceeding
14282                    cache: false,
14283                    dataType: 'json',
14284                    data: data,
14285                    field: field,
14286                    rule: rule,
14287                    methods: methods,
14288                    options: options,
14289                    //beforeSend: function() {
14290                    //    // build the loading prompt
14291                    //    var loadingText = rule.alertTextLoad;
14292                    //    if (loadingText)
14293                    //        methods._showPrompt(field, loadingText, "load", true, options);
14294                    //},
14295                    error: function(res, transport) {
14296                        methods._ajaxError(res, transport);
14297                    },
14298                    success: function(json) {
14299                        if( json === null ) return false;
14300
14301                        // asynchronously called on success, data is the json answer from the server
14302                        var errorFieldId = json[0];
14303                        var errorField = $($("#" + errorFieldId)[0]);
14304                        // make sure we found the element
14305                        if (errorField.length == 1) {
14306                            var status = json[1];
14307                            // read the optional msg from the server
14308                            var msg = json[2];
14309                            if (!status) {
14310                                // Houston we got a problem - display an red prompt
14311                                //log("ajax validation status: " + status);
14312                                options.ajaxValidCache[errorFieldId] = false;
14313                                options.isError = true;
14314
14315                                // resolve the msg prompt
14316                                if(msg) {
14317                                  if (options.allrules[msg]) {
14318                                    var txt = options.allrules[msg].alertText;
14319                                    if (txt)
14320                                      msg = txt;
14321                                  }
14322                                }
14323                                else
14324                                    msg = rule.alertText;
14325
14326                                methods._showPrompt(errorField, msg, "", true, options);
14327                            }
14328                            else {
14329                                if (options.ajaxValidCache[errorFieldId] !== undefined)
14330                                    options.ajaxValidCache[errorFieldId] = true;
14331
14332                                // resolves the msg prompt
14333                                if(msg) {
14334                                  if (options.allrules[msg]) {
14335                                          var txt = options.allrules[msg].alertTextOk;
14336                                          if (txt)
14337                                            msg = txt;
14338                                      }
14339                                }
14340                                else
14341                                      msg = rule.alertTextOk;
14342
14343                                // see if we should display a green prompt
14344                                if (msg)
14345                                    methods._showPrompt(errorField, msg, "pass", true, options);
14346                                else
14347                                    methods._closePrompt(errorField);
14348                            }
14349                        }
14350                        errorField.trigger("jqv.field.result", [errorField, !options.isError, msg]);
14351                    }
14352                });
14353
14354
14355            }
14356        },
14357        /**
14358         * Common method to handle ajax errors
14359         *
14360         * @param {Object} data
14361         * @param {Object} transport
14362         */
14363        _ajaxError: function(data, transport) {
14364            if(data.status == 0 && transport == null)
14365                alert("The page is not served from a server! ajax call failed");
14366            else if(typeof console != "undefined")
14367                console.log("Ajax error: " + data.status + " " + transport);
14368        },
14369        /**
14370         * date -> string
14371         *
14372         * @param {Object} date
14373         */
14374        _dateToString: function(date) {
14375
14376            return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
14377        },
14378        /**
14379         * Parses an ISO date
14380         * @param {String} d
14381         */
14382        _parseDate: function(d) {
14383
14384            var dateParts = d.split("-");
14385            if(dateParts==d)
14386                dateParts = d.split("/");
14387            return new Date(dateParts[0], (dateParts[1] - 1) ,dateParts[2]);
14388        },
14389        /**
14390         * Builds or updates a prompt with the given information
14391         *
14392         * @param {jqObject} field
14393         * @param {String} promptText html text to display type
14394         * @param {String} type the type of bubble: 'pass' (green), 'load' (black) anything else (red)
14395         * @param {boolean} ajaxed - use to mark fields than being validated with ajax
14396         * @param {Map} options user options
14397         */
14398        _showPrompt: function(field, promptText, type, ajaxed, options, ajaxform) {
14399            log("showPrompt called with: " + promptText)
14400
14401            var prompt = methods._getPrompt(field);
14402            // The ajax submit errors are not see has an error in the form,
14403            // When the form errors are returned, the engine see 2 bubbles, but those are ebing closed by the engine at the same time
14404            // Because no error was found befor submitting
14405            if(ajaxform) prompt = false;
14406                  if (prompt)
14407                      methods._updatePrompt(field, prompt, promptText, type, ajaxed, options);
14408                  else
14409                      methods._buildPrompt(field, promptText, type, ajaxed, options);
14410              },
14411        /**
14412         * Builds and shades a prompt for the given field.
14413         *
14414         * @param {jqObject} field
14415         * @param {String} promptText html text to display type
14416         * @param {String} type the type of bubble: 'pass' (green), 'load' (black) anything else (red)
14417         * @param {boolean} ajaxed - use to mark fields than being validated with ajax
14418         * @param {Map} options user options
14419         */
14420        _buildPrompt: function(field, promptText, type, ajaxed, options) {
14421
14422            // create the prompt
14423            var prompt = $('<div>');
14424            prompt.addClass(methods._getClassName(field.attr("id")) + "formError");
14425            // add a class name to identify the parent form of the prompt
14426            if(field.is(":input")) prompt.addClass("parentForm"+methods._getClassName(field.parents('form').attr("id")));
14427            prompt.addClass("formError");
14428
14429            switch (type) {
14430                case "pass":
14431                    prompt.addClass("greenPopup");
14432                    break;
14433                case "load":
14434                    prompt.addClass("blackPopup");
14435                    break;
14436                default:
14437                    /* it has error  */
14438                    options.InvalidCount++;
14439            }
14440            if (ajaxed)
14441                prompt.addClass("ajaxed");
14442
14443            // create the prompt content
14444            var promptContent = $('<div>').addClass("formErrorContent").html(promptText).appendTo(prompt);
14445            // create the css arrow pointing at the field
14446            // note that there is no triangle on max-checkbox and radio
14447            if (options.showArrow) {
14448                var arrow = $('<div>').addClass("formErrorArrow");
14449
14450				//prompt positioning adjustment support. Usage: positionType:Xshift,Yshift (for ex.: bottomLeft:+20 or bottomLeft:-20,+10)
14451				var positionType=field.data("promptPosition") || options.promptPosition;
14452				if (typeof(positionType)=='string') {
14453					if (positionType.indexOf(":")!=-1) {
14454						positionType=positionType.substring(0,positionType.indexOf(":"));
14455					};
14456				};
14457
14458
14459                switch (positionType) {
14460                    case "bottomLeft":
14461                    case "bottomRight":
14462                        prompt.find(".formErrorContent").before(arrow);
14463                        arrow.addClass("formErrorArrowBottom").html('<div class="line1"><!-- --></div><div class="line2"><!-- --></div><div class="line3"><!-- --></div><div class="line4"><!-- --></div><div class="line5"><!-- --></div><div class="line6"><!-- --></div><div class="line7"><!-- --></div><div class="line8"><!-- --></div><div class="line9"><!-- --></div><div class="line10"><!-- --></div>');
14464                        break;
14465                    case "topLeft":
14466                    case "topRight":
14467                        arrow.html('<div class="line10"><!-- --></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div><div class="line2"><!-- --></div><div class="line1"><!-- --></div>');
14468                        prompt.append(arrow);
14469                        break;
14470                }
14471            }
14472
14473    	    if (options.relative) {
14474        		// empty relative span does not disturb page layout
14475        		// prompt positioned absolute to relative span
14476        		// vertical-align:top so position calculations are the same as isOverflown
14477        		var outer = $('<span>').css('position','relative').css('vertical-align','top').addClass('formErrorOuter').append(prompt.css('position','absolute'));
14478        		field.before(outer);
14479    	    } else if (options.isOverflown) {
14480                //Cedric: Needed if a container is in position:relative
14481                // insert prompt in the form or in the overflown container?
14482                	field.before(prompt);
14483                } else {
14484                   $("body").append(prompt);
14485    	    }
14486
14487            var pos = methods._calculatePosition(field, prompt, options);
14488
14489            prompt.css({
14490                "top": pos.callerTopPosition,
14491                "left": pos.callerleftPosition,
14492                "marginTop": pos.marginTopSize,
14493                "opacity": 0
14494            }).data("callerField", field);
14495
14496			if (options.autoHidePrompt) {
14497                setTimeout(function(){
14498                    prompt.animate({
14499                       "opacity": 0
14500                    },function(){
14501                        prompt.closest('.formErrorOuter').remove();
14502                        prompt.remove();
14503                    })
14504                }, options.autoHideDelay)
14505                return prompt.animate({
14506				   "opacity": 0.87
14507				})
14508			} else {
14509				return prompt.animate({
14510				   "opacity": 0.87
14511				});
14512            }
14513        },
14514        /**
14515         * Updates the prompt text field - the field for which the prompt
14516         * @param {jqObject} field
14517         * @param {String} promptText html text to display type
14518         * @param {String} type the type of bubble: 'pass' (green), 'load' (black) anything else (red)
14519         * @param {boolean} ajaxed - use to mark fields than being validated with ajax
14520         * @param {Map} options user options
14521         */
14522        _updatePrompt: function(field, prompt, promptText, type, ajaxed, options, noAnimation) {
14523
14524            if (prompt) {
14525				if (typeof type !== "undefined") {
14526	            	if (type == "pass")
14527        	            prompt.addClass("greenPopup");
14528                	else
14529					    prompt.removeClass("greenPopup");
14530
14531					if (type == "load")
14532					    prompt.addClass("blackPopup");
14533					else
14534					    prompt.removeClass("blackPopup");
14535				}
14536				if (ajaxed)
14537				    prompt.addClass("ajaxed");
14538				else
14539				    prompt.removeClass("ajaxed");
14540
14541                prompt.find(".formErrorContent").html(promptText);
14542
14543                var pos = methods._calculatePosition(field, prompt, options);
14544				css = {"top": pos.callerTopPosition,
14545		               "left": pos.callerleftPosition,
14546		               "marginTop": pos.marginTopSize};
14547
14548				if (noAnimation)
14549				 	prompt.css(css);
14550				else
14551				 	prompt.animate(css)
14552            }
14553        },
14554        /**
14555         * Closes the prompt associated with the given field
14556         *
14557         * @param {jqObject}
14558         *            field
14559         */
14560        _closePrompt: function(field) {
14561
14562            var prompt = methods._getPrompt(field);
14563            if (prompt)
14564                prompt.fadeTo("fast", 0, function() {
14565		    prompt.parent('.formErrorOuter').remove();
14566                    prompt.remove();
14567                });
14568        },
14569        closePrompt: function(field) {
14570            return methods._closePrompt(field);
14571        },
14572        /**
14573         * Returns the error prompt matching the field if any
14574         *
14575         * @param {jqObject}
14576         *            field
14577         * @return undefined or the error prompt (jqObject)
14578         */
14579  		  _getPrompt: function(field) {
14580		    var className = methods._getClassName(field.attr("id")) + "formError";
14581		    var match = $("." + methods._escapeExpression(className))[0];
14582		    if (match)
14583		      return $(match);
14584		  },
14585         /**
14586         * Returns the escapade classname
14587         *
14588         * @param {selector}
14589         *            className
14590         */
14591		  _escapeExpression: function (selector) {
14592		    return selector.replace(/([#;&,\.\+\*\~':"\!\^$\[\]\(\)=>\|])/g, "\\$1");
14593		  },
14594		/**
14595		 * returns true if we are in a RTLed document
14596		 *
14597		 * @param {jqObject} field
14598		 */
14599		isRTL: function(field)
14600		{
14601			var $document = $(document);
14602			var $body = $('body');
14603			var rtl =
14604				(field && field.hasClass('rtl')) ||
14605				(field && (field.attr('dir') || '').toLowerCase()==='rtl') ||
14606				$document.hasClass('rtl') ||
14607				($document.attr('dir') || '').toLowerCase()==='rtl' ||
14608				$body.hasClass('rtl') ||
14609				($body.attr('dir') || '').toLowerCase()==='rtl';
14610			return Boolean(rtl);
14611		},
14612        /**
14613        * Calculates prompt position
14614        *
14615        * @param {jqObject}
14616        *            field
14617        * @param {jqObject}
14618        *            the prompt
14619        * @param {Map}
14620        *            options
14621        * @return positions
14622        */
14623        _calculatePosition: function (field, promptElmt, options) {
14624
14625            var promptTopPosition, promptleftPosition, marginTopSize;
14626            var fieldWidth = field.width();
14627            var promptHeight = promptElmt.height();
14628
14629            var overflow = options.isOverflown || options.relative;
14630            if (overflow) {
14631                // is the form contained in an overflown container?
14632                promptTopPosition = promptleftPosition = 0;
14633                // compensation for the arrow
14634                marginTopSize = -promptHeight;
14635            } else {
14636                var offset = field.offset();
14637                promptTopPosition = offset.top;
14638                promptleftPosition = offset.left;
14639                marginTopSize = 0;
14640            }
14641
14642			//prompt positioning adjustment support
14643			//now you can adjust prompt position
14644			//usage: positionType:Xshift,Yshift
14645			//for example:
14646			//   bottomLeft:+20 means bottomLeft position shifted by 20 pixels right horizontally
14647			//   topRight:20, -15 means topRight position shifted by 20 pixels to right and 15 pixels to top
14648			//You can use +pixels, - pixels. If no sign is provided than + is default.
14649			var positionType=field.data("promptPosition") || options.promptPosition;
14650			var shift1="";
14651			var shift2="";
14652			var shiftX=0;
14653			var shiftY=0;
14654			if (typeof(positionType)=='string') {
14655			//do we have any position adjustments ?
14656				if (positionType.indexOf(":")!=-1) {
14657					shift1=positionType.substring(positionType.indexOf(":")+1);
14658					positionType=positionType.substring(0,positionType.indexOf(":"));
14659
14660					//if any advanced positioning will be needed (percents or something else) - parser should be added here
14661					//for now we use simple parseInt()
14662
14663					//do we have second parameter?
14664					if (shift1.indexOf(",")!=-1) {
14665						shift2=shift1.substring(shift1.indexOf(",")+1);
14666						shift1=shift1.substring(0,shift1.indexOf(","));
14667						shiftY=parseInt(shift2);
14668						if (isNaN(shiftY)) {shiftY=0;};
14669					};
14670
14671					shiftX=parseInt(shift1);
14672					if (isNaN(shift1)) {shift1=0;};
14673
14674				};
14675			};
14676
14677			if(!methods.isRTL(field))
14678			{
14679				switch (positionType) {
14680					default:
14681					case "topRight":
14682						if (overflow)
14683							// Is the form contained in an overflown container?
14684							promptleftPosition += fieldWidth - 30;
14685						else {
14686							promptleftPosition += fieldWidth - 30;
14687							promptTopPosition += -promptHeight -2;
14688						}
14689						break;
14690					case "topLeft":
14691						promptTopPosition += -promptHeight - 10;
14692						break;
14693					case "centerRight":
14694						if (overflow) {
14695                            promptTopPosition=field.outerHeight();
14696                            promptleftPosition=field.outerWidth(1)+5;
14697                        } else {
14698                            promptleftPosition+=field.outerWidth()+5;
14699                        }
14700						break;
14701					case "centerLeft":
14702						promptleftPosition -= promptElmt.width() + 2;
14703						break;
14704					case "bottomLeft":
14705						promptTopPosition += field.height() + 8;
14706						break;
14707					case "bottomRight":
14708						promptleftPosition += fieldWidth - 30;
14709						promptTopPosition += field.height() + 5;
14710				}
14711			}
14712			else
14713			{
14714				switch (positionType) {
14715					default:
14716					case "topLeft":
14717						if (overflow)
14718							// Is the form contained in an overflown container?
14719							promptleftPosition -= promptElmt.width() - 30;
14720						else {
14721							promptleftPosition -= promptElmt.width() - 30;
14722							promptTopPosition += -promptHeight -2;
14723						}
14724						break;
14725					case "topRight":
14726						if (overflow)
14727							// Is the form contained in an overflown container?
14728							promptleftPosition += fieldWidth - promptElmt.width();
14729						else {
14730							promptleftPosition += fieldWidth - promptElmt.width();
14731							promptTopPosition += -promptHeight -2;
14732						}
14733						break;
14734					case "centerRight":
14735						if (overflow) {
14736                            promptTopPosition=field.outerHeight();
14737                            promptleftPosition=field.outerWidth(1)+5;
14738                        } else {
14739                            promptleftPosition+=field.outerWidth()+5;
14740                        }
14741						break;
14742					case "centerLeft":
14743						promptleftPosition -= promptElmt.width() + 2;
14744						break;
14745					case "bottomLeft":
14746						promptleftPosition += -promptElmt.width() + 30;
14747						promptTopPosition = promptTopPosition + field.height() + 8;
14748						break;
14749					case "bottomRight":
14750						promptleftPosition += fieldWidth - promptElmt.width();
14751						promptTopPosition += field.height() + 8;
14752				}
14753			}
14754
14755            var bodyScroll = parseInt( $('.page-container').offset().top, 10 ); // get the vertical scroll offset of body
14756
14757            //apply adjusments if any
14758            promptleftPosition += shiftX;
14759            promptTopPosition  += shiftY;
14760
14761            return {
14762                "callerTopPosition": promptTopPosition + "px",
14763                "callerleftPosition": promptleftPosition + "px",
14764                "marginTopSize": marginTopSize + "px"
14765            };
14766        },
14767        /**
14768         * Saves the user options and variables in the form.data
14769         *
14770         * @param {jqObject}
14771         *            form - the form where the user option should be saved
14772         * @param {Map}
14773         *            options - the user options
14774         * @return the user options (extended from the defaults)
14775         */
14776        _saveOptions: function(form, options) {
14777
14778            // is there a language localisation ?
14779            if ($.validationEngineLanguage)
14780                var allRules = $.validationEngineLanguage.allRules;
14781            else
14782                $.error("jQuery.validationEngine rules are not loaded, plz add localization files to the page");
14783			// --- Internals DO NOT TOUCH or OVERLOAD ---
14784			// validation rules and i18
14785			$.validationEngine.defaults.allrules = allRules;
14786
14787            var userOptions = $.extend(true,{},$.validationEngine.defaults,options);
14788			jim = userOptions;
14789            // Needed to be retro compatible
14790            if (userOptions.isOverflown) userOptions.relative = true;
14791            if (userOptions.relative) userOptions.isOverflown = true;
14792
14793            form.data('jqv', userOptions);
14794            return userOptions;
14795        },
14796
14797        /**
14798         * Removes forbidden characters from class name
14799         * @param {String} className
14800         */
14801        _getClassName: function(className) {
14802        	if(className) {
14803                return className.replace(/:/g, "_").replace(/\./g, "_");
14804            }
14805        }
14806    };
14807
14808    /**
14809     * Plugin entry point.
14810     * You may pass an action as a parameter or a list of options.
14811     * if none, the init and attach methods are being called.
14812     * Remember: if you pass options, the attached method is NOT called automatically
14813     *
14814     * @param {String}
14815     *            method (optional) action
14816     */
14817    $.fn.validationEngine = function(method) {
14818
14819        var form = $(this);
14820		if(!form[0]) return false;  // stop here if the form does not exist
14821
14822        if (typeof(method) == 'string' && method.charAt(0) != '_' && methods[method]) {
14823
14824            // make sure init is called once
14825            if(method != "showPrompt" && method != "hidePrompt" && method != "hide" && method != "hideAll")
14826            	methods.init.apply(form);
14827
14828            return methods[method].apply(form, Array.prototype.slice.call(arguments, 1));
14829        } else if (typeof method == 'object' || !method) {
14830
14831            // default constructor with or without arguments
14832			methods.init.apply(form, arguments);
14833            return methods.attach.apply(form);
14834        } else {
14835            $.error('Method ' + method + ' does not exist in jQuery.validationEngine');
14836        }
14837    };
14838
14839
14840
14841	// LEAK GLOBAL OPTIONS
14842	$.validationEngine= {defaults:{
14843
14844        // Name of the event triggering field validation
14845        validationEventTrigger: "blur",
14846        // Automatically scroll viewport to the first error
14847        scroll: true,
14848		// Focus on the first input
14849		focusFirstField:true,
14850        // Opening box position, possible locations are: topLeft,
14851        // topRight, bottomLeft, centerRight, bottomRight
14852        promptPosition: "topRight",
14853        bindMethod:"bind",
14854		// internal, automatically set to true when it parse a _ajax rule
14855		inlineAjax: false,
14856        // if set to true, the form data is sent asynchronously via ajax to the form.action url (get)
14857        ajaxFormValidation: false,
14858        // Ajax form validation callback method: boolean onComplete(form, status, errors, options)
14859        // retuns false if the form.submit event needs to be canceled.
14860		ajaxFormValidationURL: false,
14861        // The url to send the submit ajax validation (default to action)
14862        onAjaxFormComplete: $.noop,
14863        // called right before the ajax call, may return false to cancel
14864        onBeforeAjaxFormValidation: $.noop,
14865        // Stops form from submitting and execute function assiciated with it
14866        onValidationComplete: false,
14867
14868	    // better relative positioning
14869	    relative: false,
14870        // Used when the form is displayed within a scrolling DIV
14871        isOverflown: false,
14872        overflownDIV: "",
14873
14874		// Used when you have a form fields too close and the errors messages are on top of other disturbing viewing messages
14875        doNotShowAllErrosOnSubmit: false,
14876
14877        // true when form and fields are binded
14878        binded: false,
14879        // set to true, when the prompt arrow needs to be displayed
14880        showArrow: true,
14881        // did one of the validation fail ? kept global to stop further ajax validations
14882        isError: false,
14883        // Caches field validation status, typically only bad status are created.
14884        // the array is used during ajax form validation to detect issues early and prevent an expensive submit
14885        ajaxValidCache: {},
14886        // Auto update prompt position after window resize
14887		autoPositionUpdate: false,
14888
14889        InvalidFields: [],
14890		onSuccess: false,
14891		onFailure: false,
14892		// Auto-hide prompt
14893		autoHidePrompt: false,
14894		// Delay before auto-hide
14895		autoHideDelay: 10000
14896    }};
14897	$(function(){$.validationEngine.defaults.promptPosition = methods.isRTL()?'topLeft':"topRight"});
14898})(jQuery);
14899
14900�/*!
14901 * jQuery Cookie Plugin v1.3
14902 * https://github.com/carhartl/jquery-cookie
14903 *
14904 * Copyright 2011, Klaus Hartl
14905 * Dual licensed under the MIT or GPL Version 2 licenses.
14906 * http://www.opensource.org/licenses/mit-license.php
14907 * http://www.opensource.org/licenses/GPL-2.0
14908 */
14909(function ($, document, undefined) {
14910
14911	var pluses = /\+/g;
14912
14913	function raw(s) {
14914		return s;
14915	}
14916
14917	function decoded(s) {
14918		return decodeURIComponent(s.replace(pluses, ' '));
14919	}
14920
14921	var config = $.cookie = function (key, value, options) {
14922
14923		// write
14924		if (value !== undefined) {
14925			options = $.extend({}, config.defaults, options);
14926
14927			if (value === null) {
14928				options.expires = -1;
14929			}
14930
14931			if (typeof options.expires === 'number') {
14932				var days = options.expires, t = options.expires = new Date();
14933				t.setDate(t.getDate() + days);
14934			}
14935
14936			value = config.json ? JSON.stringify(value) : String(value);
14937
14938			if (typeof options.secure === 'undefined') {
14939				options.secure = true;
14940			}
14941
14942			return (document.cookie = [
14943				encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
14944				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
14945				options.path    ? '; path=' + options.path : '',
14946				options.domain  ? '; domain=' + options.domain : '',
14947				options.sameSite ? '; SameSite=' + options.sameSite : '; SameSite=Lax',
14948				options.secure  ? '; secure' : ''
14949			].join(''));
14950		}
14951
14952		// read
14953		var decode = config.raw ? raw : decoded;
14954		var cookies = document.cookie.split('; ');
14955		for (var i = 0, l = cookies.length; i < l; i++) {
14956			var parts = cookies[i].split('=');
14957			if (decode(parts.shift()) === key) {
14958				var cookie = decode(parts.join('='));
14959				return config.json ? JSON.parse(cookie) : cookie;
14960			}
14961		}
14962
14963		return null;
14964	};
14965
14966	config.defaults = {};
14967
14968	$.removeCookie = function (key, options) {
14969		if ($.cookie(key) !== null) {
14970			$.cookie(key, null, options);
14971			return true;
14972		}
14973		return false;
14974	};
14975
14976})(jQuery, document);
14977
14978�/* jQuery Storage API Plugin 1.6.0 https://github.com/julien-maurel/jQuery-Storage-API */
14979!function(e){function t(t){var r,n,i,o=arguments.length,s=window[t],a=arguments,u=a[1];if(2>o)throw Error("Minimum 2 arguments must be given");if(e.isArray(u)){n={};for(var f in u){r=u[f];try{n[r]=JSON.parse(s.getItem(r))}catch(m){n[r]=s.getItem(r)}}return n}if(2!=o){try{n=JSON.parse(s.getItem(u))}catch(m){throw new ReferenceError(u+" is not defined in this storage")}for(var f=2;o-1>f;f++)if(n=n[a[f]],void 0===n)throw new ReferenceError([].slice.call(a,1,f+1).join(".")+" is not defined in this storage");if(e.isArray(a[f])){i=n,n={};for(var c in a[f])n[a[f][c]]=i[a[f][c]];return n}return n[a[f]]}try{return JSON.parse(s.getItem(u))}catch(m){return s.getItem(u)}}function n(t){var r,n,i=arguments.length,o=window[t],s=arguments,a=s[1],u=s[2],f={};if(2>i||!e.isPlainObject(a)&&3>i)throw Error("Minimum 3 arguments must be given or second parameter must be an object");if(e.isPlainObject(a)){for(var m in a)r=a[m],e.isPlainObject(r)?o.setItem(m,JSON.stringify(r)):o.setItem(m,r);return a}if(3==i)return"object"==typeof u?o.setItem(a,JSON.stringify(u)):o.setItem(a,u),u;try{n=o.getItem(a),null!=n&&(f=JSON.parse(n))}catch(c){}n=f;for(var m=2;i-2>m;m++)r=s[m],n[r]&&e.isPlainObject(n[r])||(n[r]={}),n=n[r];return n[s[m]]=s[m+1],o.setItem(a,JSON.stringify(f)),f}function i(t){var r,n,i=arguments.length,o=window[t],s=arguments,a=s[1];if(2>i)throw Error("Minimum 2 arguments must be given");if(e.isArray(a)){for(var u in a)o.removeItem(a[u]);return!0}if(2==i)return o.removeItem(a),!0;try{r=n=JSON.parse(o.getItem(a))}catch(f){throw new ReferenceError(a+" is not defined in this storage")}for(var u=2;i-1>u;u++)if(n=n[s[u]],void 0===n)throw new ReferenceError([].slice.call(s,1,u).join(".")+" is not defined in this storage");if(e.isArray(s[u]))for(var m in s[u])delete n[s[u][m]];else delete n[s[u]];return o.setItem(a,JSON.stringify(r)),!0}function o(t,r){var n=u(t);for(var o in n)i(t,n[o]);if(r)for(var o in e.namespaceStorages)f(o)}function s(r){var n=arguments.length,i=arguments,o=(window[r],i[1]);if(1==n)return 0==u(r).length;if(e.isArray(o)){for(var a=0;a<o.length;a++)if(!s(r,o[a]))return!1;return!0}try{var f=t.apply(this,arguments);e.isArray(i[n-1])||(f={totest:f});for(var a in f)if(!(e.isPlainObject(f[a])&&e.isEmptyObject(f[a])||e.isArray(f[a])&&!f[a].length)&&f[a])return!1;return!0}catch(m){return!0}}function a(r){var n=arguments.length,i=arguments,o=(window[r],i[1]);if(2>n)throw Error("Minimum 2 arguments must be given");if(e.isArray(o)){for(var s=0;s<o.length;s++)if(!a(r,o[s]))return!1;return!0}try{var u=t.apply(this,arguments);e.isArray(i[n-1])||(u={totest:u});for(var s in u)if(void 0===u[s]||null===u[s])return!1;return!0}catch(f){return!1}}function u(r){var n=arguments.length,i=window[r],o=arguments,s=(o[1],[]),a={};if(a=n>1?t.apply(this,o):i,a._cookie)for(var u in e.cookie())""!=u&&s.push(u.replace(a._prefix,""));else for(var f in a)s.push(f);return s}function f(t){if(!t||"string"!=typeof t)throw Error("First parameter must be a string");window.localStorage.getItem(t)||window.localStorage.setItem(t,"{}"),window.sessionStorage.getItem(t)||window.sessionStorage.setItem(t,"{}");var r={localStorage:e.extend({},e.localStorage,{_ns:t}),sessionStorage:e.extend({},e.sessionStorage,{_ns:t})};return e.cookie&&(window.cookieStorage.getItem(t)||window.cookieStorage.setItem(t,"{}"),r.cookieStorage=e.extend({},e.cookieStorage,{_ns:t})),e.namespaceStorages[t]=r,r}var m="ls_",c="ss_",g={_type:"",_ns:"",_callMethod:function(e,t){var r=[this._type];return this._ns&&r.push(this._ns),[].push.apply(r,t),e.apply(this,r)},get:function(){return this._callMethod(t,arguments)},set:function(){var t=arguments.length,i=arguments,o=i[0];if(1>t||!e.isPlainObject(o)&&2>t)throw Error("Minimum 2 arguments must be given or first parameter must be an object");if(e.isPlainObject(o)&&this._ns){for(var s in o)n(this._type,this._ns,s,o[s]);return o}return r=this._callMethod(n,i),this._ns?r[o]:r},remove:function(){if(arguments.length<1)throw Error("Minimum 1 argument must be given");return this._callMethod(i,arguments)},removeAll:function(e){return this._ns?(n(this._type,this._ns,{}),!0):o(this._type,e)},isEmpty:function(){return this._callMethod(s,arguments)},isSet:function(){if(arguments.length<1)throw Error("Minimum 1 argument must be given");return this._callMethod(a,arguments)},keys:function(){return this._callMethod(u,arguments)}};if(e.cookie){window.name||(window.name=Math.floor(1e8*Math.random()));
14979var h={_cookie:!0,_prefix:"",_expires:null,_path:null,_domain:null,setItem:function(t,r){e.cookie(this._prefix+t,r,{expires:this._expires,path:this._path,domain:this._domain})},getItem:function(t){return e.cookie(this._prefix+t)},removeItem:function(t){return e.removeCookie(this._prefix+t)},clear:function(){for(var t in e.cookie())""!=t&&(!this._prefix&&-1===t.indexOf(m)&&-1===t.indexOf(c)||this._prefix&&0===t.indexOf(this._prefix))&&e.removeCookie(t)},setExpires:function(e){return this._expires=e,this},setPath:function(e){return this._path=e,this},setDomain:function(e){return this._domain=e,this},setConf:function(e){return e.path&&(this._path=e.path),e.domain&&(this._domain=e.domain),e.expires&&(this._expires=e.expires),this},setDefaultConf:function(){this._path=this._domain=this._expires=null}};window.localStorage||(window.localStorage=e.extend({},h,{_prefix:m,_expires:3650}),window.sessionStorage=e.extend({},h,{_prefix:c+window.name+"_"})),window.cookieStorage=e.extend({},h),e.cookieStorage=e.extend({},g,{_type:"cookieStorage",setExpires:function(e){return window.cookieStorage.setExpires(e),this},setPath:function(e){return window.cookieStorage.setPath(e),this},setDomain:function(e){return window.cookieStorage.setDomain(e),this},setConf:function(e){return window.cookieStorage.setConf(e),this},setDefaultConf:function(){return window.cookieStorage.setDefaultConf(),this}})}e.initNamespaceStorage=function(e){return f(e)},e.localStorage=e.extend({},g,{_type:"localStorage"}),e.sessionStorage=e.extend({},g,{_type:"sessionStorage"}),e.namespaceStorages={},e.removeAllStorages=function(t){e.localStorage.removeAll(t),e.sessionStorage.removeAll(t),e.cookieStorage&&e.cookieStorage.removeAll(t),t||(e.namespaceStorages={})}}(jQuery);
14980
14981�(function(e,i){"use strict";function t(t,s){var d=this;d.$el=e(t),d.el=t,d.id=l++,d.$window=e(i),d.$document=e(document),d.$el.bind("destroyed",e.proxy(d.teardown,d)),d.$clonedHeader=null,d.$originalHeader=null,d.isSticky=!1,d.hasBeenSticky=!1,d.leftOffset=null,d.topOffset=null,d.init=function(){d.$el.each(function(){var i=e(this);i.css("padding",0),d.$originalHeader=e("thead:first",this),d.$clonedHeader=d.$originalHeader.clone(),i.trigger("clonedHeader."+o,[d.$clonedHeader]),d.$clonedHeader.addClass("tableFloatingHeader"),d.$clonedHeader.css("display","none"),d.$originalHeader.addClass("tableFloatingHeaderOriginal"),d.$originalHeader.after(d.$clonedHeader),d.$printStyle=e('<style type="text/css" media="print">.tableFloatingHeader{display:none !important;}.tableFloatingHeaderOriginal{position:static !important;}</style>'),e("head").append(d.$printStyle)}),d.setOptions(s),d.updateWidth(),d.toggleHeaders(),d.bind()},d.destroy=function(){d.$el.unbind("destroyed",d.teardown),d.teardown()},d.teardown=function(){d.isSticky&&d.$originalHeader.css("position","static"),e.removeData(d.el,"plugin_"+o),d.unbind(),d.$clonedHeader.remove(),d.$originalHeader.removeClass("tableFloatingHeaderOriginal"),d.$originalHeader.css("visibility","visible"),d.$printStyle.remove(),d.el=null,d.$el=null},d.bind=function(){d.$scrollableArea.on("scroll."+o,d.toggleHeaders),d.isWindowScrolling||(d.$window.on("scroll."+o+d.id,d.setPositionValues),d.$window.on("resize."+o+d.id,d.toggleHeaders)),d.$scrollableArea.on("resize."+o,d.toggleHeaders),d.$scrollableArea.on("resize."+o,d.updateWidth)},d.unbind=function(){d.$scrollableArea.off("."+o,d.toggleHeaders),d.isWindowScrolling||(d.$window.off("."+o+d.id,d.setPositionValues),d.$window.off("."+o+d.id,d.toggleHeaders)),d.$scrollableArea.off("."+o,d.updateWidth),d.$el.off("."+o),d.$el.find("*").off("."+o)},d.toggleHeaders=function(){d.$el&&d.$el.each(function(){var i,t=e(this),o=d.isWindowScrolling?isNaN(d.options.fixedOffset)?d.options.fixedOffset.outerHeight():d.options.fixedOffset:d.$scrollableArea.offset().top+(isNaN(d.options.fixedOffset)?0:d.options.fixedOffset),l=t.offset(),n=d.$scrollableArea.scrollTop()+o,s=d.$scrollableArea.scrollLeft(),a=d.isWindowScrolling?n>l.top:o>l.top,r=(d.isWindowScrolling?n:0)<l.top+t.height()-d.$clonedHeader.height()-(d.isWindowScrolling?0:o);a&&r?(i=l.left-s+d.options.leftOffset,d.$originalHeader.css({position:"fixed","margin-top":0,top:0,left:i,"z-index":1}),d.leftOffset=i,d.topOffset=o,d.$clonedHeader.css("display",""),d.isSticky||(d.isSticky=!0,d.updateWidth()),d.setPositionValues()):d.isSticky&&(d.$originalHeader.css("position","static"),d.$clonedHeader.css("display","none"),d.isSticky=!1,d.resetWidth(e("td,th",d.$clonedHeader),e("td,th",d.$originalHeader)))})},d.setPositionValues=function(){var e=d.$window.scrollTop(),i=d.$window.scrollLeft();!d.isSticky||0>e||e+d.$window.height()>d.$document.height()||0>i||i+d.$window.width()>d.$document.width()||d.$originalHeader.css({top:d.topOffset-(d.isWindowScrolling?0:e),left:d.leftOffset-(d.isWindowScrolling?0:i)})},d.updateWidth=function(){if(d.isSticky){d.$originalHeaderCells||(d.$originalHeaderCells=e("th,td",d.$originalHeader)),d.$clonedHeaderCells||(d.$clonedHeaderCells=e("th,td",d.$clonedHeader));var i=d.getWidth(d.$clonedHeaderCells);d.setWidth(i,d.$clonedHeaderCells,d.$originalHeaderCells),d.$originalHeader.css("width",d.$clonedHeader.width())}},d.getWidth=function(t){var o=[];return t.each(function(t){var l,n=e(this);if("border-box"===n.css("box-sizing"))l=n.outerWidth();else{var s=e("th",d.$originalHeader);if("collapse"===s.css("border-collapse"))if(i.getComputedStyle)l=parseFloat(i.getComputedStyle(this,null).width);else{var a=parseFloat(n.css("padding-left")),r=parseFloat(n.css("padding-right")),c=parseFloat(n.css("border-width"));l=n.outerWidth()-a-r-c}else l=n.width()}o[t]=l}),o},d.setWidth=function(e,i,t){i.each(function(i){var o=e[i];t.eq(i).css({"min-width":o,"max-width":o})})},d.resetWidth=function(i,t){i.each(function(i){var o=e(this);t.eq(i).css({"min-width":o.css("min-width"),"max-width":o.css("max-width")})})},d.setOptions=function(t){d.options=e.extend({},n,t),d.$scrollableArea=e(d.options.scrollableArea),d.isWindowScrolling=d.$scrollableArea[0]===i},d.updateOptions=function(e){d.setOptions(e),d.unbind(),d.bind(),d.updateWidth(),d.toggleHeaders()},d.init()}var o="stickyTableHeaders",l=0,n={fixedOffset:0,leftOffset:0,scrollableArea:i};e.fn[o]=function(i){return this.each(function(){var l=e.data(this,"plugin_"+o);l?"string"==typeof i?l[i].apply(l):l.updateOptions(i):"destroy"!==i&&e.data(this,"plugin_"+o,new t(this,i))})}})(jQuery,window);
14982�(function(a){a.isScrollToFixed=function(b){return !!a(b).data("ScrollToFixed")};a.ScrollToFixed=function(d,i){var m=this;m.$el=a(d);m.el=d;m.$el.data("ScrollToFixed",m);var c=false;var H=m.$el;var I;var F;var k;var e;var z;var E=0;var r=0;var j=-1;var f=-1;var u=null;var A;var g;function v(){H.trigger("preUnfixed.ScrollToFixed");l();H.trigger("unfixed.ScrollToFixed");f=-1;E=H.offset().top;r=H.offset().left;if(m.options.offsets){r+=(H.offset().left-H.position().left)}if(j==-1){j=r}I=H.css("position");c=true;if(m.options.bottom!=-1){H.trigger("preFixed.ScrollToFixed");x();H.trigger("fixed.ScrollToFixed")}}function o(){var J=m.options.limit;if(!J){return 0}if(typeof(J)==="function"){return J.apply(H)}return J}function q(){return I==="fixed"}function y(){return I==="absolute"}function h(){return !(q()||y())}function x(){if(!q()){var J=H[0].getBoundingClientRect();u.css({display:H.css("display"),width:J.width,height:J.height,"float":H.css("float")});cssOptions={"z-index":m.options.zIndex,position:"fixed",top:m.options.bottom==-1?t():"",bottom:m.options.bottom==-1?"":m.options.bottom,"margin-left":"0px"};if(!m.options.dontSetWidth){cssOptions.width=H.css("width")}H.css(cssOptions);H.addClass(m.options.baseClassName);if(m.options.className){H.addClass(m.options.className)}I="fixed"}}function b(){var K=o();var J=r;if(m.options.removeOffsets){J="";K=K-E}cssOptions={position:"absolute",top:K,left:J,"margin-left":"0px",bottom:""};if(!m.options.dontSetWidth){cssOptions.width=H.css("width")}H.css(cssOptions);I="absolute"}function l(){if(!h()){f=-1;u.css("display","none");H.css({"z-index":z,width:"",position:F,left:"",top:e,"margin-left":""});H.removeClass("scroll-to-fixed-fixed");
14982if(m.options.className){H.removeClass(m.options.className)}I=null}}function w(J){if(J!=f){H.css("left",r-J);f=J}}function t(){var J=m.options.marginTop;if(!J){return 0}if(typeof(J)==="function"){return J.apply(H)}return J}function B(){if(!a.isScrollToFixed(H)||H.is(":hidden")){return}var M=c;var L=h();if(!c){v()}else{if(h()){E=H.offset().top;r=H.offset().left}}var J=a(window).scrollLeft();var N=a(window).scrollTop();var K=o();if(m.options.minWidth&&a(window).width()<m.options.minWidth){if(!h()||!M){p();H.trigger("preUnfixed.ScrollToFixed");l();H.trigger("unfixed.ScrollToFixed")}}else{if(m.options.maxWidth&&a(window).width()>m.options.maxWidth){if(!h()||!M){p();H.trigger("preUnfixed.ScrollToFixed");l();H.trigger("unfixed.ScrollToFixed")}}else{if(m.options.bottom==-1){if(K>0&&N>=K-t()){if(!L&&(!y()||!M)){p();H.trigger("preAbsolute.ScrollToFixed");b();H.trigger("unfixed.ScrollToFixed")}}else{if(N>=E-t()){if(!q()||!M){p();H.trigger("preFixed.ScrollToFixed");x();f=-1;H.trigger("fixed.ScrollToFixed")}w(J)}else{if(!h()||!M){p();H.trigger("preUnfixed.ScrollToFixed");l();H.trigger("unfixed.ScrollToFixed")}}}}else{if(K>0){if(N+a(window).height()-H.outerHeight(true)>=K-(t()||-n())){if(q()){p();H.trigger("preUnfixed.ScrollToFixed");if(F==="absolute"){b()}else{l()}H.trigger("unfixed.ScrollToFixed")}}else{if(!q()){p();H.trigger("preFixed.ScrollToFixed");x()}w(J);H.trigger("fixed.ScrollToFixed")}}else{w(J)}}}}}function n(){if(!m.options.bottom){return 0}return m.options.bottom}function p(){var J=H.css("position");if(J=="absolute"){H.trigger("postAbsolute.ScrollToFixed")}else{if(J=="fixed"){H.trigger("postFixed.ScrollToFixed")}else{H.trigger("postUnfixed.ScrollToFixed")}}}var D=function(J){if(H.is(":visible")){c=false;B()}};var G=function(J){(!!window.requestAnimationFrame)?requestAnimationFrame(B):B()};var C=function(){var K=document.body;if(document.createElement&&K&&K.appendChild&&K.removeChild){var M=document.createElement("div");if(!M.getBoundingClientRect){return null}M.innerHTML="x";M.style.cssText="position:fixed;top:100px;";K.appendChild(M);var N=K.style.height,O=K.scrollTop;K.style.height="3000px";K.scrollTop=500;var J=M.getBoundingClientRect().top;K.style.height=N;var L=(J===100);K.removeChild(M);K.scrollTop=O;return L}return null};var s=function(J){J=J||window.event;if(J.preventDefault){J.preventDefault()}J.returnValue=false};m.init=function(){m.options=a.extend({},a.ScrollToFixed.defaultOptions,i);z=H.css("z-index");m.$el.css("z-index",m.options.zIndex);u=a("<div />");I=H.css("position");F=H.css("position");k=H.css("float");e=H.css("top");if(h()){m.$el.after(u)}a(window).bind("resize.ScrollToFixed",D);a(window).bind("scroll.ScrollToFixed",G);if("ontouchmove" in window){a(window).bind("touchmove.ScrollToFixed",B)}if(m.options.preFixed){H.bind("preFixed.ScrollToFixed",m.options.preFixed)}if(m.options.postFixed){H.bind("postFixed.ScrollToFixed",m.options.postFixed)}if(m.options.preUnfixed){H.bind("preUnfixed.ScrollToFixed",m.options.preUnfixed)}if(m.options.postUnfixed){H.bind("postUnfixed.ScrollToFixed",m.options.postUnfixed)}if(m.options.preAbsolute){H.bind("preAbsolute.ScrollToFixed",m.options.preAbsolute)}if(m.options.postAbsolute){H.bind("postAbsolute.ScrollToFixed",m.options.postAbsolute)}if(m.options.fixed){H.bind("fixed.ScrollToFixed",m.options.fixed)}if(m.options.unfixed){H.bind("unfixed.ScrollToFixed",m.options.unfixed)}if(m.options.spacerClass){u.addClass(m.options.spacerClass)}H.bind("resize.ScrollToFixed",function(){u.height(H.height())});H.bind("scroll.ScrollToFixed",function(){H.trigger("preUnfixed.ScrollToFixed");l();H.trigger("unfixed.ScrollToFixed");B()});H.bind("detach.ScrollToFixed",function(J){s(J);H.trigger("preUnfixed.ScrollToFixed");l();H.trigger("unfixed.ScrollToFixed");a(window).unbind("resize.ScrollToFixed",D);a(window).unbind("scroll.ScrollToFixed",G);H.unbind(".ScrollToFixed");u.remove();m.$el.removeData("ScrollToFixed")});D()};m.init()};a.ScrollToFixed.defaultOptions={marginTop:0,limit:0,bottom:-1,zIndex:1000,baseClassName:"scroll-to-fixed-fixed"};a.fn.scrollToFixed=function(b){return this.each(function(){(new a.ScrollToFixed(this,b))})}})(jQuery);
14983�/**
14984 * Push
14985 * =======
14986 * A compact, cross-browser solution for the JavaScript Notifications API
14987 *
14988 * Credits
14989 * -------
14990 * Tsvetan Tsvetkov (ttsvetko)
14991 * Alex Gibson (alexgibson)
14992 *
14993 * License
14994 * -------
14995 *
14996 * The MIT License (MIT)
14997 *
14998 * Copyright (c) 2015 Tyler Nickerson
14999 *
15000 * Permission is hereby granted, free of charge, to any person obtaining a copy
15001 * of this software and associated documentation files (the "Software"), to deal
15002 * in the Software without restriction, including without limitation the rights
15003 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15004 * copies of the Software, and to permit persons to whom the Software is
15005 * furnished to do so, subject to the following conditions:
15006 *
15007 * The above copyright notice and this permission notice shall be included in
15008 * all copies or substantial portions of the Software.
15009 *
15010 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15011 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15012 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15013 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15014 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15015 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
15016 * THE SOFTWARE.
15017 *
15018 * @preserve
15019 */
15020(function(global,factory){"use strict";if(typeof define==="function"&&define.amd){define(function(){return new(factory(global,global.document))})}else if(typeof module!=="undefined"&&module.exports){module.exports=new(factory(global,global.document))}else{global.Push=new(factory(global,global.document))}})(typeof window!=="undefined"?window:this,function(w,d){var Push=function(){var self=this,isUndefined=function(obj){return obj===undefined},isString=function(obj){return String(obj)===obj},isFunction=function(obj){return obj&&{}.toString.call(obj)==="[object Function]"},currentId=0,incompatibilityErrorMessage="PushError: push.js is incompatible with browser.",hasPermission=false,notifications={},lastWorkerPath=null,closeNotification=function(id){var errored=false,notification=notifications[id];if(typeof notification!=="undefined"){if(notification.close){notification.close()}else if(notification.cancel){notification.cancel()}else if(w.external&&w.external.msIsSiteMode){w.external.msSiteModeClearIconOverlay()}else{errored=true;throw new Error("Unable to close notification: unknown interface")}if(!errored){return removeNotification(id)}}return false},addNotification=function(notification){var id=currentId;notifications[id]=notification;currentId++;return id},removeNotification=function(id){var dict={},success=false,key;for(key in notifications){if(notifications.hasOwnProperty(key)){if(key!=id){dict[key]=notifications[key]}else{success=true}}}notifications=dict;return success},createCallback=function(title,options){var notification,wrapper,id,onClose;options=options||{};self.lastWorkerPath=options.serviceWorker||"sw.js";if(w.Notification){try{notification=new w.Notification(title,{icon:isString(options.icon)||isUndefined(options.icon)?options.icon:options.icon.x32,body:options.body,tag:options.tag,requireInteraction:options.requireInteraction})}catch(e){if(w.navigator){w.navigator.serviceWorker.register(options.serviceWorker||"sw.js");w.navigator.serviceWorker.ready.then(function(registration){registration.showNotification(title,{body:options.body,vibrate:options.vibrate,tag:options.tag,requireInteraction:options.requireInteraction})})}}}else if(w.webkitNotifications){notification=w.webkitNotifications.createNotification(options.icon,title,options.body);notification.show()}else if(navigator.mozNotification){notification=navigator.mozNotification.createNotification(title,options.body,options.icon);notification.show()}else if(w.external&&w.external.msIsSiteMode()){w.external.msSiteModeClearIconOverlay();w.external.msSiteModeSetIconOverlay(isString(options.icon)||isUndefined(options.icon)?options.icon:options.icon.x16,title);w.external.msSiteModeActivate();notification={}}else{throw new Error("Unable to create notification: unknown interface")}id=addNotification(notification);wrapper={get:function(){return notification},close:function(){closeNotification(id)}};if(options.timeout){setTimeout(function(){wrapper.close()},options.timeout)}if(isFunction(options.onShow))notification.addEventListener("show",options.onShow);if(isFunction(options.onError))notification.addEventListener("error",options.onError);if(isFunction(options.onClick))notification.addEventListener("click",options.onClick);onClose=function(){removeNotification(id);if(isFunction(options.onClose)){options.onClose.call(this)}};notification.addEventListener("close",onClose);notification.addEventListener("cancel",onClose);return wrapper},Permission={DEFAULT:"default",GRANTED:"granted",DENIED:"denied"},Permissions=[Permission.GRANTED,Permission.DEFAULT,Permission.DENIED];self.Permission=Permission;self.Permission.request=function(onGranted,onDenied){if(!self.isSupported){throw new Error(incompatibilityErrorMessage)}callback=function(result){switch(result){case self.Permission.GRANTED:hasPermission=true;if(onGranted)onGranted();break;case self.Permission.DENIED:hasPermission=false;if(onDenied)onDenied();break}};if(w.Notification&&w.Notification.requestPermission){Notification.requestPermission(callback)}else if(w.webkitNotifications&&w.webkitNotifications.checkPermission){w.webkitNotifications.requestPermission(callback)}else{throw new Error(incompatibilityErrorMessage)}};self.Permission.has=function(){return hasPermission};self.Permission.get=function(){var permission;if(!self.isSupported){throw new Error(incompatibilityErrorMessage)}if(w.Notification&&w.Notification.permissionLevel){permission=w.Notification.permissionLevel}else if(w.webkitNotifications&&w.webkitNotifications.checkPermission){permission=Permissions[w.webkitNotifications.checkPermission()]}else if(w.Notification&&w.Notification.permission){permission=w.Notification.permission}else if(navigator.mozNotification){permission=Permissions.GRANTED}else if(w.external&&w.external.msIsSiteMode()!==undefined){permission=w.external.msIsSiteMode()?Permission.GRANTED:Permission.DEFAULT}else{throw new Error(incompatibilityErrorMessage)}return permission};self.isSupported=function(){var isSupported=false;try{isSupported=!!(w.Notification||w.webkitNotifications||navigator.mozNotification||w.external&&w.external.msIsSiteMode()!==undefined)}catch(e){}return isSupported}();self.create=function(title,options){if(!self.isSupported){throw new Error(incompatibilityErrorMessage)}if(!isString(title)){throw new Error("PushError: Title of notification must be a string")}if(!self.Permission.has()){return new Promise(function(resolve,reject){self.Permission.request(function(){try{resolve(createCallback(title,options))}catch(e){reject(e)}},function(){reject("Permission request declined")})})}else{return new Promise(function(resolve,reject){try{resolve(createCallback(title,options))}catch(e){reject(e)}})}};self.count=function(){var count=0,key;for(key in notifications){count++}return count},self.__lastWorkerPath=function(){return self.lastWorkerPath},self.close=function(tag){var key;for(key in notifications){notification=notifications[key];if(notification.tag===tag){return closeNotification(key)}}};self.clear=function(){var i,success=true;for(key in notifications){var didClose=closeNotification(key);success=success&&didClose}return success}};return Push});
15021�/*! howler.js v2.2.1 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */
15022!function(){"use strict";var e=function(){this.init()};e.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.volume=u._volume*e)}return o}return o._volume},mute:function(e){var o=this||n;o.ctx||_(),o._muted=e,o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e?0:o._volume,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.muted=!!e||u._muted)}return o},stop:function(){for(var e=this||n,o=0;o<e._howls.length;o++)e._howls[o].stop();return e},unload:function(){for(var e=this||n,o=e._howls.length-1;o>=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||n;if(e.state=e.ctx?e.ctx.state||"suspended":"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent="canplay")}catch(n){e.noAudio=!0}else e.noAudio=!0;try{var o=new Audio;o.muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,o=null;try{o="undefined"!=typeof Audio?new Audio:null}catch(n){return e}if(!o||"function"!=typeof o.canPlayType)return e;var t=o.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator&&e._navigator.userAgent.match(/OPR\/([0-6].)/g),a=r&&parseInt(r[0].split("/")[1],10)<33;return e._codecs={mp3:!(a||!t&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(o.canPlayType('audio/wav; codecs="1"')||o.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(o.canPlayType("audio/x-m4b;")||o.canPlayType("audio/m4b;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||n;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){for(;e._html5AudioPool.length<e.html5PoolSize;)try{var t=new Audio;t._unlocked=!0,e._releaseHtml5Audio(t)}catch(n){e.noAudio=!0;break}for(var r=0;r<e._howls.length;r++)if(!e._howls[r]._webAudio)for(var a=e._howls[r]._getSoundIds(),u=0;u<a.length;u++){var d=e._howls[r]._soundById(a[u]);d&&d._node&&!d._node._unlocked&&(d._node._unlocked=!0,d._node.load())}e._autoResume();var i=e.ctx.createBufferSource();i.buffer=e._scratchBuffer,i.connect(e.ctx.destination),void 0===i.start?i.noteOn(0):i.start(0),"function"==typeof e.ctx.resume&&e.ctx.resume(),i.onended=function(){i.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",o,!0),document.removeEventListener("touchend",o,!0),document.removeEventListener("click",o,!0);for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("unlock")}};return document.addEventListener("touchstart",o,!0),document.addEventListener("touchend",o,!0),document.addEventListener("click",o,!0),e}},_obtainHtml5Audio:function(){var e=this||n;if(e._html5AudioPool.length)return e._h
vendor: 13,139 bytes, line 15022
15022tml5AudioPool.pop();var o=(new Audio).play();return o&&"undefined"!=typeof Promise&&(o instanceof Promise||"function"==typeof o.then)&&o.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(e){var o=this||n;return e._unlocked&&o._html5AudioPool.push(e),o},_autoSuspend:function(){var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&n.usingWebAudio){for(var o=0;o<e._howls.length;o++)if(e._howls[o]._webAudio)for(var t=0;t<e._howls[o]._sounds.length;t++)if(!e._howls[o]._sounds[t]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout(function(){if(e.autoSuspend){e._suspendTimer=null,e.state="suspending";var n=function(){e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume())};e.ctx.suspend().then(n,n)}},3e4),e}},_autoResume:function(){var e=this;if(e.ctx&&void 0!==e.ctx.resume&&n.usingWebAudio)return"running"===e.state&&"interrupted"!==e.ctx.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state||"running"===e.state&&"interrupted"===e.ctx.state?(e.ctx.resume().then(function(){e.state="running";for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("resume")}),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):"suspending"===e.state&&(e._resumeAfterSuspend=!0),e}};var n=new e,o=function(e){var n=this;if(!e.src||0===e.src.length)return void console.error("An array of source files must be passed with any new Howl.");n.init(e)};o.prototype={init:function(e){var o=this;return n.ctx||_(),o._autoplay=e.autoplay||!1,o._format="string"!=typeof e.format?e.format:[e.format],o._html5=e.html5||!1,o._muted=e.mute||!1,o._loop=e.loop||!1,o._pool=e.pool||5,o._preload="boolean"!=typeof e.preload&&"metadata"!==e.preload||e.preload,o._rate=e.rate||1,o._sprite=e.sprite||{},o._src="string"!=typeof e.src?e.src:[e.src],o._volume=void 0!==e.volume?e.volume:1,o._xhr={method:e.xhr&&e.xhr.method?e.xhr.method:"GET",headers:e.xhr&&e.xhr.headers?e.xhr.headers:null,withCredentials:!(!e.xhr||!e.xhr.withCredentials)&&e.xhr.withCredentials},o._duration=0,o._state="unloaded",o._sounds=[],o._endTimers={},o._queue=[],o._playLock=!1,o._onend=e.onend?[{fn:e.onend}]:[],o._onfade=e.onfade?[{fn:e.onfade}]:[],o._onload=e.onload?[{fn:e.onload}]:[],o._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],o._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],o._onpause=e.onpause?[{fn:e.onpause}]:[],o._onplay=e.onplay?[{fn:e.onplay}]:[],o._onstop=e.onstop?[{fn:e.onstop}]:[],o._onmute=e.onmute?[{fn:e.onmute}]:[],o._onvolume=e.onvolume?[{fn:e.onvolume}]:[],o._onrate=e.onrate?[{fn:e.onrate}]:[],o._onseek=e.onseek?[{fn:e.onseek}]:[],o._onunlock=e.onunlock?[{fn:e.onunlock}]:[],o._onresume=[],o._webAudio=n.usingWebAudio&&!o._html5,void 0!==n.ctx&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(o),o._autoplay&&o._queue.push({event:"play",action:function(){o.play()}}),o._preload&&"none"!==o._preload&&o.load(),o},load:function(){var e=this,o=null;if(n.noAudio)return void e._emit("loaderror",null,"No audio support.");"string"==typeof e._src&&(e._src=[e._src]);for(var r=0;r<e._src.length;r++){var u,d;if(e._format&&e._format[r])u=e._format[r];else{if("string"!=typeof(d=e._src[r])){e._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}u=/^data:audio\/([^;,]+);/i.exec(d),u||(u=/\.([^.]+)$/.exec(d.split("?",1)[0])),u&&(u=u[1].toLowerCase())}if(u||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),u&&n.codecs(u)){o=e._src[r];break}}return o?(e._src=o,e._state="loading","https:"===window.location.protocol&&"http:"===o.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new t(e),e._webAudio&&a(e),e):void e._emit("loaderror",null,"No codec support for selected audio sources.")},play:function(e,o){var t=this,r=null;if("number"==typeof e)r=e,e=null;else{if("string"==typeof e&&"loaded"===t._state&&!t._sprite[e])return null;if(void 0===e&&(e="__default",!t._playLock)){for(var a=0,u=0;u<t._sounds.length;u++)t._sounds[u]._paused&&!t._sounds[u]._ended&&(a++,r=t._sounds[u]._id);1===a?e=null:r=null}}var d=r?t._soundById(r):t._inactiveSound();if(!d)return null;if(r&&!e&&(e=d._sprite||"__default"),"loaded"!==t._state){d._sprite=e,d._ended=!1;var i=d._id;return t._queue.push({event:"play",action:function(){t.play(i)}}),i}if(r&&!d._paused)return o||t._loadQueue("play"),d._id;t._webAudio&&n._autoResume();var _=Math.max(0,d._seek>0?d._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(d._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3;d._sprite=e,d._ended=!1;var p=function(){d._paused=!1,d._seek=_,d._start=c,d._stop=f,d._loop=!(!d._loop&&!t._sprite[e][2])};if(_>=f)return void t._ended(d);var m=d._node;if(t._webAudio){var v=function(){t._playLock=!1,p(),t._refreshBuffer(d);var e=d._muted||t._muted?0:d._volume;m.gain.setValueAtTime(e,n.ctx.currentTime),d._playStart=n.ctx.currentTime,void 0===m.bufferSource.start?d._loop?m.bufferSource.noteGrainOn(0,_,86400):m.bufferSource.noteGrainOn(0,_,s):d._loop?m.bufferSource.start(0,_,86400):m.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[d._id]=setTimeout(t._ended.bind(t,d),l)),o||setTimeout(function(){t._emit("play",d._id),t._loadQueue()},0)};"running"===n.state&&"interrupted"!==n.ctx.state?v():(t._playLock=!0,t.once("resume",v),t._clearTimer(d._id))}else{var h=function(){m.currentTime=_,m.muted=d._muted||t._muted||n._muted||m.muted,m.volume=d._volume*n.volume(),m.playbackRate=d._rate;try{var r=m.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(t._playLock=!0,p(),r.then(function(){t._playLock=!1,m._unlocked=!0,o||(t._emit("play",d._id),t._loadQueue())}).catch(function(){t._playLock=!1,t._emit("playerror",d._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),d._ended=!0,d._paused=!0})):o||(t._playLock=!1,p(),t._emit("play",d._id),t._loadQueue()),m.playbackRate=d._rate,m.paused)return void t._emit("playerror",d._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||d._loop?t._endTimers[d._id]=setTimeout(t._ended.bind(t,d),l):(t._endTimers[d._id]=function(){t._ended(d),m.removeEventListener("ended",t._endTimers[d._id],!1)},m.addEventListener("ended",t._endTimers[d._id],!1))}catch(e){t._emit("playerror",d._id,e)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===m.src&&(m.src=t._src,m.load());var y=window&&window.ejecta||!m.readyState&&n._navigator.isCocoonJS;if(m.readyState>=3||y)h();else{t._playLock=!0;var g=function(){h(),m.removeEventListener(n._canPlayEvent,g,!1)};m.addEventListener(n._canPlayEvent,g,!1),t._clearTimer(d._id)}}return d._id},pause:function(e){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var o=n._getSoundIds(e),t=0;t<o.length;t++){n._clearTimer(o[t]);var r=n._soundById(o[t]);if(r&&!r._paused&&(r._seek=n.seek(o[t]),r._rateSeek=0,r._paused=!0,n._stopFade(o[t]),r._node))if(n._webAudio){if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),n._cleanBuffer(r._node)}else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||n._emit("pause",r?r._id:null)}return n},stop:function(e,n){var o=this;if("loaded"!==o._state||o._playLock)return o._queue.push({event:"stop",action:function(){o.stop(e)}}),o;for(var t=o._getSoundIds(e),r=0;r<t.length;r++){o._clearTimer(t[r]);var a=o._soundById(t[r]);a&&(a._seek=a._start||0,a._rateSeek=0,a._paused=!0,a._ended=!0,o._stopFade(t[r]),a._node&&(o._webAudio?a._node.bufferSource&&(void 0===a._node.bufferSource.stop?a._node.bufferSource.noteOff(0):a._node.bufferSource.stop(0),o._cleanBuffer(a._node)):isNaN(a._node.duration)&&a._node.duration!==1/0||(a._node.currentTime=a._start||0,a._node.pause(),a._node.duration===1/0&&o._clearSound(a._node))),n||o._emit("stop",a._id))}return o},mute:function(e,o){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"mute",action:function(){t.mute(e,o)}}),t;if(void 0===o){if("boolean"!=typeof e)return t._muted;t._muted=e}for(var r=t._getSoundIds(o),a=0;a<r.length;a++){var u=t._soundById(r[a]);u&&(u._muted=e,u._interval&&t._stopFade(u._id),t._webAudio&&u._node?u._node.gain.setValueAtTime(e?0:u._volume,n.ctx.currentTime):u._node&&(u._node.muted=!!n._muted||e),t._emit("mute",u._id))}return t},volume:function(){var e,o,t=this,r=arguments;if(0===r.length)return t._volume;if(1===r.length||2===r.length&&void 0===r[1]){t._getSoundIds().indexOf(r[0])>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"volume",action:function(){t.volume.apply(t,r)}}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u<o.length;u++)(a=t._soundById(o[u]))&&(a._volume=e,r[2]||t._stopFade(o[u]),t._webAudio&&a._node&&!a._muted?a._node.gain.setValueAtTime(e,n.ctx.currentTime):a._node&&!a._muted&&(a._node.volume=e*n.volume()),t._emit("volume",a._id));return t},fade:function(e,o,t,r){var a=this;if("loaded"!==a._state||a._playLock)return a._queue.push({event:"fade",action:function(){a.fade(e,o,t,r)}}),a;e=Math.min(Math.max(0,parseFloat(e)),1),o=Math.min(Math.max(0,parseFloat(o)),1),t=parseFloat(t),a.volume(e,r);for(var u=a._getSoundIds(r),d=0;d<u.length;d++){var i=a._soundById(u[d]);if(i){if(r||a._stopFade(u[d]),a._webAudio&&!i._muted){var _=n.ctx.currentTime,s=_+t/1e3;i._volume=e,i._node.gain.setValueAtTime(e,_),i._node.gain.linearRampToValueAtTime(o,s)}a._startFadeInterval(i,e,o,t,u[d],void 0===r)}}return a},_startFadeInterval:function(e,n,o,t,r,a){var u=this,d=n,i=o-n,_=Math.abs(i/.01),s=Math.max(4,_>0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var r=(Date.now()-l)/t;l=Date.now(),d+=i*r,d=Math.round(100*d)/100,d=i<0?Math.max(o,d):Math.min(o,d),u._webAudio?e._volume=d:u.volume(d,e._id,!0),a&&(u._volume=d),(o<n&&d<=o||o>n&&d>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit("fade",e._id))},s)},_stopFade:function(e){var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit("fade",e)),o},loop:function(){var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e}else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u<a.length;u++)(o=t._soundById(a[u]))&&(o._loop=e,t._webAudio&&o._node&&o._node.bufferSource&&(o._node.bufferSource.loop=e,e&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop)));return t},rate:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var d;if("number"!=typeof e)return d=t._soundById(o),d?d._rate:t._rate;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"rate",action:function(){t.rate.apply(t,r)}}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var i=0;i<o.length;i++)if(d=t._soundById(o[i])){t.playing(o[i])&&(d._rateSeek=t.seek(o[i]),d._playStart=t._webAudio?n.ctx.currentTime:d._playStart),d._rate=e,t._webAudio&&d._node&&d._node.bufferSource?d._node.bufferSource.playbackRate.setValueAtTime(e,n.ctx.currentTime):d._node&&(d._node.playbackRate=e);var _=t.seek(o[i]),s=(t._sprite[d._sprite][0]+t._sprite[d._sprite][1])/1e3-_,l=1e3*s/Math.abs(d._rate);!t._endTimers[o[i]]&&d._paused||(t._clearTimer(o[i]),t._endTimers[o[i]]=setTimeout(t._ended.bind(t,d),l)),t._emit("rate",d._id)}return t},seek:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return t;if("number"==typeof e&&("loaded"!==t._state||t._playLock))return t._queue.push({event:"seek",action:function(){t.seek.apply(t,r)}}),t;var d=t._soundById(o);if(d){if(!("number"==typeof e&&e>=0)){if(t._webAudio){var i=t.playing(o)?n.ctx.currentTime-d._playStart:0,_=d._rateSeek?d._rateSeek-d._seek:0;return d._seek+(_+i*Math.abs(d._rate))}return d._node.currentTime}var s=t.playing(o);s&&t.pause(o,!0),d._seek=e,d._ended=!1,t._clearTimer(o),t._webAudio||!d._node||isNaN(d._node.duration)||(d._node.currentTime=e);var l=function(){t._emit("seek",o),s&&t.play(o,!0
vendor: 8,749 bytes, line 15022
15022)};if(s&&!t._webAudio){var c=function(){t._playLock?setTimeout(c,0):l()};setTimeout(c,0)}else l()}return t},playing:function(e){var n=this;if("number"==typeof e){var o=n._soundById(e);return!!o&&!o._paused}for(var t=0;t<n._sounds.length;t++)if(!n._sounds[t]._paused)return!0;return!1},duration:function(e){var n=this,o=n._duration,t=n._soundById(e);return t&&(o=n._sprite[t._sprite][1]/1e3),o},state:function(){return this._state},unload:function(){for(var e=this,o=e._sounds,t=0;t<o.length;t++)o[t]._paused||e.stop(o[t]._id),e._webAudio||(e._clearSound(o[t]._node),o[t]._node.removeEventListener("error",o[t]._errorFn,!1),o[t]._node.removeEventListener(n._canPlayEvent,o[t]._loadFn,!1),o[t]._node.removeEventListener("ended",o[t]._endFn,!1),n._releaseHtml5Audio(o[t]._node)),delete o[t]._node,e._clearTimer(o[t]._id);var a=n._howls.indexOf(e);a>=0&&n._howls.splice(a,1);var u=!0;for(t=0;t<n._howls.length;t++)if(n._howls[t]._src===e._src||e._src.indexOf(n._howls[t]._src)>=0){u=!1;break}return r&&u&&delete r[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,o,t){var r=this,a=r["_on"+e];return"function"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r},off:function(e,n,o){var t=this,r=t["_on"+e],a=0;if("number"==typeof n&&(o=n,n=null),n||o)for(a=0;a<r.length;a++){var u=o===r[a].id;if(n===r[a].fn&&u||!n&&u){r.splice(a,1);break}}else if(e)t["_on"+e]=[];else{var d=Object.keys(t);for(a=0;a<d.length;a++)0===d[a].indexOf("_on")&&Array.isArray(t[d[a]])&&(t[d[a]]=[])}return t},once:function(e,n,o){var t=this;return t.on(e,n,o,1),t},_emit:function(e,n,o){for(var t=this,r=t["_on"+e],a=r.length-1;a>=0;a--)r[a].id&&r[a].id!==n&&"load"!==e||(setTimeout(function(e){e.call(this,n,o)}.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t},_loadQueue:function(e){var n=this;if(n._queue.length>0){var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action()}return n},_ended:function(e){var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime<e._stop)return setTimeout(o._ended.bind(o,e),100),o;var r=!(!e._loop&&!o._sprite[t][2]);if(o._emit("end",e._id),!o._webAudio&&r&&o.stop(e._id,!0).play(e._id),o._webAudio&&r){o._emit("play",e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=n.ctx.currentTime;var a=1e3*(e._stop-e._start)/Math.abs(e._rate);o._endTimers[e._id]=setTimeout(o._ended.bind(o,e),a)}return o._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,o._clearTimer(e._id),o._cleanBuffer(e._node),n._autoSuspend()),o._webAudio||r||o.stop(e._id,!0),o},_clearTimer:function(e){var n=this;if(n._endTimers[e]){if("function"!=typeof n._endTimers[e])clearTimeout(n._endTimers[e]);else{var o=n._soundById(e);o&&o._node&&o._node.removeEventListener("ended",n._endTimers[e],!1)}delete n._endTimers[e]}return n},_soundById:function(e){for(var n=this,o=0;o<n._sounds.length;o++)if(e===n._sounds[o]._id)return n._sounds[o];return null},_inactiveSound:function(){var e=this;e._drain();for(var n=0;n<e._sounds.length;n++)if(e._sounds[n]._ended)return e._sounds[n].reset();return new t(e)},_drain:function(){var e=this,n=e._pool,o=0,t=0;if(!(e._sounds.length<n)){for(t=0;t<e._sounds.length;t++)e._sounds[t]._ended&&o++;for(t=e._sounds.length-1;t>=0;t--){if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--)}}},_getSoundIds:function(e){var n=this;if(void 0===e){for(var o=[],t=0;t<n._sounds.length;t++)o.push(n._sounds[t]._id);return o}return[e]},_refreshBuffer:function(e){var o=this;return e._node.bufferSource=n.ctx.createBufferSource(),e._node.bufferSource.buffer=r[o._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,n.ctx.currentTime),o},_cleanBuffer:function(e){var o=this,t=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}return e.bufferSource=null,o},_clearSound:function(e){/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(e){this._parent=e,this.init()};t.prototype={init:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,o._sounds.push(e),e.create(),e},create:function(){var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=o._src,e._node.preload=!0===o._preload?"auto":o._preload,e._node.volume=t*n.volume(),e._node.load()),e},reset:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),"loaded"!==o._state&&(o._state="loaded",o._emit("load"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,n=e._parent;n._duration===1/0&&(n._duration=Math.ceil(10*e._node.duration)/10,n._sprite.__default[1]===1/0&&(n._sprite.__default[1]=1e3*n._duration),n._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var r={},a=function(e){var n=e._src;if(r[n])return e._duration=r[n].duration,void i(e);if(/^data:[^;]+;base64,/.test(n)){for(var o=atob(n.split(",")[1]),t=new Uint8Array(o.length),a=0;a<o.length;++a)t[a]=o.charCodeAt(a);d(t.buffer,e)}else{var _=new XMLHttpRequest;_.open(e._xhr.method,n,!0),_.withCredentials=e._xhr.withCredentials,_.responseType="arraybuffer",e._xhr.headers&&Object.keys(e._xhr.headers).forEach(function(n){_.setRequestHeader(n,e._xhr.headers[n])}),_.onload=function(){var n=(_.status+"")[0];if("0"!==n&&"2"!==n&&"3"!==n)return void e._emit("loaderror",null,"Failed loading audio file with status: "+_.status+".");d(_.response,e)},_.onerror=function(){e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete r[n],e.load())},u(_)}},u=function(e){try{e.send()}catch(n){e.onerror()}},d=function(e,o){var t=function(){o._emit("loaderror",null,"Decoding audio data failed.")},a=function(e){e&&o._sounds.length>0?(r[o._src]=e,i(o,e)):t()};"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t)},i=function(e,n){n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},_=function(){if(n.usingWebAudio){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};"function"==typeof define&&define.amd&&define([],function(){return{Howler:n,Howl:o}}),"undefined"!=typeof exports&&(exports.Howler=n,exports.Howl=o),"undefined"!=typeof global?(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t):"undefined"!=typeof window&&(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t)}();
15022
15023�/*
15024Copyright (c) 2011 Damien Antipa, http://www.nethead.at/, http://damien.antipa.at
15025
15026Permission is hereby granted, free of charge, to any person obtaining
15027a copy of this software and associated documentation files (the
15028"Software"), to deal in the Software without restriction, including
15029without limitation the rights to use, copy, modify, merge, publish,
15030distribute, sublicense, and/or sell copies of the Software, and to
15031permit persons to whom the Software is furnished to do so, subject to
15032the following conditions:
15033
15034The above copyright notice and this permission notice shall be
15035included in all copies or substantial portions of the Software.
15036
15037THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15038EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15039MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15040NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
15041LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
15042OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
15043WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15044*/
15045/*
15046 * jQuery Plugin: Confirmation Dialog
15047 * 
15048 * Requirements: jQuery 1.6.4, Bootstrap 1.3.0
15049 * http://jquery.com/
15050 * http://twitter.github.com/bootstrap/
15051 * 
15052 * This Plugin can be used for anchors, to show a confirmation popup before redirecting to the link.
15053 * 
15054 */
15055(function($){
15056	$.fn.extend({
15057		confirmDialog: function(options) {
15058			var defaults = {
15059				message: '<strong>' + _('Are you sure') + '</strong>',				
15060				dialog: '<div id="confirm-dialog" class="popover">' +
15061							'<div class="arrow"></div>' +
15062							'<div class="popover-inner">' +
15063							  	'<div class="popover-content">' +
15064							  		'<p class="note"></p>' +
15065									'<p class="button-group"><a href="javascript:void(0)" class="btn btn-danger btn-mini"></a><a href="javascript:void(0)" class="btn btn-mini"></a></p>' +
15066							  	'</div>' +
15067							'</div>' +
15068						'</div>',
15069				cancelButton: _('Cancel')
15070			};
15071			var options =  $.extend(defaults, options);
15072			
15073			return this.each(function() {
15074				var o = options;
15075				var $elem = $(this)
15076				
15077				$elem.bind('click', function(e) {
15078					e.preventDefault();
15079					if(!$('#confirm-dialog').length) {
15080						
15081						var offset = $elem.offset();
15082						var $dialog = $(o.dialog).appendTo('body');
15083						
15084						var x;
15085						if(offset.left > $dialog.width()) {
15086							//dialog can be left
15087							x = e.pageX - $dialog.width() - 20;
15088							$dialog.addClass('left');
15089						} else {
15090							x = e.pageX;
15091							$dialog.addClass('right');
15092						}
15093						var y = e.pageY - $dialog.height() / 2 - $elem.innerHeight() / 2 - 20;
15094	
15095						$dialog.css({
15096							display: 'block',
15097							position: 'absolute',
15098							top: y,
15099							left: x
15100						});
15101						
15102						$dialog.find('p.button-group').css({
15103							marginTop: '5px',
15104							textAlign: 'right'
15105						});
15106
15107						$dialog.find('a.btn').css({
15108							marginLeft: '3px'
15109						});
15110						
15111						$dialog.find('p.note').html(o.message);
15112						
15113						$dialog.find('a.btn:eq(0)').text($elem.text()).bind('click', function(e) {
15114							window.location.href = $elem.attr('href');
15115						});
15116						
15117						$dialog.find('a.btn:eq(1)').text(o.cancelButton).bind('click', function(e) {
15118							$dialog.remove();
15119						});
15120						
15121						$dialog.bind('mouseleave', function() {
15122							$dialog.fadeOut('slow', function() {
15123								$dialog.remove();
15124							});
15125						});
15126					}
15127				});
15128			});
15129		}
15130	});   
15131})(jQuery);
15132�/*
15133Copyright (c) 2011 Damien Antipa, http://www.nethead.at/, http://damien.antipa.at
15134
15135Permission is hereby granted, free of charge, to any person obtaining
15136a copy of this software and associated documentation files (the
15137"Software"), to deal in the Software without restriction, including
15138without limitation the rights to use, copy, modify, merge, publish,
15139distribute, sublicense, and/or sell copies of the Software, and to
15140permit persons to whom the Software is furnished to do so, subject to
15141the following conditions:
15142
15143The above copyright notice and this permission notice shall be
15144included in all copies or substantial portions of the Software.
15145
15146THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15147EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15148MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15149NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
15150LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
15151OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
15152WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15153*/
15154/*
15155 * jQuery Plugin: Confirmation Dialog
15156 * 
15157 * Requirements: jQuery 1.6.4, Bootstrap 1.3.0
15158 * http://jquery.com/
15159 * http://twitter.github.com/bootstrap/
15160 * 
15161 * This Plugin can be used for anchors, to show a confirmation popup before redirecting to the link.
15162 *
15163 * #NETSAPIENS: modified for "click-to-call"
15164 */
15165(function($){
15166	$.fn.extend({
15167		confirmCall: function(options) {
15168			var defaults = {
15169				message: '<strong>' + _('Are you sure') + '</strong>',				
15170				dialog: '<div id="confirm-call" class="popover">' +
15171							'<div class="arrow"></div>' +
15172							'<div class="popover-inner">' +
15173							  	'<div class="popover-content">' +
15174							  		'<p class="note"></p>' +
15175									'<p class="button-group"><a href="javascript:void(0)" class="span1 btn btn-success"></a><a href="javascript:void(0)" class="span1 btn"></a></p>' +
15176							  	'</div>' +
15177							'</div>' +
15178						'</div>',
15179				cancelButton: _('Cancel')
15180			};
15181			var options =  $.extend(defaults, options);
15182			
15183			return this.each(function() {
15184				var o = options;
15185				var $elem = $(this);
15186				
15187				$elem.bind('click', function(e) {
15188					e.preventDefault();
15189					if(!$('#confirm-call').length) {
15190						
15191						var offset = $elem.offset();
15192						var $dialog = $(o.dialog).appendTo('body');
15193						
15194						var x;
15195						if(offset.left > $dialog.width()) {
15196							//dialog can be left
15197							x = e.pageX - $dialog.width() - 20;
15198							$dialog.addClass('left');
15199						} else {
15200							x = e.pageX;
15201							$dialog.addClass('right');
15202						}
15203						var y = e.pageY - $dialog.height() / 2 - $elem.innerHeight() / 2 - 20;
15204
15205	
15206						$dialog.css({
15207							display: 'block',
15208							position: 'absolute',
15209							top: y,
15210							left: x
15211						});
15212						
15213						$dialog.find('p.button-group').css({
15214							marginTop: '5px',
15215							textAlign: 'right'
15216						});
15217
15218						$dialog.find('a.btn').css({
15219							marginLeft: '3px'
15220						});
15221
15222						log('o.message length');
15223						log(o.message.length);
15224						log(o.message);
15225
15226						//prevents 10 digit numbers from truncating
15227						if (o.message.length > 14) {
15228							log('message length is greater than 14');
15229							$dialog.find('p.note').html('<h4>' + o.message + '</h4>');
15230						}
15231							
15232						else
15233							$dialog.find('p.note').html('<h3>' + o.message + '</h3>');
15234						
15235						$dialog.find('a.btn:eq(0)').text($elem.attr("rel")).bind('click', function(e) {
15236							if (typeof $elem.attr("auto") != 'undefined' && $elem.attr("auto") =="yes")
15237								clickToDial($elem.attr("uid"),$elem.text(),$elem.attr("dest"),null, true );
15238							else
15239								clickToDial($elem.attr("uid"),$elem.text(),$elem.attr("dest"));
15240							$dialog.remove();
15241						});
15242						
15243						$dialog.find('a.btn:eq(1)').text(o.cancelButton).bind('click', function(e) {
15244							$dialog.remove();
15245						});
15246						
15247						$dialog.bind('mouseleave', function() {
15248							$dialog.fadeOut('slow', function() {
15249								$dialog.remove();
15250							});
15251						});
15252					}
15253				});
15254			});
15255		}
15256	});   
15257})(jQuery);
15258�/*
15259Copyright (c) 2011 Damien Antipa, http://www.nethead.at/, http://damien.antipa.at
15260
15261Permission is hereby granted, free of charge, to any person obtaining
15262a copy of this software and associated documentation files (the
15263"Software"), to deal in the Software without restriction, including
15264without limitation the rights to use, copy, modify, merge, publish,
15265distribute, sublicense, and/or sell copies of the Software, and to
15266permit persons to whom the Software is furnished to do so, subject to
15267the following conditions:
15268
15269The above copyright notice and this permission notice shall be
15270included in all copies or substantial portions of the Software.
15271
15272THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15273EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15274MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15275NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
15276LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
15277OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
15278WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15279*/
15280/*
15281 * jQuery Plugin: Confirmation Dialog
15282 * 
15283 * Requirements: jQuery 1.6.4, Bootstrap 1.3.0
15284 * http://jquery.com/
15285 * http://twitter.github.com/bootstrap/
15286 * 
15287 * This Plugin can be used for anchors, to show a confirmation popup before redirecting to the link.
15288 *
15289 * #NETSAPIENS: modified for "click-to-call"
15290 */
15291(function($){
15292	$.fn.extend({
15293		popoutCall: function(options) {
15294			var defaults = {
15295				message: '<strong>' + _('Are you sure') + '</strong>',				
15296				dialog: '<div id="confirm-call" class="popover">' +
15297							'<div class="popover-inner">' +
15298							  	'<div class="popover-content">' +
15299							  		'<p class="note"></p>' +
15300									'<p class="button-group"><a href="javascript:void(0)" class="btn btn-success"></a><a href="javascript:void(0)" class="btn"></a></p>' +
15301							  	'</div>' +
15302							'</div>' +
15303						'</div>',
15304				cancelButton: _('Cancel')
15305			};
15306			var options =  $.extend(defaults, options);
15307			
15308			return this.each(function() {
15309				var o = options;
15310				var $elem = $(this);
15311				
15312				$elem.bind('click', function(e) {
15313					e.preventDefault();
15314					if(!$('#confirm-call').length) {
15315						
15316						var offset = $elem.offset();
15317						var $dialog = $(o.dialog).appendTo('.popout-call-container');
15318						
15319						//var x;
15320						//if(offset.left > $dialog.width()) {
15321						//	//dialog can be left
15322						//	x = e.pageX - $dialog.width() - 20;
15323						//	$dialog.addClass('left');
15324						//} else {
15325						//	x = e.pageX;
15326						//	$dialog.addClass('right');
15327						//}
15328						//var y = e.pageY - $dialog.height() / 2 - $elem.innerHeight() / 2 - 20;
15329						
15330						var x = - $dialog.width() / 2;
15331						var y = - $dialog.height() / 2 - 50;
15332						
15333						
15334						$dialog.css({
15335							display: 'block',
15336							position: 'absolute',
15337							top: '50%',
15338							left: '50%',
15339							marginLeft: x,
15340							marginTop: y
15341						});
15342						
15343						$dialog.find('p.button-group').css({
15344							marginTop: '5px',
15345							textAlign: 'center'
15346						});
15347
15348						$dialog.find('a.btn').css({
15349							marginLeft: '3px',
15350							width: '30%'
15351						});
15352						
15353						$dialog.find('p.note').html(o.message);
15354						$dialog.find('p.note').css({
15355							textAlign: 'center'
15356						});
15357						
15358						$dialog.find('a.btn:eq(0)').text($elem.attr("rel")).bind('click', function(e) {
15359							if (typeof $elem.attr("auto") != 'undefined' && $elem.attr("auto") =="yes")
15360								clickToDial($elem.attr("uid"),$elem.text(),$elem.attr("dest"),null, true );
15361							else
15362								clickToDial($elem.attr("uid"),$elem.text(),$elem.attr("dest"));
15363							$dialog.remove();
15364						});
15365						
15366						$dialog.find('a.btn:eq(1)').text(o.cancelButton).bind('click', function(e) {
15367							$dialog.remove();
15368						});
15369						
15370						$dialog.bind('mouseleave', function() {
15371							$dialog.fadeOut('slow', function() {
15372								$dialog.remove();
15373							});
15374						});
15375					}
15376				});
15377			});
15378		}
15379	});   
15380})(jQuery);
15381�/* ===========================================================
15382 * bootstrap-confirmation.js v1.0.1
15383 * http://ethaizone.github.io/Bootstrap-Confirmation/
15384 * ===========================================================
15385 * Copyright 2013 Nimit Suwannagate <[email protected]>
15386 *
15387 * Licensed under the Apache License, Version 2.0 (the "License");
15388 * you may not use this file except in compliance with the License.
15389 * You may obtain a copy of the License at
15390 *
15391 * http://www.apache.org/licenses/LICENSE-2.0
15392 *
15393 * Unless required by applicable law or agreed to in writing, software
15394 * distributed under the License is distributed on an "AS IS" BASIS,
15395 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15396 * See the License for the specific language governing permissions and
15397 * limitations under the License.
15398 * =========================================================== */
15399
15400
15401!function ($) {
15402
15403	"use strict"; // jshint ;_;
15404
15405
15406 /* CONFIRMATION PUBLIC CLASS DEFINITION
15407	* =============================== */
15408
15409	//var for check event at body can have only one.
15410	var event_body = false;
15411
15412	var Confirmation = function (element, options) {
15413		var that = this;
15414
15415		if ($(element).attr('href') != '') {
15416			var href = $(element).attr('href');
15417
15418			$(element).attr('data-href', href);
15419		}
15420
15421		// remove href attribute of button
15422		$(element).removeAttr('href')
15423
15424		this.init('confirmation', element, options)
15425
15426		$(element).on('show', function(e) {
15427			var options = that.options;
15428			var all = options.all_selector;
15429			if(options.singleton) {
15430				$(all).not(that.$element).confirmation('hide');
15431			}
15432		});
15433
15434		$(element).on('shown', function(e) {
15435			var options = that.options;
15436			var all = options.all_selector;
15437			$(this).next('.popover').one('click.dismiss.confirmation', '[data-dismiss="confirmation"]', $.proxy(that.hide, that))
15438			if(that.isPopout()) {
15439				if(!event_body) {
15440					event_body = $('body').on('click', function (e) {
15441						if($(all).is(e.target)) return;
15442						if($(all).next('div').has(e.target).length) return;
15443
15444						$(all).confirmation('hide');
15445						$('body').unbind(e);
15446						event_body = false;
15447
15448						return;
15449					});
15450				}
15451			}
15452		});
15453	}
15454
15455
15456	/* NOTE: CONFIRMATION EXTENDS BOOTSTRAP-TOOLTIP.js
15457		 ========================================== */
15458
15459	Confirmation.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
15460
15461		constructor: Confirmation
15462
15463		, setContent: function () {
15464				var $tip = this.tip()
15465					, title = this.getTitle()
15466					, confirmTitle = this.getConfirmTitle()
15467					, loadingText = this.getLoadingText()
15468					, href = this.getHref()
15469					, target = this.getTarget()
15470					, orig = this.getOrig()
15471					, $e = this.$element
15472					, btnOkClass = this.getBtnOkClass()
15473					, btnCancelClass = this.getBtnCancelClass()
15474					, btnOkLabel = this.getBtnOkLabel()
15475					, btnCancelLabel = this.getBtnCancelLabel()
15476					, o = this.options
15477
15478				$tip.find('.popover-title').html('<strong>'+confirmTitle+'</strong>');
15479
15480				var btnOk = $tip.find('.popover-content > div > a:not([data-dismiss="confirmation"])');
15481				var btnCancel = $tip.find('.popover-content > div > a[data-dismiss="confirmation"]');
15482
15483				btnOk.addClass(btnOkClass).html(btnOkLabel).attr('href', href).attr('target', target).attr('data-orig-btn', orig).attr('data-loading-text', loadingText).off().on('click', o.onConfirm);
15484				btnCancel.addClass(btnCancelClass).html(btnCancelLabel).on('click', o.onCancel);
15485
15486				$tip.removeClass('fade top bottom left right in')
15487			}
15488
15489		, hasContent: function () {
15490				return this.getTitle()
15491			}
15492
15493		, isPopout: function () {
15494				var popout
15495					, $e = this.$element
15496					, o = this.options
15497
15498				popout = $e.attr('data-popout') || (typeof o.popout == 'function' ? o.popout.call($e[0]) :	o.popout)
15499
15500				if(popout == 'false') popout = false;
15501
15502				return popout
15503			}
15504
15505
15506		, getHref: function () {
15507				var href
15508					, $e = this.$element
15509					, o = this.options
15510
15511				href = $e.attr('data-href') || (typeof o.href == 'function' ? o.href.call($e[0]) :	o.href)
15512
15513				return href
15514			}
15515
15516		//added getOrig, adds id of originating button to confirm button
15517		, getOrig: function () {
15518				var orig
15519					, $e = this.$element
15520					, o = this.options
15521
15522				orig = $e.attr('id') || (typeof o.orig == 'function' ? o.orig.call($e[0]) :	o.orig)
15523
15524				return orig
15525			}
15526
15527		, getConfirmTitle: function () {
15528				var confirmTitle
15529			        , $e = this.$element
15530			        , o = this.options
15531
15532				confirmTitle = $e.attr('data-confirm-title') || (typeof o.confirmTitle == 'function' ? o.confirmTitle.call($e[0]) :  o.confirmTitle)
15533
15534				return confirmTitle
15535		    }
15536
15537		, getLoadingText: function () {
15538				var loadingText
15539			        , $e = this.$element
15540			        , o = this.options
15541
15542				loadingText = $e.attr('data-loading-text') || (typeof o.loadingText == 'function' ? o.loadingText.call($e[0]) :  o.loadingText)
15543
15544				return loadingText
15545		    }
15546
15547		, getTarget: function () {
15548				var target
15549					, $e = this.$element
15550					, o = this.options
15551
15552				target = $e.attr('data-target') || (typeof o.target == 'function' ? o.target.call($e[0]) :	o.target)
15553
15554				return target
15555			}
15556
15557		, getBtnOkClass: function () {
15558				var btnOkClass
15559					, $e = this.$element
15560					, o = this.options
15561
15562				btnOkClass = $e.attr('data-btnOkClass') || (typeof o.btnOkClass == 'function' ? o.btnOkClass.call($e[0]) :	o.btnOkClass)
15563
15564				return btnOkClass
15565			}
15566
15567		, getBtnCancelClass: function () {
15568				var btnCancelClass
15569					, $e = this.$element
15570					, o = this.options
15571
15572				btnCancelClass = $e.attr('data-btnCancelClass') || (typeof o.btnCancelClass == 'function' ? o.btnCancelClass.call($e[0]) :	o.btnCancelClass)
15573
15574				return btnCancelClass
15575			}
15576
15577		, getBtnOkLabel: function () {
15578				var btnOkLabel
15579					, $e = this.$element
15580					, o = this.options
15581
15582				btnOkLabel = $e.attr('data-btnOkLabel') || (typeof o.btnOkLabel == 'function' ? o.btnOkLabel.call($e[0]) :	o.btnOkLabel)
15583
15584				return btnOkLabel
15585			}
15586
15587		, getBtnCancelLabel: function () {
15588				var btnCancelLabel
15589					, $e = this.$element
15590					, o = this.options
15591
15592				btnCancelLabel = $e.attr('data-btnCancelLabel') || (typeof o.btnCancelLabel == 'function' ? o.btnCancelLabel.call($e[0]) :	o.btnCancelLabel)
15593
15594				return btnCancelLabel
15595			}
15596
15597		, tip: function () {
15598				this.$tip = this.$tip || $(this.options.template)
15599				return this.$tip
15600			}
15601
15602		, destroy: function () {
15603				this.hide().$element.off('.' + this.type).removeData(this.type)
15604			}
15605
15606	})
15607
15608
15609 /* CONFIRMATION PLUGIN DEFINITION
15610	* ======================= */
15611
15612	var old = $.fn.confirmation
15613
15614	$.fn.confirmation = function (option) {
15615		var that = this
15616		return this.each(function (e) {
15617			var $this = $(this)
15618				, data = $this.data('confirmation')
15619				, options = typeof option == 'object' && option
15620			options = options || {}
15621			options.all_selector = that.selector
15622			if (!data) $this.data('confirmation', (data = new Confirmation(this, options)))
15623			if (typeof option == 'string') data[option]()
15624		})
15625	}
15626
15627	$.fn.confirmation.Constructor = Confirmation
15628
15629		$.fn.confirmation.defaults = $.extend({} , $.fn.tooltip.defaults, {
15630		placement: 'top'
15631		, trigger: 'click'
15632		, target : '_self'
15633		, href   : '#'
15634		, orig   : ''
15635		, title: 'Are you sure?'
15636		, confirmTitle: 'Are you sure?'
15637		, loadingText: 'Loading...'
15638		, template: '<div class="popover">' +
15639				'<div class="arrow"></div>' +
15640				'<h3 class="popover-title"></h3>' +
15641				'<div class="popover-content text-center">' +
15642				'<div class="btn-group">' +
15643				'<a class="btn btn-medium" href="" target="" data-loading-text=""></a>' +
15644				'<a class="btn btn-medium" data-dismiss="confirmation"></a>' +
15645				'</div>' +
15646				'</div>' +
15647				'</div>'
15648		, btnOkClass:  'btn-primary'
15649		, btnCancelClass:  ''
15650		, btnOkLabel: '<i class="icon-ok-sign icon-white"></i> Yes'
15651		, btnCancelLabel: '<i class="icon-remove-sign"></i> No'
15652		, singleton: false
15653		, popout: false
15654		, onConfirm: function(){}
15655		, onCancel: function(){
15656				$('.popover').hide();
15657		}
15658	})
15659
15660
15661 /* POPOVER NO CONFLICT
15662	* =================== */
15663
15664	$.fn.confirmation.noConflict = function () {
15665		$.fn.confirmation = old
15666		return this
15667	}
15668
15669}(window.jQuery);
15670
15671�/*! For license information please see netsapiens.js.LICENSE.txt */
15672var netsapiens;(()=>{var __webpack_modules__={7568:(t,e,r)=>{var n=e;n.bignum=r(2344),n.define=r(7363).define,n.base=r(9673),n.constants=r(2153),n.decoders=r(2853),n.encoders=r(4669)},7363:(t,e,r)=>{var n=r(7568),i=r(6698);function o(t,e){this.name=t,this.body=e,this.decoders={},this.encoders={}}e.define=function(t,e){return new o(t,e)},o.prototype._createNamed=function(t){var e;try{e=Object(function(){var t=new Error("Cannot find module 'vm'");throw t.code="MODULE_NOT_FOUND",t}())("(function "+this.name+"(entity) {\n  this._initNamed(entity);\n})")}catch(t){e=function(t){this._initNamed(t)}}return i(e,t),e.prototype._initNamed=function(e){t.call(this,e)},new e(this)},o.prototype._getDecoder=function(t){return t=t||"der",this.decoders.hasOwnProperty(t)||(this.decoders[t]=this._createNamed(n.decoders[t])),this.decoders[t]},o.prototype.decode=function(t,e,r){return this._getDecoder(e).decode(t,r)},o.prototype._getEncoder=function(t){return t=t||"der",this.encoders.hasOwnProperty(t)||(this.encoders[t]=this._createNamed(n.encoders[t])),this.encoders[t]},o.prototype.encode=function(t,e,r){return this._getEncoder(e).encode(t,r)}},7227:(t,e,r)=>{var n=r(6698),i=r(9673).Reporter,o=r(8287).Buffer;function s(t,e){i.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function a(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return t instanceof a||(t=new a(t,e)),this.length+=t.length,t}),this);else if("number"==typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"==typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}n(s,i),e.t=s,s.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},s.prototype.restore=function(t){var e=new s(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,i.prototype.restore.call(this,t.reporter),e},s.prototype.isEmpty=function(){return this.offset===this.length},s.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},s.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");var r=new s(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},s.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.d=a,a.prototype.join=function(t,e){return t||(t=new o(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):("number"==typeof this.value?t[e]=this.value:"string"==typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},9673:(t,e,r)=>{var n=e;n.Reporter=r(9220).a,n.DecoderBuffer=r(7227).t,n.EncoderBuffer=r(7227).d,n.Node=r(993)},993:(t,e,r)=>{var n=r(9673).Reporter,i=r(9673).EncoderBuffer,o=r(9673).DecoderBuffer,s=r(3349),a=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],d=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(a);function u(t,e){var r={};this._baseState=r,r.enc=t,r.parent=e||null,r.children=null,r.tag=null,r.args=null,r.reverseArgs=null,r.choice=null,r.optional=!1,r.any=!1,r.obj=!1,r.use=null,r.useDecoder=null,r.key=null,r.default=null,r.explicit=null,r.implicit=null,r.contains=null,r.parent||(r.children=[],this._wrap())}t.exports=u;var h=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];u.prototype.clone=function(){var t=this._baseState,e={};h.forEach((function(r){e[r]=t[r]}));var r=new this.constructor(e.parent);return r._baseState=e,r},u.prototype._wrap=function(){var t=this._baseState;d.forEach((function(e){this[e]=function(){var r=new this.constructor(this);return t.children.push(r),r[e].apply(r,arguments)}}),this)},u.prototype._init=function(t){var e=this._baseState;s(null===e.parent),t.call(this),e.children=e.children.filter((function(t){return t._baseState.parent===this}),this),s.equal(e.children.length,1,"Root node can have only one child")},u.prototype._useArgs=function(t){var e=this._baseState,r=t.filter((function(t){return t instanceof this.constructor}),this);t=t.filter((function(t){return!(t instanceof this.constructor)}),this),0!==r.length&&(s(null===e.children),e.children=r,r.forEach((function(t){t._baseState.parent=this}),this)),0!==t.length&&(s(null===e.args),e.args=t,e.reverseArgs=t.map((function(t){if("object"!=typeof t||t.constructor!==Object)return t;var e={};return Object.keys(t).forEach((function(r){r==(0|r)&&(r|=0);var n=t[r];e[n]=r})),e}
vendor: 27,387 bytes, line 15672
15672)))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(t){u.prototype[t]=function(){var e=this._baseState;throw new Error(t+" not implemented for encoding: "+e.enc)}})),a.forEach((function(t){u.prototype[t]=function(){var e=this._baseState,r=Array.prototype.slice.call(arguments);return s(null===e.tag),e.tag=t,this._useArgs(r),this}})),u.prototype.use=function(t){s(t);var e=this._baseState;return s(null===e.use),e.use=t,this},u.prototype.optional=function(){return this._baseState.optional=!0,this},u.prototype.def=function(t){var e=this._baseState;return s(null===e.default),e.default=t,e.optional=!0,this},u.prototype.explicit=function(t){var e=this._baseState;return s(null===e.explicit&&null===e.implicit),e.explicit=t,this},u.prototype.implicit=function(t){var e=this._baseState;return s(null===e.explicit&&null===e.implicit),e.implicit=t,this},u.prototype.obj=function(){var t=this._baseState,e=Array.prototype.slice.call(arguments);return t.obj=!0,0!==e.length&&this._useArgs(e),this},u.prototype.key=function(t){var e=this._baseState;return s(null===e.key),e.key=t,this},u.prototype.any=function(){return this._baseState.any=!0,this},u.prototype.choice=function(t){var e=this._baseState;return s(null===e.choice),e.choice=t,this._useArgs(Object.keys(t).map((function(e){return t[e]}))),this},u.prototype.contains=function(t){var e=this._baseState;return s(null===e.use),e.contains=t,this},u.prototype._decode=function(t,e){var r=this._baseState;if(null===r.parent)return t.wrapResult(r.children[0]._decode(t,e));var n,i=r.default,s=!0,a=null;if(null!==r.key&&(a=t.enterKey(r.key)),r.optional){var d=null;if(null!==r.explicit?d=r.explicit:null!==r.implicit?d=r.implicit:null!==r.tag&&(d=r.tag),null!==d||r.any){if(s=this._peekTag(t,d,r.any),t.isError(s))return s}else{var u=t.save();try{null===r.choice?this._decodeGeneric(r.tag,t,e):this._decodeChoice(t,e),s=!0}catch(t){s=!1}t.restore(u)}}if(r.obj&&s&&(n=t.enterObject()),s){if(null!==r.explicit){var h=this._decodeTag(t,r.explicit);if(t.isError(h))return h;t=h}var l=t.offset;if(null===r.use&&null===r.choice){r.any&&(u=t.save());var f=this._decodeTag(t,null!==r.implicit?r.implicit:r.tag,r.any);if(t.isError(f))return f;r.any?i=t.raw(u):t=f}if(e&&e.track&&null!==r.tag&&e.track(t.path(),l,t.length,"tagged"),e&&e.track&&null!==r.tag&&e.track(t.path(),t.offset,t.length,"content"),r.any||(i=null===r.choice?this._decodeGeneric(r.tag,t,e):this._decodeChoice(t,e)),t.isError(i))return i;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(t,e)})),r.contains&&("octstr"===r.tag||"bitstr"===r.tag)){var c=new o(i);i=this._getUse(r.contains,t._reporterState.obj)._decode(c,e)}}return r.obj&&s&&(i=t.leaveObject(n)),null===r.key||null===i&&!0!==s?null!==a&&t.exitKey(a):t.leaveKey(a,r.key,i),i},u.prototype._decodeGeneric=function(t,e,r){var n=this._baseState;return"seq"===t||"set"===t?null:"seqof"===t||"setof"===t?this._decodeList(e,t,n.args[0],r):/str$/.test(t)?this._decodeStr(e,t,r):"objid"===t&&n.args?this._decodeObjid(e,n.args[0],n.args[1],r):"objid"===t?this._decodeObjid(e,null,null,r):"gentime"===t||"utctime"===t?this._decodeTime(e,t,r):"null_"===t?this._decodeNull(e,r):"bool"===t?this._decodeBool(e,r):"objDesc"===t?this._decodeStr(e,t,r):"int"===t||"enum"===t?this._decodeInt(e,n.args&&n.args[0],r):null!==n.use?this._getUse(n.use,e._reporterState.obj)._decode(e,r):e.error("unknown tag: "+t)},u.prototype._getUse=function(t,e){var r=this._baseState;return r.useDecoder=this._use(t,e),s(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},u.prototype._decodeChoice=function(t,e){var r=this._baseState,n=null,i=!1;return Object.keys(r.choice).some((function(o){var s=t.save(),a=r.choice[o];try{var d=a._decode(t,e);if(t.isError(d))return!1;n={type:o,value:d},i=!0}catch(e){return t.restore(s),!1}return!0}),this),i?n:t.error("Choice not matched")},u.prototype._createEncoderBuffer=function(t){return new i(t,this.reporter)},u.prototype._encode=function(t,e,r){var n=this._baseState;if(null===n.default||n.default!==t){var i=this._encodeValue(t,e,r);if(void 0!==i&&!this._skipDefault(i,e,r))return i}},u.prototype._encodeValue=function(t,e,r){var i=this._baseState;if(null===i.parent)return i.children[0]._encode(t,e||new n);var o=null;if(this.reporter=e,i.optional&&void 0===t){if(null===i.default)return;t=i.default}var s=null,a=!1;if(i.any)o=this._createEncoderBuffer(t);else if(i.choice)o=this._encodeChoice(t,e);else if(i.contains)s=this._getUse(i.contains,r)._encode(t,e),a=!0;else if(i.children)s=i.children.map((function(r){if("null_"===r._baseState.tag)return r._encode(null,e,t);if(null===r._baseState.key)return e.error("Child should have a key");var n=e.enterKey(r._baseState.key);if("object"!=typeof t)return e.error("Child expected, but input is not object");var i=r._encode(t[r._baseState.key],e,t);return e.leaveKey(n),i}),this).filter((function(t){return t})),s=this._createEncoderBuffer(s);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return e.error("Too many args for : "+i.tag);if(!Array.isArray(t))return e.error("seqof/setof, but data is not Array");var d=this.clone();d._baseState.implicit=null,s=this._createEncoderBuffer(t.map((function(r){var n=this._baseState;return this._getUse(n.args[0],t)._encode(r,e)}),d))}else null!==i.use?o=this._getUse(i.use,r)._encode(t,e):(s=this._encodePrimitive(i.tag,t),a=!0);if(!i.any&&null===i.choice){var u=null!==i.implicit?i.implicit:i.tag,h=null===i.implicit?"universal":"context";null===u?null===i.use&&e.error("Tag could be omitted only for .use()"):null===i.use&&(o=this._encodeComposite(u,a,h,s))}return null!==i.explicit&&(o=this._encodeComposite(i.explicit,!1,"context",o)),o},u.prototype._encodeChoice=function(t,e){var r=this._baseState,n=r.choice[t.type];return n||s(!1,t.type+" not found in "+JSON.stringify(Object.keys(r.choice))),n._encode(t.value,e)},u.prototype._encodePrimitive=function(t,e){var r=this._baseState;if(/str$/.test(t))return this._encodeStr(e,t);if("objid"===t&&r.args)return this._encodeObjid(e,r.reverseArgs[0],r.args[1]);if("objid"===t)return this._encodeObjid(e,null,null);if("gentime"===t||"utctime"===t)return this._encodeTime(e,t);if("null_"===t)return this._encodeNull();if("int"===t||"enum"===t)return this._encodeInt(e,r.args&&r.reverseArgs[0]);if("bool"===t)return this._encodeBool(e);if("objDesc"===t)return this._encodeStr(e,t);throw new Error("Unsupported tag: "+t)},u.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)},u.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(t)}},9220:(t,e,r)=>{var n=r(6698);function i(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function o(t,e){this.path=t,this.rethrow(e)}e.a=i,i.prototype.isError=function(t){return t instanceof o},i.prototype.save=function(){var t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},i.prototype.restore=function(t){var e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},i.prototype.enterKey=function(t){return this._reporterState.path.push(t)},i.prototype.exitKey=function(t){var e=this._reporterState;e.path=e.path.slice(0,t-1)},i.prototype.leaveKey=function(t,e,r){var n=this._reporterState;this.exitKey(t),null!==n.obj&&(n.obj[e]=r)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var t=this._reporterState,e=t.obj;return t.obj={},e},i.prototype.leaveObject=function(t){var e=this._reporterState,r=e.obj;return e.obj=t,r},i.prototype.error=function(t){var e,r=this._reporterState,n=t instanceof o;if(e=n?t:new o(r.path.map((function(t){return"["+JSON.stringify(t)+"]"})).join(""),t.message||t,t.stack),!r.options.partial)throw e;return n||r.errors.push(e),e},i.prototype.wrapResult=function(t){var e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},n(o,Error),o.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(t){this.stack=t.stack}return this}},4598:(t,e,r)=>{var n=r(2153);e.tagClass={0:"universal",1:"application",2:"context",3:"private"},e.tagClassByName=n._reverse(e.tagClass),e.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},e.tagByName=n._reverse(e.tag)},2153:(t,e,r)=>{var n=e;n._reverse=function(t){var e={};return Object.keys(t).forEach((function(r){(0|r)==r&&(r|=0);var n=t[r];e[n]=r})),e},n.der=r(4598)},2010:(t,e,r)=>{var n=r(6698),i=r(7568),o=i.base,s=i.bignum,a=i.constants.der;function d(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new u,this.tree._init(t.body)}function u(t){o.Node.call(this,"der",t)}function h(t,e){var r=t.readUInt8(e);if(t.isError(r))return r;var n=a.tagClass[r>>6],i=!(32&r);if(31&~r)r&=31;else{var o=r;for(r=0;!(128&~o);){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}return{cls:n,primitive:i,tag:r,tagStr:a.tag[r]}}function l(t,e,r){var n=t.readUInt8(r);if(t.isError(n))return n;if(!e&&128===n)return null;if(!(128&n))return n;var i=127&n;if(i>4)return t.error("length octect is too long");n=0;for(var o=0;o<i;o++){n<<=8;var s=t.readUInt8(r);if(t.isError(s))return s;n|=s}return n}t.exports=d,d.prototype.decode=function(t,e){return t instanceof o.DecoderBuffer||(t=new o.DecoderBuffer(t,e)),this.tree._decode(t,e)},n(u,o.Node),u.prototype._peekTag=function(t,e,r){if(t.isEmpty())return!1;var n=t.save(),i=h(t,'Failed to peek tag: "'+e+'"');return t.isError(i)?i:(t.restore(n),i.tag===e||i.tagStr===e||i.tagStr+"of"===e||r)},u.prototype._decodeTag=function(t,e,r){var n=h(t,'Failed to decode tag of "'+e+'"');if(t.isError(n))return n;var i=l(t,n.primitive,'Failed to get length of "'+e+'"');if(t.isError(i))return i;if(!r&&n.tag!==e&&n.tagStr!==e&&n.tagStr+"of"!==e)return t.error('Failed to match tag: "'+e+'"');if(n.primitive||null!==i)return t.skip(i,'Failed to match body of: "'+e+'"');var o=t.save(),s=this._skipUntilEnd(t,'Failed to skip indefinite length body: "'+this.tag+'"');return t.isError(s)?s:(i=t.offset-o.offset,t.restore(o),t.skip(i,'Failed to match body of: "'+e+'"'))},u.prototype._skipUntilEnd=function(t,e){for(;;){var r=h(t,e);if(t.isError(r))return r;var n,i=l(t,r.primitive,e);if(t.isError(i))return i;if(n=r.primitive||null!==i?t.skip(i):this._skipUntilEnd(t,e),t.isError(n))return n;if("end"===r.tagStr)break}},u.prototype._decodeList=function(t,e,r,n){for(var i=[];!t.isEmpty();){var o=this._peekTag(t,"end");if(t.isError(o))return o;var s=r.decode(t,"der",n);if(t.isError(s)&&o)break;i.push(s)}return i},u.prototype._decodeStr=function(t,e){if("bitstr"===e){var r=t.readUInt8();return t.isError(r)?r:{unused:r,data:t.raw()}}if("bmpstr"===e){var n=t.raw();if(n.length%2==1)return t.error("Decoding of string type: bmpstr length mismatch");for(var i="",o=0;o<n.length/2;o++)i+=String.fromCharCode(n.readUInt16BE(2*o));return i}if("numstr"===e){var s=t.raw().toString("ascii");return this._isNumstr(s)?s:t.error("Decoding of string type: numstr unsupported characters")}if("octstr"===e)return t.raw();if("objDesc"===e)return t.raw();if("printstr"===e){var a=t.raw().toString("ascii");return this._isPrintstr(a)?a:t.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(e)?t.raw().toString():t.error("Decoding of string type: "+e+" unsupported")},u.prototype._decodeObjid=function(t,e,r){for(var n,i=[],o=0;!t.isEmpty();){var s=t.readUInt8();o<<=7,o|=127&s,128&s||(i.push(o),o=0)}128&s&&i.push(o);var a=i[0]/40|0,d=i[0]%40;if(n=r?i:[a,d].concat(i.slice(1)),e){var u=e[n.join(" ")];void 0===u&&(u=e[n.join(".")]),void 0!==u&&(n=u)}return n},u.prototype._decodeTime=function(t,e){var r=t.raw().toString();if("gentime"===e)var n=0|r.slice(0,4),i=0|r.slice(4,6),o=0|r.slice(6,8),s=0|r.slice(8,10),a=0|r.slice(10,12),d=0|r.slice(12,14);else{if("utctime"!==e)return t.error("Decoding "+e+" time is not supported yet");n=0|r.slice(0,2),i=0|r.slice(2,4),o=0|r.slice(4,6),s=0|r.slice(6,8),a=0|r.slice(8,10),d=0|r.slice(10,12),n=n<70?2e3+n:1900+n}return Date.UTC(n,i-1,o,s,a,d,0)},u.prototype._decodeNull=function(t){return null},u.prototype._decodeBool=function(t){var e=t.readUInt8();return t.isError(e)?e:0!==e},u.prototype._decodeInt=function(t,e){var r=t.raw(),n=new s(r);return e&&(n=e[n.toString(10)]||n),n},u.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getDecoder("der").tree}},2853:(t,e,r)=>{var n=e;n.der=r(2010),n.pem=r(8903)},8903:(t,e,r)=>{var n=r(6698),i=r(8287).Buffer,o=r(2010);function s(t){o.call(this,t),this.enc="pem"}n(s,o),t.exports=s,s.prototype.decode=function(t,e){for(var r=t.toString().split(/[\r\n]+/g),n=e.label.toUpperCase(),s=/^-----(BEGIN|END) ([^-]+)-----$/,a=-1,d=-1,u=0;u<r.length;u++){var h=r[u].match(s);if(null!==h&&h[2]===n){if(-1!==a){if("END"!==h[1])break;d=u;break}if("BEGIN"!==h[1])break;a=u}}if(-1===a||-1===d)throw new Error("PEM section not found for: "+n);var l=r.slice(a+1,d).join("");l.replace(/[^a-z0-9\+\/=]+/gi,"");var f=new i(l,"base64");return o.prototype.decode.call(this,f,e)}},82:(t,e,r)=>{var n=r(6698),i=r(8287).Buffer,o=r(7568),s=o.base,a=o.constants.der;function d(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new u,this.tree._init(t.body)}function u(t){s.Node.call(this,"der",t)}function h(t){return t<10?"0"+t:t}t.exports=d,d.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},n(u,s.Node),u.prototype._encodeComposite=function(t,e,r,n){var o,s=function(t,e,r,n){var i;if("seqof"===t?t="seq":"setof"===t&&(t="set"),a.tagByName.hasOwnProperty(t))i=a.tagByName[t];else{if("number"!=typeof t||(0|t)!==t)return n.error("Unknown tag: "+t);i=t}return i>=31?n.error("Multi-octet tag encoding unsupported"):(e||(i|=32),i|=a.tagClassByName[r||"universal"]<<6)}(t,e,r,this.reporter);if(n.length<128)return(o=new i(2))[0]=s,o[1]=n.length,this._createEncoderBuffer([o,n]);for(var d=1,u=n.length;u>=256;u>>=8)d++;(o=new i(2+d))[0]=s,o[1]=128|d,u=1+d;for(var h=n.length;h>0;u--,h>>=8)o[u]=255&h;return this._createEncoderBuffer([o,n])},u.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var r=new i(2*t.length),n=0;n<t.length;n++)r.writeUInt16BE(t.charCodeAt(n),2*n);return this._createEncoderBuffer(r)}return"numstr"===e?this._isNumstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===e?this._isPrintstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(e)||"objDesc"===e?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: "+e+" unsupported")},u.prototype._encodeObjid=function(t,e,r){if("string"==typeof t){if(!e)return this.reporter.error("string objid given, but no values map found");if(!e.hasOwnProperty(t))return this.reporter.error("objid not found in values map");t=e[t].split(/[\s\.]+/g);for(var n=0;n<t.length;n++)t[n]|=0}else if(Array.isArray(t))for(t=t.slice(),n=0;n<t.length;n++)t[n]|=0;if(!Array.isArray(t))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(t));if(!r){if(t[1]>=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}var o=0;for(n=0;n<t.length;n++){var s=t[n];for(o++;s>=128;s>>=7)o++}var a=new i(o),d=a.length-1;for(n=t.length-1;n>=0;n--)for(s=t[n],a[d--]=127&s;(s>>=7)>0;)a[d--]=128|127&s;return this._createEncoderBuffer(a)},u.prototype._encodeTime=function(t,e){var r,n=new Date(t);return"gentime"===e?r=[h(n.getFullYear()),h(n.getUTCMonth()+1),h(n.getUTCDate()),h(n.getUTCHours()),h(n.getUTCMinutes()),h(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?r=[h(n.getFullYear()%100),h(n.getUTCMonth()+1),h(n.getUTCDate()),h(n.getUTCHours()),h(n.getUTCMinutes()),h(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(r,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(t,e){if("string"==typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!=typeof t&&!i.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=new i(r)}if(i.isBuffer(t)){var n=t.length;0===t.length&&n++;var o=new i(n);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);n=1;for(var s=t;s>=256;s>>=8)n++;for(s=(o=new Array(n)).length-1;s>=0;s--)o[s]=255&t,t>>=8;return 128&o[0]&&o.unshift(0),this._createEncoderBuffer(new i(o))},u.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},u.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getEncoder("der").tree},u.prototype._skipDefault=function(t,e,r){var n,i=this._baseState;if(null===i.default)return!1;var o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,e,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n<o.length;n++)if(o[n]!==i.defaultBuffer[n])return!1;return!0}},4669:(t,e,r)=>{var n=e;n.der=r(82),n.pem=r(735)},735:(t,e,r)=>{var n=r(6698),i=r(82);function o(t){i.call(this,t),this.enc="pem"}n(o,i),t.exports=o,o.prototype.encode=function(t,e){for(var r=i.prototype.encode.call(this,t).toString("base64"),n=["-----BEGIN "+e.label+"-----"],o=0;o<r.length;o+=64)n.push(r.slice(o,o+64));return n.push("-----END "+e.label+"-----"),n.join("\n")}},2344:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(8982).Buffer}catch(t){}function a(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function d(t,e,r){var n=a(t,r);return r-1>=e&&(n|=a(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s<o;s++){var a=t.charCodeAt(s)-48;i*=n,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===r)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,d=0,h=r;h<a;h+=n)d=u(t,h,h+n,e),this.imuln(i),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d);if(0!==s){var l=1;for(d=u(t,h,t.length,e),h=0;h<s;h++)l*=e;this.imuln(l),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,d=s/67108864|0;r.words[0]=a;for(var u=1;u<n;u++){for(var h=d>>>26,l=67108863&d,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var g=u-c|0;h+=(s=(i=0|t.words[g])*(o=0|e.words[c])+l)/67108864|0,l=67108863&s}r.words[u]=0|l,d=0|h}return 0!==d?r.words[u]=0|d:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],d=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),r=0!==o||s!==this.length-1?h[6-d.length]+d+r:d+r}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=l[t],c=f[t];r="";var g=this.clone();for(g.negative=0;!g.isZero();){var p=g.modn(c).toString(t);r=(g=g.idivn(c)).isZero()?p+r:h[u-p.length]+p+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,d="le"===e,u=new t(o),h=this.clone();if(d){for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[a]=s;for(;a<o;a++)u[a]=0}else{for(a=0;a<o-i;a++)u[a]=0;for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[o-a-1]=s}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return n(!(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return n(!(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return n(!
vendor: 2,330 bytes, line 15672
15672(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},o.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var 
vendor: 7,651 bytes, line 15672
15672g=function(t,e,r){var n,i,o,s=t.words,a=e.words,d=r.words,u=0,h=0|s[0],l=8191&h,f=h>>>13,c=0|s[1],g=8191&c,p=c>>>13,m=0|s[2],b=8191&m,y=m>>>13,v=0|s[3],_=8191&v,M=v>>>13,w=0|s[4],$=8191&w,S=w>>>13,N=0|s[5],E=8191&N,T=N>>>13,A=0|s[6],R=8191&A,P=A>>>13,O=0|s[7],C=8191&O,I=O>>>13,L=0|s[8],D=8191&L,U=L>>>13,k=0|s[9],x=8191&k,F=k>>>13,B=0|a[0],V=8191&B,j=B>>>13,H=0|a[1],G=8191&H,W=H>>>13,Y=0|a[2],z=8191&Y,q=Y>>>13,K=0|a[3],Z=8191&K,X=K>>>13,J=0|a[4],Q=8191&J,tt=J>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],dt=8191&at,ut=at>>>13,ht=0|a[8],lt=8191&ht,ft=ht>>>13,ct=0|a[9],gt=8191&ct,pt=ct>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,j))+Math.imul(f,V)|0))<<13)|0;u=((o=Math.imul(f,j))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(g,V),i=(i=Math.imul(g,j))+Math.imul(p,V)|0,o=Math.imul(p,j);var bt=(u+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(f,G)|0))<<13)|0;u=((o=o+Math.imul(f,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,j))+Math.imul(y,V)|0,o=Math.imul(y,j),n=n+Math.imul(g,G)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(p,G)|0,o=o+Math.imul(p,W)|0;var yt=(u+(n=n+Math.imul(l,z)|0)|0)+((8191&(i=(i=i+Math.imul(l,q)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,q)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,V),i=(i=Math.imul(_,j))+Math.imul(M,V)|0,o=Math.imul(M,j),n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(g,z)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(p,z)|0,o=o+Math.imul(p,q)|0;var vt=(u+(n=n+Math.imul(l,Z)|0)|0)+((8191&(i=(i=i+Math.imul(l,X)|0)+Math.imul(f,Z)|0))<<13)|0;u=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul($,V),i=(i=Math.imul($,j))+Math.imul(S,V)|0,o=Math.imul(S,j),n=n+Math.imul(_,G)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,W)|0,n=n+Math.imul(b,z)|0,i=(i=i+Math.imul(b,q)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,q)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(p,Z)|0,o=o+Math.imul(p,X)|0;var _t=(u+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,V),i=(i=Math.imul(E,j))+Math.imul(T,V)|0,o=Math.imul(T,j),n=n+Math.imul($,G)|0,i=(i=i+Math.imul($,W)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(_,z)|0,i=(i=i+Math.imul(_,q)|0)+Math.imul(M,z)|0,o=o+Math.imul(M,q)|0,n=n+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,X)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(p,Q)|0,o=o+Math.imul(p,tt)|0;var Mt=(u+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(f,rt)|0))<<13)|0;u=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(R,V),i=(i=Math.imul(R,j))+Math.imul(P,V)|0,o=Math.imul(P,j),n=n+Math.imul(E,G)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul($,z)|0,i=(i=i+Math.imul($,q)|0)+Math.imul(S,z)|0,o=o+Math.imul(S,q)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(p,rt)|0,o=o+Math.imul(p,nt)|0;var wt=(u+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,st)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,j))+Math.imul(I,V)|0,o=Math.imul(I,j),n=n+Math.imul(R,G)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(P,G)|0,o=o+Math.imul(P,W)|0,n=n+Math.imul(E,z)|0,i=(i=i+Math.imul(E,q)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,q)|0,n=n+Math.imul($,Z)|0,i=(i=i+Math.imul($,X)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(p,ot)|0,o=o+Math.imul(p,st)|0;var $t=(u+(n=n+Math.imul(l,dt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ut)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,j))+Math.imul(U,V)|0,o=Math.imul(U,j),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(I,G)|0,o=o+Math.imul(I,W)|0,n=n+Math.imul(R,z)|0,i=(i=i+Math.imul(R,q)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,q)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul($,Q)|0,i=(i=i+Math.imul($,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(g,dt)|0,i=(i=i+Math.imul(g,ut)|0)+Math.imul(p,dt)|0,o=o+Math.imul(p,ut)|0;var St=(u+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ft)|0)+Math.imul(f,lt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(x,V),i=(i=Math.imul(x,j))+Math.imul(F,V)|0,o=Math.imul(F,j),n=n+Math.imul(D,G)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(C,z)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(I,z)|0,o=o+Math.imul(I,q)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul($,rt)|0,i=(i=i+Math.imul($,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,n=n+Math.imul(b,dt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(g,lt)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(p,lt)|0,o=o+Math.imul(p,ft)|0;var Nt=(u+(n=n+Math.imul(l,gt)|0)|0)+((8191&(i=(i=i+Math.imul(l,pt)|0)+Math.imul(f,gt)|0))<<13)|0;u=((o=o+Math.imul(f,pt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,W))+Math.imul(F,G)|0,o=Math.imul(F,W),n=n+Math.imul(D,z)|0,i=(i=i+Math.imul(D,q)|0)+Math.imul(U,z)|0,o=o+Math.imul(U,q)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(I,Z)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul($,ot)|0,i=(i=i+Math.imul($,st)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,st)|0,n=n+Math.imul(_,dt)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(M,dt)|0,o=o+Math.imul(M,ut)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ft)|0)+Math.imul(y,lt)|0,o=o+Math.imul(y,ft)|0;var Et=(u+(n=n+Math.imul(g,gt)|0)|0)+((8191&(i=(i=i+Math.imul(g,pt)|0)+Math.imul(p,gt)|0))<<13)|0;u=((o=o+Math.imul(p,pt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,z),i=(i=Math.imul(x,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(D,Z)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,X)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul($,dt)|0,i=(i=i+Math.imul($,ut)|0)+Math.imul(S,dt)|0,o=o+Math.imul(S,ut)|0,n=n+Math.imul(_,lt)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(M,lt)|0,o=o+Math.imul(M,ft)|0;var Tt=(u+(n=n+Math.imul(b,gt)|0)|0)+((8191&(i=(i=i+Math.imul(b,pt)|0)+Math.imul(y,gt)|0))<<13)|0;u=((o=o+Math.imul(y,pt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(x,Z),i=(i=Math.imul(x,X))+Math.imul(F,Z)|0,o=Math.imul(F,X
vendor: 5,428 bytes, line 15672
15672),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(E,dt)|0,i=(i=i+Math.imul(E,ut)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul($,lt)|0,i=(i=i+Math.imul($,ft)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ft)|0;var At=(u+(n=n+Math.imul(_,gt)|0)|0)+((8191&(i=(i=i+Math.imul(_,pt)|0)+Math.imul(M,gt)|0))<<13)|0;u=((o=o+Math.imul(M,pt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(x,Q),i=(i=Math.imul(x,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(U,rt)|0,o=o+Math.imul(U,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(R,dt)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(P,dt)|0,o=o+Math.imul(P,ut)|0,n=n+Math.imul(E,lt)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(T,lt)|0,o=o+Math.imul(T,ft)|0;var Rt=(u+(n=n+Math.imul($,gt)|0)|0)+((8191&(i=(i=i+Math.imul($,pt)|0)+Math.imul(S,gt)|0))<<13)|0;u=((o=o+Math.imul(S,pt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(x,rt),i=(i=Math.imul(x,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(D,ot)|0,i=(i=i+Math.imul(D,st)|0)+Math.imul(U,ot)|0,o=o+Math.imul(U,st)|0,n=n+Math.imul(C,dt)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(I,dt)|0,o=o+Math.imul(I,ut)|0,n=n+Math.imul(R,lt)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(P,lt)|0,o=o+Math.imul(P,ft)|0;var Pt=(u+(n=n+Math.imul(E,gt)|0)|0)+((8191&(i=(i=i+Math.imul(E,pt)|0)+Math.imul(T,gt)|0))<<13)|0;u=((o=o+Math.imul(T,pt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(x,ot),i=(i=Math.imul(x,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(D,dt)|0,i=(i=i+Math.imul(D,ut)|0)+Math.imul(U,dt)|0,o=o+Math.imul(U,ut)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(I,lt)|0,o=o+Math.imul(I,ft)|0;var Ot=(u+(n=n+Math.imul(R,gt)|0)|0)+((8191&(i=(i=i+Math.imul(R,pt)|0)+Math.imul(P,gt)|0))<<13)|0;u=((o=o+Math.imul(P,pt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(x,dt),i=(i=Math.imul(x,ut))+Math.imul(F,dt)|0,o=Math.imul(F,ut),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ft)|0)+Math.imul(U,lt)|0,o=o+Math.imul(U,ft)|0;var Ct=(u+(n=n+Math.imul(C,gt)|0)|0)+((8191&(i=(i=i+Math.imul(C,pt)|0)+Math.imul(I,gt)|0))<<13)|0;u=((o=o+Math.imul(I,pt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(x,lt),i=(i=Math.imul(x,ft))+Math.imul(F,lt)|0,o=Math.imul(F,ft);var It=(u+(n=n+Math.imul(D,gt)|0)|0)+((8191&(i=(i=i+Math.imul(D,pt)|0)+Math.imul(U,gt)|0))<<13)|0;u=((o=o+Math.imul(U,pt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Lt=(u+(n=Math.imul(x,gt))|0)+((8191&(i=(i=Math.imul(x,pt))+Math.imul(F,gt)|0))<<13)|0;return u=((o=Math.imul(F,pt))+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,d[0]=mt,d[1]=bt,d[2]=yt,d[3]=vt,d[4]=_t,d[5]=Mt,d[6]=wt,d[7]=$t,d[8]=St,d[9]=Nt,d[10]=Et,d[11]=Tt,d[12]=At,d[13]=Rt,d[14]=Pt,d[15]=Ot,d[16]=Ct,d[17]=It,d[18]=Lt,0!==u&&(d[19]=u,r.length++),r};function p(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(g=c),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?g(this,t,e):n<63?c(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,d=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=d;u++){var h=o-u,l=(0|t.words[h])*(0|e.words[u]),f=67108863&l;a=67108863&(f=f+a|0),i+=(s=(s=s+(l/67108864|0)|0)+(f>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):p(this,t,e),r},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},m.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s<o;s++)n[s]=e[t[s]],i[s]=r[t[s]]},m.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,d=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),h=0;h<i;h+=a)for(var l=d,f=u,c=0;c<s;c++){var g=r[h+c],p=n[h+c],m=r[h+c+s],b=n[h+c+s],y=l*m-f*b;b=l*b+f*m,m=y,r[h+c]=g+m,n[h+c]=p+b,r[h+c+s]=g-m,n[h+c+s]=p-b,c!==a&&(y=d*l-u*f,f=d*f+u*l,l=y)}},m.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},m.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},m.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},m.prototype.convert13b=function(t,e,r,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],r[2*s]=8191&o,o>>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)r[s]=0;n(0===o),n(!(-8192&o))},m.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},m.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),s=new Array(n),a=new Array(n),d=new Array(n),u=new Array(n),h=new Array(n),l=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,s,n),this.convert13b(e.words,e.length,u,n),this.transform(s,o,a,d,n,i),this.transform(u,o,h,l,n,i);for(var c=0;c<n;
vendor: 16,384 bytes, line 15672
15672c++){var g=a[c]*h[c]-d[c]*l[c];d[c]=a[c]*l[c]+d[c]*h[c],a[c]=g}return this.conjugate(a,d,n),this.transform(a,d,f,o,n,i),this.conjugate(f,o,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),p(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){n("number"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,o=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,d=(0|this.words[e])-a<<r;this.words[e]=d|s,s=a>>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,d=r;if(i-=s,i=Math.max(0,i),d){for(var u=0;u<s;u++)d.words[u]=this.words[u];d.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var h=0;for(u=this.length-1;u>=0&&(0!==h||u>=i);u--){var l=0|this.words[u];this.words[u]=h<<26-o|l>>>o,h=l&a}return d&&0!==h&&(d.words[d.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,r){var i,o,s=t.length+r;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+r])+a;var d=(0|t.words[i])*e;a=((o-=67108863&d)>>26)-(d/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)a=(o=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&o;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,d=n.length-i.length;if("mod"!==e){(a=new o(null)).length=d+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var h=n.clone()._ishlnsubmul(i,1,d);0===h.negative&&(n=h,a&&(a.words[d]=1));for(var l=d-1;l>=0;l--){var f=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(i,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);a&&(a.words[l]=f)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&t.negative?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),d=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var h=r.clone(),l=e.clone();!e.isZero();){for(var f=0,c=1;!(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(h),s.isub(l)),i.iushrn(1),s.iushrn(1);for(var g=0,p=1;!(r.words[0]&p)&&g<26;++g,p<<=1);if(g>0)for(r.iushrn(g);g-- >0;)(a.isOdd()||d.isOdd())&&(a.iadd(h),d.isub(l)),a.iushrn(1),d.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(d)):(r.isub(e),a.isub(i),d.isub(s))}return{a,b:d,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),d=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,h=1;!(e.words[0]&h)&&u<26;++u,h<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(d),s.iushrn(1);for(var l=0,f=1;!(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(d),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,s=r;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new $(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){$.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(v,y),v.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(_,y),i(M,y),i(w,y),w.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return b[t]=e,e},$.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},$.prototype._verify2=function(t,e){n(!(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},$.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},$.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},$.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},$.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},$.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},$.prototype.isqr=function(t){return this.imul(t,t.clone())},$.prototype.sqr=function(t){return th
vendor: 1,235 bytes, line 15672
15672is.mul(t,t)},$.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),d=a.redNeg(),u=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,u).cmp(d);)h.redIAdd(d);for(var l=this.pow(h,i),f=this.pow(t,i.addn(1).iushrn(1)),c=this.pow(t,i),g=s;0!==c.cmp(a);){for(var p=c,m=0;0!==p.cmp(a);m++)p=p.redSqr();n(m<g);var b=this.pow(l,new o(1).iushln(g-m-1));f=f.redMul(b),l=b.redSqr(),c=c.redMul(l),g=m}return f},$.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},$.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],s=0,a=0,d=e.bitLength()%26;for(0===d&&(d=26),n=e.length-1;n>=0;n--){for(var u=e.words[n],h=d-1;h>=0;h--){var l=u>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==s?(s<<=1,s|=l,(4==++a||0===n&&0===h)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}
15672d=26}return i},$.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},$.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new S(t)},i(S,$),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},2505:(t,e,r)=>{t.exports=r(8015)},5592:(t,e,r)=>{"use strict";var n=r(9516),i=r(7522),o=r(3948),s=r(9106),a=r(9615),d=r(2012),u=r(4202),h=r(4896),l=r(5845),f=r(8563),c=r(5656),g=r(5721);t.exports=function(t){return new Promise((function(e,r){var p,m=t.data,b=t.headers,y=t.responseType,v=t.withXSRFToken;function _(){t.cancelToken&&t.cancelToken.unsubscribe(p),t.signal&&t.signal.removeEventListener("abort",p)}n.isFormData(m)&&n.isStandardBrowserEnv()&&delete b["Content-Type"];var M=new XMLHttpRequest;if(t.auth){var w=t.auth.username||"",$=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";b.Authorization="Basic "+btoa(w+":"+$)}var S=a(t.baseURL,t.url,t.allowAbsoluteUrls);function N(){if(M){var n="getAllResponseHeaders"in M?d(M.getAllResponseHeaders()):null,o={data:y&&"text"!==y&&"json"!==y?M.response:M.responseText,status:M.status,statusText:M.statusText,headers:n,config:t,request:M};i((function(t){e(t),_()}),(function(t){r(t),_()}),o),M=null}}if(M.open(t.method.toUpperCase(),s(S,t.params,t.paramsSerializer),!0),M.timeout=t.timeout,"onloadend"in M?M.onloadend=N:M.onreadystatechange=function(){M&&4===M.readyState&&(0!==M.status||M.responseURL&&0===M.responseURL.indexOf("file:"))&&setTimeout(N)},M.onabort=function(){M&&(r(new l("Request aborted",l.ECONNABORTED,t,M)),M=null)},M.onerror=function(){r(new l("Network Error",l.ERR_NETWORK,t,M)),M=null},M.ontimeout=function(){var e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",n=t.transitional||h;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),r(new l(e,n.clarifyTimeoutError?l.ETIMEDOUT:l.ECONNABORTED,t,M)),M=null},n.isStandardBrowserEnv()&&(v&&n.isFunction(v)&&(v=v(t)),v||!1!==v&&u(S))){var E=t.xsrfHeaderName&&t.xsrfCookieName&&o.read(t.xsrfCookieName);E&&(b[t.xsrfHeaderName]=E)}"setRequestHeader"in M&&n.forEach(b,(function(t,e){void 0===m&&"content-type"===e.toLowerCase()?delete b[e]:M.setRequestHeader(e,t)}
vendor: 22,987 bytes, line 15672
15672)),n.isUndefined(t.withCredentials)||(M.withCredentials=!!t.withCredentials),y&&"json"!==y&&(M.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&M.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&M.upload&&M.upload.addEventListener("progress",t.onUploadProgress),(t.cancelToken||t.signal)&&(p=function(e){M&&(r(!e||e.type?new f(null,t,M):e),M.abort(),M=null)},t.cancelToken&&t.cancelToken.subscribe(p),t.signal&&(t.signal.aborted?p():t.signal.addEventListener("abort",p))),m||!1===m||0===m||""===m||(m=null);var T=c(S);T&&-1===g.protocols.indexOf(T)?r(new l("Unsupported protocol "+T+":",l.ERR_BAD_REQUEST,t)):M.send(m)}))}},8015:(t,e,r)=>{"use strict";var n=r(9516),i=r(9012),o=r(5155),s=r(5343),a=r(7412),d=r(4298),u=function t(e){var r=new o(e),a=i(o.prototype.request,r);return n.extend(a,o.prototype,r),n.extend(a,r),a.create=function(r){return t(s(e,r))},a}(a);u.Axios=o,u.CanceledError=r(8563),u.CancelToken=r(3191),u.isCancel=r(3864),u.VERSION=r(9641).version,u.toFormData=r(6440),u.AxiosError=r(5845),u.Cancel=u.CanceledError,u.all=function(t){return Promise.all(t)},u.spread=r(7980),u.isAxiosError=r(5019),u.formToJSON=function(t){return d(n.isHTMLForm(t)?new FormData(t):t)},t.exports=u,t.exports.default=u},3191:(t,e,r)=>{"use strict";var n=r(8563);function i(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var r=this;this.promise.then((function(t){if(r._listeners){for(var e=r._listeners.length;e-- >0;)r._listeners[e](t);r._listeners=null}})),this.promise.then=function(t){var e,n=new Promise((function(t){r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},t((function(t,i,o){r.reason||(r.reason=new n(t,i,o),e(r.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.prototype.subscribe=function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]},i.prototype.unsubscribe=function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}},i.source=function(){var t;return{token:new i((function(e){t=e})),cancel:t}},t.exports=i},8563:(t,e,r)=>{"use strict";var n=r(5845);function i(t,e,r){n.call(this,null==t?"canceled":t,n.ERR_CANCELED,e,r),this.name="CanceledError"}r(9516).inherits(i,n,{__CANCEL__:!0}),t.exports=i},3864:t=>{"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},5155:(t,e,r)=>{"use strict";var n=r(9516),i=r(9106),o=r(3471),s=r(4490),a=r(5343),d=r(9615),u=r(4841),h=u.validators;function l(t){this.defaults=t,this.interceptors={request:new o,response:new o}}l.prototype.request=function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},(e=a(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var r=e.transitional;void 0!==r&&u.assertOptions(r,{silentJSONParsing:h.transitional(h.boolean),forcedJSONParsing:h.transitional(h.boolean),clarifyTimeoutError:h.transitional(h.boolean)},!1);var i=e.paramsSerializer;null!=i&&(n.isFunction(i)?e.paramsSerializer={serialize:i}:u.assertOptions(i,{encode:h.function,serialize:h.function},!0));var o=[],d=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(d=d&&t.synchronous,o.unshift(t.fulfilled,t.rejected))}));var l,f=[];if(this.interceptors.response.forEach((function(t){f.push(t.fulfilled,t.rejected)})),!d){var c=[s,void 0];for(Array.prototype.unshift.apply(c,o),c=c.concat(f),l=Promise.resolve(e);c.length;)l=l.then(c.shift(),c.shift());return l}for(var g=e;o.length;){var p=o.shift(),m=o.shift();try{g=p(g)}catch(t){m(t);break}}try{l=s(g)}catch(t){return Promise.reject(t)}for(;f.length;)l=l.then(f.shift(),f.shift());return l},l.prototype.getUri=function(t){t=a(this.defaults,t);var e=d(t.baseURL,t.url,t.allowAbsoluteUrls);return i(e,t.params,t.paramsSerializer)},n.forEach(["delete","get","head","options"],(function(t){l.prototype[t]=function(e,r){return this.request(a(r||{},{method:t,url:e,data:(r||{}).data}))}})),n.forEach(["post","put","patch"],(function(t){function e(e){return function(r,n,i){return this.request(a(i||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}l.prototype[t]=e(),l.prototype[t+"Form"]=e(!0)})),t.exports=l},5845:(t,e,r)=>{"use strict";var n=r(9516);function i(t,e,r,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i)}n.inherits(i,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var o=i.prototype,s={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){s[t]={value:t}})),Object.defineProperties(i,s),Object.defineProperty(o,"isAxiosError",{value:!0}),i.from=function(t,e,r,s,a,d){var u=Object.create(o);return n.toFlatObject(t,u,(function(t){return t!==Error.prototype})),i.call(u,t.message,e,r,s,a),u.cause=t,u.name=t.name,d&&Object.assign(u,d),u},t.exports=i},3471:(t,e,r)=>{"use strict";var n=r(9516);function i(){this.handlers=[]}i.prototype.use=function(t,e,r){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1},i.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},i.prototype.clear=function(){this.handlers&&(this.handlers=[])},i.prototype.forEach=function(t){n.forEach(this.handlers,(function(e){null!==e&&t(e)}))},t.exports=i},9615:(t,e,r)=>{"use strict";var n=r(9137),i=r(4680);t.exports=function(t,e,r){var o=!n(e);return t&&(o||!1===r)?i(t,e):e}},4490:(t,e,r)=>{"use strict";var n=r(9516),i=r(2881),o=r(3864),s=r(7412),a=r(8563),d=r(7018);function u(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new a}t.exports=function(t){return u(t),t.headers=t.headers||{},t.data=i.call(t,t.data,t.headers,null,t.transformRequest),d(t.headers,"Accept"),d(t.headers,"Content-Type"),t.headers=n.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||s.adapter)(t).then((function(e){return u(t),e.data=i.call(t,e.data,e.headers,e.status,t.transformResponse),e}),(function(e){return o(e)||(u(t),e&&e.response&&(e.response.data=i.call(t,e.response.data,e.response.headers,e.response.status,t.transformResponse))),Promise.reject(e)}))}},5343:(t,e,r)=>{"use strict";var n=r(9516);t.exports=function(t,e){e=e||{};var r={};function i(t,e){return n.isPlainObject(t)&&n.isPlainObject(e)?n.merge(t,e):n.isEmptyObject(e)?n.merge({},t):n.isPlainObject(e)?n.merge({},e):n.isArray(e)?e.slice():e}function o(r){return n.isUndefined(e[r])?n.isUndefined(t[r])?void 0:i(void 0,t[r]):i(t[r],e[r])}function s(t){if(!n.isUndefined(e[t]))return i(void 0,e[t])}function a(r){return n.isUndefined(e[r])?n.isUndefined(t[r])?void 0:i(void 0,t[r]):i(void 0,e[r])}function d(r){return r in e?i(t[r],e[r]):r in t?i(void 0,t[r]):void 0}var u={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:d};return n.forEach(Object.keys(t).concat(Object.keys(e)),(function(t){var e=u[t]||o,i=e(t);n.isUndefined(i)&&e!==d||(r[t]=i)})),r}},7522:(t,e,r)=>{"use strict";var n=r(5845);t.exports=function(t,e,r){var i=r.config.validateStatus;r.status&&i&&!i(r.status)?e(new n("Request failed with status code "+r.status,[n.ERR_BAD_REQUEST,n.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):t(r)}},2881:(t,e,r)=>{"use strict";var n=r(9516),i=r(7412);t.exports=function(t,e,r,o){var s=this||i;return n.forEach(o,(function(n){t=n.call(s,t,e,r)})),t}},7412:(t,e,r)=>{"use strict";var n=r(5606),i=r(9516),o=r(7018),s=r(5845),a=r(4896),d=r(6440),u=r(6069),h=r(5721),l=r(4298),f={"Content-Type":"application/x-www-form-urlencoded"};function c(t,e){!i.isUndefined(t)&&i.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var g,p={transitional:a,adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==n&&"[object process]"===Object.prototype.toString.call(n))&&(g=r(5592)),g),transformRequest:[function(t,e){o(e,"Accept"),o(e,"Content-Type");var r,n=e&&e["Content-Type"]||"",s=n.indexOf("application/json")>-1,a=i.isObject(t);if(a&&i.isHTMLForm(t)&&(t=new FormData(t)),i.isFormData(t))return s?JSON.stringify(l(t)):t;if(i.isArrayBuffer(t)||i.isBuffer(t)||i.isStream(t)||i.isFile(t)||i.isBlob(t))return t;if(i.isArrayBufferView(t))return t.buffer;if(i.isURLSearchParams(t))return c(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString();if(a){if(-1!==n.indexOf("application/x-www-form-urlencoded"))return u(t,this.formSerializer).toString();if((r=i.isFileList(t))||n.indexOf("multipart/form-data")>-1){var h=this.env&&this.env.FormData;return d(r?{"files[]":t}:t,h&&new h,this.formSerializer)}}return a||s?(c(e,"application/json"),function(t){if(i.isString(t))try{return(0,JSON.parse)(t),i.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||p.transitional,r=e&&e.forcedJSONParsing,n="json"===this.responseType;if(t&&i.isString(t)&&(r&&!this.responseType||n)){var o=!(e&&e.silentJSONParsing)&&n;try{return JSON.parse(t)}catch(t){if(o){if("SyntaxError"===t.name)throw s.from(t,s.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:h.classes.FormData,Blob:h.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};i.forEach(["delete","get","head"],(function(t){p.headers[t]={}})),i.forEach(["post","put","patch"],(function(t){p.headers[t]=i.merge(f)})),t.exports=p},4896:t=>{"use strict";t.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},786:(t,e,r)=>{t.exports=r(1894)},9641:t=>{t.exports={version:"0.30.0"}},170:(t,e,r)=>{"use strict";var n=r(6440);function i(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function o(t,e){this._pairs=[],t&&n(t,this,e)}var s=o.prototype;s.append=function(t,e){this._pairs.push([t,e])},s.toString=function(t){var e=t?function(e){return t.call(this,e,i)}:i;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")},t.exports=o},9012:t=>{"use strict";t.exports=function(t,e){return function(){return t.apply(e,arguments)}}},9106:(t,e,r)=>{"use strict";var n=r(9516),i=r(170);function o(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,r){if(!e)return t;var s=t.indexOf("#");-1!==s&&(t=t.slice(0,s));var a,d=r&&r.encode||o,u=r&&r.serialize;return(a=u?u(e,r):n.isURLSearchParams(e)?e.toString():new i(e,r).toString(d))&&(t+=(-1===t.indexOf("?")?"?":"&")+a),t}},4680:t=>{"use strict";t.exports=function(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}},3948:(t,e,r)=>{"use strict";var n=r(9516);t.exports=n.isStandardBrowserEnv()?{write:function(t,e,r,i,o,s){var a=[];a.push(t+"="+encodeURIComponent(e)),n.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),n.isString(i)&&a.push("path="+i),n.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},4298:(t,e,r)=>{"use strict";var n=r(9516);t.exports=function(t){function e(t,r,i,o){var s=t[o++];if("__proto__"===s)return!0;var a=Number.isFinite(+s),d=o>=t.length;return s=!s&&n.isArray(i)?i.length:s,d?(n.hasOwnProperty(i,s)?i[s]=[i[s],r]:i[s]=r,!a):(i[s]&&n.isObject(i[s])||(i[s]=[]),e(t,r,i[s],o)&&n.isArray(i[s])&&(i[s]=function(t){var e,r,n={},i=Object.keys(t),o=i.length;for(e=0;e<o;e++)n[r=i[e]]=t[r];return n}(i[s])),!a)}if(n.isFormData(t)&&n.isFunction(t.entries)){var r={};return n.forEachEntry(t,(function(t,i){e(function(t){return n.matchAll(/\w+|\[(\w*)]/g,t).map((function(t){return"[]"===t[0]?"":t[1]||t[0]}))}(t),i,r,0)})),r}return null}},9137:t=>{"use strict";t.exports=function(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}},5019:(t,e,r)=>{"use strict";var n=r(9516);t.exports=function(t){return n.isObject(t)&&!0===t.isAxiosError}},4202:(t,e,r)=>{"use strict";var n=r(9516);t.exports=n.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function i(t){var n=t;return e&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return t=i(window.location.href),function(e){var r=n.isString(e)?i(e):e;return r.protocol===t.protocol&&r.host===t.host}}():function(){return!0}},7018:(t,e,r)=>{"use strict";var n=r(9516);t.exports=function(t,e){n.forEach(t,(function(r,n){n!==e&&n.toUpperCase()===e.toUpperCase()&&(t[e]=r,delete t[n])}))}},2012:(t,e,r)=>{"use strict";var n=r(9516),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,r,o,s={};return t?(n.forEach(t.split("\n"),(function(t){if(o=t.indexOf(":"),e=n.trim(t.slice(0,o)).toLowerCase(),r=n.trim(t.slice(o+1)),e){if(s[e]&&i.indexOf(e)>=0)return;s[e]="set-cookie"===e?(s[e]?s[e]:[]).concat([r]):s[e]?s[e]+", "+r:r}})),s):s}},5656:t=>{"use strict";t.exports=function(t){var e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}},7980:t=>{"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},6440:(t,e,r)=>{"use strict";var n=r(9516),i=r(5845),o=r(786);function s(t){return n.isPlainObject(t)||n.isArray(t)}function a(t){return n.endsWith(t,"[]")?t.slice(0,-2):t}function d(t,e,r){return t?t.concat(e).map((function(t,e){return t=a(t),!r&&e?"["+t+"]":t})).join(r?".":""):e}var u=n.toFlatObject(n,{},null,(function(t){return/^is[A-Z]/.test(t)}));t.exports=function(t,e,r){if(!n.isObject(t))throw new TypeError("target must be an object");e=e||new(o||FormData);var h,l=(r=n.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!n.isUndefined(e[t])}))).metaTokens,f=r.visitor||b,c=r.dots,g=r.indexes,p=(r.Blob||"undefined"!=typeof Blob&&Blob)&&(h=e)&&n.isFunction(h.append)&&"FormData"===h[Symbol.toStringTag]&&h[Symbol.iterator];if(!n.isFunction(f))throw new TypeError("visitor must be a function");function m(t){if(null===t)return"";if(n.isDate(t))return t.toISOString();if(!p&&n.isBlob(t))throw new i("Blob is not supported. Use a Buffer instead.");return n.isArrayBuffer(t)||n.isTypedArray(t)?p&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function b(t,r,i){var o=t;if(t&&!i&&"object"==typeof t)if(n.endsWith(r,"{}"))r=l?r:r.slice(0,-2),t=JSON.stringify(t);else if(n.isArray(t)&&function(t){return n.isArray(t)&&!t.some(s)}(t)||n.isFileList(t)||n.endsWith(r,"[]")&&(o=n.toArray(t)))return r=a(r),o.forEach((function(t,i){!n.isUndefined(t)&&null!==t&&e.append(!0===g?d([r],i,c):null===g?r:r+"[]",m(t))})),!1;return!!s(t)||(e.append(d(i,r,c),m(t)),!1)}var y=[],v=Object.assign(u,{defaultVisitor:b,convertValue:m,isVisitable:s});if(!n.isObject(t))throw new TypeError("data must be an object");return function t(r,i){if(!n.isUndefined(r)){if(-1!==y.indexOf(r))throw Error("Circular reference detected in "+i.join("."));y.push(r),n.forEach(r,(function(r,o){!0===(!(n.isUndefined(r)||null===r)&&f.call(e,r,n.isString(o)?o.trim():o,i,v))&&t(r,i?i.concat(o):[o])})),y.pop()}}(t),e}},6069:(t,e,r)=>{"use strict";var n=r(9516),i=r(6440),o=r(5721);t.exports=function(t,e){return i(t,new o.classes.URLSearchParams,Object.assign({visitor:function(t,e,r,i){return o.isNode&&n.isBuffer(t)?(this.append(e,t.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},e))}},4841:(t,e,r)=>{"use strict";var n=r(9641).version,i=r(5845),o={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){o[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}}));var s={};o.transitional=function(t,e,r){function o(t,e){return"[Axios v"+n+"] Transitional option '"+t+"'"+e+(r?". "+r:"")}return function(r,n,a){if(!1===t)throw new i(o(n," has been removed"+(e?" in "+e:"")),i.ERR_DEPRECATED);return e&&!s[n]&&(s[n]=!0,console.warn(o(n," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(r,n,a)}},t.exports={assertOptions:function(t,e,r){if("object"!=typeof t)throw new i("options must be an object",i.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(t),o=n.length;o-- >0;){var s=n[o],a=e[s];if(a){var d=t[s],u=void 0===d||a(d,s,t);if(!0!==u)throw new i("option "+s+" must be "+u,i.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new i("Unknown option "+s,i.ERR_BAD_OPTION)}},validators:o}},243:t=>{"use strict";t.exports=FormData},2002:(t,e,r)=>{"use strict";var n=r(170);t.exports="undefined"!=typeof URLSearchParams?URLSearchParams:n},9490:(t,e,r)=>{"use strict";t.exports={isBrowser:!0,classes:{URLSearchParams:r(2002),FormData:r(243),Blob},protocols:["http","https","file","blob","url","data"]}},5721:(t,e,r)=>{"use strict";t.exports=r(9490)},9516:(t,e,r)=>{"use strict";var n,i=r(9012),o=Object.prototype.toString,s=(n=Object.create(null),function(t){var e=o.call(t);return n[e]||(n[e]=e.slice(8,-1).toLowerCase())});function a(t){return t=t.toLowerCase(),function(e){return s(e)===t}}function d(t){return Array.isArray(t)}function u(t){return void 0===t}var h=a("ArrayBuffer");function l(t){return"number"==typeof t}function f(t){return null!==t&&"object"==typeof t}function c(t){if("object"!==s(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}var g=a("Date"),p=a("File"),m=a("Blob"),b=a("FileList");function y(t){return"[object Function]"===o.call(t)}var v=a("URLSearchParams");function _(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),d(t))for(var r=0,n=t.length;r<n;r++)e.call(null,t[r],r,t);else for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.call(null,t[i],i,t)}var M,w,$=(M="undefined"!=typeof Uint8Array&&Object.getPrototypeOf(Uint8Array),function(t){return M&&t instanceof M}),S=a("HTMLFormElement"),N=(w=Object.prototype.hasOwnProperty,function(t,e){return w.call(t,e)});t.exports={isArray:d,isArrayBuffer:h,isBuffer:function(t){return null!==t&&!u(t)&&null!==t.constructor&&!u(t.constructor)&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)},isFormData:function(t){var e="[object FormData]";return t&&("function"==typeof FormData&&t instanceof FormData||o.call(t)===e||y(t.toString)&&t.toString()===e)},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&h(t.buffer)},isString:function(t){return"string"==typeof t},isNumber:l,isObject:f,isPlainObject:c,isEmptyObject:function(t){return t&&0===Object.keys(t).length&&Object.getPrototypeOf(t)===Object.prototype},isUndefined:u,isDate:g,isFile:p,isBlob:m,isFunction:y,isStream:function(t){return f(t)&&y(t.pipe)},isURLSearchParams:v,isStandardBrowserEnv:function(){var t;return("undefined"==typeof navigator||"ReactNative"!==(t=navigator.product)&&"NativeScript"!==t&&"NS"!==t)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:_,merge:function t(){var e={};function r(r,n){c(e[n])&&c(r)?e[n]=t(e[n],r):c(r)?e[n]=t({},r):d(r)?e[n]=r.slice():e[n]=r}for(var n=0,i=arguments.length;n<i;n++)_(arguments[n],r);return e},extend:function(t,e,r){return _(e,(function(e,n){t[n]=r&&"function"==typeof e?i(e,r):e})),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,r,n){t.prototype=Object.create(e.prototype,n),t.prototype.constructor=t,r&&Object.assign(t.prototype,r)},toFlatObject:function(t,e,r,n){var i,o,s,a={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)s=i[o],n&&!n(s,t,e)||a[s]||(e[s]=t[s],a[s]=!0);t=!1!==r&&Object.getPrototypeOf(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},kindOf:s,kindOfTest:a,endsWith:function(t,e,r){t=String(t),(void 0===r||r>t.length)&&(r=t.length),r-=e.length;var n=t.indexOf(e,r);return-1!==n&&n===r},toArray:function(t){if(!t)return null;if(d(t))return t;var e=t.length;if(!l(e))return null;for(var r=new Array(e);e-- >0;)r[e]=t[e];return r},isTypedArray:$,isFileList:b,forEachEntry:function(t,e){for(var r,n=(t&&t[Symbol.iterator]).call(t);(r=n.next())&&!r.done;){var i=r.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var r,n=[];null!==(r=t.exec(e));)n.push(r);return n},isHTMLForm:S,hasOwnProperty:N}},7526:(t,e)=>{"use strict";e.byteLength=function(t){var e=a(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,o=a(t),s=o[0],d=o[1],u=new i(function(t,e,r){return 3*(e+r)/4-r}(0,s,d)),h=0,l=d>0?s-4:s;for(r=0;r<l;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],u[h++]=e>>16&255,u[h++]=e>>8&255,u[h++]=255&e;return 2===d&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[h++]=255&e),1===d&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[h++]=e>>8&255,u[h++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],s=16383,a=0,u=n-i;a<u;a+=s)o.push(d(t,a,a+s>u?u:a+s));return 1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
vendor: 5,306 bytes, line 15672
15672+/",s=0;s<64;++s)r[s]=o[s],n[o.charCodeAt(s)]=s;function a(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function d(t,e,n){for(var i,o,s=[],a=e;a<n;a+=3)i=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),s.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return s.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},9404:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(7790).Buffer}catch(t){}function a(t,e){var r=t.charCodeAt(e);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+t)}function d(t,e,r){var n=a(t,r);return r-1>=e&&(n|=a(t,r-1)<<4),n}function u(t,e,r,i){for(var o=0,s=0,a=Math.min(t.length,r),d=e;d<a;d++){var u=t.charCodeAt(d)-48;o*=i,s=u>=49?u-49+10:u>=17?u-17+10:u,n(u>=0&&s<i,"Invalid character"),o+=s}return o}function h(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===r)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},o.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this._strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,d=0,h=r;h<a;h+=n)d=u(t,h,h+n,e),this.imuln(i),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d);if(0!==s){var l=1;for(d=u(t,h,t.length,e),h=0;h<s;h++)l*=e;this.imuln(l),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d)}this._strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype._move=function(t){h(t,this)},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(t){o.prototype.inspect=l}else o.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],g=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16
vendor: 4,945 bytes, line 15672
15672777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,d=s/67108864|0;r.words[0]=a;for(var u=1;u<n;u++){for(var h=d>>>26,l=67108863&d,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var g=u-c|0;h+=(s=(i=0|t.words[g])*(o=0|e.words[c])+l)/67108864|0,l=67108863&s}r.words[u]=0|l,d=0|h}return 0!==d?r.words[u]=0|d:r.length--,r._strip()}o.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],d=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),r=0!==o||s!==this.length-1?f[6-d.length]+d+r:d+r}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=c[t],h=g[t];r="";var l=this.clone();for(l.negative=0;!l.isZero();){var p=l.modrn(h).toString(t);r=(l=l.idivn(h)).isZero()?p+r:f[u-p.length]+p+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(t,e){return this.toArrayLike(s,t,e)}),o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){this._strip();var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0");var s=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](s,i),s},o.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r++]=255&s,r<t.length&&(t[r++]=s>>8&255),r<t.length&&(t[r++]=s>>16&255),6===o?(r<t.length&&(t[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<t.length)for(t[r++]=n;r<t.length;)t[r++]=0},o.prototype._toArrayLikeBE=function(t,e){for(var r=t.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r--]=255&s,r>=0&&(t[r--]=s>>8&255),r>=0&&(t[r--]=s>>16&255),6===o?(r>=0&&(t[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},o.prototype.ior=function(t){return n(!(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this._strip()},o.prototype.iand=function(t){return n(!(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this._strip()},o.prototype.ixor=function(t){return n(!
vendor: 1,945 bytes, line 15672
15672(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},o.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,
vendor: 6,300 bytes, line 15672
15672s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var m=function(t,e,r){var n,i,o,s=t.words,a=e.words,d=r.words,u=0,h=0|s[0],l=8191&h,f=h>>>13,c=0|s[1],g=8191&c,p=c>>>13,m=0|s[2],b=8191&m,y=m>>>13,v=0|s[3],_=8191&v,M=v>>>13,w=0|s[4],$=8191&w,S=w>>>13,N=0|s[5],E=8191&N,T=N>>>13,A=0|s[6],R=8191&A,P=A>>>13,O=0|s[7],C=8191&O,I=O>>>13,L=0|s[8],D=8191&L,U=L>>>13,k=0|s[9],x=8191&k,F=k>>>13,B=0|a[0],V=8191&B,j=B>>>13,H=0|a[1],G=8191&H,W=H>>>13,Y=0|a[2],z=8191&Y,q=Y>>>13,K=0|a[3],Z=8191&K,X=K>>>13,J=0|a[4],Q=8191&J,tt=J>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],dt=8191&at,ut=at>>>13,ht=0|a[8],lt=8191&ht,ft=ht>>>13,ct=0|a[9],gt=8191&ct,pt=ct>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,j))+Math.imul(f,V)|0))<<13)|0;u=((o=Math.imul(f,j))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(g,V),i=(i=Math.imul(g,j))+Math.imul(p,V)|0,o=Math.imul(p,j);var bt=(u+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(f,G)|0))<<13)|0;u=((o=o+Math.imul(f,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,j))+Math.imul(y,V)|0,o=Math.imul(y,j),n=n+Math.imul(g,G)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(p,G)|0,o=o+Math.imul(p,W)|0;var yt=(u+(n=n+Math.imul(l,z)|0)|0)+((8191&(i=(i=i+Math.imul(l,q)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,q)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,V),i=(i=Math.imul(_,j))+Math.imul(M,V)|0,o=Math.imul(M,j),n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(g,z)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(p,z)|0,o=o+Math.imul(p,q)|0;var vt=(u+(n=n+Math.imul(l,Z)|0)|0)+((8191&(i=(i=i+Math.imul(l,X)|0)+Math.imul(f,Z)|0))<<13)|0;u=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul($,V),i=(i=Math.imul($,j))+Math.imul(S,V)|0,o=Math.imul(S,j),n=n+Math.imul(_,G)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,W)|0,n=n+Math.imul(b,z)|0,i=(i=i+Math.imul(b,q)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,q)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(p,Z)|0,o=o+Math.imul(p,X)|0;var _t=(u+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,V),i=(i=Math.imul(E,j))+Math.imul(T,V)|0,o=Math.imul(T,j),n=n+Math.imul($,G)|0,i=(i=i+Math.imul($,W)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(_,z)|0,i=(i=i+Math.imul(_,q)|0)+Math.imul(M,z)|0,o=o+Math.imul(M,q)|0,n=n+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,X)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(p,Q)|0,o=o+Math.imul(p,tt)|0;var Mt=(u+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(f,rt)|0))<<13)|0;u=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(R,V),i=(i=Math.imul(R,j))+Math.imul(P,V)|0,o=Math.imul(P,j),n=n+Math.imul(E,G)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul($,z)|0,i=(i=i+Math.imul($,q)|0)+Math.imul(S,z)|0,o=o+Math.imul(S,q)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(p,rt)|0,o=o+Math.imul(p,nt)|0;var wt=(u+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,st)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,j))+Math.imul(I,V)|0,o=Math.imul(I,j),n=n+Math.imul(R,G)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(P,G)|0,o=o+Math.imul(P,W)|0,n=n+Math.imul(E,z)|0,i=(i=i+Math.imul(E,q)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,q)|0,n=n+Math.imul($,Z)|0,i=(i=i+Math.imul($,X)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(p,ot)|0,o=o+Math.imul(p,st)|0;var $t=(u+(n=n+Math.imul(l,dt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ut)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,j))+Math.imul(U,V)|0,o=Math.imul(U,j),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(I,G)|0,o=o+Math.imul(I,W)|0,n=n+Math.imul(R,z)|0,i=(i=i+Math.imul(R,q)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,q)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul($,Q)|0,i=(i=i+Math.imul($,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(g,dt)|0,i=(i=i+Math.imul(g,ut)|0)+Math.imul(p,dt)|0,o=o+Math.imul(p,ut)|0;var St=(u+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ft)|0)+Math.imul(f,lt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(x,V),i=(i=Math.imul(x,j))+Math.imul(F,V)|0,o=Math.imul(F,j),n=n+Math.imul(D,G)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(C,z)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(I,z)|0,o=o+Math.imul(I,q)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul($,rt)|0,i=(i=i+Math.imul($,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,n=n+Math.imul(b,dt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(g,lt)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(p,lt)|0,o=o+Math.imul(p,ft)|0;var Nt=(u+(n=n+Math.imul(l,gt)|0)|0)+((8191&(i=(i=i+Math.imul(l,pt)|0)+Math.imul(f,gt)|0)
vendor: 1,739 bytes, line 15672
15672)<<13)|0;u=((o=o+Math.imul(f,pt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,W))+Math.imul(F,G)|0,o=Math.imul(F,W),n=n+Math.imul(D,z)|0,i=(i=i+Math.imul(D,q)|0)+Math.imul(U,z)|0,o=o+Math.imul(U,q)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(I,Z)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul($,ot)|0,i=(i=i+Math.imul($,st)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,st)|0,n=n+Math.imul(_,dt)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(M,dt)|0,o=o+Math.imul(M,ut)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ft)|0)+Math.imul(y,lt)|0,o=o+Math.imul(y,ft)|0;var Et=(u+(n=n+Math.imul(g,gt)|0)|0)+((8191&(i=(i=i+Math.imul(g,pt)|0)+Math.imul(p,gt)|0))<<13)|0;u=((o=o+Math.imul(p,pt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,z),i=(i=Math.imul(x,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(D,Z)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,X)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul($,dt)|0,i=(i=i+Math.imul($,ut)|0)+Math.imul(S,dt)|0,o=o+Math.imul(S,ut)|0,n=n+Math.imul(_,lt)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(M,lt)|0,o=o+Math.imul(M,ft)|0;var Tt=(u+(n=n+Math.imul(b,gt)|0)|0)+((8191&(i=(i=i+Math.imul(b,pt)|0)+Math.imul(y,gt)|0))<<13)|0;u=((o=o+Math.imul(y,pt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(x,Z),i=(i=Math.imul(x,X))+Math.imul(F,Z)|0,o=Math.imul(F,X
vendor: 5,416 bytes, line 15672
15672),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(E,dt)|0,i=(i=i+Math.imul(E,ut)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul($,lt)|0,i=(i=i+Math.imul($,ft)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ft)|0;var At=(u+(n=n+Math.imul(_,gt)|0)|0)+((8191&(i=(i=i+Math.imul(_,pt)|0)+Math.imul(M,gt)|0))<<13)|0;u=((o=o+Math.imul(M,pt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(x,Q),i=(i=Math.imul(x,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(U,rt)|0,o=o+Math.imul(U,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(R,dt)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(P,dt)|0,o=o+Math.imul(P,ut)|0,n=n+Math.imul(E,lt)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(T,lt)|0,o=o+Math.imul(T,ft)|0;var Rt=(u+(n=n+Math.imul($,gt)|0)|0)+((8191&(i=(i=i+Math.imul($,pt)|0)+Math.imul(S,gt)|0))<<13)|0;u=((o=o+Math.imul(S,pt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(x,rt),i=(i=Math.imul(x,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(D,ot)|0,i=(i=i+Math.imul(D,st)|0)+Math.imul(U,ot)|0,o=o+Math.imul(U,st)|0,n=n+Math.imul(C,dt)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(I,dt)|0,o=o+Math.imul(I,ut)|0,n=n+Math.imul(R,lt)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(P,lt)|0,o=o+Math.imul(P,ft)|0;var Pt=(u+(n=n+Math.imul(E,gt)|0)|0)+((8191&(i=(i=i+Math.imul(E,pt)|0)+Math.imul(T,gt)|0))<<13)|0;u=((o=o+Math.imul(T,pt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(x,ot),i=(i=Math.imul(x,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(D,dt)|0,i=(i=i+Math.imul(D,ut)|0)+Math.imul(U,dt)|0,o=o+Math.imul(U,ut)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(I,lt)|0,o=o+Math.imul(I,ft)|0;var Ot=(u+(n=n+Math.imul(R,gt)|0)|0)+((8191&(i=(i=i+Math.imul(R,pt)|0)+Math.imul(P,gt)|0))<<13)|0;u=((o=o+Math.imul(P,pt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(x,dt),i=(i=Math.imul(x,ut))+Math.imul(F,dt)|0,o=Math.imul(F,ut),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ft)|0)+Math.imul(U,lt)|0,o=o+Math.imul(U,ft)|0;var Ct=(u+(n=n+Math.imul(C,gt)|0)|0)+((8191&(i=(i=i+Math.imul(C,pt)|0)+Math.imul(I,gt)|0))<<13)|0;u=((o=o+Math.imul(I,pt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(x,lt),i=(i=Math.imul(x,ft))+Math.imul(F,lt)|0,o=Math.imul(F,ft);var It=(u+(n=n+Math.imul(D,gt)|0)|0)+((8191&(i=(i=i+Math.imul(D,pt)|0)+Math.imul(U,gt)|0))<<13)|0;u=((o=o+Math.imul(U,pt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Lt=(u+(n=Math.imul(x,gt))|0)+((8191&(i=(i=Math.imul(x,pt))+Math.imul(F,gt)|0))<<13)|0;return u=((o=Math.imul(F,pt))+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,d[0]=mt,d[1]=bt,d[2]=yt,d[3]=vt,d[4]=_t,d[5]=Mt,d[6]=wt,d[7]=$t,d[8]=St,d[9]=Nt,d[10]=Et,d[11]=Tt,d[12]=At,d[13]=Rt,d[14]=Pt,d[15]=Ot,d[16]=Ct,d[17]=It,d[18]=Lt,0!==u&&(d[19]=u,r.length++),r};function b(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,d=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=d;u++){var h=o-u,l=(0|t.words[h])*(0|e.words[u]),f=67108863&l;a=67108863&(f=f+a|0),i+=(s=(s=s+(l/67108864|0)|0)+(f>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function y(t,e,r){return b(t,e,r)}function v(t,e){this.x=t,this.y=e}Math.imul||(m=p),o.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?m(this,t,e):r<63?p(this,t,e):r<1024?b(this,t,e):y(this,t,e)},v.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},v.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},v.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s<o;s++)n[s]=e[t[s]],i[s]=r[t[s]]},v.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,d=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),h=0;h<i;h+=a)for(var l=d,f=u,c=0;c<s;c++){var g=r[h+c],p=n[h+c],m=r[h+c+s],b=n[h+c+s],y=l*m-f*b;b=l*b+f*m,m=y,r[h+c]=g+m,n[h+c]=p+b,r[h+c+s]=g-m,n[h+c+s]=p-b,c!==a&&(y=d*l-u*f,f=d*f+u*l,l=y)}},v.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},v.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},v.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},v.prototype.convert13b=function(t,e,r,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],r[2*s]=8191&o,o>>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)r[s]=0;n(0===o),n(!(-8192&o))},v.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},v.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),s=new Array(n),a=new Array(n),d=new Array(n),u=new Array(n),h=new Array(n),l=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,s,n),this.convert13b(e.words,e.length,u,n),this.transform(s,o,a,d,n,i),this.transform(u,o,h,l,n,i);for(var c=0;c<n;
vendor: 16,384 bytes, line 15672
15672c++){var g=a[c]*h[c]-d[c]*l[c];d[c]=a[c]*l[c]+d[c]*h[c],a[c]=g}return this.conjugate(a,d,n),this.transform(a,d,f,o,n,i),this.conjugate(f,o,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r._strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),y(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){var e=t<0;e&&(t=-t),n("number"==typeof t),n(t<67108864);for(var r=0,i=0;i<this.length;i++){var o=(0|this.words[i])*t,s=(67108863&o)+(67108863&r);r>>=26,r+=o/67108864|0,r+=s>>>26,this.words[i]=67108863&s}return 0!==r&&(this.words[i]=r,this.length++),e?this.ineg():this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=t.words[n]>>>i&1}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,d=(0|this.words[e])-a<<r;this.words[e]=d|s,s=a>>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this._strip()},o.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,d=r;if(i-=s,i=Math.max(0,i),d){for(var u=0;u<s;u++)d.words[u]=this.words[u];d.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var h=0;for(u=this.length-1;u>=0&&(0!==h||u>=i);u--){var l=0|this.words[u];this.words[u]=h<<26-o|l>>>o,h=l&a}return d&&0!==h&&(d.words[d.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this._strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,r){var i,o,s=t.length+r;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+r])+a;var d=(0|t.words[i])*e;a=((o-=67108863&d)>>26)-(d/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)a=(o=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&o;if(0===a)return this._strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,d=n.length-i.length;if("mod"!==e){(a=new o(null)).length=d+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var h=n.clone()._ishlnsubmul(i,1,d);0===h.negative&&(n=h,a&&(a.words[d]=1));for(var l=d-1;l>=0;l--){var f=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(i,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);a&&(a.words[l]=f)}return a&&a._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&t.negative?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modrn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modrn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var r=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(r*i+(0|this.words[o]))%t;return e?-i:i},o.prototype.modn=function(t){return this.modrn(t)},o.prototype.idivn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*r;this.words[i]=o/t|0,r=o%t}return this._strip(),e?this.ineg():this},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),d=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var h=r.clone(),l=e.clone();!e.isZero();){for(var f=0,c=1;!(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(h),s.isub(l)),i.iushrn(1),s.iushrn(1);for(var g=0,p=1;!(r.words[0]&p)&&g<26;++g,p<<=1);if(g>0)for(r.iushrn(g);g-- >0;)(a.isOdd()||d.isOdd())&&(a.iadd(h),d.isub(l)),a.iushrn(1),d.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(d)):(r.isub(e),a.isub(i),d.isub(s))}return{a,b:d,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),d=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,h=1;!(e.words[0]&h)&&u<26;++u,h<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(d),s.iushrn(1);for(var l=0,f=1;!(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(d),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,s=r;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new E(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var _={k256:null,p224:null,p192:null,p25519:null};function M(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){M.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function $(){M.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function S(){M.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function N(){M.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function T(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}M.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},M.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},M.prototype.split=function(t,e){t.iushrn(this.n,0,e)},M.prototype.imulK=function(t){return t.imul(this.k)},i(w,M),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i($,M),i(S,M),i(N,M),N.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(_[t])return _[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new $;else if("p192"===t)e=new S;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new N}return _[t]=e,e},E.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){n(!(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(h(t,t.umod(this.m)._forceRed(this)),t)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},E.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prot
vendor: 1,403 bytes, line 15672
15672otype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),d=a.redNeg(),u=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,u).cmp(d);)h.redIAdd(d);for(var l=this.pow(h,i),f=this.pow(t,i.addn(1).iushrn(1)),c=this.pow(t,i),g=s;0!==c.cmp(a);){for(var p=c,m=0;0!==p.cmp(a);m++)p=p.redSqr();n(m<g);var b=this.pow(l,new o(1).iushln(g-m-1));f=f.redMul(b),l=b.redSqr(),c=c.redMul(l),g=m}return f},E.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},E.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],s=0,a=0,d=e.bitLength()%26;for(0===d&&(d=26),n=e.length-1;n>=0;n--){for(var u=e.words[n],h=d-1;h>=0;h--){var l=u>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==s?(s<<=1,s|=l,(4==++a||0===n&&0===h)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}
vendor: 16,729 bytes, line 15672
15672d=26}return i},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new T(t)},i(T,E),T.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},T.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},T.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},T.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},T.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},5037:(t,e,r)=>{var n;function i(t){this.rand=t}if(t.exports=function(t){return n||(n=new i(null)),n.generate(t)},t.exports.Rand=i,i.prototype.generate=function(t){return this._rand(t)},i.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r<e.length;r++)e[r]=this.rand.getByte();return e},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?i.prototype._rand=function(t){var e=new Uint8Array(t);return self.crypto.getRandomValues(e),e}:self.msCrypto&&self.msCrypto.getRandomValues?i.prototype._rand=function(t){var e=new Uint8Array(t);return self.msCrypto.getRandomValues(e),e}:"object"==typeof window&&(i.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var o=r(3776);if("function"!=typeof o.randomBytes)throw new Error("Not supported");i.prototype._rand=function(t){return o.randomBytes(t)}}catch(t){}},462:(t,e,r)=>{var n=r(2861).Buffer;function i(t){n.isBuffer(t)||(t=n.from(t));for(var e=t.length/4|0,r=new Array(e),i=0;i<e;i++)r[i]=t.readUInt32BE(4*i);return r}function o(t){for(;0<t.length;t++)t[0]=0}function s(t,e,r,n,i){for(var o,s,a,d,u=r[0],h=r[1],l=r[2],f=r[3],c=t[0]^e[0],g=t[1]^e[1],p=t[2]^e[2],m=t[3]^e[3],b=4,y=1;y<i;y++)o=u[c>>>24]^h[g>>>16&255]^l[p>>>8&255]^f[255&m]^e[b++],s=u[g>>>24]^h[p>>>16&255]^l[m>>>8&255]^f[255&c]^e[b++],a=u[p>>>24]^h[m>>>16&255]^l[c>>>8&255]^f[255&g]^e[b++],d=u[m>>>24]^h[c>>>16&255]^l[g>>>8&255]^f[255&p]^e[b++],c=o,g=s,p=a,m=d;return o=(n[c>>>24]<<24|n[g>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^e[b++],s=(n[g>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&c])^e[b++],a=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[c>>>8&255]<<8|n[255&g])^e[b++],d=(n[m>>>24]<<24|n[c>>>16&255]<<16|n[g>>>8&255]<<8|n[255&p])^e[b++],[o>>>=0,s>>>=0,a>>>=0,d>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],d=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],s=0,a=0,d=0;d<256;++d){var u=a^a<<1^a<<2^a<<3^a<<4;u=u>>>8^255&u^99,r[s]=u,n[u]=s;var h=t[s],l=t[h],f=t[l],c=257*t[u]^16843008*u;i[0][s]=c<<24|c>>>8,i[1][s]=c<<16|c>>>16,i[2][s]=c<<8|c>>>24,i[3][s]=c,c=16843009*f^65537*l^257*h^16843008*s,o[0][u]=c<<24|c>>>8,o[1][u]=c<<16|c>>>16,o[2][u]=c<<8|c>>>24,o[3][u]=c,0===s?s=a=1:(s=h^t[t[t[f^h]]],a^=t[t[a]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function u(t){this._key=i(t),this._reset()}u.blockSize=16,u.keySize=32,u.prototype.blockSize=u.blockSize,u.prototype.keySize=u.keySize,u.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o<e;o++)i[o]=t[o];for(o=e;o<n;o++){var s=i[o-1];o%e==0?(s=s<<8|s>>>24,s=d.SBOX[s>>>24]<<24|d.SBOX[s>>>16&255]<<16|d.SBOX[s>>>8&255]<<8|d.SBOX[255&s],s^=a[o/e|0]<<24):e>6&&o%e==4&&(s=d.SBOX[s>>>24]<<24|d.SBOX[s>>>16&255]<<16|d.SBOX[s>>>8&255]<<8|d.SBOX[255&s]),i[o]=i[o-e]^s}for(var u=[],h=0;h<n;h++){var l=n-h,f=i[l-(h%4?0:4)];u[h]=h<4||l<=4?f:d.INV_SUB_MIX[0][d.SBOX[f>>>24]]^d.INV_SUB_MIX[1][d.SBOX[f>>>16&255]]^d.INV_SUB_MIX[2][d.SBOX[f>>>8&255]]^d.INV_SUB_MIX[3][d.SBOX[255&f]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=u},u.prototype.encryptBlockRaw=function(t){return s(t=i(t),this._keySchedule,d.SUB_MIX,d.SBOX,this._nRounds)},u.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=n.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},u.prototype.decryptBlock=function(t){var e=(t=i(t))[1];t[1]=t[3],t[3]=e;var r=s(t,this._invKeySchedule,d.INV_SUB_MIX,d.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},u.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},t.exports.AES=u},2356:(t,e,r)=>{var n=r(462),i=r(2861).Buffer,o=r(6168),s=r(6698),a=r(5892),d=r(295),u=r(5122);function h(t,e,r,s){o.call(this);var d=i.alloc(4,0);this._cipher=new n.AES(e);var h=this._cipher.encryptBlock(d);this._ghash=new a(h),r=function(t,e,r){if(12===e.length)return t._finID=i.concat([e,i.from([0,0,0,1])]),i.concat([e,i.from([0,0,0,2])]);var n=new a(r),o=e.length,s=o%16;n.update(e),s&&(s=16-s,n.update(i.alloc(s,0))),n.update(i.alloc(8,0));var d=8*o,h=i.alloc(8);h.writeUIntBE(d,0,8),n.update(h),t._finID=n.state;var l=i.from(t._finID);return u(l),l}(this,r,h),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=s,this._alen=0,this._len=0,this._mode=t,this._authTag=null,this._called=!1}s(h,o),h.prototype._update=function(t){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=i.alloc(e,0),this._ghash.update(e))}this._called=!0;var r=this._mode.encrypt(this,t);return this._decrypt?this._ghash.update(t):this._ghash.update(r),this._len+=t.length,r},h.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var t=d(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(t,e){var r=0;t.length!==e.length&&r++;for(var n=Math.min(t.length,e.length),i=0;i<n;++i)r+=t[i]^e[i];return r}(t,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=t,this._cipher.scrub()},h.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},h.prototype.setAuthTag=function(t){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=t},h.prototype.setAAD=function(t){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(t),this._alen+=t.length},t.exports=h},1241:(t,e,r)=>{var n=r(5799),i=r(6171),o=r(3219);e.createCipher=e.Cipher=n.createCipher,e.createCipheriv=e.Cipheriv=n.createCipheriv,e.createDecipher=e.Decipher=i.createDecipher,e.createDecipheriv=e.Decipheriv=i.createDecipheriv,e.listCiphers=e.getCiphers=function(){return Object.keys(o)}},6171:(t,e,r)=>{var n=r(2356),i=r(2861).Buffer,o=r(530),s=r(650),a=r(6168),d=r(462),u=r(8078);function h(t,e,r){a.call(this),this._cache=new l,this._last=void 0,this._cipher=new d.AES(e),this._prev=i.from(r),this._mode=t,this._autopadding=!0}function l(){this.cache=i.allocUnsafe(0)}function f(t,e,r){var a=o[t.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof r&&(r=i.from(r)),"GCM"!==a.mode&&r.length!==a.iv)throw new TypeError("invalid iv length "+r.length);if("string"==typeof e&&(e=i.from(e)),e.length!==a.key/8)throw new TypeError("invalid key length "+e.length);return"stream"===a.type?new s(a.module,e,r,!0):"auth"===a.type?new n(a.module,e,r,!0):new h(a.module,e,r)}r(6698)(h,a),h.prototype._update=function(t){var e,r;this._cache.add(t);for(var n=[];e=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,e),n.push(r);return i.concat(n)},h.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return function(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");for(var r=-1;++r<e;)if(t[r+(16-e)]!==e)throw new Error("unable to decrypt data");if(16!==e)return t.slice(0,16-e)}(this._mode.decrypt(this,t));if(t)throw new Error("data not multiple of block length")},h.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},l.prototype.add=function(t){this.cache=i.concat([this.cache,t])},l.prototype.get=function(t){var e;if(t){if(this.cache.length>16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=function(t,e){var r=o[t.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=u(e,!1,r.key,r.iv);return f(t,n.key,n.iv)},e.createDecipheriv=f},5799:(t,e,r)=>{var n=r(530),i=r(2356),o=r(2861).Buffer,s=r(650),a=r(6168),d=r(462),u=r(8078);function h(t,e,r){a.call(this),this._cache=new f,this._cipher=new d.AES(e),this._prev=o.from(r),this._mode=t,this._autopadding=!0}r(6698)(h,a),h.prototype._update=function(t){var e,r;this._cache.add(t);for(var n=[];e=this._cache.get();)r=this._mode.encrypt(this,e),n.push(r);return o.concat(n)};var l=o.alloc(16,16);function f(){this.cache=o.allocUnsafe(0)}function c(t,e,r){var a=n[t.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof e&&(e=o.from(e)),e.length!==a.key/8)throw new TypeError("invalid key length "+e.length);if("string"==typeof r&&(r=o.from(r)),"GCM"!==a.mode&&r.length!==a.iv)throw new TypeError("invalid iv length "+r.length);return"stream"===a.type?new s(a.module,e,r):"auth"===a.type?new i(a.module,e,r):new h(a.module,e,r)}h.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(l))throw this._cipher.scrub(),new Error("data not multiple of block length")},h.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},f.prototype.add=function(t){this.cache=o.concat([this.cache,t])},f.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},f.prototype.flush=function(){for(var t=16-this.cache.length,e=o.allocUnsafe(t),r=-1;++r<t;)e.writeUInt8(t,r);return o.concat([this.cache,e])},e.createCipheriv=c,e.createCipher=function(t,e){var r=n[t.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var i=u(e,!1,r.key,r.iv);return c(t,i.key,i.iv)}},5892:(t,e,r)=>{var n=r(2861).Buffer,i=n.alloc(16,0);function o(t){var e=n.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function s(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}s.prototype.ghash=function(t){for(var e=-1;++e<t.length;)this.state[e]^=t[e];this._multiply()},s.prototype._multiply=function(){for(var t,e,r,n=[(t=this.h).readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)],i=[0,0,0,0],s=-1;++s<128;){for(!!(this.state[~~(s/8)]&1<<7-s%8)&&(i[0]^=n[0],i[1]^=n[1],i[2]^=n[2],i[3]^=n[3]),r=!!(1&n[3]),e=3;e>0;e--)n[e]=n[e]>>>1|(1&n[e-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=o(i)},s.prototype.update=function(t){var e;for(this.cache=n.concat([this.cache,t]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},s.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(o([0,t,0,e])),this.state},t.exports=s},5122:t=>{t.exports=function(t){for(var e,r=t.length;r--;){if(255!==(e=t.readUInt8(r))){e++,t.writeUInt8(e,r);break}t.writeUInt8(0,r)}}},2884:(t,e,r)=>{var n=r(295);e.encrypt=function(t,e){var r=n(e,t._prev);return t._prev=t._cipher.encryptBlock(r),t._prev},e.decrypt=function(t,e){var r=t._prev;t._prev=e;var i=t._cipher.decryptBlock(e);return n(i,r)}},6383:(t,e,r)=>{var n=r(2861).Buffer,i=r(295);function o(t,e,r){var o=e.length,s=i(e,t._cache);return t._cache=t._cache.slice(o),t._prev=n.concat([t._prev,r?e:s]),s}e.encrypt=function(t,e,r){for(var i,s=n.allocUnsafe(0);e.length;){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=n.allocUnsafe(0)),!(t._cache.length<=e.length)){s=n.concat([s,o(t,e,r)]);break}i=t._cache.length,s=n.concat([s,o(t,e.slice(0,i),r)]),e=e.slice(i)}return s}},5264:(t,e,r)=>{var n=r(2861).Buffer;function i(t,e,r){for(var n,i,s=-1,a=0;++s<8;)n=e&1<<7-s?128:0,a+=(128&(i=t._cipher.encryptBlock(t._prev)[0]^n))>>s%8,t._prev=o(t._prev,r?n:i);return a}function o(t,e){var r=t.length,i=-1,o=n.allocUnsafe(t.length);for(t=n.concat([t,n.from([e])]);++i<r;)o[i]=t[i]<<1|t[i+1]>>7;return o}e.encrypt=function(t,e,r){for(var o=e.length,s=n.allocUnsafe(o),a=-1;++a<o;)s[a]=i(t,e[a],r);return s}},6975:(t,e,r)=>{var n=r(2861).Buffer;function i(t,e,r){var i=t._cipher.encryptBlock(t._prev)[0]^e;return t._prev=n.concat([t._prev.slice(1),n.from([r?e:i])]),i}e.encrypt=function(t,e,r){for(var o=e.length,s=n.allocUnsafe(o),a=-1;++a<o;)s[a]=i(t,e[a],r);return s}},3053:(t,e,r)=>{var n=r(295),i=r(2861).Buffer,o=r(5122);function s(t){var e=t._cipher.encryptBlockRaw(t._prev);return o(t._prev),e}e.encrypt=function(t,e){var r=Math.ceil(e.length/16),o=t._cache.length;t._cache=i.concat([t._cache,i.allocUnsafe(16*r)]);for(var a=0;a<r;a++){var d=s(t),u=o+16*a;t._cache.writeUInt32BE(d[0],u+0),t._cache.writeUInt32BE(d[1],u+4),t._cache.writeUInt32BE(d[2],u+8),t._cache.writeUInt32BE(d[3],u+12)}var h=t._cache.slice(0,e.length);return t._cache=t._cache.slice(e.length),n(e,h)}},2632:(t,e)=>{e.encrypt=function(t,e){return t._cipher.encryptBlock(e)},e.decrypt=function(t,e){return t._cipher.decryptBlock(e)}},530:(t,e,r)=>{var n={ECB:r(2632),CBC:r(2884),CFB:r(6383),CFB8:r(6975),CFB1:r(5264),OFB:r(6843),CTR:r(3053),GCM:r(3053)},i=r(3219);for(var o in i)i[o].module=n[i[o].mode];t.exports=i},6843:(t,e,r)=>{var n=r(295);function i(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(t,e){for(;t._cache.length<e.length;)t._cache=Buffer.concat([t._cache,i(t)]);var r=t._cache.slice(0,e.length);return t._cache=t._cache.slice(e.length),n(e,r)}},650:(t,e,r)=>{var n=r(462),i=r(2861).Buffer,o=r(6168);function s(t,e,r,s){o.call(this),this._cipher=new n.AES(e),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=s,this._mode=t}r(6698)(s,o),s.prototype._update=function(t){return this._mode.encrypt(this,t,this._decrypt)},s.prototype._final=function(){this._cipher.scrub()},t.exports=s},125:(t,e,r)=>{var n=r(4050),i=r(1241),o=r(530),s=r(2438),a=r(8078);function d(t,e,r){if(t=t.toLowerCase(),o[t])return i.createCipheriv(t,e,r);if(s[t])return new n({key:e,iv:r,mode:t});throw new TypeError("invalid suite type")}function u(t,e,r){if(t=t.toLowerCase(),o[t])return i.createDecipheriv(t,e,r);if(s[t])return new n({key:e,iv:r,mode:t,decrypt:!0});throw new TypeError("invalid suite type")}e.createCipher=e.Cipher=function(t,e){var r,n;if(t=t.toLowerCase(),o[t])r=o[t].key,n=o[t].iv;else{if(!s[t])throw new TypeError("invalid suite type");r=8*s[t].key,n=s[t].iv}var i=a(e,!1,r,n);return d(t,i.key,i.iv)},e.createCipheriv=e.Cipheriv=d,e.createDecipher=e.Decipher=function(t,e){var r,n;if(t=t.toLowerCase(),o[t])r=o[t].key,n=o[t].iv;else{if(!s[t])throw new TypeError("invalid suite type");r=8*s[t].key,n=s[t].iv}var i=a(e,!1,r,n);return u(t,i.key,i.iv)},e.createDecipheriv=e.Decipheriv=u,e.listCiphers=e.getCiphers=function(){return Object.keys(s).concat(i.getCiphers())}},4050:(t,e,r)=>{var n=r(6168),i=r(9560),o=r(6698),s=r(2861).Buffer,a={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function d(t){n.call(this);var e,r=t.mode.toLowerCase(),i=a[r];e=t.decrypt?"decrypt":"encrypt";var o=t.key;s.isBuffer(o)||(o=s.from(o)),"des-ede"!==r&&"des-ede-cbc"!==r||(o=s.concat([o,o.slice(0,8)]));var d=t.iv;s.isBuffer(d)||(d=s.from(d)),this._des=i.create({key:o,iv:d,type:e})}a.des=a["des-cbc"],a.des3=a["des-ede3-cbc"],t.exports=d,o(d,n),d.prototype._update=function(t){return s.from(this._des.update(t))},d.prototype._final=function(){return s.from(this._des.final())}},2438:(t,e)=>{e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}},7332:(t,e,r)=>{"use strict";var n=r(9404),i=r(3209),o=r(2861).Buffer;function s(t){var e,r=t.modulus.byteLength();
vendor: 12,141 bytes, line 15672
15672do{e=new n(i(r))}while(e.cmp(t.modulus)>=0||!e.umod(t.prime1)||!e.umod(t.prime2));return e}function a(t,e){var r=function(t){var e=s(t);return{blinder:e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed(),unblinder:e.invm(t.modulus)}}(e),i=e.modulus.byteLength(),a=new n(t).mul(r.blinder).umod(e.modulus),d=a.toRed(n.mont(e.prime1)),u=a.toRed(n.mont(e.prime2)),h=e.coefficient,l=e.prime1,f=e.prime2,c=d.redPow(e.exponent1).fromRed(),g=u.redPow(e.exponent2).fromRed(),p=c.isub(g).imul(h).umod(l).imul(f);return g.iadd(p).imul(r.unblinder).umod(e.modulus).toArrayLike(o,"be",i)}a.getr=s,t.exports=a},5715:(t,e,r)=>{"use strict";t.exports=r(2951)},20:(t,e,r)=>{"use strict";var n=r(2861).Buffer,i=r(7108),o=r(6737),s=r(6698),a=r(5359),d=r(4847),u=r(2951);function h(t){o.Writable.call(this);var e=u[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function l(t){o.Writable.call(this);var e=u[t];if(!e)throw new Error("Unknown message digest");this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function f(t){return new h(t)}function c(t){return new l(t)}Object.keys(u).forEach((function(t){u[t].id=n.from(u[t].id,"hex"),u[t.toLowerCase()]=u[t]})),s(h,o.Writable),h.prototype._write=function(t,e,r){this._hash.update(t),r()},h.prototype.update=function(t,e){return this._hash.update("string"==typeof t?n.from(t,e):t),this},h.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=a(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},s(l,o.Writable),l.prototype._write=function(t,e,r){this._hash.update(t),r()},l.prototype.update=function(t,e){return this._hash.update("string"==typeof t?n.from(t,e):t),this},l.prototype.verify=function(t,e,r){var i="string"==typeof e?n.from(e,r):e;this.end();var o=this._hash.digest();return d(i,o,t,this._signType,this._tag)},t.exports={Sign:f,Verify:c,createSign:f,createVerify:c}},5359:(t,e,r)=>{"use strict";var n=r(2861).Buffer,i=r(3507),o=r(7332),s=r(6729).ec,a=r(9404),d=r(8170),u=r(4589);function h(t,e,r,o){if((t=n.from(t.toArray())).length<e.byteLength()){var s=n.alloc(e.byteLength()-t.length);t=n.concat([s,t])}var a=r.length,d=function(t,e){t=(t=l(t,e)).mod(e);var r=n.from(t.toArray());if(r.length<e.byteLength()){var i=n.alloc(e.byteLength()-r.length);r=n.concat([i,r])}return r}(r,e),u=n.alloc(a);u.fill(1);var h=n.alloc(a);return h=i(o,h).update(u).update(n.from([0])).update(t).update(d).digest(),u=i(o,h).update(u).digest(),{k:h=i(o,h).update(u).update(n.from([1])).update(t).update(d).digest(),v:u=i(o,h).update(u).digest()}}function l(t,e){var r=new a(t),n=(t.length<<3)-e.bitLength();return n>0&&r.ishrn(n),r}function f(t,e,r){var o,s;do{for(o=n.alloc(0);8*o.length<t.bitLength();)e.v=i(r,e.k).update(e.v).digest(),o=n.concat([o,e.v]);s=l(o,t),e.k=i(r,e.k).update(e.v).update(n.from([0])).digest(),e.v=i(r,e.k).update(e.v).digest()}while(-1!==s.cmp(t));return s}function c(t,e,r,n){return t.toRed(a.mont(r)).redPow(e).fromRed().mod(n)}t.exports=function(t,e,r,i,g){var p=d(e);if(p.curve){if("ecdsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");return function(t,e){var r=u[e.curve.join(".")];if(!r)throw new Error("unknown curve "+e.curve.join("."));var i=new s(r).keyFromPrivate(e.privateKey).sign(t);return n.from(i.toDER())}(t,p)}if("dsa"===p.type){if("dsa"!==i)throw new Error("wrong private key type");return function(t,e,r){for(var i,o=e.params.priv_key,s=e.params.p,d=e.params.q,u=e.params.g,g=new a(0),p=l(t,d).mod(d),m=!1,b=h(o,d,t,r);!1===m;)g=c(u,i=f(d,b,r),s,d),0===(m=i.invm(d).imul(p.add(o.mul(g))).mod(d)).cmpn(0)&&(m=!1,g=new a(0));return function(t,e){t=t.toArray(),e=e.toArray(),128&t[0]&&(t=[0].concat(t)),128&e[0]&&(e=[0].concat(e));var r=[48,t.length+e.length+4,2,t.length];return r=r.concat(t,[2,e.length],e),n.from(r)}(g,m)}(t,p,r)}if("rsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");if(void 0!==e.padding&&1!==e.padding)throw new Error("illegal or unsupported padding mode");t=n.concat([g,t]);for(var m=p.modulus.byteLength(),b=[0,1];t.length+b.length+1<m;)b.push(255);b.push(0);for(var y=-1;++y<t.length;)b.push(t[y]);return o(b,p)},t.exports.getKey=h,t.exports.makeKey=f},4847:(t,e,r)=>{"use strict";var n=r(2861).Buffer,i=r(9404),o=r(6729).ec,s=r(8170),a=r(4589);function d(t,e){if(t.cmpn(0)<=0)throw new Error("invalid sig");if(t.cmp(e)>=0)throw new Error("invalid sig")}t.exports=function(t,e,r,u,h){var l=s(r);if("ec"===l.type){if("ecdsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");return function(t,e,r){var n=a[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var i=new o(n),s=r.data.subjectPrivateKey.data;return i.verify(e,t,s)}(t,e,l)}if("dsa"===l.type){if("dsa"!==u)throw new Error("wrong public key type");return function(t,e,r){var n=r.data.p,o=r.data.q,a=r.data.g,u=r.data.pub_key,h=s.signature.decode(t,"der"),l=h.s,f=h.r;d(l,o),d(f,o);var c=i.mont(n),g=l.invm(o);return 0===a.toRed(c).redPow(new i(e).mul(g).mod(o)).fromRed().mul(u.toRed(c).redPow(f.mul(g).mod(o)).fromRed()).mod(n).mod(o).cmp(f)}(t,e,l)}if("rsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");e=n.concat([h,e]);for(var f=l.modulus.byteLength(),c=[1],g=0;e.length+c.length+2<f;)c.push(255),g+=1;c.push(0);for(var p=-1;++p<e.length;)c.push(e[p]);c=n.from(c);var m=i.mont(l.modulus);t=(t=new i(t).toRed(m)).redPow(new i(l.publicExponent)),t=n.from(t.fromRed().toArray());var b=g<8?1:0;for(f=Math.min(t.length,c.length),t.length!==c.length&&(b=1),p=-1;++p<f;)b|=t[p]^c[p];return 0===b}},6248:(t,e,r)=>{"use strict";var n=r(3225),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=l;var o=Object.create(r(5622));o.inherits=r(6698);var s=r(206),a=r(7314);o.inherits(l,s);for(var d=i(a.prototype),u=0;u<d.length;u++){var h=d[u];l.prototype[h]||(l.prototype[h]=a.prototype[h])}function l(t){if(!(this instanceof l))return new l(t);s.call(this,t),a.call(this,t),t&&!1===t.readable&&(this.readable=!1),t&&!1===t.writable&&(this.writable=!1),this.allowHalfOpen=!0,t&&!1===t.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",f)}function f(){this.allowHalfOpen||this._writableState.ended||n.nextTick(c,this)}function c(t){t.end()}Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}}),l.prototype._destroy=function(t,e){this.push(null),this.end(),n.nextTick(e,t)}},5242:(t,e,r)=>{"use strict";t.exports=o;var n=r(1816),i=Object.create(r(5622));function o(t){if(!(this instanceof o))return new o(t);n.call(this,t)}i.inherits=r(6698),i.inherits(o,n),o.prototype._transform=function(t,e,r){r(null,t)}},206:(t,e,r)=>{"use strict";var n=r(5606),i=r(3225);t.exports=v;var o,s=r(4634);v.ReadableState=y,r(7007).EventEmitter;var a=function(t,e){return t.listeners(e).length},d=r(5567),u=r(4116).Buffer,h=(void 0!==r.g?r.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},l=Object.create(r(5622));l.inherits=r(6698);var f=r(2668),c=void 0;c=f&&f.debuglog?f.debuglog("stream"):function(){};var g,p=r(672),m=r(6278);l.inherits(v,d);var b=["error","close","destroy","pause","resume"];function y(t,e){t=t||{};var n=e instanceof(o=o||r(6248));this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,s=t.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(s||0===s)?s:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(g||(g=r(6427).I),this.decoder=new g(t.encoding),this.encoding=t.encoding)}function v(t){if(o=o||r(6248),!(this instanceof v))return new v(t);this._readableState=new y(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),d.call(this)}function _(t,e,r,n,i){var o,s=t._readableState;return null===e?(s.reading=!1,function(t,e){if(!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,S(t)}}(t,s)):(i||(o=function(t,e){var r,n;return n=e,u.isBuffer(n)||n instanceof h||"string"==typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}(s,e)),o?t.emit("error",o):s.objectMode||e&&e.length>0?("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===u.prototype||(e=function(t){return u.from(t)}(e)),n?s.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):M(t,s,e,!0):s.ended?t.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?M(t,s,e,!1):E(t,s)):M(t,s,e,!1))):n||(s.reading=!1)),function(t){return!t.ended&&(t.needReadable||t.length<t.highWaterMark||0===t.length)}(s)}function M(t,e,r,n){e.flowing&&0===e.length&&!e.sync?(t.emit("data",r),t.read(0)):(e.length+=e.objectMode?1:r.length,n?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&S(t)),E(t,e)}Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),v.prototype.destroy=m.destroy,v.prototype._undestroy=m.undestroy,v.prototype._destroy=function(t,e){this.push(null),e(t)},v.prototype.push=function(t,e){var r,n=this._readableState;return n.objectMode?r=!0:"string"==typeof t&&((e=e||n.defaultEncoding)!==n.encoding&&(t=u.from(t,e),e=""),r=!0),_(this,t,e,!1,r)},v.prototype.unshift=function(t){return _(this,t,null,!0,!1)},v.prototype.isPaused=function(){return!1===this._readableState.flowing},v.prototype.setEncoding=function(t){return g||(g=r(6427).I),this._readableState.decoder=new g(t),this._readableState.encoding=t,this};var w=8388608;function $(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=w?t=w:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function S(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(c("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(N,t):N(t))}function N(t){c("emit readable"),t.emit("readable"),P(t)}function E(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(T,t,e))}function T(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(c("maybeReadMore read 0"),t.read(0),r!==e.length);)r=e.length;e.readingMore=!1}function A(t){c("readable nexttick read 0"),t.read(0)}function R(t,e){e.reading||(c("resume read 0"),t.read(0)),e.resumeScheduled=!1,e.awaitDrain=0,t.emit("resume"),P(t),e.flowing&&!e.reading&&t.read(0)}function P(t){var e=t._readableState;for(c("flow",e.flowing);e.flowing&&null!==t.read(););}function O(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;return t<e.head.data.length?(n=e.head.data.slice(0,t),e.head.data=e.head.data.slice(t)):n=t===e.head.data.length?e.shift():r?function(t,e){var r=e.head,n=1,i=r.data;for(t-=i.length;r=r.next;){var o=r.data,s=t>o.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0==(t-=s)){s===o.length?(++n,r.next?e.head=r.next:e.head=e.tail
vendor: 4,617 bytes, line 15672
15672=null):(e.head=r,r.data=o.slice(s));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=u.allocUnsafe(t),n=e.head,i=1;for(n.data.copy(r),t-=n.data.length;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,s),0==(t-=s)){s===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++i}return e.length-=i,r}(t,e),n}(t,e.buffer,e.decoder),r);var r}function C(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(I,e,t))}function I(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function L(t,e){for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1}v.prototype.read=function(t){c("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return c("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?C(this):S(this),null;if(0===(t=$(t,e))&&e.ended)return 0===e.length&&C(this),null;var n,i=e.needReadable;return c("need readable",i),(0===e.length||e.length-t<e.highWaterMark)&&c("length less than watermark",i=!0),e.ended||e.reading?c("reading or ended",i=!1):i&&(c("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=$(r,e))),null===(n=t>0?O(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&C(this)),null!==n&&this.emit("data",n),n},v.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},v.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,c("pipe count=%d opts=%j",o.pipesCount,e);var d=e&&!1===e.end||t===n.stdout||t===n.stderr?y:u;function u(){c("onend"),t.end()}o.endEmitted?i.nextTick(d):r.once("end",d),t.on("unpipe",(function e(n,i){c("onunpipe"),n===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,c("cleanup"),t.removeListener("close",m),t.removeListener("finish",b),t.removeListener("drain",h),t.removeListener("error",p),t.removeListener("unpipe",e),r.removeListener("end",u),r.removeListener("end",y),r.removeListener("data",g),l=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||h())}));var h=function(t){return function(){var e=t._readableState;c("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,P(t))}}(r);t.on("drain",h);var l=!1,f=!1;function g(e){c("ondata"),f=!1,!1!==t.write(e)||f||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==L(o.pipes,t))&&!l&&(c("false write response, pause",o.awaitDrain),o.awaitDrain++,f=!0),r.pause())}function p(e){c("onerror",e),y(),t.removeListener("error",p),0===a(t,"error")&&t.emit("error",e)}function m(){t.removeListener("finish",b),y()}function b(){c("onfinish"),t.removeListener("close",m),y()}function y(){c("unpipe"),r.unpipe(t)}return r.on("data",g),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?s(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",p),t.once("close",m),t.once("finish",b),t.emit("pipe",r),o.flowing||(c("pipe resume"),r.resume()),t},v.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o<i;o++)n[o].emit("unpipe",this,{hasUnpiped:!1});return this}var s=L(e.pipes,t);return-1===s||(e.pipes.splice(s,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,r)),this},v.prototype.on=function(t,e){var r=d.prototype.on.call(this,t,e);if("data"===t)!1!==this._readableState.flowing&&this.resume();else if("readable"===t){var n=this._readableState;n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&S(this):i.nextTick(A,this))}return r},v.prototype.addListener=v.prototype.on,v.prototype.resume=function(){var t=this._readableState;return t.flowing||(c("resume"),t.flowing=!0,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(R,t,e))}(this,t)),this},v.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit
vendor: 13,517 bytes, line 15672
15672("pause")),this},v.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(c("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){c("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i||(r.objectMode||i&&i.length)&&(e.push(i)||(n=!0,t.pause()))})),t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o<b.length;o++)t.on(b[o],this.emit.bind(this,b[o]));return this._read=function(e){c("wrapped _read",e),n&&(n=!1,t.resume())},this},Object.defineProperty(v.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),v._fromList=O},1816:(t,e,r)=>{"use strict";t.exports=s;var n=r(6248),i=Object.create(r(5622));function o(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function s(t){if(!(this instanceof s))return new s(t);n.call(this,t),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.on("prefinish",a)}function a(){var t=this;"function"==typeof this._flush?this._flush((function(e,r){d(t,e,r)})):d(this,null,null)}function d(t,e,r){if(e)return t.emit("error",e);if(null!=r&&t.push(r),t._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(t._transformState.transforming)throw new Error("Calling transform done when still transforming");return t.push(null)}i.inherits=r(6698),i.inherits(s,n),s.prototype.push=function(t,e){return this._transformState.needTransform=!1,n.prototype.push.call(this,t,e)},s.prototype._transform=function(t,e,r){throw new Error("_transform() is not implemented")},s.prototype._write=function(t,e,r){var n=this._transformState;if(n.writecb=r,n.writechunk=t,n.writeencoding=e,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},s.prototype._read=function(t){var e=this._transformState;null!==e.writechunk&&e.writecb&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0},s.prototype._destroy=function(t,e){var r=this;n.prototype._destroy.call(this,t,(function(t){e(t),r.emit("close")}))}},7314:(t,e,r)=>{"use strict";var n=r(5606),i=r(3225);function o(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e){var r=t.entry;for(t.entry=null;r;){var n=r.callback;e.pendingcb--,n(undefined),r=r.next}e.corkedRequestsFree.next=t}(e,t)}}t.exports=b;var s,a=!n.browser&&["v0.10","v0.9."].indexOf(n.version.slice(0,5))>-1?setImmediate:i.nextTick;b.WritableState=m;var d=Object.create(r(5622));d.inherits=r(6698);var u,h={deprecate:r(4643)},l=r(5567),f=r(4116).Buffer,c=(void 0!==r.g?r.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},g=r(6278);function p(){}function m(t,e){s=s||r(6248),t=t||{};var n=e instanceof s;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var d=t.highWaterMark,u=t.writableHighWaterMark,h=this.objectMode?16:16384;this.highWaterMark=d||0===d?d:n&&(u||0===u)?u:h,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===t.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,o=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,o){--e.pendingcb,r?(i.nextTick(o,n),i.nextTick($,t,e),t._writableState.errorEmitted=!0,t.emit("error",n)):(o(n),t._writableState.errorEmitted=!0,t.emit("error",n),$(t,e))}(t,r,n,e,o);else{var s=M(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||_(t,r),n?a(v,t,r,s,o):v(t,r,s,o)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function b(t){if(s=s||r(6248),!(u.call(b,this)||this instanceof s))return new b(t);this._writableState=new m(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),l.call(this)}function y(t,e,r,n,i,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function v(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),$(t,e)}function _(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),s=e.corkedRequestsFree;s.entry=r;for(var a=0,d=!0;r;)i[a]=r,r.isBuf||(d=!1),r=r.next,a+=1;i.allBuffers=d,y(t,e,!0,e.length,i,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new o(e),e.bufferedRequestCount=0}else{for(;r;){var u=r.chunk,h=r.encoding,l=r.callback;if(y(t,e,!1,e.objectMode?1:u.length,u,h,l),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function M(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function w(t,e){t._final((function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),$(t,e)}))}function $(t,e){var r=M(e);return r&&(function(t,e){e.prefinished||e.finalCalled||("function"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,i.nextTick(w,t,e)):(e.prefinished=!0,t.emit("prefinish")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),r}d.inherits(b,l),m.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(m.prototype,"buffer",{get:h.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(t){return!!u.call(this,t)||this===b&&t&&t._writableState instanceof m}})):u=function(t){return t instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(t,e,r){var n,o=this._writableState,s=!1,a=!o.objectMode&&(n=t,f.isBuffer(n)||n instanceof c);return a&&!f.isBuffer(t)&&(t=function(t){return f.from(t)}(t)),"function"==typeof e&&(r=e,e=null),a?e="buffer":e||(e=o.defaultEncoding),"function"!=typeof r&&(r=p),o.ended?function(t,e){var r=new Error("write after end");t.emit("error",r),i.nextTick(e,r)}(this,r):(a||function(t,e,r,n){var o=!0,s=!1;return null===r?s=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||e.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(t.emit("error",s),i.nextTick(n,s),o=!1),o}(this,o,t,r))&&(o.pendingcb++,s=function(t,e,r,n,i,o){if(!r){var s=function(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=f.from(e,r)),e}(e,n,i);n!==s&&(r=!0,i="buffer",n=s)}var a=e.objectMode?1:n.length;e.length+=a;var d=e.length<e.highWaterMark;if(d||(e.needDrain=!0),e.writing||e.corked){var u=e.lastBufferedRequest;e.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:o,next:null},u?u.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else y(t,e,!1,a,n,i,o);return d}(this,o,a,t,e,r)),s},b.prototype.cork=function(){this._writableState.corked++},b.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.bufferProcessing||!t.bufferedRequest||_(this,t))},b.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,$(t,e),r&&(e.finished?i.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(t,e){this.end(),e(t)}},672:(t,e,r)=>{"use strict";var n=r(4116).Buffer,i=r(1638);t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);for(var e,r,i=n.allocUnsafe(t>>>0),o=this.head,s=0;o;)e=i,r=s,o.data.copy(e,r),s+=o.data.length,o=o.next;return i},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+" "+t})},6278:(t,e,r)=>{"use strict";var n=r(3225);function i(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(i,this,t)):n.nextTick(i,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?r._writableState?r._writableState.errorEmitted||(r._writableState.errorEmitted=!0,n.nextTick(i,r,t)):n.nextTick(i,r,t):e&&e(t)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},5567:(t,e,r)=>{t.exports=r(7007).EventEmitter},4116:(t,e,r)=>{var n=r(8287),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function s(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=s),o(i,s),s.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},s.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},s.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},s.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},6737:(t,e,r)=>{(e=t.exports=r(206)).Stream=e,e.Readable=e,e.Writable=r(7314),e.Duplex=r(6248),e.Transform=r(1816),e.PassThrough=r(5242)},6427:(t,e,r)=>{"use strict";var n=r(8393).Buffer,i=n.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";
vendor: 4,202 bytes, line 15672
15672case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=d,this.end=u,e=4;break;case"utf8":this.fillLast=a,e=4;break;case"base64":this.text=h,this.end=l,e=3;break;default:return this.write=f,void(this.end=c)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function s(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function d(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function u(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function h(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function l(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f(t){return t.toString(this.encoding)}function c(t){return t&&t.length?this.write(t):""}e.I=o,o.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||""},o.prototype.end=function(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e},o.prototype.text=function(t,e){var r=function(t,e,r){var n=e.length-1;if(n<r)return 0;var i=s(e[n]);return i>=0?(i>0&&(t.lastNeed=i-1),i):--n<r||-2===i?0:(i=s(e[n]))>=0?(i>0&&(t.lastNeed=i-2),i):--n<r||-2===i?0:(i=s(e[n]))>=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},8393:(t,e,r)=>{var n=r(8287),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function s(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=s),o(i,s),s.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},s.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},s.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},s.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},295:t=>{t.exports=function(t,e){for(var r=Math.min(t.length,e.length),n=new Buffer(r),i=0;i<r;++i)n[i]=t[i]^e[i];return n}},8287:(t,e,r)=>{"use strict";const n=r(7526),i=r(251),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=d,e.SlowBuffer=function(t){return+t!=t&&(t=0),d.alloc(+t)},e.INSPECT_MAX_BYTES=50;const s=2147483647;function a(t){if(t>
vendor: 21,466 bytes, line 15672
15672s)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,d.prototype),e}function d(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return l(t)}return u(t,e,r)}function u(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!d.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const r=0|p(t,e);let n=a(r);const i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(K(t,Uint8Array)){const e=new Uint8Array(t);return c(e.buffer,e.byteOffset,e.byteLength)}return f(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(K(t,ArrayBuffer)||t&&K(t.buffer,ArrayBuffer))return c(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(K(t,SharedArrayBuffer)||t&&K(t.buffer,SharedArrayBuffer)))return c(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return d.from(n,e,r);const i=function(t){if(d.isBuffer(t)){const e=0|g(t.length),r=a(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||Z(t.length)?a(0):f(t):"Buffer"===t.type&&Array.isArray(t.data)?f(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return d.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function l(t){return h(t),a(t<0?0:0|g(t))}function f(t){const e=t.length<0?0:0|g(t.length),r=a(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function c(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,d.prototype),n}function g(t){if(t>=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|t}function p(t,e){if(d.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||K(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Y(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return z(t).length;default:if(i)return n?-1:Y(t).length;e=(""+e).toLowerCase(),i=!0}}function m(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return P(this,e,r);case"utf8":case"utf-8":return E(this,e,r);case"ascii":return A(this,e,r);case"latin1":case"binary":return R(this,e,r);case"base64":return N(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function b(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Z(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=d.from(e,n)),d.isBuffer(e))return 0===e.length?-1:v(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):v(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(t,e,r,n,i){let o,s=1,a=t.length,d=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,d/=2,r/=2}function u(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){let n=-1;for(o=r;o<a;o++)if(u(t,o)===u(e,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===d)return n*s}else-1!==n&&(o-=o-n),n=-1}else for(r+d>a&&(r=a-d),o=r;o>=0;o--){let r=!0;for(let n=0;n<d;n++)if(u(t,o+n)!==u(e,n)){r=!1;break}if(r)return o}return-1}function _(t,e,r,n){r=Number(r)||0;const i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;const o=e.length;let s;for(n>o/2&&(n=o/2),s=0;s<n;++s){const n=parseInt(e.substr(2*s,2),16);if(Z(n))return s;t[r+s]=n}return s}function M(t,e,r,n){return q(Y(e,t.length-r),t,r,n)}function w(t,e,r,n){return q(function(t){const e=[];for(let r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function $(t,e,r,n){return q(z(e),t,r,n)}function S(t,e,r,n){return q(function(t,e){let r,n,i;const o=[];for(let s=0;s<t.length&&!((e-=2)<0);++s)r=t.charCodeAt(s),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function N(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function E(t,e,r){r=Math.min(t.length,r);const n=[];let i=e;for(;i<r;){const e=t[i];let o=null,s=e>239?4:e>223?3:e>191?2:1;if(i+s<=r){let r,n,a,d;switch(s){case 1:e<128&&(o=e);break;case 2:r=t[i+1],128==(192&r)&&(d=(31&e)<<6|63&r,d>127&&(o=d));break;case 3:r=t[i+1],n=t[i+2],128==(192&r)&&128==(192&n)&&(d=(15&e)<<12|(63&r)<<6|63&n,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:r=t[i+1],n=t[i+2],a=t[i+3],128==(192&r)&&128==(192&n)&&128==(192&a)&&(d=(15&e)<<18|(63&r)<<12|(63&n)<<6|63&a,d>65535&&d<1114112&&(o=d))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){const e=t.length;if(e<=T)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=T));return r}(n)}e.kMaxLength=s,d.TYPED_ARRAY_SUPPORT=function(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),d.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(d.prototype,"parent",{enumerable:!0,get:function(){if(d.isBuffer(this))return this.buffer}}),Object.defineProperty(d.prototype,"offset",{enumerable:!0,get:function(){if(d.isBuffer(this))return this.byteOffset}}),d.poolSize=8192,d.from=function(t,e,r){return u(t,e,r)},Object.setPrototypeOf(d.prototype,Uint8Array.prototype),Object.setPrototypeOf(d,Uint8Array),d.alloc=function(t,e,r){return function(t,e,r){return h(t),t<=0?a(t):void 0!==e?"string"==typeof r?a(t).fill(e,r):a(t).fill(e):a(t)}(t,e,r)},d.allocUnsafe=function(t){return l(t)},d.allocUnsafeSlow=function(t){return l(t)},d.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==d.prototype},d.compare=function(t,e){if(K(t,Uint8Array)&&(t=d.from(t,t.offset,t.byteLength)),K(e,Uint8Array)&&(e=d.from(e,e.offset,e.byteLength)),!d.isBuffer(t)||!d.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let r=t.length,n=e.length;for(let i=0,o=Math.min(r,n);i<o;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},d.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},d.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return d.alloc(0);let r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;const n=d.allocUnsafe(e);let i=0;for(r=0;r<t.length;++r){let e=t[r];if(K(e,Uint8Array))i+e.length>n.length?(d.isBuffer(e)||(e=d.from(e)),e.copy(n,i)):Uint8Array.prototype.set.call(n,e,i);else{if(!d.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(n,i)}i+=e.length}return n},d.byteLength=p,d.prototype._isBuffer=!0,d.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)b(this,e,e+1);return this},d.prototype.swap32=function(){const t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)b(this,e,e+3),b(this,e+1,e+2);return this},d.prototype.swap64=function(){const t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)b(this,e,e+7),b(this,e+1,e+6),b(this,e+2,e+5),b(this,e+3,e+4);return this},d.prototype.toString=function(){const t=this.length;return 0===t?"":0===arguments.length?E(this,0,t):m.apply(this,arguments)},d.prototype.toLocaleString=d.prototype.toString,d.prototype.equals=function(t){if(!d.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===d.compare(this,t)},d.prototype.inspect=function(){let t="";const r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),"<Buffer "+t+">"},o&&(d.prototype[o]=d.prototype.inspect),d.prototype.compare=function(t,e,r,n,i){if(K(t,Uint8Array)&&(t=d.from(t,t.offset,t.byteLength)),!d.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;let o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0);const a=Math.min(o,s),u=this.slice(n,i),h=t.slice(e,r);for(let t=0;t<a;++t)if(u[t]!==h[t]){o=u[t],s=h[t];break}return o<s?-1:s<o?1:0},d.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},d.prototype.indexOf=function(t,e,r){return y(this,t,e,r,!0)},d.prototype.lastIndexOf=function(t,e,r){return y(this,t,e,r,!1)},d.prototype.write=function(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return _(this,t,e,r);case"utf8":case"utf-8":return M(this,t,e,r);case"ascii":case"latin1":case"binary":return w(this,t,e,r);case"base64":return $(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function A(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function R(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function P(t,e,r){const n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);let i="";for(let n=e;n<r;++n)i+=X[t[n]];return i}function O(t,e,r){const n=t.slice(e,r);let i="";for(let t=0;t<n.length-1;t+=2)i+=String.fromCharCode(n[t]+256*n[t+1]);return i}function C(t,e,r){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function I(t,e,r,n,i,o){if(!d.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('"value" argument is out of bounds');if(r+n>t.length)throw new RangeError("Index out of range")}function L(t,e,r,n,i){j(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,r}function D(t,e,r,n,i){j(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r+7]=o,o>>=8,t[r+6]=o,o>>=8,t[r+5]=o,o>>=8,t[r+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=s,s>>=8,t[r+2]=s,s>>=8,t[r+1]=s,s>>=8,t[r]=s,r+8}function U(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function k(t,e,r,n,o){return e=+e,r>>>=0,o||U(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function x(t,e,r,n,o){return e=+e,r>>>=0,o||U(t,0,r,8),i.write(t,e,r,n,52,8),r+8}d.prototype.slice=function(t,e){const r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);const n=this.subarray(t,e);return Object.setPrototypeOf(n,d.prototype),n},d.prototype.readUintLE=d.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||C(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return n},d.prototype.readUintBE=d.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||C(t,e,this.length);let n=this[t+--e],i=1;for(;e>0&&(i*=256);)n+=this[t+--e]*i;return n},d.prototype.readUint8=d.prototype.readUInt8=function(t,e){return t>>>=0,e||C(t,1,this.length),this[t]},d.prototype.readUint16LE=d.prototype.readUInt16LE=function(t,e){return t>>>=0,e||C(t,2,this.length),this[t]|this[t+1]<<8},d.prototype.readUint16BE=d.prototype.readUInt16BE=function(t,e){return t>>>=0,e||C(t,2,this.length),this[t]<<8|this[t+1]},d.prototype.readUint32LE=d.prototype.readUInt32LE=function(t,e){return t>>>=0,e||C(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},d.prototype.readUint32BE=d.prototype.readUInt32BE=function(t,e){return t>>>=0,e||C(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},d.prototype.readBigUInt64LE=J((function(t){H(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||G(t,this.length-8);const n=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,i=this[++t]+256*this[++t]+65536*this[++t]+r*2**24;return BigInt(n)+(BigInt(i)<<BigInt(32))})),d.prototype.readBigUInt64BE=J((function(t){H(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||G(t,this.length-8);const n=e*2**24+65536*this[++t]+256*this[++t]+this[++t],i=this[++t]*2**24+65536*this[++t]+256*this[++t]+r;return(BigInt(n)<<BigInt(32))+BigInt(i)})),d.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||C(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*e)),n},d.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||C(t,e,this.length);let n=e,i=1,o=this[t+--n];for(;n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},d.prototype.readInt8=function(t,e){return t>>>=0,e||C(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},d.prototype.readInt16LE=function(t,e){t>>>=0,e||C(t,2,this.length);const r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},d.prototype.readInt16BE=function(t,e){t>>>=0,e||C(t,2,this.length);const r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},d.prototype.readInt32LE=function(t,e){return t>>>=0,e||C(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},d.prototype.readInt32BE=function(t,e){return t>>>=0,e||C(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},d.prototype.readBigInt64LE=J((function(t){H(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||G(t,this.length-8);const n=this[t+4]+256*this[t+5]+65536*this[t+6]+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)})),d.prototype.readBigInt64BE=J((function(t){H(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||G(t,this.length-8);const n=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(n)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+r)})),d.prototype.readFloatLE=function(t,e){return t>>>=0,e||C(t,4,this.length),i.read(this,t,!0,23,4)},d.prototype.readFloatBE=function(t,e){return t>>>=0,e||C(t,4,this.length),i.read(this,t,!1,23,4)},d.prototype.readDoubleLE=function(t,e){return t>>>=0,e||C(t,8,this.length),i.read(this,t,!0,52,8)},d.prototype.readDoubleBE=function(t,e){return t>>>=0,e||C(t,8,this.length),i.read(this,t,!1,52,8)},d.prototype.writeUintLE=d.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||I(this,t,e,r,Math.pow(2,8*r)-1,0);let i=1,o=0;for(this[e]=255&t;++o<r&&(i*=256);)this[e+o]=t/i&255;return e+r},d.prototype.writeUintBE=d.prototype.writeUIntBE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||I(this,t,e,r,Math.pow(2,8*r)-1,0);let i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},d.prototype.writeUint8=d.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,1,255,0),this[e]=255&t,e+1},d.prototype.writeUint16LE=d.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},d.prototype.writeUint16BE=d.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},d.prototype.writeUint32LE=d.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},d.prototype.writeUint32BE=d.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},d.prototype.writeBigUInt64LE=J((function(t,e=0){return L(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),d.prototype.writeBigUInt64BE=J((function(t,e=0){return D(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),d.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);I(this,t,e,r,n-1,-n)}let i=0,o=1,s=0;for(this[e]=255&t;++i<r&&(o*=256);)t<0&&0===s&&0!==this[e+i-1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+r},d.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);I(this,t,e,r,n-1,-n)}let i=r-1,o=1,s=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===s&&0!==this[e+i+1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+r},d.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},d.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},d.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},d.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},d.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||I(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},d.prototype.writeBigInt64LE=J((function(t,e=0){return L(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),d.prototype.writeBigInt64BE=J((function(t,e=0){return D(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),d.prototype.writeFloatLE=function(t,e,r){return k(this,t,e,!0,r)},d.prototype.writeFloatBE=function(t,e,r){return k(this,t,e,!1,r)},d.prototype.writeDoubleLE=function(t,e,r){return x(this,t,e,!0,r)},d.prototype.writeDoubleBE=function(t,e,r){return x(this,t,e,!1,r)},d.prototype.copy=function(t,e,r,n){if(!d.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);const i=n-r;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),i},d.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!d.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){const e=t.charCodeAt(0);("utf8"===n&&e<128||"latin1"===n)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw new RangeError("Out of range index");if(r<=e)return this;let i;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(i=e;i<r;++i)this[i]=t;else{const o=d.isBuffer(t)?t:d.from(t,n),s=o.length;
vendor: 16,923 bytes, line 15672
15672if(0===s)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(i=0;i<r-e;++i)this[i+e]=o[i%s]}return this};const F={};function B(t,e,r){F[t]=class extends r{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function V(t){let e="",r=t.length;const n="-"===t[0]?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function j(t,e,r,n,i,o){if(t>r||t<e){const n="bigint"==typeof e?"n":"";let i;throw i=o>3?0===e||e===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${e}${n} and <= ${r}${n}`,new F.ERR_OUT_OF_RANGE("value",i,t)}!function(t,e,r){H(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||G(e,t.length-(r+1))}(n,i,o)}function H(t,e){if("number"!=typeof t)throw new F.ERR_INVALID_ARG_TYPE(e,"number",t)}function G(t,e,r){if(Math.floor(t)!==t)throw H(t,r),new F.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}B("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),B("ERR_INVALID_ARG_TYPE",(function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`}),TypeError),B("ERR_OUT_OF_RANGE",(function(t,e,r){let n=`The value of "${t}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=V(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=V(i)),i+="n"),n+=` It must be ${e}. Received ${i}`,n}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function Y(t,e){let r;e=e||1/0;const n=t.length;let i=null;const o=[];for(let s=0;s<n;++s){if(r=t.charCodeAt(s),r>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function z(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(W,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function q(t,e,r,n){let i;for(i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function K(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function Z(t){return t!=t}const X=function(){const t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function J(t){return"undefined"==typeof BigInt?Q:t}function Q(){throw new Error("BigInt not supported")}},6168:(t,e,r)=>{"use strict";var n=r(2861).Buffer,i=r(8310).Transform,o=r(3141).I;function s(t){i.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(6698)(s,i);var a="undefined"!=typeof Uint8Array,d="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&ArrayBuffer.isView&&(n.prototype instanceof Uint8Array||n.TYPED_ARRAY_SUPPORT);s.prototype.update=function(t,e,r){var i=function(t,e){if(t instanceof n)return t;if("string"==typeof t)return n.from(t,e);if(d&&ArrayBuffer.isView(t)){if(0===t.byteLength)return n.alloc(0);var r=n.from(t.buffer,t.byteOffset,t.byteLength);if(r.byteLength===t.byteLength)return r}if(a&&t instanceof Uint8Array)return n.from(t);if(n.isBuffer(t)&&t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t))return n.from(t);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}(t,e),o=this._update(i);return this.hashMode?this:(r&&(o=this._toString(o,r)),o)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(t,e,r){var n;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){n=t}finally{r(n)}},s.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},s.prototype._finalOrDigest=function(t){var e=this.__final()||n.alloc(0);return t&&(e=this._toString(e,t,!0)),e},s.prototype._toString=function(t,e,r){if(this._decoder||(this._decoder=new o(e),this._encoding=e),this._encoding!==e)throw new Error("can’t switch encodings");var n=this._decoder.write(t);return r&&(n+=this._decoder.end()),n},t.exports=s},5622:(t,e,r)=>{function n(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):"[object Array]"===n(t)},e.isBoolean=function(t){return"boolean"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return"number"==typeof t},e.isString=function(t){return"string"==typeof t},e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return"[object RegExp]"===n(t)},e.isObject=function(t){return"object"==typeof t&&null!==t},e.isDate=function(t){return"[object Date]"===n(t)},e.isError=function(t){return"[object Error]"===n(t)||t instanceof Error},e.isFunction=function(t){return"function"==typeof t},e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(8287).Buffer.isBuffer},1324:(t,e,r)=>{var n=r(6729),i=r(2801);t.exports=function(t){return new s(t)};var o={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function s(t){this.curveType=o[t],this.curveType||(this.curveType={name:t}),this.curve=new n.ec(this.curveType.name),this.keys=void 0}function a(t,e,r){Array.isArray(t)||(t=t.toArray());var n=new Buffer(t);if(r&&n.length<r){var i=new Buffer(r-n.length);i.fill(0),n=Buffer.concat([i,n])}return e?n.toString(e):n}o.p224=o.secp224r1,o.p256=o.secp256r1=o.prime256v1,o.p192=o.secp192r1=o.prime192v1,o.p384=o.secp384r1,o.p521=o.secp521r1,s.prototype.generateKeys=function(t,e){return this.keys=this.curve.genKeyPair(),this.getPublicKey(t,e)},s.prototype.computeSecret=function(t,e,r){return e=e||"utf8",Buffer.isBuffer(t)||(t=new Buffer(t,e)),a(this.curve.keyFromPublic(t).getPublic().mul(this.keys.getPrivate()).getX(),r,this.curveType.byteLength)},s.prototype.getPublicKey=function(t,e){var r=this.keys.getPublic("compressed"===e,!0);return"hybrid"===e&&(r[r.length-1]%2?r[0]=7:r[0]=6),a(r,t)},s.prototype.getPrivateKey=function(t){return a(this.keys.getPrivate(),t)},s.prototype.setPublicKey=function(t,e){return e=e||"utf8",Buffer.isBuffer(t)||(t=new Buffer(t,e)),this.keys._importPublic(t),this},s.prototype.setPrivateKey=function(t,e){e=e||"utf8",Buffer.isBuffer(t)||(t=new Buffer(t,e));var r=new i(t);return r=r.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(r),this}},2801:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(7965).Buffer}catch(t){}function a(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function d(t,e,r){var n=a(t,r);return r-1>=e&&(n|=a(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s<o;s++){var a=t.charCodeAt(s)-48;i*=n,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===r)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,d=0,h=r;h<a;h+=n)d=u(t,h,h+n,e),this.imuln(i),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d);if(0!==s){var l=1;for(d=u(t,h,t.length,e),h=0;h<s;h++)l*=e;this.imuln(l),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,d=s/67108864|0;r.words[0]=a;for(var u=1;u<n;u++){for(var h=d>>>26,l=67108863&d,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var g=u-c|0;h+=(s=(i=0|t.words[g])*(o=0|e.words[c])+l)/67108864|0,l=67108863&s}r.words[u]=0|l,d=0|h}return 0!==d?r.words[u]=0|d:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],d=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),r=0!==o||s!==this.length-1?h[6-d.length]+d+r:d+r}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=l[t],c=f[t];r="";var g=this.clone();for(g.negative=0;!g.isZero();){var p=g.modn(c).toString(t);r=(g=g.idivn(c)).isZero()?p+r:h[u-p.length]+p+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,d="le"===e,u=new t(o),h=this.clone();if(d){for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[a]=s;for(;a<o;a++)u[a]=0}else{for(a=0;a<o-i;a++)u[a]=0;for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[o-a-1]=s}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return n(!(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return n(!(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return n(!
vendor: 2,330 bytes, line 15672
15672(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},o.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var 
vendor: 7,651 bytes, line 15672
15672g=function(t,e,r){var n,i,o,s=t.words,a=e.words,d=r.words,u=0,h=0|s[0],l=8191&h,f=h>>>13,c=0|s[1],g=8191&c,p=c>>>13,m=0|s[2],b=8191&m,y=m>>>13,v=0|s[3],_=8191&v,M=v>>>13,w=0|s[4],$=8191&w,S=w>>>13,N=0|s[5],E=8191&N,T=N>>>13,A=0|s[6],R=8191&A,P=A>>>13,O=0|s[7],C=8191&O,I=O>>>13,L=0|s[8],D=8191&L,U=L>>>13,k=0|s[9],x=8191&k,F=k>>>13,B=0|a[0],V=8191&B,j=B>>>13,H=0|a[1],G=8191&H,W=H>>>13,Y=0|a[2],z=8191&Y,q=Y>>>13,K=0|a[3],Z=8191&K,X=K>>>13,J=0|a[4],Q=8191&J,tt=J>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],dt=8191&at,ut=at>>>13,ht=0|a[8],lt=8191&ht,ft=ht>>>13,ct=0|a[9],gt=8191&ct,pt=ct>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,j))+Math.imul(f,V)|0))<<13)|0;u=((o=Math.imul(f,j))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(g,V),i=(i=Math.imul(g,j))+Math.imul(p,V)|0,o=Math.imul(p,j);var bt=(u+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(f,G)|0))<<13)|0;u=((o=o+Math.imul(f,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,j))+Math.imul(y,V)|0,o=Math.imul(y,j),n=n+Math.imul(g,G)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(p,G)|0,o=o+Math.imul(p,W)|0;var yt=(u+(n=n+Math.imul(l,z)|0)|0)+((8191&(i=(i=i+Math.imul(l,q)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,q)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,V),i=(i=Math.imul(_,j))+Math.imul(M,V)|0,o=Math.imul(M,j),n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(g,z)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(p,z)|0,o=o+Math.imul(p,q)|0;var vt=(u+(n=n+Math.imul(l,Z)|0)|0)+((8191&(i=(i=i+Math.imul(l,X)|0)+Math.imul(f,Z)|0))<<13)|0;u=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul($,V),i=(i=Math.imul($,j))+Math.imul(S,V)|0,o=Math.imul(S,j),n=n+Math.imul(_,G)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,W)|0,n=n+Math.imul(b,z)|0,i=(i=i+Math.imul(b,q)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,q)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(p,Z)|0,o=o+Math.imul(p,X)|0;var _t=(u+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,V),i=(i=Math.imul(E,j))+Math.imul(T,V)|0,o=Math.imul(T,j),n=n+Math.imul($,G)|0,i=(i=i+Math.imul($,W)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(_,z)|0,i=(i=i+Math.imul(_,q)|0)+Math.imul(M,z)|0,o=o+Math.imul(M,q)|0,n=n+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,X)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(p,Q)|0,o=o+Math.imul(p,tt)|0;var Mt=(u+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(f,rt)|0))<<13)|0;u=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(R,V),i=(i=Math.imul(R,j))+Math.imul(P,V)|0,o=Math.imul(P,j),n=n+Math.imul(E,G)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul($,z)|0,i=(i=i+Math.imul($,q)|0)+Math.imul(S,z)|0,o=o+Math.imul(S,q)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(p,rt)|0,o=o+Math.imul(p,nt)|0;var wt=(u+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,st)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,j))+Math.imul(I,V)|0,o=Math.imul(I,j),n=n+Math.imul(R,G)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(P,G)|0,o=o+Math.imul(P,W)|0,n=n+Math.imul(E,z)|0,i=(i=i+Math.imul(E,q)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,q)|0,n=n+Math.imul($,Z)|0,i=(i=i+Math.imul($,X)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(p,ot)|0,o=o+Math.imul(p,st)|0;var $t=(u+(n=n+Math.imul(l,dt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ut)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,j))+Math.imul(U,V)|0,o=Math.imul(U,j),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(I,G)|0,o=o+Math.imul(I,W)|0,n=n+Math.imul(R,z)|0,i=(i=i+Math.imul(R,q)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,q)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul($,Q)|0,i=(i=i+Math.imul($,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(g,dt)|0,i=(i=i+Math.imul(g,ut)|0)+Math.imul(p,dt)|0,o=o+Math.imul(p,ut)|0;var St=(u+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ft)|0)+Math.imul(f,lt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(x,V),i=(i=Math.imul(x,j))+Math.imul(F,V)|0,o=Math.imul(F,j),n=n+Math.imul(D,G)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(C,z)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(I,z)|0,o=o+Math.imul(I,q)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul($,rt)|0,i=(i=i+Math.imul($,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,n=n+Math.imul(b,dt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(g,lt)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(p,lt)|0,o=o+Math.imul(p,ft)|0;var Nt=(u+(n=n+Math.imul(l,gt)|0)|0)+((8191&(i=(i=i+Math.imul(l,pt)|0)+Math.imul(f,gt)|0))<<13)|0;u=((o=o+Math.imul(f,pt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,W))+Math.imul(F,G)|0,o=Math.imul(F,W),n=n+Math.imul(D,z)|0,i=(i=i+Math.imul(D,q)|0)+Math.imul(U,z)|0,o=o+Math.imul(U,q)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(I,Z)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul($,ot)|0,i=(i=i+Math.imul($,st)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,st)|0,n=n+Math.imul(_,dt)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(M,dt)|0,o=o+Math.imul(M,ut)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ft)|0)+Math.imul(y,lt)|0,o=o+Math.imul(y,ft)|0;var Et=(u+(n=n+Math.imul(g,gt)|0)|0)+((8191&(i=(i=i+Math.imul(g,pt)|0)+Math.imul(p,gt)|0))<<13)|0;u=((o=o+Math.imul(p,pt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,z),i=(i=Math.imul(x,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(D,Z)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,X)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul($,dt)|0,i=(i=i+Math.imul($,ut)|0)+Math.imul(S,dt)|0,o=o+Math.imul(S,ut)|0,n=n+Math.imul(_,lt)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(M,lt)|0,o=o+Math.imul(M,ft)|0;var Tt=(u+(n=n+Math.imul(b,gt)|0)|0)+((8191&(i=(i=i+Math.imul(b,pt)|0)+Math.imul(y,gt)|0))<<13)|0;u=((o=o+Math.imul(y,pt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(x,Z),i=(i=Math.imul(x,X))+Math.imul(F,Z)|0,o=Math.imul(F,X
vendor: 5,428 bytes, line 15672
15672),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(E,dt)|0,i=(i=i+Math.imul(E,ut)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul($,lt)|0,i=(i=i+Math.imul($,ft)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ft)|0;var At=(u+(n=n+Math.imul(_,gt)|0)|0)+((8191&(i=(i=i+Math.imul(_,pt)|0)+Math.imul(M,gt)|0))<<13)|0;u=((o=o+Math.imul(M,pt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(x,Q),i=(i=Math.imul(x,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(U,rt)|0,o=o+Math.imul(U,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(R,dt)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(P,dt)|0,o=o+Math.imul(P,ut)|0,n=n+Math.imul(E,lt)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(T,lt)|0,o=o+Math.imul(T,ft)|0;var Rt=(u+(n=n+Math.imul($,gt)|0)|0)+((8191&(i=(i=i+Math.imul($,pt)|0)+Math.imul(S,gt)|0))<<13)|0;u=((o=o+Math.imul(S,pt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(x,rt),i=(i=Math.imul(x,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(D,ot)|0,i=(i=i+Math.imul(D,st)|0)+Math.imul(U,ot)|0,o=o+Math.imul(U,st)|0,n=n+Math.imul(C,dt)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(I,dt)|0,o=o+Math.imul(I,ut)|0,n=n+Math.imul(R,lt)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(P,lt)|0,o=o+Math.imul(P,ft)|0;var Pt=(u+(n=n+Math.imul(E,gt)|0)|0)+((8191&(i=(i=i+Math.imul(E,pt)|0)+Math.imul(T,gt)|0))<<13)|0;u=((o=o+Math.imul(T,pt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(x,ot),i=(i=Math.imul(x,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(D,dt)|0,i=(i=i+Math.imul(D,ut)|0)+Math.imul(U,dt)|0,o=o+Math.imul(U,ut)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(I,lt)|0,o=o+Math.imul(I,ft)|0;var Ot=(u+(n=n+Math.imul(R,gt)|0)|0)+((8191&(i=(i=i+Math.imul(R,pt)|0)+Math.imul(P,gt)|0))<<13)|0;u=((o=o+Math.imul(P,pt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(x,dt),i=(i=Math.imul(x,ut))+Math.imul(F,dt)|0,o=Math.imul(F,ut),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ft)|0)+Math.imul(U,lt)|0,o=o+Math.imul(U,ft)|0;var Ct=(u+(n=n+Math.imul(C,gt)|0)|0)+((8191&(i=(i=i+Math.imul(C,pt)|0)+Math.imul(I,gt)|0))<<13)|0;u=((o=o+Math.imul(I,pt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(x,lt),i=(i=Math.imul(x,ft))+Math.imul(F,lt)|0,o=Math.imul(F,ft);var It=(u+(n=n+Math.imul(D,gt)|0)|0)+((8191&(i=(i=i+Math.imul(D,pt)|0)+Math.imul(U,gt)|0))<<13)|0;u=((o=o+Math.imul(U,pt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Lt=(u+(n=Math.imul(x,gt))|0)+((8191&(i=(i=Math.imul(x,pt))+Math.imul(F,gt)|0))<<13)|0;return u=((o=Math.imul(F,pt))+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,d[0]=mt,d[1]=bt,d[2]=yt,d[3]=vt,d[4]=_t,d[5]=Mt,d[6]=wt,d[7]=$t,d[8]=St,d[9]=Nt,d[10]=Et,d[11]=Tt,d[12]=At,d[13]=Rt,d[14]=Pt,d[15]=Ot,d[16]=Ct,d[17]=It,d[18]=Lt,0!==u&&(d[19]=u,r.length++),r};function p(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(g=c),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?g(this,t,e):n<63?c(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,d=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=d;u++){var h=o-u,l=(0|t.words[h])*(0|e.words[u]),f=67108863&l;a=67108863&(f=f+a|0),i+=(s=(s=s+(l/67108864|0)|0)+(f>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):p(this,t,e),r},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},m.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s<o;s++)n[s]=e[t[s]],i[s]=r[t[s]]},m.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,d=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),h=0;h<i;h+=a)for(var l=d,f=u,c=0;c<s;c++){var g=r[h+c],p=n[h+c],m=r[h+c+s],b=n[h+c+s],y=l*m-f*b;b=l*b+f*m,m=y,r[h+c]=g+m,n[h+c]=p+b,r[h+c+s]=g-m,n[h+c+s]=p-b,c!==a&&(y=d*l-u*f,f=d*f+u*l,l=y)}},m.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},m.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},m.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},m.prototype.convert13b=function(t,e,r,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],r[2*s]=8191&o,o>>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)r[s]=0;n(0===o),n(!(-8192&o))},m.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},m.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),s=new Array(n),a=new Array(n),d=new Array(n),u=new Array(n),h=new Array(n),l=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,s,n),this.convert13b(e.words,e.length,u,n),this.transform(s,o,a,d,n,i),this.transform(u,o,h,l,n,i);for(var c=0;c<n;
vendor: 16,384 bytes, line 15672
15672c++){var g=a[c]*h[c]-d[c]*l[c];d[c]=a[c]*l[c]+d[c]*h[c],a[c]=g}return this.conjugate(a,d,n),this.transform(a,d,f,o,n,i),this.conjugate(f,o,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),p(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){n("number"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,o=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,d=(0|this.words[e])-a<<r;this.words[e]=d|s,s=a>>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,d=r;if(i-=s,i=Math.max(0,i),d){for(var u=0;u<s;u++)d.words[u]=this.words[u];d.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var h=0;for(u=this.length-1;u>=0&&(0!==h||u>=i);u--){var l=0|this.words[u];this.words[u]=h<<26-o|l>>>o,h=l&a}return d&&0!==h&&(d.words[d.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,r){var i,o,s=t.length+r;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+r])+a;var d=(0|t.words[i])*e;a=((o-=67108863&d)>>26)-(d/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)a=(o=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&o;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,d=n.length-i.length;if("mod"!==e){(a=new o(null)).length=d+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var h=n.clone()._ishlnsubmul(i,1,d);0===h.negative&&(n=h,a&&(a.words[d]=1));for(var l=d-1;l>=0;l--){var f=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(i,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);a&&(a.words[l]=f)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&t.negative?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),d=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var h=r.clone(),l=e.clone();!e.isZero();){for(var f=0,c=1;!(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(h),s.isub(l)),i.iushrn(1),s.iushrn(1);for(var g=0,p=1;!(r.words[0]&p)&&g<26;++g,p<<=1);if(g>0)for(r.iushrn(g);g-- >0;)(a.isOdd()||d.isOdd())&&(a.iadd(h),d.isub(l)),a.iushrn(1),d.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(d)):(r.isub(e),a.isub(i),d.isub(s))}return{a,b:d,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),d=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,h=1;!(e.words[0]&h)&&u<26;++u,h<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(d),s.iushrn(1);for(var l=0,f=1;!(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(d),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,s=r;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new $(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){$.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(v,y),v.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(_,y),i(M,y),i(w,y),w.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return b[t]=e,e},$.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},$.prototype._verify2=function(t,e){n(!(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},$.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},$.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},$.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},$.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},$.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},$.prototype.isqr=function(t){return this.imul(t,t.clone())},$.prototype.sqr=function(t){return th
vendor: 1,235 bytes, line 15672
15672is.mul(t,t)},$.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),d=a.redNeg(),u=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,u).cmp(d);)h.redIAdd(d);for(var l=this.pow(h,i),f=this.pow(t,i.addn(1).iushrn(1)),c=this.pow(t,i),g=s;0!==c.cmp(a);){for(var p=c,m=0;0!==p.cmp(a);m++)p=p.redSqr();n(m<g);var b=this.pow(l,new o(1).iushln(g-m-1));f=f.redMul(b),l=b.redSqr(),c=c.redMul(l),g=m}return f},$.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},$.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],s=0,a=0,d=e.bitLength()%26;for(0===d&&(d=26),n=e.length-1;n>=0;n--){for(var u=e.words[n],h=d-1;h>=0;h--){var l=u>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==s?(s<<=1,s|=l,(4==++a||0===n&&0===h)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}
vendor: 9,436 bytes, line 15672
15672d=26}return i},$.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},$.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new S(t)},i(S,$),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},7108:(t,e,r)=>{"use strict";var n=r(6698),i=r(8276),o=r(6011),s=r(2802),a=r(6168);function d(t){a.call(this,"digest"),this._hash=t}n(d,a),d.prototype._update=function(t){this._hash.update(t)},d.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return"md5"===(t=t.toLowerCase())?new i:"rmd160"===t||"ripemd160"===t?new o:new d(s(t))}},320:(t,e,r)=>{var n=r(8276);t.exports=function(t){return(new n).update(t).digest()}},3507:(t,e,r)=>{"use strict";var n=r(6698),i=r(1800),o=r(6168),s=r(2861).Buffer,a=r(320),d=r(6011),u=r(2802),h=s.alloc(128);function l(t,e){o.call(this,"digest"),"string"==typeof e&&(e=s.from(e));var r="sha512"===t||"sha384"===t?128:64;this._alg=t,this._key=e,e.length>r?e=("rmd160"===t?new d:u(t)).update(e).digest():e.length<r&&(e=s.concat([e,h],r));for(var n=this._ipad=s.allocUnsafe(r),i=this._opad=s.allocUnsafe(r),a=0;a<r;a++)n[a]=54^e[a],i[a]=92^e[a];this._hash="rmd160"===t?new d:u(t),this._hash.update(n)}n(l,o),l.prototype._update=function(t){this._hash.update(t)},l.prototype._final=function(){var t=this._hash.digest();return("rmd160"===this._alg?new d:u(this._alg)).update(this._opad).update(t).digest()},t.exports=function(t,e){return"rmd160"===(t=t.toLowerCase())||"ripemd160"===t?new l("rmd160",e):"md5"===t?new i(a,e):new l(t,e)}},1800:(t,e,r)=>{"use strict";var n=r(6698),i=r(2861).Buffer,o=r(6168),s=i.alloc(128),a=64;function d(t,e){o.call(this,"digest"),"string"==typeof e&&(e=i.from(e)),this._alg=t,this._key=e,e.length>a?e=t(e):e.length<a&&(e=i.concat([e,s],a));for(var r=this._ipad=i.allocUnsafe(a),n=this._opad=i.allocUnsafe(a),d=0;d<a;d++)r[d]=54^e[d],n[d]=92^e[d];this._hash=[r]}n(d,o),d.prototype._update=function(t){this._hash.push(t)},d.prototype._final=function(){var t=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,t]))},t.exports=d},1565:(t,e,r)=>{"use strict";e.randomBytes=e.rng=e.pseudoRandomBytes=e.prng=r(3209),e.createHash=e.Hash=r(7108),e.createHmac=e.Hmac=r(3507);var n=r(5715),i=Object.keys(n),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);e.getHashes=function(){return o};var s=r(8396);e.pbkdf2=s.pbkdf2,e.pbkdf2Sync=s.pbkdf2Sync;var a=r(125);e.Cipher=a.Cipher,e.createCipher=a.createCipher,e.Cipheriv=a.Cipheriv,e.createCipheriv=a.createCipheriv,e.Decipher=a.Decipher,e.createDecipher=a.createDecipher,e.Decipheriv=a.Decipheriv,e.createDecipheriv=a.createDecipheriv,e.getCiphers=a.getCiphers,e.listCiphers=a.listCiphers;var d=r(5380);e.DiffieHellmanGroup=d.DiffieHellmanGroup,e.createDiffieHellmanGroup=d.createDiffieHellmanGroup,e.getDiffieHellman=d.getDiffieHellman,e.createDiffieHellman=d.createDiffieHellman,e.DiffieHellman=d.DiffieHellman;var u=r(20);e.createSign=u.createSign,e.Sign=u.Sign,e.createVerify=u.createVerify,e.Verify=u.Verify,e.createECDH=r(1324);var h=r(7168);e.publicEncrypt=h.publicEncrypt,e.privateEncrypt=h.privateEncrypt,e.publicDecrypt=h.publicDecrypt,e.privateDecrypt=h.privateDecrypt;var l=r(6983);e.randomFill=l.randomFill,e.randomFillSync=l.randomFillSync,e.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},e.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},9560:(t,e,r)=>{"use strict";e.utils=r(7626),e.Cipher=r(2808),e.DES=r(2211),e.CBC=r(3389),e.EDE=r(5279)},3389:(t,e,r)=>{"use strict";var n=r(3349),i=r(6698),o={};function s(t){n.equal(t.length,8,"Invalid IV length"),this.iv=new Array(8);for(var e=0;e<this.iv.length;e++)this.iv[e]=t[e]}e.instantiate=function(t){function e(e){t.call(this,e),this._cbcInit()}i(e,t);for(var r=Object.keys(o),n=0;n<r.length;n++){var s=r[n];e.prototype[s]=o[s]}return e.create=function(t){return new e(t)},e},o._cbcInit=function(){var t=new s(this.options.iv);this._cbcState=t},o._update=function(t,e,r,n){var i=this._cbcState,o=this.constructor.super_.prototype,s=i.iv;if("encrypt"===this.type){for(var a=0;a<this.blockSize;a++)s[a]^=t[e+a];for(o._update.call(this,s,0,r,n),a=0;a<this.blockSize;a++)s[a]=r[n+a]}else{for(o._update.call(this,t,e,r,n),a=0;a<this.blockSize;a++)r[n+a]^=s[a];for(a=0;a<this.blockSize;a++)s[a]=t[e+a]}}},2808:(t,e,r)=>{"use strict";var n=r(3349);function i(t){this.options=t,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0,this.padding=!1!==t.padding}t.exports=i,i.prototype._init=function(){},i.prototype.update=function(t){return 0===t.length?[]:"decrypt"===this.type?this._updateDecrypt(t):this._updateEncrypt(t)},i.prototype._buffer=function(t,e){for(var r=Math.min(this.buffer.length-this.bufferOff,t.length-e),n=0;n<r;n++)this.buffer[this.bufferOff+n]=t[e+n];return this.bufferOff+=r,r},i.prototype._flushBuffer=function(t,e){return this._update(this.buffer,0,t,e),this.bufferOff=0,this.blockSize},i.prototype._updateEncrypt=function(t){var e=0,r=0,n=(this.bufferOff+t.length)/this.blockSize|0,i=new Array(n*this.blockSize);0!==this.bufferOff&&(e+=this._buffer(t,e),this.bufferOff===this.buffer.length&&(r+=this._flushBuffer(i,r)));for(var o=t.length-(t.length-e)%this.blockSize;e<o;e+=this.blockSize)this._update(t,e,i,r),r+=this.blockSize;for(;e<t.length;e++,this.bufferOff++)this.buffer[this.bufferOff]=t[e];return i},i.prototype._updateDecrypt=function(t){for(var e=0,r=0,n=Math.ceil((this.bufferOff+t.length)/this.blockSize)-1,i=new Array(n*this.blockSize);n>0;n--)e+=this._buffer(t,e),r+=this._flushBuffer(i,r);return e+=this._buffer(t,e),i},i.prototype.final=function(t){var e,r;return t&&(e=this.update(t)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(r):r},i.prototype._pad=function(t,e){if(0===e)return!1;for(;e<t.length;)t[e++]=0;return!0},i.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var t=new Array(this.blockSize);return this._update(this.buffer,0,t,0),t},i.prototype._unpad=function(t){return t},i.prototype._finalDecrypt=function(){n.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var t=new Array(this.blockSize);return this._flushBuffer(t,0),this._unpad(t)}},2211:(t,e,r)=>{"use strict";var n=r(3349),i=r(6698),o=r(7626),s=r(2808);function a(){this.tmp=new Array(2),this.keys=null}function d(t){s.call(this,t);var e=new a;this._desState=e,this.deriveKeys(e,t.key)}i(d,s),t.exports=d,d.create=function(t){return new d(t)};var u=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];d.prototype.deriveKeys=function(t,e){t.keys=new Array(32),n.equal(e.length,this.blockSize,"Invalid key length");var r=o.readUInt32BE(e,0),i=o.readUInt32BE(e,4);o.pc1(r,i,t.tmp,0),r=t.tmp[0],i=t.tmp[1];for(var s=0;s<t.keys.length;s+=2){var a=u[s>>>1];r=o.r28shl(r,a),i=o.r28shl(i,a),o.pc2(r,i,t.keys,s)}},d.prototype._update=function(t,e,r,n){var i=this._desState,s=o.readUInt32BE(t,e),a=o.readUInt32BE(t,e+4);o.ip(s,a,i.tmp,0),s=i.tmp[0],a=i.tmp[1],"encrypt"===this.type?this._encrypt(i,s,a,i.tmp,0):this._decrypt(i,s,a,i.tmp,0),s=i.tmp[0],a=i.tmp[1],o.writeUInt32BE(r,s,n),o.writeUInt32BE(r,a,n+4)},d.prototype._pad=function(t,e){if(!1===this.padding)return!1;for(var r=t.length-e,n=e;n<t.length;n++)t[n]=r;return!0},d.prototype._unpad=function(t){if(!1===this.padding)return t;for(var e=t[t.length-1],r=t.length-e;r<t.length;r++)n.equal(t[r],e);return t.slice(0,t.length-e)},d.prototype._encrypt=function(t,e,r,n,i){for(var s=e,a=r,d=0;d<t.keys.length;d+=2){var u=t.keys[d],h=t.keys[d+1];o.expand(a,t.tmp,0),u^=t.tmp[0],h^=t.tmp[1];var l=o.substitute(u,h),f=a;a=(s^o.permute(l))>>>0,s=f}o.rip(a,s,n,i)},d.prototype._decrypt=function(t,e,r,n,i){for(var s=r,a=e,d=t.keys.length-2;d>=0;d-=2){var u=t.keys[d],h=t.keys[d+1];o.expand(s,t.tmp,0),u^=t.tmp[0],h^=t.tmp[1];var l=o.substitute(u,h),f=s;s=(a^o.permute(l))>>>0,a=f}o.rip(s,a,n,i)}},5279:(t,e,r)=>{"use strict";var n=r(3349),i=r(6698),o=r(2808),s=r(2211);function a(t,e){n.equal(e.length,24,"Invalid key length");var r=e.slice(0,8),i=e.slice(8,16),o=e.slice(16,24);this.ciphers="encrypt"===t?[s.create({type:"encrypt",key:r}),s.create({type:"decrypt",key:i}
15672),s.create({type:"encrypt",key:o})]:[s.create({type:"decrypt",key:o}),s.create({type:"encrypt",key:i}),s.create({type:"decrypt",key:r})]}function d(t){o.call(this,t);var e=new a(this.type,this.options.key);this._edeState=e}i(d,o),t.exports=d,d.create=function(t){return new d(t)},d.prototype._update=function(t,e,r,n){var i=this._edeState;i.ciphers[0]._update(t,e,r,n),i.ciphers[1]._update(r,n,r,n),i.ciphers[2]._update(r,n,r,n)},d.prototype._pad=s.prototype._pad,d.prototype._unpad=s.prototype._unpad},7626:(t,e)=>{"use strict";e.readUInt32BE=function(t,e){return(t[0+e]<<24|t[1+e]<<16|t[2+e]<<8|t[3+e])>>>0},e.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},e.ip=function(t,e,r,n){for(var i=0,o=0,s=6;s>=0;s-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=e>>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=t>>>a+s&1}for(s=6;s>=0;s-=2){for(a=1;a<=25;a+=8)o<<=1,o|=e>>>a+s&1;for(a=1;a<=25;a+=8)o<<=1,o|=t>>>a+s&1}r[n+0]=i>>>0,r[n+1]=o>>>0},e.rip=function(t,e,r,n){for(var i=0,o=0,s=0;s<4;s++)for(var a=24;a>=0;a-=8)i<<=1,i|=e>>>a+s&1,i<<=1,i|=t>>>a+s&1;for(s=4;s<8;s++)for(a=24;a>=0;a-=8)o<<=1,o|=e>>>a+s&1,o<<=1,o|=t>>>a+s&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.pc1=function(t,e,r,n){for(var i=0,o=0,s=7;s>=5;s--){for(var a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+s&1}for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1;for(s=1;s<=3;s++){for(a=0;a<=24;a+=8)o<<=1,o|=e>>a+s&1;for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1}for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.r28shl=function(t,e){return t<<e&268435455|t>>>28-e};var r=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,n,i){for(var o=0,s=0,a=r.length>>>1,d=0;d<a;d++)o<<=1,o|=t>>>r[d]&1;for(d=a;d<r.length;d++)s<<=1,s|=e>>>r[d]&1;n[i+0]=o>>>0,n[i+1]=s>>>0},e.expand=function(t,e,r){var n=0,i=0;n=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=t>>>o&63;for(o=11;o>=3;o-=4)i|=t>>>o&63,i<<=6;i|=(31&t)<<1|t>>>31,e[r+0]=n>>>0,e[r+1]=i>>>0};var n=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var r=0,i=0;i<4;i++)r<<=4,r|=n[64*i+(t>>>18-6*i&63)];for(i=0;i<4;i++)r<<=4,r|=n[256+64*i+(e>>>18-6*i&63)];return r>>>0};var i=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,r=0;r<i.length;r++)e<<=1,e|=t>>>i[r]&1;return e>>>0},e.padSplit=function(t,e,r){for(var n=t.toString(2);n.length<e;)n="0"+n;for(var i=[],o=0;o<e;o+=r)i.push(n.slice(o,o+r));return i.join(" ")}},7515:(t,e,r)=>{"use strict";var n,i=r(5606);!function(){var o,s="Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45";if("object"==typeof i&&"object"==typeof i.versions&&i.versions.node&&!i.browser){var a=i.versions.node.toString().replace("v","");s="Nodejs/"+a+" (NodeOS) AppleWebKit/"+a+" (KHTML, like Gecko) Nodejs/"+a+" Nodejs/"+a}o=void 0!==r.g?r.g:window,"undefined"==typeof window&&("undefined"==typeof window&&void 0!==r.g&&(r.g.navigator={userAgent:s,getUserMedia:function(){}},o.window=r.g),"undefined"==typeof location&&(o.location={protocol:"file:",href:"",hash:""}),"undefined"==typeof screen&&(o.screen={width:0,height:0}));var d=window.navigator;void 0!==d?(void 0!==d.webkitGetUserMedia&&(d.getUserMedia=d.webkitGetUserMedia),void 0!==d.mozGetUserMedia&&(d.getUserMedia=d.mozGetUserMedia)):d={getUserMedia:function(){},userAgent:s};var u=!!/Android|webOS|iPhone|iPad|iPod|BB10|BlackBerry|IEMobile|Opera Mini|Mobile|mobile/i.test(d.userAgent||""),h=!(-1===d.userAgent.indexOf("Edge")||!d.msSaveOrOpenBlob&&!d.msSaveBlob),l=!!window.opera||d.userAgent.indexOf(" OPR/")>=0,f=d.userAgent.toLowerCase().indexOf("firefox")>-1&&"netscape"in window&&/ rv:/.test(d.userAgent),c=/^((?!chrome|android).)*safari/i.test(d.userAgent),g=!!window.chrome&&!l,p="undefined"!=typeof document&&!!document.documentMode&&!h;function m(t,e){var r=0,n=!1,i=window.setInterval((function(){t()&&(window.clearInterval(i),e(n)),r++>50&&(window.clearInterval(i),e(n=!0))}),10)}var b,y,v={Android:function(){return d.userAgent.match(/Android/i)},BlackBerry:function(){return d.userAgent.match(/BlackBerry|BB10/i)},iOS:function(){return d.userAgent.match(/iPhone|iPad|iPod/i)},Opera:function(){return d.userAgent.match(/Opera Mini/i)},Windows:function(){return d.userAgent.match(/IEMobile/i)},any:function(){return v.Android()||v.BlackBerry()||v.iOS()||v.Opera()||v.Windows()},getOsName:function(){var t="Unknown OS";return v.Android()&&(t="Android"),v.BlackBerry()&&(t="BlackBerry"),v.iOS()&&(t="iOS"),v.Opera()&&(t="Opera Mini"),v.Windows()&&(t="Windows"),t}},_="Unknown OS",M="Unknown OS Version",w=function(){for(var t,e=d.appVersion,r=d.userAgent,n="-",i=[{s:"Chrome OS",r:/CrOS/}
15672,{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Linux",r:/(Linux|X11)/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}],o=0;t=i[o];o++)if(t.r.test(r)){n=t.s;break}var s="-";switch(/Windows/.test(n)&&(/Windows (.*)/.test(n)&&(s=/Windows (.*)/.exec(n)[1]),n="Windows"),n){case"Mac OS X":/Mac OS X (10[\.\_\d]+)/.test(r)&&(s=/Mac OS X (10[\.\_\d]+)/.exec(r)[1]);break;case"Android":/Android ([\.\_\d]+)/.test(r)&&(s=/Android ([\.\_\d]+)/.exec(r)[1]);break;case"iOS":/OS (\d+)_(\d+)_?(\d+)?/.test(r)&&(s=/OS (\d+)_(\d+)_?(\d+)?/.exec(e))&&s.length>3&&(s=s[1]+"."+s[2]+"."+(0|s[3]))}return{osName:n,osVersion:s}}();w&&w.osName&&"-"!=w.osName?(_=w.osName,M=w.osVersion):v.any()&&"Android"==(_=v.getOsName())&&(M=!!(y=(b=(b||d.userAgent).toLowerCase()).match(/android\s([0-9\.]*)/))&&y[1]);var $="object"==typeof i&&"object"==typeof i.versions&&i.versions.node;"Unknown OS"===_&&$&&(_="Nodejs",M=i.versions.node.toString().replace("v",""));var S=!1,N=!1;["captureStream","mozCaptureStream","webkitCaptureStream"].forEach((function(t){"undefined"!=typeof document&&"function"==typeof document.createElement&&(!S&&t in document.createElement("canvas")&&(S=!0),!N&&t in document.createElement("video")&&(N=!0))}));var E=/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/,T=/([0-9]{1,3}(\.[0-9]{1,3}){3})/,A=/[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7}/,R=[],P=[],O=[],C=[];d.mediaDevices&&d.mediaDevices.enumerateDevices&&(d.enumerateDevices=function(t){var e=d.mediaDevices.enumerateDevices();e&&e.then?d.mediaDevices.enumerateDevices().then(t).catch((function(){t([])})):t([])});var I=!1;("undefined"!=typeof MediaStreamTrack&&"getSources"in MediaStreamTrack||d.mediaDevices&&d.mediaDevices.enumerateDevices)&&(I=!0);var L=!1,D=!1,U=!1,k=!1,x=!1;var F=window.DetectRTC||{};F.browser=function(){d.appVersion;var t,e,r,n=d.userAgent,i=d.appName,o=""+parseFloat(d.appVersion),s=parseInt(d.appVersion,10);if(l){i="Opera";try{s=(o=d.userAgent.split("OPR/")[1].split(" ")[0]).split(".")[0]}catch(t){o="0.0.0.0",s=0}}else p?((e=n.indexOf("rv:"))>0?o=n.substring(e+3):(e=n.indexOf("MSIE"),o=n.substring(e+5)),i="IE"):g?(e=n.indexOf("Chrome"),i="Chrome",o=n.substring(e+7)):c?-1!==n.indexOf("CriOS")?(e=n.indexOf("CriOS"),i="Chrome",o=n.substring(e+6)):-1!==n.indexOf("FxiOS")?(e=n.indexOf("FxiOS"),i="Firefox",o=n.substring(e+6)):(e=n.indexOf("Safari"),i="Safari",o=n.substring(e+7),-1!==(e=n.indexOf("Version"))&&(o=n.substring(e+8)),-1!==d.userAgent.indexOf("Version/")&&(o=d.userAgent.split("Version/")[1].split(" ")[0])):f?(e=n.indexOf("Firefox"),i="Firefox",o=n.substring(e+8)):(t=n.lastIndexOf(" ")+1)<(e=n.lastIndexOf("/"))&&(i=n.substring(t,e),o=n.substring(e+1),i.toLowerCase()===i.toUpperCase()&&(i=d.appName));return h&&(i="Edge",o=d.userAgent.split("Edge/")[1]),-1!==(r=o.search(/[; \)]/))&&(o=o.substring(0,r)),s=parseInt(""+o,10),isNaN(s)&&(o=""+parseFloat(d.appVersion),s=parseInt(d.appVersion,10)),{fullVersion:o,version:s,name:i,isPrivateBrowsing:!1}}(),function(){var t;try{if(window.webkitRequestFileSystem)window.webkitRequestFileSystem(window.TEMPORARY,1,(function(){t=!1}),(function(e){t=!0}));else if(window.indexedDB&&/Firefox/.test(window.navigator.userAgent)){var e;try{(e=window.indexedDB.open("test")).onerror=function(){return!0}}catch(e){t=!0}void 0===t&&m((function(){return"done"===e.readyState}),(function(r){r||(t=!e.result)}))}else if(function(){var t=window.navigator.userAgent.toLowerCase();if(0===t.indexOf("msie")&&0===t.indexOf("trident"))return!1;var e=/(?:msie|rv:)\s?([\d\.]+)/.exec(t);return!!(e&&parseInt(e[1],10)>=10)}()){t=!1;try{window.indexedDB||(t=!0)}catch(e){t=!0}}else if(window.localStorage&&/Safari/.test(window.navigator.userAgent)){try{window.localStorage.setItem("test",1)}catch(e){t=!0}void 0===t&&(t=!1,window.localStorage.removeItem("test"))}}catch(e){t=!1}m((function(){return void 0!==t}),(function(e){var r;r=t,F.browser.isPrivateBrowsing=!!r}))}(),F.browser["is"+F.browser.name]=!0,F.osName=_,F.osVersion=M,"object"==typeof i&&"object"==typeof i.versions&&i.versions["node-webkit"];var B=!1;["RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","RTCIceGatherer"].forEach((function(t){B||t in window&&(B=!0)})),F.isWebRTCSupported=B,F.isORTCSupported="undefined"!=typeof RTCIceGatherer;var V=!1;(F.browser.isChrome&&F.browser.version>=35||F.browser.isFirefox&&F.browser.version>=34||F.browser.isEdge&&F.browser.version>=17||"Android"===F.osName&&F.browser.isChrome)&&(V=!0),(d.getDisplayMedia||d.mediaDevices&&d.mediaDevices.getDisplayMedia)&&(V=!0),/^(https:|chrome-extension:)$/g.test(location.protocol||"")||("undefined"!=typeof document&&"string"==typeof document.domain&&document.domain.search&&-1===document.domain.search(/localhost|127.0./g)&&(F.browser.isChrome||F.browser.isEdge||F.browser.isOpera)||F.browser.isFirefox)&&(V=!1),F.isScreenCapturingSupported=V;
15672var j={isSupported:!1,isCreateMediaStreamSourceSupported:!1};["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"].forEach((function(t){j.isSupported||t in window&&(j.isSupported=!0,window[t]&&"createMediaStreamSource"in window[t].prototype&&(j.isCreateMediaStreamSourceSupported=!0))})),F.isAudioContextSupported=j.isSupported,F.isCreateMediaStreamSourceSupported=j.isCreateMediaStreamSourceSupported;var H=!1;F.browser.isChrome&&F.browser.version>31&&(H=!0),F.isRtpDataChannelsSupported=H;var G=!1;(F.browser.isFirefox&&F.browser.version>28||F.browser.isChrome&&F.browser.version>25||F.browser.isOpera&&F.browser.version>=11)&&(G=!0),F.isSctpDataChannelsSupported=G,F.isMobileDevice=u;var W=!1;(d.getUserMedia||d.mediaDevices&&d.mediaDevices.getUserMedia)&&(W=!0),F.browser.isChrome&&F.browser.version>=46&&!/^(https:|chrome-extension:)$/g.test(location.protocol||"")&&"undefined"!=typeof document&&"string"==typeof document.domain&&document.domain.search&&-1===document.domain.search(/localhost|127.0./g)&&(W="Requires HTTPs"),"Nodejs"===F.osName&&(W=!1),F.isGetUserMediaSupported=W;var Y,z,q,K="";screen.width&&(K+=(screen.width?screen.width:"")+" x "+(screen.height?screen.height:"")),F.displayResolution=K,F.displayAspectRatio=(Y=screen.width,z=screen.height,q=function t(e,r){return 0==r?e:t(r,e%r)}(Y,z),Y/q/(z/q)).toFixed(2),F.isCanvasSupportsStreamCapturing=S,F.isVideoSupportsStreamCapturing=N,"Chrome"==F.browser.name&&F.browser.version>=53&&(F.isCanvasSupportsStreamCapturing||(F.isCanvasSupportsStreamCapturing="Requires chrome flag: enable-experimental-web-platform-features"),F.isVideoSupportsStreamCapturing||(F.isVideoSupportsStreamCapturing="Requires chrome flag: enable-experimental-web-platform-features")),F.DetectLocalIPAddress=function(t,e){if(F.isWebRTCSupported){var r=!0,n=!0;!function(t,e){if("undefined"!=typeof document&&"function"==typeof document.getElementById){var r={},n=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection;if(!n){var i=document.getElementById("iframe");if(!i)return;var o=i.contentWindow;n=o.RTCPeerConnection||o.mozRTCPeerConnection||o.webkitRTCPeerConnection}if(n){var s=null;"Chrome"===F.browser&&F.browser.version<58&&(s={optional:[{RtpDataChannels:!0}]});var a=new n({iceServers:[{urls:"stun:stun.l.google.com:19302"}]},s);if(e&&(a.addStream?a.addStream(e):a.addTrack&&e.getTracks()[0]&&a.addTrack(e.getTracks()[0],e)),a.onicecandidate=function(t){t.candidate&&t.candidate.candidate?d(t.candidate.candidate):d()},!e)try{a.createDataChannel("sctp",{})}catch(t){}F.isPromisesSupported?a.createOffer().then((function(t){a.setLocalDescription(t).then(u)})):a.createOffer((function(t){a.setLocalDescription(t,u,(function(){}))}),(function(){}))}}function d(e){if(e){var n=T.exec(e);if(n){var i=n[1];e.match(E);void 0===r[i]&&t(i),r[i]=!0}}else t()}function u(){a.localDescription.sdp.split("\n").forEach((function(t){t&&0===t.indexOf("a=candidate:")&&d(t)}))}}((function(e){e?e.match(E)?t("Local: "+e,r=!1,n):e.match(A)?t("Public: "+e,r,n=!1):t("Public: "+e,r,n):t()}),e)}},F.isWebSocketsSupported="WebSocket"in window&&2===window.WebSocket.CLOSING,F.isWebSocketsBlocked=!F.isWebSocketsSupported,"Nodejs"===F.osName&&(F.isWebSocketsSupported=!0,F.isWebSocketsBlocked=!1),F.checkWebSocketsSupport=function(t){t=t||function(){};try{var e,r=new WebSocket("wss://echo.websocket.org:443/");r.onopen=function(){F.isWebSocketsBlocked=!1,e=(new Date).getTime(),r.send("ping")},r.onmessage=function(){F.WebsocketLatency=(new Date).getTime()-e+"ms",t(),r.close(),r=null},r.onerror=function(){F.isWebSocketsBlocked=!0,t()}}catch(e){F.isWebSocketsBlocked=!0,t()}},F.load=function(t){!function(t){if(I)if(!d.enumerateDevices&&window.MediaStreamTrack&&window.MediaStreamTrack.getSources&&(d.enumerateDevices=window.MediaStreamTrack.getSources.bind(window.MediaStreamTrack)),!d.enumerateDevices&&d.enumerateDevices&&(d.enumerateDevices=d.enumerateDevices.bind(d)),d.enumerateDevices){R=[],P=[],O=[],C=[],L=!1,D=!1,U=!1,k=!1,x=!1;var e={};d.enumerateDevices((function(r){R=[],P=[],O=[],C=[],r.forEach((function(t){var r={};for(var n in t)try{"function"!=typeof t[n]&&(r[n]=t[n])}catch(t){}e[r.deviceId+r.label+r.kind]||("audio"===r.kind&&(r.kind="audioinput"),"video"===r.kind&&(r.kind="videoinput"),r.deviceId||(r.deviceId=r.id),r.id||(r.id=r.deviceId),r.label?("videoinput"!==r.kind||x||(x=!0),"audioinput"!==r.kind||k||(k=!0)):(r.isCustomLabel=!0,"videoinput"===r.kind?r.label="Camera "+(C.length+1):"audioinput"===r.kind?r.label="Microphone "+(P.length+1):"audiooutput"===r.kind?r.label="Speaker "+(O.length+1):r.label="Please invoke getUserMedia once.",void 0!==F&&F.browser.isChrome&&F.browser.version>=46&&!/^(https:|chrome-extension:)$/g.test(location.protocol||"")&&"undefined"!=typeof document&&"string"==typeof document.domain&&document.domain.search&&-1===document.domain.search(/localhost|127.0./g)&&(r.label="HTTPs is required to get label of this "+r.kind+" device.")),"audioinput"===r.kind&&(L=!0,-1===P.indexOf(r)&&P.push(r)),"audiooutput"===r.kind&&(D=!0,-1===O.indexOf(r)&&O.push(r)),"videoinput"===r.kind&&(U=!0,-1===C.indexOf(r)&&C.push(r)),R.push(r),e[r.deviceId+r.label+r.kind]=r)}
15672)),void 0!==F&&(F.MediaDevices=R,F.hasMicrophone=L,F.hasSpeakers=D,F.hasWebcam=U,F.isWebsiteHasWebcamPermissions=x,F.isWebsiteHasMicrophonePermissions=k,F.audioInputDevices=P,F.audioOutputDevices=O,F.videoInputDevices=C),t&&t()}))}else t&&t();else t&&t()}(t=t||function(){})},F.MediaDevices=void 0!==R?R:[],F.hasMicrophone=L,F.hasSpeakers=D,F.hasWebcam=U,F.isWebsiteHasWebcamPermissions=x,F.isWebsiteHasMicrophonePermissions=k,F.audioInputDevices=P,F.audioOutputDevices=O,F.videoInputDevices=C;var Z=!1;"undefined"!=typeof document&&"function"==typeof document.createElement&&"setSinkId"in document.createElement("video")&&(Z=!0),F.isSetSinkIdSupported=Z;var X=!1;F.browser.isFirefox&&"undefined"!=typeof mozRTCPeerConnection?"getSenders"in mozRTCPeerConnection.prototype&&(X=!0):F.browser.isChrome&&"undefined"!=typeof webkitRTCPeerConnection&&"getSenders"in webkitRTCPeerConnection.prototype&&(X=!0),F.isRTPSenderReplaceTracksSupported=X;var J=!1;F.browser.isFirefox&&F.browser.version>38&&(J=!0),F.isRemoteStreamProcessingSupported=J;var Q=!1;"undefined"!=typeof MediaStreamTrack&&"applyConstraints"in MediaStreamTrack.prototype&&(Q=!0),F.isApplyConstraintsSupported=Q;var tt=!1;F.browser.isFirefox&&F.browser.version>=43&&(tt=!0),F.isMultiMonitorScreenCapturingSupported=tt,F.isPromisesSupported=!!("Promise"in window),F.version="1.4.1",void 0===F&&(window.DetectRTC={});var et=window.MediaStream;void 0===et&&"undefined"!=typeof webkitMediaStream&&(et=webkitMediaStream),F.MediaStream=void 0!==et&&"function"==typeof et&&Object.keys(et.prototype),"undefined"!=typeof MediaStreamTrack?F.MediaStreamTrack=Object.keys(MediaStreamTrack.prototype):F.MediaStreamTrack=!1;var rt=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection;F.RTCPeerConnection=void 0!==rt&&Object.keys(rt.prototype),window.DetectRTC=F,t.exports=F,void 0===(n=function(){return F}.apply(e,[]))||(t.exports=n)}()},5380:(t,e,r)=>{var n=r(4934),i=r(3241),o=r(4910),s={binary:!0,hex:!0,base64:!0};e.DiffieHellmanGroup=e.createDiffieHellmanGroup=e.getDiffieHellman=function(t){var e=new Buffer(i[t].prime,"hex"),r=new Buffer(i[t].gen,"hex");return new o(e,r)},e.createDiffieHellman=e.DiffieHellman=function t(e,r,i,a){return Buffer.isBuffer(r)||void 0===s[r]?t(e,"binary",r,i):(r=r||"binary",a=a||"binary",i=i||new Buffer([2]),Buffer.isBuffer(i)||(i=new Buffer(i,a)),"number"==typeof e?new o(n(e,i),i,!0):(Buffer.isBuffer(e)||(e=new Buffer(e,r)),new o(e,i,!0)))}},4910:(t,e,r)=>{var n=r(6473),i=new(r(2244)),o=new n(24),s=new n(11),a=new n(10),d=new n(3),u=new n(7),h=r(4934),l=r(3209);function f(t,e){return e=e||"utf8",Buffer.isBuffer(t)||(t=new Buffer(t,e)),this._pub=new n(t),this}function c(t,e){return e=e||"utf8",Buffer.isBuffer(t)||(t=new Buffer(t,e)),this._priv=new n(t),this}t.exports=p;var g={};function p(t,e,r){this.setGenerator(e),this.__prime=new n(t),this._prime=n.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=f,this.setPrivateKey=c):this._primeCode=8}function m(t,e){var r=new Buffer(t.toArray());return e?r.toString(e):r}Object.defineProperty(p.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(t,e){var r=e.toString("hex"),n=[r,t.toString(16)].join("_");if(n in g)return g[n];var l,f=0;if(t.isEven()||!h.simpleSieve||!h.fermatTest(t)||!i.test(t))return f+=1,f+="02"===r||"05"===r?8:4,g[n]=f,f;switch(i.test(t.shrn(1))||(f+=2),r){case"02":t.mod(o).cmp(s)&&(f+=8);break;case"05":(l=t.mod(a)).cmp(d)&&l.cmp(u)&&(f+=8);break;default:f+=4}return g[n]=f,f}(this.__prime,this.__gen)),this._primeCode}}),p.prototype.generateKeys=function(){return this._priv||(this._priv=new n(l(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},p.prototype.computeSecret=function(t){var e=(t=(t=new n(t)).toRed(this._prime)).redPow(this._priv).fromRed(),r=new Buffer(e.toArray()),i=this.getPrime();if(r.length<i.length){var o=new Buffer(i.length-r.length);o.fill(0),r=Buffer.concat([o,r])}return r},p.prototype.getPublicKey=function(t){return m(this._pub,t)},p.prototype.getPrivateKey=function(t){return m(this._priv,t)},p.prototype.getPrime=function(t){return m(this.__prime,t)},p.prototype.getGenerator=function(t){return m(this._gen,t)},p.prototype.setGenerator=function(t,e){return e=e||"utf8",Buffer.isBuffer(t)||(t=new Buffer(t,e)),this.__gen=t,this._gen=new n(t),this}},4934:(t,e,r)=>{var n=r(3209);t.exports=y,y.simpleSieve=m,y.fermatTest=b;var i=r(6473),o=new i(24),s=new(r(2244)),a=new i(1),d=new i(2),u=new i(5),h=(new i(16),new i(8),new i(10)),l=new i(3),f=(new i(7),new i(11)),c=new i(4),g=(new i(12),null);function p(){if(null!==g)return g;var t=[];t[0]=2;
vendor: 5,186 bytes, line 15672
15672for(var e=1,r=3;r<1048576;r+=2){for(var n=Math.ceil(Math.sqrt(r)),i=0;i<e&&t[i]<=n&&r%t[i]!=0;i++);e!==i&&t[i]<=n||(t[e++]=r)}return g=t,t}function m(t){for(var e=p(),r=0;r<e.length;r++)if(0===t.modn(e[r]))return 0===t.cmpn(e[r]);return!0}function b(t){var e=i.mont(t);return 0===d.toRed(e).redPow(t.subn(1)).fromRed().cmpn(1)}function y(t,e){if(t<16)return new i(2===e||5===e?[140,123]:[140,39]);var r,g;for(e=new i(e);;){for(r=new i(n(Math.ceil(t/8)));r.bitLength()>t;)r.ishrn(1);if(r.isEven()&&r.iadd(a),r.testn(1)||r.iadd(d),e.cmp(d)){if(!e.cmp(u))for(;r.mod(h).cmp(l);)r.iadd(c)}else for(;r.mod(o).cmp(f);)r.iadd(c);if(m(g=r.shrn(1))&&m(r)&&b(g)&&b(r)&&s.test(g)&&s.test(r))return r}}},6473:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(6089).Buffer}catch(t){}function a(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function d(t,e,r){var n=a(t,r);return r-1>=e&&(n|=a(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s<o;s++){var a=t.charCodeAt(s)-48;i*=n,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===r)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,d=0,h=r;h<a;h+=n)d=u(t,h,h+n,e),this.imuln(i),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d);if(0!==s){var l=1;for(d=u(t,h,t.length,e),h=0;h<s;h++)l*=e;this.imuln(l),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16
vendor: 4,478 bytes, line 15672
15672777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,d=s/67108864|0;r.words[0]=a;for(var u=1;u<n;u++){for(var h=d>>>26,l=67108863&d,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var g=u-c|0;h+=(s=(i=0|t.words[g])*(o=0|e.words[c])+l)/67108864|0,l=67108863&s}r.words[u]=0|l,d=0|h}return 0!==d?r.words[u]=0|d:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],d=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),r=0!==o||s!==this.length-1?h[6-d.length]+d+r:d+r}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=l[t],c=f[t];r="";var g=this.clone();for(g.negative=0;!g.isZero();){var p=g.modn(c).toString(t);r=(g=g.idivn(c)).isZero()?p+r:h[u-p.length]+p+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,d="le"===e,u=new t(o),h=this.clone();if(d){for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[a]=s;for(;a<o;a++)u[a]=0}else{for(a=0;a<o-i;a++)u[a]=0;for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[o-a-1]=s}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return n(!(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return n(!(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return n(!
vendor: 2,330 bytes, line 15672
15672(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},o.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var 
vendor: 7,651 bytes, line 15672
15672g=function(t,e,r){var n,i,o,s=t.words,a=e.words,d=r.words,u=0,h=0|s[0],l=8191&h,f=h>>>13,c=0|s[1],g=8191&c,p=c>>>13,m=0|s[2],b=8191&m,y=m>>>13,v=0|s[3],_=8191&v,M=v>>>13,w=0|s[4],$=8191&w,S=w>>>13,N=0|s[5],E=8191&N,T=N>>>13,A=0|s[6],R=8191&A,P=A>>>13,O=0|s[7],C=8191&O,I=O>>>13,L=0|s[8],D=8191&L,U=L>>>13,k=0|s[9],x=8191&k,F=k>>>13,B=0|a[0],V=8191&B,j=B>>>13,H=0|a[1],G=8191&H,W=H>>>13,Y=0|a[2],z=8191&Y,q=Y>>>13,K=0|a[3],Z=8191&K,X=K>>>13,J=0|a[4],Q=8191&J,tt=J>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],dt=8191&at,ut=at>>>13,ht=0|a[8],lt=8191&ht,ft=ht>>>13,ct=0|a[9],gt=8191&ct,pt=ct>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,j))+Math.imul(f,V)|0))<<13)|0;u=((o=Math.imul(f,j))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(g,V),i=(i=Math.imul(g,j))+Math.imul(p,V)|0,o=Math.imul(p,j);var bt=(u+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(f,G)|0))<<13)|0;u=((o=o+Math.imul(f,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,j))+Math.imul(y,V)|0,o=Math.imul(y,j),n=n+Math.imul(g,G)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(p,G)|0,o=o+Math.imul(p,W)|0;var yt=(u+(n=n+Math.imul(l,z)|0)|0)+((8191&(i=(i=i+Math.imul(l,q)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,q)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,V),i=(i=Math.imul(_,j))+Math.imul(M,V)|0,o=Math.imul(M,j),n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(g,z)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(p,z)|0,o=o+Math.imul(p,q)|0;var vt=(u+(n=n+Math.imul(l,Z)|0)|0)+((8191&(i=(i=i+Math.imul(l,X)|0)+Math.imul(f,Z)|0))<<13)|0;u=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul($,V),i=(i=Math.imul($,j))+Math.imul(S,V)|0,o=Math.imul(S,j),n=n+Math.imul(_,G)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,W)|0,n=n+Math.imul(b,z)|0,i=(i=i+Math.imul(b,q)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,q)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(p,Z)|0,o=o+Math.imul(p,X)|0;var _t=(u+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,V),i=(i=Math.imul(E,j))+Math.imul(T,V)|0,o=Math.imul(T,j),n=n+Math.imul($,G)|0,i=(i=i+Math.imul($,W)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(_,z)|0,i=(i=i+Math.imul(_,q)|0)+Math.imul(M,z)|0,o=o+Math.imul(M,q)|0,n=n+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,X)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(p,Q)|0,o=o+Math.imul(p,tt)|0;var Mt=(u+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(f,rt)|0))<<13)|0;u=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(R,V),i=(i=Math.imul(R,j))+Math.imul(P,V)|0,o=Math.imul(P,j),n=n+Math.imul(E,G)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul($,z)|0,i=(i=i+Math.imul($,q)|0)+Math.imul(S,z)|0,o=o+Math.imul(S,q)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(p,rt)|0,o=o+Math.imul(p,nt)|0;var wt=(u+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,st)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,j))+Math.imul(I,V)|0,o=Math.imul(I,j),n=n+Math.imul(R,G)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(P,G)|0,o=o+Math.imul(P,W)|0,n=n+Math.imul(E,z)|0,i=(i=i+Math.imul(E,q)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,q)|0,n=n+Math.imul($,Z)|0,i=(i=i+Math.imul($,X)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(p,ot)|0,o=o+Math.imul(p,st)|0;var $t=(u+(n=n+Math.imul(l,dt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ut)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,j))+Math.imul(U,V)|0,o=Math.imul(U,j),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(I,G)|0,o=o+Math.imul(I,W)|0,n=n+Math.imul(R,z)|0,i=(i=i+Math.imul(R,q)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,q)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul($,Q)|0,i=(i=i+Math.imul($,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(g,dt)|0,i=(i=i+Math.imul(g,ut)|0)+Math.imul(p,dt)|0,o=o+Math.imul(p,ut)|0;var St=(u+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ft)|0)+Math.imul(f,lt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(x,V),i=(i=Math.imul(x,j))+Math.imul(F,V)|0,o=Math.imul(F,j),n=n+Math.imul(D,G)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(C,z)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(I,z)|0,o=o+Math.imul(I,q)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul($,rt)|0,i=(i=i+Math.imul($,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,n=n+Math.imul(b,dt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(g,lt)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(p,lt)|0,o=o+Math.imul(p,ft)|0;var Nt=(u+(n=n+Math.imul(l,gt)|0)|0)+((8191&(i=(i=i+Math.imul(l,pt)|0)+Math.imul(f,gt)|0))<<13)|0;u=((o=o+Math.imul(f,pt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,W))+Math.imul(F,G)|0,o=Math.imul(F,W),n=n+Math.imul(D,z)|0,i=(i=i+Math.imul(D,q)|0)+Math.imul(U,z)|0,o=o+Math.imul(U,q)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(I,Z)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul($,ot)|0,i=(i=i+Math.imul($,st)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,st)|0,n=n+Math.imul(_,dt)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(M,dt)|0,o=o+Math.imul(M,ut)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ft)|0)+Math.imul(y,lt)|0,o=o+Math.imul(y,ft)|0;var Et=(u+(n=n+Math.imul(g,gt)|0)|0)+((8191&(i=(i=i+Math.imul(g,pt)|0)+Math.imul(p,gt)|0))<<13)|0;u=((o=o+Math.imul(p,pt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,z),i=(i=Math.imul(x,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(D,Z)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,X)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul($,dt)|0,i=(i=i+Math.imul($,ut)|0)+Math.imul(S,dt)|0,o=o+Math.imul(S,ut)|0,n=n+Math.imul(_,lt)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(M,lt)|0,o=o+Math.imul(M,ft)|0;var Tt=(u+(n=n+Math.imul(b,gt)|0)|0)+((8191&(i=(i=i+Math.imul(b,pt)|0)+Math.imul(y,gt)|0))<<13)|0;u=((o=o+Math.imul(y,pt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(x,Z),i=(i=Math.imul(x,X))+Math.imul(F,Z)|0,o=Math.imul(F,X
vendor: 5,428 bytes, line 15672
15672),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(E,dt)|0,i=(i=i+Math.imul(E,ut)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul($,lt)|0,i=(i=i+Math.imul($,ft)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ft)|0;var At=(u+(n=n+Math.imul(_,gt)|0)|0)+((8191&(i=(i=i+Math.imul(_,pt)|0)+Math.imul(M,gt)|0))<<13)|0;u=((o=o+Math.imul(M,pt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(x,Q),i=(i=Math.imul(x,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(U,rt)|0,o=o+Math.imul(U,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(R,dt)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(P,dt)|0,o=o+Math.imul(P,ut)|0,n=n+Math.imul(E,lt)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(T,lt)|0,o=o+Math.imul(T,ft)|0;var Rt=(u+(n=n+Math.imul($,gt)|0)|0)+((8191&(i=(i=i+Math.imul($,pt)|0)+Math.imul(S,gt)|0))<<13)|0;u=((o=o+Math.imul(S,pt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(x,rt),i=(i=Math.imul(x,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(D,ot)|0,i=(i=i+Math.imul(D,st)|0)+Math.imul(U,ot)|0,o=o+Math.imul(U,st)|0,n=n+Math.imul(C,dt)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(I,dt)|0,o=o+Math.imul(I,ut)|0,n=n+Math.imul(R,lt)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(P,lt)|0,o=o+Math.imul(P,ft)|0;var Pt=(u+(n=n+Math.imul(E,gt)|0)|0)+((8191&(i=(i=i+Math.imul(E,pt)|0)+Math.imul(T,gt)|0))<<13)|0;u=((o=o+Math.imul(T,pt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(x,ot),i=(i=Math.imul(x,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(D,dt)|0,i=(i=i+Math.imul(D,ut)|0)+Math.imul(U,dt)|0,o=o+Math.imul(U,ut)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(I,lt)|0,o=o+Math.imul(I,ft)|0;var Ot=(u+(n=n+Math.imul(R,gt)|0)|0)+((8191&(i=(i=i+Math.imul(R,pt)|0)+Math.imul(P,gt)|0))<<13)|0;u=((o=o+Math.imul(P,pt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(x,dt),i=(i=Math.imul(x,ut))+Math.imul(F,dt)|0,o=Math.imul(F,ut),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ft)|0)+Math.imul(U,lt)|0,o=o+Math.imul(U,ft)|0;var Ct=(u+(n=n+Math.imul(C,gt)|0)|0)+((8191&(i=(i=i+Math.imul(C,pt)|0)+Math.imul(I,gt)|0))<<13)|0;u=((o=o+Math.imul(I,pt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(x,lt),i=(i=Math.imul(x,ft))+Math.imul(F,lt)|0,o=Math.imul(F,ft);var It=(u+(n=n+Math.imul(D,gt)|0)|0)+((8191&(i=(i=i+Math.imul(D,pt)|0)+Math.imul(U,gt)|0))<<13)|0;u=((o=o+Math.imul(U,pt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Lt=(u+(n=Math.imul(x,gt))|0)+((8191&(i=(i=Math.imul(x,pt))+Math.imul(F,gt)|0))<<13)|0;return u=((o=Math.imul(F,pt))+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,d[0]=mt,d[1]=bt,d[2]=yt,d[3]=vt,d[4]=_t,d[5]=Mt,d[6]=wt,d[7]=$t,d[8]=St,d[9]=Nt,d[10]=Et,d[11]=Tt,d[12]=At,d[13]=Rt,d[14]=Pt,d[15]=Ot,d[16]=Ct,d[17]=It,d[18]=Lt,0!==u&&(d[19]=u,r.length++),r};function p(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(g=c),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?g(this,t,e):n<63?c(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,d=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=d;u++){var h=o-u,l=(0|t.words[h])*(0|e.words[u]),f=67108863&l;a=67108863&(f=f+a|0),i+=(s=(s=s+(l/67108864|0)|0)+(f>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):p(this,t,e),r},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},m.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s<o;s++)n[s]=e[t[s]],i[s]=r[t[s]]},m.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,d=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),h=0;h<i;h+=a)for(var l=d,f=u,c=0;c<s;c++){var g=r[h+c],p=n[h+c],m=r[h+c+s],b=n[h+c+s],y=l*m-f*b;b=l*b+f*m,m=y,r[h+c]=g+m,n[h+c]=p+b,r[h+c+s]=g-m,n[h+c+s]=p-b,c!==a&&(y=d*l-u*f,f=d*f+u*l,l=y)}},m.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},m.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},m.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},m.prototype.convert13b=function(t,e,r,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],r[2*s]=8191&o,o>>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)r[s]=0;n(0===o),n(!(-8192&o))},m.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},m.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),s=new Array(n),a=new Array(n),d=new Array(n),u=new Array(n),h=new Array(n),l=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,s,n),this.convert13b(e.words,e.length,u,n),this.transform(s,o,a,d,n,i),this.transform(u,o,h,l,n,i);for(var c=0;c<n;
vendor: 16,384 bytes, line 15672
15672c++){var g=a[c]*h[c]-d[c]*l[c];d[c]=a[c]*l[c]+d[c]*h[c],a[c]=g}return this.conjugate(a,d,n),this.transform(a,d,f,o,n,i),this.conjugate(f,o,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),p(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){n("number"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,o=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,d=(0|this.words[e])-a<<r;this.words[e]=d|s,s=a>>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,d=r;if(i-=s,i=Math.max(0,i),d){for(var u=0;u<s;u++)d.words[u]=this.words[u];d.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var h=0;for(u=this.length-1;u>=0&&(0!==h||u>=i);u--){var l=0|this.words[u];this.words[u]=h<<26-o|l>>>o,h=l&a}return d&&0!==h&&(d.words[d.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,r){var i,o,s=t.length+r;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+r])+a;var d=(0|t.words[i])*e;a=((o-=67108863&d)>>26)-(d/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)a=(o=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&o;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,d=n.length-i.length;if("mod"!==e){(a=new o(null)).length=d+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var h=n.clone()._ishlnsubmul(i,1,d);0===h.negative&&(n=h,a&&(a.words[d]=1));for(var l=d-1;l>=0;l--){var f=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(i,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);a&&(a.words[l]=f)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&t.negative?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),d=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var h=r.clone(),l=e.clone();!e.isZero();){for(var f=0,c=1;!(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(h),s.isub(l)),i.iushrn(1),s.iushrn(1);for(var g=0,p=1;!(r.words[0]&p)&&g<26;++g,p<<=1);if(g>0)for(r.iushrn(g);g-- >0;)(a.isOdd()||d.isOdd())&&(a.iadd(h),d.isub(l)),a.iushrn(1),d.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(d)):(r.isub(e),a.isub(i),d.isub(s))}return{a,b:d,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),d=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,h=1;!(e.words[0]&h)&&u<26;++u,h<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(d),s.iushrn(1);for(var l=0,f=1;!(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(d),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,s=r;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new $(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){$.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(v,y),v.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(_,y),i(M,y),i(w,y),w.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return b[t]=e,e},$.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},$.prototype._verify2=function(t,e){n(!(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},$.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},$.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},$.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},$.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},$.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},$.prototype.isqr=function(t){return this.imul(t,t.clone())},$.prototype.sqr=function(t){return th
vendor: 1,235 bytes, line 15672
15672is.mul(t,t)},$.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),d=a.redNeg(),u=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,u).cmp(d);)h.redIAdd(d);for(var l=this.pow(h,i),f=this.pow(t,i.addn(1).iushrn(1)),c=this.pow(t,i),g=s;0!==c.cmp(a);){for(var p=c,m=0;0!==p.cmp(a);m++)p=p.redSqr();n(m<g);var b=this.pow(l,new o(1).iushln(g-m-1));f=f.redMul(b),l=b.redSqr(),c=c.redMul(l),g=m}return f},$.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},$.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],s=0,a=0,d=e.bitLength()%26;for(0===d&&(d=26),n=e.length-1;n>=0;n--){for(var u=e.words[n],h=d-1;h>=0;h--){var l=u>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==s?(s<<=1,s|=l,(4==++a||0===n&&0===h)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}
vendor: 4,974 bytes, line 15672
15672d=26}return i},$.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},$.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new S(t)},i(S,$),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},6729:(t,e,r)=>{"use strict";var n=e;n.version=r(1636).rE,n.utils=r(7011),n.rand=r(5037),n.curve=r(894),n.curves=r(480),n.ec=r(7447),n.eddsa=r(8650)},6677:(t,e,r)=>{"use strict";var n=r(8490),i=r(7011),o=i.getNAF,s=i.getJSF,a=i.assert;function d(t,e){this.type=t,this.p=new n(e.p,16),this.red=e.prime?n.red(e.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=e.n&&new n(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function u(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=d,d.prototype.point=function(){throw new Error("Not implemented")},d.prototype.validate=function(){throw new Error("Not implemented")},d.prototype._fixedNafMul=function(t,e){a(t.precomputed);var r=t._getDoubles(),n=o(e,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var s,d,u=[];for(s=0;s<n.length;s+=r.step){d=0;for(var h=s+r.step-1;h>=s;h--)d=(d<<1)+n[h];u.push(d)}for(var l=this.jpoint(null,null,null),f=this.jpoint(null,null,null),c=i;c>0;c--){for(s=0;s<u.length;s++)(d=u[s])===c?f=f.mixedAdd(r.points[s]):d===-c&&(f=f.mixedAdd(r.points[s].neg()));l=l.add(f)}return l.toP()},d.prototype._wnafMul=function(t,e){var r=4,n=t._getNAFPoints(r);r=n.wnd;for(var i=n.points,s=o(e,r,this._bitLength),d=this.jpoint(null,null,null),u=s.length-1;u>=0;u--){for(var h=0;u>=0&&0===s[u];u--)h++;if(u>=0&&h++,d=d.dblp(h),u<0)break;var l=s[u];a(0!==l),d="affine"===t.type?l>0?d.mixedAdd(i[l-1>>1]):d.mixedAdd(i[-l-1>>1].neg()):l>0?d.add(i[l-1>>1]):d.add(i[-l-1>>1].neg())}return"affine"===t.type?d.toP():d},d.prototype._wnafMulAdd=function(t,e,r,n,i){var a,d,u,h=this._wnafT1,l=this._wnafT2,f=this._wnafT3,c=0;for(a=0;a<n;a++){var g=(u=e[a])._getNAFPoints(t);h[a]=g.wnd,l[a]=g.points}for(a=n-1;a>=1;a-=2){var p=a-1,m=a;if(1===h[p]&&1===h[m]){var b=[e[p],null,null,e[m]];0===e[p].y.cmp(e[m].y)?(b[1]=e[p].add(e[m]),b[2]=e[p].toJ().mixedAdd(e[m].neg())):0===e[p].y.cmp(e[m].y.redNeg())?(b[1]=e[p].toJ().mixedAdd(e[m]),b[2]=e[p].add(e[m].neg())):(b[1]=e[p].toJ().mixedAdd(e[m]),b[2]=e[p].toJ().mixedAdd(e[m].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],v=s(r[p],r[m]);for(c=Math.max(v[0].length,c),f[p]=new Array(c),f[m]=new Array(c),d=0;d<c;d++){var _=0|v[0][d],M=0|v[1][d];f[p][d]=y[3*(_+1)+(M+1)],f[m][d]=0,l[p]=b}}else f[p]=o(r[p],h[p],this._bitLength),f[m]=o(r[m],h[m],this._bitLength),c=Math.max(f[p].length,c),c=Math.max(f[m].length,c)}var w=this.jpoint(null,null,null),$=this._wnafT4;for(a=c;a>=0;a--){for(var S=0;a>=0;){var N=!0;for(d=0;d<n;d++)$[d]=0|f[d][a],0!==$[d]&&(N=!1);if(!N)break;S++,a--}if(a>=0&&S++,w=w.dblp(S),a<0)break;for(d=0;d<n;d++){var E=$[d];0!==E&&(E>0?u=l[d][E-1>>1]:E<0&&(u=l[d][-E-1>>1].neg()),w="affine"===u.type?w.mixedAdd(u):w.add(u))}}for(a=0;a<n;a++)l[a]=null;return i?w:w.toP()},d.BasePoint=u,u.prototype.eq=function(){throw new Error("Not implemented")},u.prototype.validate=function(){return this.curve.validate(this)},d.prototype.decodePoint=function(t,e){t=i.toArray(t,e);var r=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*r)return 6===t[0]?a(t[t.length-1]%2==0):7===t[0]&&a(t[t.length-1]%2==1),this.point(t.slice(1,1+r),t.slice(1+r,1+2*r));if((2===t[0]||3===t[0])&&t.length-1===r)return this.pointFromX(t.slice(1,1+r),3===t[0]);throw new Error("Unknown point format")},u.prototype.encodeCompressed=function(t){return this.encode(t,!0)},u.prototype._encode=function(t){var e=this.curve.p.byteLength(),r=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",e))},u.prototype.encode=function(t,e){return i.encode(this._encode(e),t)}
vendor: 8,392 bytes, line 15672
15672,u.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},u.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},u.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<e;i+=t){for(var o=0;o<t;o++)n=n.dbl();r.push(n)}return{step:t,points:r}},u.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],r=(1<<t)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)e[i]=e[i-1].add(n);return{wnd:t,points:e}},u.prototype._getBeta=function(){return null},u.prototype.dblp=function(t){for(var e=this,r=0;r<t;r++)e=e.dbl();return e}},1298:(t,e,r)=>{"use strict";var n=r(7011),i=r(8490),o=r(6698),s=r(6677),a=n.assert;function d(t){this.twisted=1!=(0|t.a),this.mOneA=this.twisted&&-1==(0|t.a),this.extended=this.mOneA,s.call(this,"edwards",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|t.c)}function u(t,e,r,n,o){s.BasePoint.call(this,t,"projective"),null===e&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(d,s),t.exports=d,d.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},d.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},d.prototype.jpoint=function(t,e,r,n){return this.point(t,e,r,n)},d.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),s=n.redMul(o.redInvm()),a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var d=a.fromRed().isOdd();return(e&&!d||!e&&d)&&(a=a.redNeg()),this.point(t,a)},d.prototype.pointFromY=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),s=n.redMul(o.redInvm());if(0===s.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==e&&(a=a.redNeg()),this.point(a,t)},d.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),r=t.y.redSqr(),n=e.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(r)));return 0===n.cmp(i)},o(u,s.BasePoint),d.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},d.prototype.point=function(t,e,r,n){return new u(this,t,e,r,n)},u.fromJSON=function(t,e){return new u(t,e[0],e[1],e[2])},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},u.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),s=o.redSub(r),a=n.redSub(e),d=i.redMul(s),u=o.redMul(a),h=i.redMul(a),l=s.redMul(o);return this.curve.point(d,u,l,h)},u.prototype._projDbl=function(){var t,e,r,n,i,o,s=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),d=this.y.redSqr();if(this.curve.twisted){var u=(n=this.curve._mulA(a)).redAdd(d);this.zOne?(t=s.redSub(a).redSub(d).redMul(u.redSub(this.curve.two)),e=u.redMul(n.redSub(d)),r=u.redSqr().redSub(u).redSub(u)):(i=this.z.redSqr(),o=u.redSub(i).redISub(i),t=s.redSub(a).redISub(d).redMul(o),e=u.redMul(n.redSub(d)),r=u.redMul(o))}else n=a.redAdd(d),i=this.curve._mulC(this.z).redSqr(),o=n.redSub(i).redSub(i),t=this.curve._mulC(s.redISub(n)).redMul(o),e=this.curve._mulC(n).redMul(a.redISub(d)),r=n.redMul(o);return this.curve.point(t,e,r)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},u.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),s=i.redSub(n),a=i.redAdd(n),d=r.redAdd(e),u=o.redMul(s),h=a.redMul(d),l=o.redMul(d),f=s.redMul(a);return this.curve.point(u,h,f,l)},u.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),s=this.y.redMul(t.y),a=this.curve.d.redMul(o).redMul(s),d=i.redSub(a),u=i.redAdd(a),h=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(s),l=n.redMul(d).redMul(h);return this.curve.twisted?(e=n.redMul(u).redMul(s.redSub(this.curve._mulA(o))),r=d.redMul(u)):(e=n.redMul(u).redMul(s.redSub(o)),r=this.curve._mulC(d).redMul(u)),this.curve.point(l,e,r)},u.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},u.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},u.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},u.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},u.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},u.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()},u.prototype.getY=function(){return this.normalize(),this.y.fromRed()},u.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},u.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},u.prototype.toP=u.prototype.normalize,u.prototype.mixedAdd=u.prototype.add},894:(t,e,r)=>{"use strict";var n=e;n.base=r(6677),n.short=r(9188),n.mont=r(370),n.edwards=r(1298)},370:(t,e,r)=>{"use strict";var n=r(8490),i=r(6698),o=r(6677),s=r(7011);function a(t){o.call(this,"mont",t),this.a=new n(t.a,16).toRed(this.red),this.b=new n(t.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function d(t,e,r){o.BasePoint.call(this,t,"projective"),null===e&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(e,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,o),t.exports=a,a.prototype.validate=function(t){var e=t.normalize().x,r=e.redSqr(),n=r.redMul(e).redAdd(r.redMul(this.a)).redAdd(e);return 0===n.redSqrt().redSqr().cmp(n)},i(d,o.BasePoint),a.prototype.decodePoint=function(t,e){return this.point(s.toArray(t,e),1)},a.prototype.point=function(t,e){return new d(this,t,e)},a.prototype.pointFromJSON=function(t){return d.fromJSON(this,t)},d.prototype.precompute=function(){},d.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},d.fromJSON=function(t,e){return new d(t,e[0],e[1]||t.one)},d.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>
15672":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},d.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},d.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),r=t.redSub(e),n=t.redMul(e),i=r.redMul(e.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},d.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},d.prototype.diffAdd=function(t,e){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=t.x.redAdd(t.z),o=t.x.redSub(t.z).redMul(r),s=i.redMul(n),a=e.z.redMul(o.redAdd(s).redSqr()),d=e.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,d)},d.prototype.mul=function(t){for(var e=t.clone(),r=this,n=this.curve.point(null,null),i=[];0!==e.cmpn(0);e.iushrn(1))i.push(e.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},d.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},d.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},d.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},d.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},d.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},9188:(t,e,r)=>{"use strict";var n=r(7011),i=r(8490),o=r(6698),s=r(6677),a=n.assert;function d(t){s.call(this,"short",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function u(t,e,r,n){s.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(e,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function h(t,e,r,n){s.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(e,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(d,s),t.exports=d,d.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new i(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new i(t.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(e))?r=o[0]:(r=o[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:r,basis:t.basis?t.basis.map((function(t){return{a:new i(t.a,16),b:new i(t.b,16)}})):this._getEndoBasis(r)}}},d.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:i.mont(t),r=new i(2).toRed(e).redInvm(),n=r.redNeg(),o=new i(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(o).fromRed(),n.redSub(o).fromRed()]},d.prototype._getEndoBasis=function(t){for(var e,r,n,o,s,a,d,u,h,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=t,c=this.n.clone(),g=new i(1),p=new i(0),m=new i(0),b=new i(1),y=0;0!==f.cmpn(0);){var v=c.div(f);u=c.sub(v.mul(f)),h=m.sub(v.mul(g));var _=b.sub(v.mul(p));if(!n&&u.cmp(l)<0)e=d.neg(),r=g,n=u.neg(),o=h;else if(n&&2==++y)break;d=u,c=f,f=u,m=g,g=h,b=p,p=_}s=u.neg(),a=h;var M=n.sqr().add(o.sqr());return s.sqr().add(a.sqr()).cmp(M)>=0&&(s=e,a=r),n.negative&&(n=n.neg(),o=o.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:n,b:o},{a:s,b:a}]},d.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),d=i.mul(r.b),u=o.mul(n.b);return{k1:t.sub(s).sub(a),k2:d.add(u).neg()}},d.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(e&&!o||!e&&o)&&(n=n.redNeg()),this.point(t,n)},d.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},d.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<t.length;o++){var s=this._endoSplit(e[o]),a=t[o],d=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),d=d.neg(!0)),n[2*o]=a,n[2*o+1]=d,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var u=this._wnafMulAdd(1,n,i,2*o,r),h=0;h<2*o;h++)n[h]=null,i[h]=null;return u},o(u,s.BasePoint),d.prototype.point=function(t,e,r){return new u(this,t,e,r)},d.prototype.pointFromJSON=function(t,e){return u.fromJSON(this,t,e)},u.prototype._getBeta=function(){if(this.curve.endo){var t=this.prec
vendor: 7,260 bytes, line 15672
15672omputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var r=this.curve,n=function(t){return r.point(t.x.redMul(r.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(n)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(n)}}}return e}},u.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},u.fromJSON=function(t,e,r){"string"==typeof e&&(e=JSON.parse(e));var n=t.point(e[0],e[1],r);if(!e[2])return n;function i(e){return t.point(e[0],e[1],r)}var o=e[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return this.inf},u.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},u.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},u.prototype.getX=function(){return this.x.fromRed()},u.prototype.getY=function(){return this.y.fromRed()},u.prototype.mul=function(t){return t=new i(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},u.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},u.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},u.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},u.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},u.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(h,s.BasePoint),d.prototype.jpoint=function(t,e,r){return new h(this,t,e,r)},h.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},h.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},h.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),s=t.y.redMul(r.redMul(this.z)),a=n.redSub(i),d=o.redSub(s);if(0===a.cmpn(0))return 0!==d.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),h=u.redMul(a),l=n.redMul(u),f=d.redSqr().redIAdd(h).redISub(l).redISub(l),c=d.redMul(l.redISub(f)).redISub(o.redMul(h)),g=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(f,c,g)},h.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var d=s.redSqr(),u=d.redMul(s),h=r.redMul(d),l=a.redSqr().redIAdd(u).redISub(h).redISub(h),f=a.redMul(h.redISub(l)).redISub(i.redMul(u)),c=this.z.redMul(s);return this.curve.jpoint(l,f,c)},h.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var r=this;for(e=0;e<t;e++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,d=a.redSqr().redSqr(),u=s.redAdd(s);for(e=0;e<t;e++){var h=o.redSqr(),l=u.redSqr(),f=l.redSqr(),c=h.redAdd(h).redIAdd(h).redIAdd(n.redMul(d)),g=o.redMul(l),p=c.redSqr().redISub(g.redAdd(g)),m=g.redISub(p),b=c.redMul(m);b=b.redIAdd(b).redISub(f);var y=u.redMul(a);e+1<t&&(d=d.redMul(f)),o=p,a=y,u=b}return this.curve.jpoint(o,u.redMul(i),a)},h.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},h.prototype._zeroDbl=function(){var t,e,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),d=a.redSqr().redISub(s).redISub(s),u=o.redIAdd(o);u=(u=u.redIAdd(u)).redIAdd(u),t=d,e=a.redMul(s.redISub(d)).redISub(u),r=this.y.redAdd(this.y)}else{var h=this.x.redSqr(),l=this.y.redSqr(),f=l.redSqr(),c=this.x.redAdd(l).redSqr().redISub(h).redISub(f);c=c.redIAdd(c);var g=h.redAdd(h).redIAdd(h),p=g.redSqr(),m=f.redIAdd(f);m=(m=m.redIAdd(m)).redIAdd(m),t=p.redISub(c).redISub(c),e=g.redMul(c.redISub(t)).redISub(m),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(t,e,r)},h.prototype._threeDbl=function(){var t,e,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),d=a.redSqr().redISub(s).redISub(s);t=d;var u=o.redIAdd(o);u=(u=u.redIAdd(u)).redIAdd(u),e=a.redMul(s.redISub(d)).redISub(u),r=this.y.redAdd(this.y)}else{var h=this.z.redSqr(),l=this.y.redSqr(),f=this.x.redMul(l),c=this.x.redSub(h).redMul(this.x.redAdd(h));c=c.redAdd(c).redIAdd(c);var g=f.redIAdd(f),p=(g=g.redIAdd(g)).redAdd(g);t=c.redSqr().redISub(p),r=this.y.redAdd(this.z).redSqr().redISub(l).redISub(h);var m=l.redSqr();m=(m=(m=m.redIAdd(m)).redIAdd(m)).redIAdd(m),e=c.redMul(g.redISub(t)).redISub(m)}return this.curve.jpoint(t,e,r)},h.prototype._dbl=function(){var t=this.curve.a,e=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=e.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),d=e.redAdd(e),u=(d=d.redIAdd(d)).redMul(s),h=a.redSqr().redISub(u.redAdd(u)),l=u.redISub(h),f=s.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var c=a.redMul(l).redISub(f),g=r.redAdd(r).redMul(n);return this.curve.jpoint(h,c,g)},h.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);
vendor: 4,206 bytes, line 15672
15672var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr(),n=e.redSqr(),i=t.redAdd(t).redIAdd(t),o=i.redSqr(),s=this.x.redAdd(e).redSqr().redISub(t).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),d=n.redIAdd(n);d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var u=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(d),h=e.redMul(u);h=(h=h.redIAdd(h)).redIAdd(h);var l=this.x.redMul(a).redISub(h);l=(l=l.redIAdd(l)).redIAdd(l);var f=this.y.redMul(u.redMul(d.redISub(u)).redISub(s.redMul(a)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var c=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(l,f,c)},h.prototype.mul=function(t,e){return t=new i(t,e),this.curve._wnafMul(this,t)},h.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),r=t.z.redSqr();if(0!==this.x.redMul(r).redISub(t.x.redMul(e)).cmpn(0))return!1;var n=e.redMul(this.z),i=r.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(n)).cmpn(0)},h.prototype.eqXToP=function(t){var e=this.z.redSqr(),r=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(r))return!0;for(var n=t.clone(),i=this.curve.redN.redMul(e);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},h.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},h.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},480:(t,e,r)=>{"use strict";var n,i=e,o=r(7952),s=r(894),a=r(7011).assert;function d(t){"short"===t.type?this.curve=new s.short(t):"edwards"===t.type?this.curve=new s.edwards(t):this.curve=new s.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function u(t,e){Object.defineProperty(i,t,{configurable:!0,enumerable:!0,get:function(){var r=new d(e);return Object.defineProperty(i,t,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=d,u("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),u("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),u("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),u("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}
vendor: 8,645 bytes, line 15672
15672),u("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),u("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),u("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(4011)}catch(t){n=void 0}u("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},7447:(t,e,r)=>{"use strict";var n=r(8490),i=r(2723),o=r(7011),s=r(480),a=r(5037),d=o.assert,u=r(1200),h=r(8545);function l(t){if(!(this instanceof l))return new l(t);"string"==typeof t&&(d(Object.prototype.hasOwnProperty.call(s,t),"Unknown curve "+t),t=s[t]),t instanceof s.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=l,l.prototype.keyPair=function(t){return new u(this,t)},l.prototype.keyFromPrivate=function(t,e){return u.fromPrivate(this,t,e)},l.prototype.keyFromPublic=function(t,e){return u.fromPublic(this,t,e)},l.prototype.genKeyPair=function(t){t||(t={});for(var e=new i({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||a(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),o=this.n.sub(new n(2));;){var s=new n(e.generate(r));if(!(s.cmp(o)>0))return s.iaddn(1),this.keyFromPrivate(s)}},l.prototype._truncateToN=function(t,e,r){var i;if(n.isBN(t)||"number"==typeof t)i=(t=new n(t,16)).byteLength();else if("object"==typeof t)i=t.length,t=new n(t,16);else{var o=t.toString();i=o.length+1>>>1,t=new n(o,16)}"number"!=typeof r&&(r=8*i);var s=r-this.n.bitLength();return s>0&&(t=t.ushrn(s)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},l.prototype.sign=function(t,e,r,o){if("object"==typeof r&&(o=r,r=null),o||(o={}),"string"!=typeof t&&"number"!=typeof t&&!n.isBN(t)){d("object"==typeof t&&t&&"number"==typeof t.length,"Expected message to be an array-like, a hex string, or a BN instance"),d(t.length>>>0===t.length);for(var s=0;s<t.length;s++)d((255&t[s])===t[s])}e=this.keyFromPrivate(e,r),t=this._truncateToN(t,!1,o.msgBitLength),d(!t.isNeg(),"Can not sign a negative message");var a=this.n.byteLength(),u=e.getPrivate().toArray("be",a),l=t.toArray("be",a);d(new n(l).eq(t),"Can not sign message");for(var f=new i({hash:this.hash,entropy:u,nonce:l,pers:o.pers,persEnc:o.persEnc||"utf8"}),c=this.n.sub(new n(1)),g=0;;g++){var p=o.k?o.k(g):new n(f.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(c)>=0)){var m=this.g.mul(p);if(!m.isInfinity()){var b=m.getX(),y=b.umod(this.n);if(0!==y.cmpn(0)){var v=p.invm(this.n).mul(y.mul(e.getPrivate()).iadd(t));if(0!==(v=v.umod(this.n)).cmpn(0)){var _=(m.getY().isOdd()?1:0)|(0!==b.cmp(y)?2:0);return o.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),_^=1),new h({r:y,s:v,recoveryParam:_})}}}}}},l.prototype.verify=function(t,e,r,n,i){i||(i={}),t=this._truncateToN(t,!1,i.msgBitLength),r=this.keyFromPublic(r,n);var o=(e=new h(e,"hex")).r,s=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,d=s.invm(this.n),u=d.mul(t).umod(this.n),l=d.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(u,r.getPublic(),l)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(u,r.getPublic(),l)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},l.prototype.recoverPubKey=function(t,e,r,i){d((3&r)===r,"The recovery param is more than two bits"),e=new h(e,i);var o=this.n,s=new n(t),a=e.r,u=e.s,l=1&r,f=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");a=f?this.curve.pointFromX(a.add(this.curve.n),l):this.curve.pointFromX(a,l);var c=e.r.invm(o),g=o.sub(s).mul(c).umod(o),p=u.mul(c).umod(o);return this.g.mulAdd(g,a,p)},l.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new h(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},1200:(t,e,r)=>{"use strict";var n=r(8490),i=r(7011).assert;function o(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=o,o.fromPublic=function(t,e,r){return e instanceof o?e:new o(t,{pub:e,pubEnc:r})},o.fromPrivate=function(t,e,r){return e instanceof o?e:new o(t,{priv:e,privEnc:r})},o.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},o.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(t,e){this.priv=new n(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?i(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},o.prototype.derive=function(t){return t.validate()||i(t.validate(),"public point not validated"),t.mul(this.priv).getX()},o.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},o.prototype.verify=function(t,e,r){return this.ec.verify(t,e,this,void 0,r)},o.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},8545:(t,e,r)=>{"use strict";var n=r(8490),i=r(7011),o=i.assert;function s(t,e){if(t instanceof s)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new n(t.r,16),this.s=new n(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function a(){this.place=0}function d(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===t[e.place])return!1;for(var i=0,o=0,s=e.place;o<n;o++,s++)i<<=8,i|=t[s],i>>>=0;return!(i<=127)&&(e.place=s,i)}function u(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e<r;)e++;return 0===e?t:t.slice(e)}function h(t,e){if(e<128)t.push(e);else{var r=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}t.exports=s,s.prototype._importDER=function(t,e){t=i.toArray(t,e);var r=new a;
vendor: 4,230 bytes, line 15672
15672if(48!==t[r.place++])return!1;var o=d(t,r);if(!1===o)return!1;if(o+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var s=d(t,r);if(!1===s)return!1;if(128&t[r.place])return!1;var u=t.slice(r.place,s+r.place);if(r.place+=s,2!==t[r.place++])return!1;var h=d(t,r);if(!1===h)return!1;if(t.length!==h+r.place)return!1;if(128&t[r.place])return!1;var l=t.slice(r.place,h+r.place);if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new n(u),this.s=new n(l),this.recoveryParam=null,!0},s.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=u(e),r=u(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];h(n,e.length),(n=n.concat(e)).push(2),h(n,r.length);var o=n.concat(r),s=[48];return h(s,o.length),s=s.concat(o),i.encode(s,t)}},8650:(t,e,r)=>{"use strict";var n=r(7952),i=r(480),o=r(7011),s=o.assert,a=o.parseBytes,d=r(6661),u=r(220);function h(t){if(s("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof h))return new h(t);t=i[t].curve,this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=n.sha512}t.exports=h,h.prototype.sign=function(t,e){t=a(t);var r=this.keyFromSecret(e),n=this.hashInt(r.messagePrefix(),t),i=this.g.mul(n),o=this.encodePoint(i),s=this.hashInt(o,r.pubBytes(),t).mul(r.priv()),d=n.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:d,Rencoded:o})},h.prototype.verify=function(t,e,r){if(t=a(t),(e=this.makeSignature(e)).S().gte(e.eddsa.curve.n)||e.S().isNeg())return!1;var n=this.keyFromPublic(r),i=this.hashInt(e.Rencoded(),n.pubBytes(),t),o=this.g.mul(e.S());return e.R().add(n.pub().mul(i)).eq(o)},h.prototype.hashInt=function(){for(var t=this.hash(),e=0;e<arguments.length;e++)t.update(arguments[e]);return o.intFromLE(t.digest()).umod(this.curve.n)},h.prototype.keyFromPublic=function(t){return d.fromPublic(this,t)},h.prototype.keyFromSecret=function(t){return d.fromSecret(this,t)},h.prototype.makeSignature=function(t){return t instanceof u?t:new u(this,t)},h.prototype.encodePoint=function(t){var e=t.getY().toArray("le",this.encodingLength);return e[this.encodingLength-1]|=t.getX().isOdd()?128:0,e},h.prototype.decodePoint=function(t){var e=(t=o.parseBytes(t)).length-1,r=t.slice(0,e).concat(-129&t[e]),n=!!(128&t[e]),i=o.intFromLE(r);return this.curve.pointFromY(i,n)},h.prototype.encodeInt=function(t){return t.toArray("le",this.encodingLength)},h.prototype.decodeInt=function(t){return o.intFromLE(t)},h.prototype.isPoint=function(t){return t instanceof this.pointClass}},6661:(t,e,r)=>{"use strict";var n=r(7011),i=n.assert,o=n.parseBytes,s=n.cachedProperty;function a(t,e){this.eddsa=t,this._secret=o(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=o(e.pub)}a.fromPublic=function(t,e){return e instanceof a?e:new a(t,{pub:e})},a.fromSecret=function(t,e){return e instanceof a?e:new a(t,{secret:e})},a.prototype.secret=function(){return this._secret},s(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),s(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),s(a,"privBytes",(function(){var t=this.eddsa,e=this.hash(),r=t.encodingLength-1,n=e.slice(0,t.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),s(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),s(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),s(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(t){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},a.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},a.prototype.getSecret=function(t){return i(this._secret,"KeyPair is public only"),n.encode(this.secret(),t)},a.prototype.getPublic=function(t){return n.encode(this.pubBytes(),t)},t.exports=a},220:(t,e,r)=>{"use strict";var n=r(8490),i=r(7011),o=i.assert,s=i.cachedProperty,a=i.parseBytes;function d(t,e){this.eddsa=t,"object"!=typeof e&&(e=a(e)),Array.isArray(e)&&(o(e.length===2*t.encodingLength,"Signature has invali
15672d size"),e={R:e.slice(0,t.encodingLength),S:e.slice(t.encodingLength)}),o(e.R&&e.S,"Signature without R or S"),t.isPoint(e.R)&&(this._R=e.R),e.S instanceof n&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}s(d,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),s(d,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),s(d,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),s(d,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),d.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},d.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},t.exports=d},4011:t=>{t
vendor: 26,137 bytes, line 15672
15672.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},
vendor: 9,998 bytes, line 15672
156727011:(t,e,r)=>{"use strict";var n=e,i=r(8490),o=r(3349),s=r(4367);n.assert=o,n.toArray=s.toArray,n.zero2=s.zero2,n.toHex=s.toHex,n.encode=s.encode,n.getNAF=function(t,e,r){var n,i=new Array(Math.max(t.bitLength(),r)+1);for(n=0;n<i.length;n+=1)i[n]=0;var o=1<<e+1,s=t.clone();for(n=0;n<i.length;n++){var a,d=s.andln(o-1);s.isOdd()?(a=d>(o>>1)-1?(o>>1)-d:d,s.isubn(a)):a=0,i[n]=a,s.iushrn(1)}return i},n.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n,i=0,o=0;t.cmpn(-i)>0||e.cmpn(-o)>0;){var s,a,d=t.andln(3)+i&3,u=e.andln(3)+o&3;3===d&&(d=-1),3===u&&(u=-1),s=1&d?3!=(n=t.andln(7)+i&7)&&5!==n||2!==u?d:-d:0,r[0].push(s),a=1&u?3!=(n=e.andln(7)+o&7)&&5!==n||2!==d?u:-u:0,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),t.iushrn(1),e.iushrn(1)}return r},n.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(t){return"string"==typeof t?n.toArray(t,"hex"):t},n.intFromLE=function(t){return new i(t,"hex","le")}},8490:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(9368).Buffer}catch(t){}function a(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function d(t,e,r){var n=a(t,r);return r-1>=e&&(n|=a(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s<o;s++){var a=t.charCodeAt(s)-48;i*=n,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===r)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,d=0,h=r;h<a;h+=n)d=u(t,h,h+n,e),this.imuln(i),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d);if(0!==s){var l=1;for(d=u(t,h,t.length,e),h=0;h<s;h++)l*=e;this.imuln(l),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,d=s/67108864|0;r.words[0]=a;for(var u=1;u<n;u++){for(var h=d>>>26,l=67108863&d,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var g=u-c|0;h+=(s=(i=0|t.words[g])*(o=0|e.words[c])+l)/67108864|0,l=67108863&s}r.words[u]=0|l,d=0|h}return 0!==d?r.words[u]=0|d:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],d=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),r=0!==o||s!==this.length-1?h[6-d.length]+d+r:d+r}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=l[t],c=f[t];r="";var g=this.clone();for(g.negative=0;!g.isZero();){var p=g.modn(c).toString(t);r=(g=g.idivn(c)).isZero()?p+r:h[u-p.length]+p+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,d="le"===e,u=new t(o),h=this.clone();if(d){for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[a]=s;for(;a<o;a++)u[a]=0}else{for(a=0;a<o-i;a++)u[a]=0;for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[o-a-1]=s}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return n(!(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return n(!(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return n(!
vendor: 2,330 bytes, line 15672
15672(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},o.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var 
vendor: 7,651 bytes, line 15672
15672g=function(t,e,r){var n,i,o,s=t.words,a=e.words,d=r.words,u=0,h=0|s[0],l=8191&h,f=h>>>13,c=0|s[1],g=8191&c,p=c>>>13,m=0|s[2],b=8191&m,y=m>>>13,v=0|s[3],_=8191&v,M=v>>>13,w=0|s[4],$=8191&w,S=w>>>13,N=0|s[5],E=8191&N,T=N>>>13,A=0|s[6],R=8191&A,P=A>>>13,O=0|s[7],C=8191&O,I=O>>>13,L=0|s[8],D=8191&L,U=L>>>13,k=0|s[9],x=8191&k,F=k>>>13,B=0|a[0],V=8191&B,j=B>>>13,H=0|a[1],G=8191&H,W=H>>>13,Y=0|a[2],z=8191&Y,q=Y>>>13,K=0|a[3],Z=8191&K,X=K>>>13,J=0|a[4],Q=8191&J,tt=J>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],dt=8191&at,ut=at>>>13,ht=0|a[8],lt=8191&ht,ft=ht>>>13,ct=0|a[9],gt=8191&ct,pt=ct>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,j))+Math.imul(f,V)|0))<<13)|0;u=((o=Math.imul(f,j))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(g,V),i=(i=Math.imul(g,j))+Math.imul(p,V)|0,o=Math.imul(p,j);var bt=(u+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(f,G)|0))<<13)|0;u=((o=o+Math.imul(f,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,j))+Math.imul(y,V)|0,o=Math.imul(y,j),n=n+Math.imul(g,G)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(p,G)|0,o=o+Math.imul(p,W)|0;var yt=(u+(n=n+Math.imul(l,z)|0)|0)+((8191&(i=(i=i+Math.imul(l,q)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,q)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,V),i=(i=Math.imul(_,j))+Math.imul(M,V)|0,o=Math.imul(M,j),n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(g,z)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(p,z)|0,o=o+Math.imul(p,q)|0;var vt=(u+(n=n+Math.imul(l,Z)|0)|0)+((8191&(i=(i=i+Math.imul(l,X)|0)+Math.imul(f,Z)|0))<<13)|0;u=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul($,V),i=(i=Math.imul($,j))+Math.imul(S,V)|0,o=Math.imul(S,j),n=n+Math.imul(_,G)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,W)|0,n=n+Math.imul(b,z)|0,i=(i=i+Math.imul(b,q)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,q)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(p,Z)|0,o=o+Math.imul(p,X)|0;var _t=(u+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,V),i=(i=Math.imul(E,j))+Math.imul(T,V)|0,o=Math.imul(T,j),n=n+Math.imul($,G)|0,i=(i=i+Math.imul($,W)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(_,z)|0,i=(i=i+Math.imul(_,q)|0)+Math.imul(M,z)|0,o=o+Math.imul(M,q)|0,n=n+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,X)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(p,Q)|0,o=o+Math.imul(p,tt)|0;var Mt=(u+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(f,rt)|0))<<13)|0;u=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(R,V),i=(i=Math.imul(R,j))+Math.imul(P,V)|0,o=Math.imul(P,j),n=n+Math.imul(E,G)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul($,z)|0,i=(i=i+Math.imul($,q)|0)+Math.imul(S,z)|0,o=o+Math.imul(S,q)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(p,rt)|0,o=o+Math.imul(p,nt)|0;var wt=(u+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,st)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,j))+Math.imul(I,V)|0,o=Math.imul(I,j),n=n+Math.imul(R,G)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(P,G)|0,o=o+Math.imul(P,W)|0,n=n+Math.imul(E,z)|0,i=(i=i+Math.imul(E,q)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,q)|0,n=n+Math.imul($,Z)|0,i=(i=i+Math.imul($,X)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(p,ot)|0,o=o+Math.imul(p,st)|0;var $t=(u+(n=n+Math.imul(l,dt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ut)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,j))+Math.imul(U,V)|0,o=Math.imul(U,j),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(I,G)|0,o=o+Math.imul(I,W)|0,n=n+Math.imul(R,z)|0,i=(i=i+Math.imul(R,q)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,q)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul($,Q)|0,i=(i=i+Math.imul($,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(g,dt)|0,i=(i=i+Math.imul(g,ut)|0)+Math.imul(p,dt)|0,o=o+Math.imul(p,ut)|0;var St=(u+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ft)|0)+Math.imul(f,lt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(x,V),i=(i=Math.imul(x,j))+Math.imul(F,V)|0,o=Math.imul(F,j),n=n+Math.imul(D,G)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(C,z)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(I,z)|0,o=o+Math.imul(I,q)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul($,rt)|0,i=(i=i+Math.imul($,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,n=n+Math.imul(b,dt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(g,lt)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(p,lt)|0,o=o+Math.imul(p,ft)|0;var Nt=(u+(n=n+Math.imul(l,gt)|0)|0)+((8191&(i=(i=i+Math.imul(l,pt)|0)+Math.imul(f,gt)|0))<<13)|0;u=((o=o+Math.imul(f,pt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,W))+Math.imul(F,G)|0,o=Math.imul(F,W),n=n+Math.imul(D,z)|0,i=(i=i+Math.imul(D,q)|0)+Math.imul(U,z)|0,o=o+Math.imul(U,q)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(I,Z)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul($,ot)|0,i=(i=i+Math.imul($,st)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,st)|0,n=n+Math.imul(_,dt)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(M,dt)|0,o=o+Math.imul(M,ut)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ft)|0)+Math.imul(y,lt)|0,o=o+Math.imul(y,ft)|0;var Et=(u+(n=n+Math.imul(g,gt)|0)|0)+((8191&(i=(i=i+Math.imul(g,pt)|0)+Math.imul(p,gt)|0))<<13)|0;u=((o=o+Math.imul(p,pt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,z),i=(i=Math.imul(x,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(D,Z)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,X)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul($,dt)|0,i=(i=i+Math.imul($,ut)|0)+Math.imul(S,dt)|0,o=o+Math.imul(S,ut)|0,n=n+Math.imul(_,lt)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(M,lt)|0,o=o+Math.imul(M,ft)|0;var Tt=(u+(n=n+Math.imul(b,gt)|0)|0)+((8191&(i=(i=i+Math.imul(b,pt)|0)+Math.imul(y,gt)|0))<<13)|0;u=((o=o+Math.imul(y,pt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(x,Z),i=(i=Math.imul(x,X))+Math.imul(F,Z)|0,o=Math.imul(F,X
vendor: 5,428 bytes, line 15672
15672),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(E,dt)|0,i=(i=i+Math.imul(E,ut)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul($,lt)|0,i=(i=i+Math.imul($,ft)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ft)|0;var At=(u+(n=n+Math.imul(_,gt)|0)|0)+((8191&(i=(i=i+Math.imul(_,pt)|0)+Math.imul(M,gt)|0))<<13)|0;u=((o=o+Math.imul(M,pt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(x,Q),i=(i=Math.imul(x,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(U,rt)|0,o=o+Math.imul(U,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(R,dt)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(P,dt)|0,o=o+Math.imul(P,ut)|0,n=n+Math.imul(E,lt)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(T,lt)|0,o=o+Math.imul(T,ft)|0;var Rt=(u+(n=n+Math.imul($,gt)|0)|0)+((8191&(i=(i=i+Math.imul($,pt)|0)+Math.imul(S,gt)|0))<<13)|0;u=((o=o+Math.imul(S,pt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(x,rt),i=(i=Math.imul(x,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(D,ot)|0,i=(i=i+Math.imul(D,st)|0)+Math.imul(U,ot)|0,o=o+Math.imul(U,st)|0,n=n+Math.imul(C,dt)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(I,dt)|0,o=o+Math.imul(I,ut)|0,n=n+Math.imul(R,lt)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(P,lt)|0,o=o+Math.imul(P,ft)|0;var Pt=(u+(n=n+Math.imul(E,gt)|0)|0)+((8191&(i=(i=i+Math.imul(E,pt)|0)+Math.imul(T,gt)|0))<<13)|0;u=((o=o+Math.imul(T,pt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(x,ot),i=(i=Math.imul(x,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(D,dt)|0,i=(i=i+Math.imul(D,ut)|0)+Math.imul(U,dt)|0,o=o+Math.imul(U,ut)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(I,lt)|0,o=o+Math.imul(I,ft)|0;var Ot=(u+(n=n+Math.imul(R,gt)|0)|0)+((8191&(i=(i=i+Math.imul(R,pt)|0)+Math.imul(P,gt)|0))<<13)|0;u=((o=o+Math.imul(P,pt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(x,dt),i=(i=Math.imul(x,ut))+Math.imul(F,dt)|0,o=Math.imul(F,ut),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ft)|0)+Math.imul(U,lt)|0,o=o+Math.imul(U,ft)|0;var Ct=(u+(n=n+Math.imul(C,gt)|0)|0)+((8191&(i=(i=i+Math.imul(C,pt)|0)+Math.imul(I,gt)|0))<<13)|0;u=((o=o+Math.imul(I,pt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(x,lt),i=(i=Math.imul(x,ft))+Math.imul(F,lt)|0,o=Math.imul(F,ft);var It=(u+(n=n+Math.imul(D,gt)|0)|0)+((8191&(i=(i=i+Math.imul(D,pt)|0)+Math.imul(U,gt)|0))<<13)|0;u=((o=o+Math.imul(U,pt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Lt=(u+(n=Math.imul(x,gt))|0)+((8191&(i=(i=Math.imul(x,pt))+Math.imul(F,gt)|0))<<13)|0;return u=((o=Math.imul(F,pt))+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,d[0]=mt,d[1]=bt,d[2]=yt,d[3]=vt,d[4]=_t,d[5]=Mt,d[6]=wt,d[7]=$t,d[8]=St,d[9]=Nt,d[10]=Et,d[11]=Tt,d[12]=At,d[13]=Rt,d[14]=Pt,d[15]=Ot,d[16]=Ct,d[17]=It,d[18]=Lt,0!==u&&(d[19]=u,r.length++),r};function p(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(g=c),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?g(this,t,e):n<63?c(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,d=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=d;u++){var h=o-u,l=(0|t.words[h])*(0|e.words[u]),f=67108863&l;a=67108863&(f=f+a|0),i+=(s=(s=s+(l/67108864|0)|0)+(f>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):p(this,t,e),r},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},m.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s<o;s++)n[s]=e[t[s]],i[s]=r[t[s]]},m.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,d=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),h=0;h<i;h+=a)for(var l=d,f=u,c=0;c<s;c++){var g=r[h+c],p=n[h+c],m=r[h+c+s],b=n[h+c+s],y=l*m-f*b;b=l*b+f*m,m=y,r[h+c]=g+m,n[h+c]=p+b,r[h+c+s]=g-m,n[h+c+s]=p-b,c!==a&&(y=d*l-u*f,f=d*f+u*l,l=y)}},m.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},m.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},m.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},m.prototype.convert13b=function(t,e,r,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],r[2*s]=8191&o,o>>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)r[s]=0;n(0===o),n(!(-8192&o))},m.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},m.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),s=new Array(n),a=new Array(n),d=new Array(n),u=new Array(n),h=new Array(n),l=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,s,n),this.convert13b(e.words,e.length,u,n),this.transform(s,o,a,d,n,i),this.transform(u,o,h,l,n,i);for(var c=0;c<n;
vendor: 16,384 bytes, line 15672
15672c++){var g=a[c]*h[c]-d[c]*l[c];d[c]=a[c]*l[c]+d[c]*h[c],a[c]=g}return this.conjugate(a,d,n),this.transform(a,d,f,o,n,i),this.conjugate(f,o,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),p(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){n("number"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,o=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,d=(0|this.words[e])-a<<r;this.words[e]=d|s,s=a>>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,d=r;if(i-=s,i=Math.max(0,i),d){for(var u=0;u<s;u++)d.words[u]=this.words[u];d.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var h=0;for(u=this.length-1;u>=0&&(0!==h||u>=i);u--){var l=0|this.words[u];this.words[u]=h<<26-o|l>>>o,h=l&a}return d&&0!==h&&(d.words[d.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,r){var i,o,s=t.length+r;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+r])+a;var d=(0|t.words[i])*e;a=((o-=67108863&d)>>26)-(d/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)a=(o=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&o;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,d=n.length-i.length;if("mod"!==e){(a=new o(null)).length=d+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var h=n.clone()._ishlnsubmul(i,1,d);0===h.negative&&(n=h,a&&(a.words[d]=1));for(var l=d-1;l>=0;l--){var f=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(i,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);a&&(a.words[l]=f)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&t.negative?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),d=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var h=r.clone(),l=e.clone();!e.isZero();){for(var f=0,c=1;!(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(h),s.isub(l)),i.iushrn(1),s.iushrn(1);for(var g=0,p=1;!(r.words[0]&p)&&g<26;++g,p<<=1);if(g>0)for(r.iushrn(g);g-- >0;)(a.isOdd()||d.isOdd())&&(a.iadd(h),d.isub(l)),a.iushrn(1),d.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(d)):(r.isub(e),a.isub(i),d.isub(s))}return{a,b:d,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),d=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,h=1;!(e.words[0]&h)&&u<26;++u,h<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(d),s.iushrn(1);for(var l=0,f=1;!(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(d),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,s=r;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new $(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){$.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(v,y),v.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(_,y),i(M,y),i(w,y),w.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return b[t]=e,e},$.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},$.prototype._verify2=function(t,e){n(!(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},$.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},$.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},$.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},$.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},$.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},$.prototype.isqr=function(t){return this.imul(t,t.clone())},$.prototype.sqr=function(t){return th
vendor: 1,235 bytes, line 15672
15672is.mul(t,t)},$.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),d=a.redNeg(),u=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,u).cmp(d);)h.redIAdd(d);for(var l=this.pow(h,i),f=this.pow(t,i.addn(1).iushrn(1)),c=this.pow(t,i),g=s;0!==c.cmp(a);){for(var p=c,m=0;0!==p.cmp(a);m++)p=p.redSqr();n(m<g);var b=this.pow(l,new o(1).iushln(g-m-1));f=f.redMul(b),l=b.redSqr(),c=c.redMul(l),g=m}return f},$.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},$.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],s=0,a=0,d=e.bitLength()%26;for(0===d&&(d=26),n=e.length-1;n>=0;n--){for(var u=e.words[n],h=d-1;h>=0;h--){var l=u>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==s?(s<<=1,s|=l,(4==++a||0===n&&0===h)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}
vendor: 5,711 bytes, line 15672
15672d=26}return i},$.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},$.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new S(t)},i(S,$),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},7007:t=>{"use strict";var e,r="object"==typeof Reflect?Reflect:null,n=r&&"function"==typeof r.apply?r.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};e=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var i=Number.isNaN||function(t){return t!=t};function o(){o.init.call(this)}t.exports=o,t.exports.once=function(t,e){return new Promise((function(r,n){function i(r){t.removeListener(e,o),n(r)}function o(){"function"==typeof t.removeListener&&t.removeListener("error",i),r([].slice.call(arguments))}p(t,e,o,{once:!0}),"error"!==e&&function(t,e){"function"==typeof t.on&&p(t,"error",e,{once:!0})}(t,i)}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function a(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function d(t){return void 0===t._maxListeners?o.defaultMaxListeners:t._maxListeners}function u(t,e,r,n){var i,o,s,u;if(a(r),void 0===(o=t._events)?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),o=t._events),s=o[e]),void 0===s)s=o[e]=r,++t._eventsCount;else if("function"==typeof s?s=o[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(i=d(t))>0&&s.length>i&&!s.warned){s.warned=!0;var h=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");h.name="MaxListenersExceededWarning",h.emitter=t,h.type=e,h.count=s.length,u=h,console&&console.warn&&console.warn(u)}return t}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=h.bind(n);return i.listener=r,n.wrapFn=i,i}function f(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}(i):g(i,i.length)}function c(t){var e=this._events;if(void 0!==e){var r=e[t];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function g(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function p(t,e,r,n){if("function"==typeof t.on)n.once?t.once(e,r):t.on(e,r);else{if("function"!=typeof t.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t);t.addEventListener(e,(function i(o){n.once&&t.removeEventListener(e,i),r(o)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(t){if("number"!=typeof t||t<0||i(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");s=t}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||i(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},o.prototype.getMaxListeners=function(){return d(this)},o.prototype.emit=function(t){for(var e=[],r=1;r<arguments.length;r++)e.push(arguments[r]);var i="error"===t,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var d=o[t];if(void 0===d)return!1;if("function"==typeof d)n(d,this,e);else{var u=d.length,h=g(d,u);for(r=0;r<u;++r)n(h[r],this,e)}return!0},o.prototype.addListener=function(t,e){return u(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return u(this,t,e,!0)},o.prototype.once=function(t,e){return a(e),this.on(t,l(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return a(e),this.prependListener(t,l(this,t,e)),this},o.prototype.removeListener=function(t,e){var r,n,i,o,s;if(a(e),void 0===(n=this._events))return this;if(void 0===(r=n[t]))return this;if(r===e||r.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete n[t],n.removeListener&&this.emit
15672("removeListener",t,r.listener||e));else if("function"!=typeof r){for(i=-1,o=r.length-1;o>=0;o--)if(r[o]===e||r[o].listener===e){s=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(r,i),1===r.length&&(n[t]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",t,s||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[t]),this;if(0===arguments.length){var i,o=Object.keys(r);for(n=0;n<o.length;++n)"removeListener"!==(i=o[n])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=r[t]))this.removeListener(t,e);else if(void 0!==e)for(n=e.length-1;n>=0;n--)this.removeListener(t,e[n]);return this},o.prototype.listeners=function(t){return f(this,t,!0)},o.prototype.rawListeners=function(t){return f(this,t,!1)},o.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):c.call(t,e)},o.prototype.listenerCount=c,o.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},8078:(t,e,r)=>{var n=r(2861).Buffer,i=r(8276);t.exports=function(t,e,r,o){if(n.isBuffer(t)||(t=n.from(t,"binary")),e&&(n.isBuffer(e)||(e=n.from(e,"binary")),8!==e.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var s=r/8,a=n.alloc(s),d=n.alloc(o||0),u=n.alloc(0);s>0||o>0;){var h=new i;h.update(u),h.update(t),e&&h.update(e),u=h.digest();var l=0;if(s>0){var f=a.length-s;l=Math.min(s,u.length),u.copy(a,f,0,l),s-=l}if(l<u.length&&o>0){var c=d.length-o,g=Math.min(o,u.length-l);u.copy(d,c,l,l+g),o-=g}}return u.fill(0),{key:a,iv:d}}},1894:t=>{t.exports="object"==typeof self?self.FormData:window.FormData},7e3:(module,__unused_webpack_exports,__webpack_require__)=>{var f;f=function(){var define,module,exports;return function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){if(o)return o(s,!0);var d=new Error("Cannot find module '"+s+"'");throw d.code="MODULE_NOT_FOUND",d}var u=r[s]={exports:{}};e[s][0].call(u.exports,(function(t){return i(e[s][1][t]||t)}),u,u.exports,t,e,r,n)}return r[s].exports}for(var o=void 0,s=0;s<n.length;s++)i(n[s]);return i}({1:[function(require,module,exports){(function(global){(function(){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.createTemplateTagFirstArg=function(t){return t.raw=t},$jscomp.createTemplateTagFirstArgWithRaw=function(t,e){return t.raw=e,t},$jscomp.arrayIteratorImpl=function(t){var e=0;return function(){return e<t.length?{done:!1,value:t[e++]}:{done:!0}}},$jscomp.arrayIterator=function(t){return{next:$jscomp.arrayIteratorImpl(t)}},$jscomp.makeIterator=function(t){var e="undefined"!=typeof Symbol&&Symbol.iterator&&t[Symbol.iterator];return e?e.call(t):$jscomp.arrayIterator(t)},$jscomp.arrayFromIterator=function(t){for(var e,r=[];!(e=t.next()).done;)r.push(e.value);return r},$jscomp.arrayFromIterable=function(t){return t instanceof Array?t:$jscomp.arrayFromIterator($jscomp.makeIterator(t))},$jscomp.checkStringArgs=function(t,e,r){if(null==t)throw new TypeError("The 'this' value for String.prototype."+r+" must not be null or undefined");if(e instanceof RegExp)throw new TypeError("First argument to String.prototype."+r+" must not be a regular expression");return t+""},$jscomp.ASSUME_ES5=!1,$jscomp.ASSUME_NO_NATIVE_MAP=!1,$jscomp.ASSUME_NO_NATIVE_SET=!1,$jscomp.SIMPLE_FROUND_POLYFILL=!1,$jscomp.ISOLATE_POLYFILLS=!1,$jscomp.FORCE_POLYFILL_PROMISE=!1,$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1,$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(t,e,r){return t==Array.prototype||t==Object.prototype||(t[e]=r.value),t},$jscomp.getGlobal=function(t){t=["object"==typeof globalThis&&globalThis,t,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var e=0;e<t.length;++e){var r=t[e];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")},$jscomp.global=$jscomp.getGlobal(this),$jscomp.IS_SYMBOL_NATIVE="function"==typeof Symbol&&"symbol"==typeof Symbol("x"),$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE,$jscomp.polyfills={},$jscomp.propertyToPolyfillSymbol={},$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(t,e){var r=$jscomp.propertyToPolyfillSymbol[e];return null==r?t[e]:void 0!==(r=t[r])?r:t[e]};$jscomp.polyfill=function(t,e,r,n){e&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(t,e,r,n):$jscomp.polyfillUnisolated(t,e,r,n))},$jscomp.polyfillUnisolated=function(t,e,r,n){for(r=$jscomp.global,t=t.split("."),n=0;n<t.length-1;n++){var i=t[n];if(!(i in r))return;r=r[i]}
15672(e=e(n=r[t=t[t.length-1]]))!=n&&null!=e&&$jscomp.defineProperty(r,t,{configurable:!0,writable:!0,value:e})},$jscomp.polyfillIsolated=function(t,e,r,n){var i=t.split(".");t=1===i.length,n=i[0],n=!t&&n in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var o=0;o<i.length-1;o++){var s=i[o];if(!(s in n))return;n=n[s]}i=i[i.length-1],null!=(e=e(r=$jscomp.IS_SYMBOL_NATIVE&&"es6"===r?n[i]:null))&&(t?$jscomp.defineProperty($jscomp.polyfills,i,{configurable:!0,writable:!0,value:e}):e!==r&&($jscomp.propertyToPolyfillSymbol[i]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(i):$jscomp.POLYFILL_PREFIX+i,i=$jscomp.propertyToPolyfillSymbol[i],$jscomp.defineProperty(n,i,{configurable:!0,writable:!0,value:e})))},$jscomp.polyfill("String.prototype.endsWith",(function(t){return t||function(t,e){var r=$jscomp.checkStringArgs(this,t,"endsWith");t+="",void 0===e&&(e=r.length),e=Math.max(0,Math.min(0|e,r.length));for(var n=t.length;0<n&&0<e;)if(r[--e]!=t[--n])return!1;return 0>=n}}),"es6","es3"),$jscomp.findInternal=function(t,e,r){t instanceof String&&(t=String(t));for(var n=t.length,i=0;i<n;i++){var o=t[i];if(e.call(r,o,i,t))return{i,v:o}}return{i:-1,v:void 0}},$jscomp.polyfill("Array.prototype.find",(function(t){return t||function(t,e){return $jscomp.findInternal(this,t,e).v}}),"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",(function(t){return t||function(t,e){var r=$jscomp.checkStringArgs(this,t,"startsWith");t+="";var n=r.length,i=t.length;e=Math.max(0,Math.min(0|e,r.length));for(var o=0;o<i&&e<n;)if(r[e++]!=t[o++])return!1;return o>=i}}),"es6","es3"),$jscomp.polyfill("String.prototype.repeat",(function(t){return t||function(t){var e=$jscomp.checkStringArgs(this,null,"repeat");if(0>t||1342177279<t)throw new RangeError("Invalid count value");t|=0;for(var r="";t;)1&t&&(r+=e),(t>>>=1)&&(e+=e);return r}}),"es6","es3"),$jscomp.initSymbol=function(){},$jscomp.polyfill("Symbol",(function(t){if(t)return t;var e=function(t,e){this.$jscomp$symbol$id_=t,$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:e})};e.prototype.toString=function(){return this.$jscomp$symbol$id_};var r=0,n=function(t){if(this instanceof n)throw new TypeError("Symbol is not a constructor");return new e("jscomp_symbol_"+(t||"")+"_"+r++,t)};return n}),"es6","es3"),$jscomp.polyfill("Symbol.iterator",(function(t){if(t)return t;t=Symbol("Symbol.iterator");for(var e="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),r=0;r<e.length;r++){var n=$jscomp.global[e[r]];"function"==typeof n&&"function"!=typeof n.prototype[t]&&$jscomp.defineProperty(n.prototype,t,{configurable:!0,writable:!0,value:function(){return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this))}})}return t}),"es6","es3"),$jscomp.iteratorPrototype=function(t){return(t={next:t})[Symbol.iterator]=function(){return this},t},$jscomp.iteratorFromArray=function(t,e){t instanceof String&&(t+="");var r=0,n=!1,i={next:function(){if(!n&&r<t.length){var i=r++;return{value:e(i,t[i]),done:!1}}return n=!0,{done:!0,value:void 0}}};return i[Symbol.iterator]=function(){return i},i},$jscomp.polyfill("Array.prototype.keys",(function(t){return t||function(){return $jscomp.iteratorFromArray(this,(function(t){return t}))}}),"es6","es3"),$jscomp.polyfill("Object.is",(function(t){return t||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}}),"es6","es3"),$jscomp.polyfill("Array.prototype.includes",(function(t){return t||function(t,e){var r=this;r instanceof String&&(r=String(r));var n=r.length;for(0>(e=e||0)&&(e=Math.max(e+n,0));e<n;e++){var i=r[e];if(i===t||Object.is(i,t))return!0}return!1}}),"es7","es3"),$jscomp.polyfill("String.prototype.includes",(function(t){return t||function(t,e){return-1!==$jscomp.checkStringArgs(this,t,"includes").indexOf(t,e||0)}}),"es6","es3");var COMPILED=!0,goog=goog||{};function module$contents$goog$debug$Error_DebugError(t){if(Error.captureStackTrace)Error.captureStackTrace(this,module$contents$goog$debug$Error_DebugError);else{var e=Error().stack;e&&(this.stack=e)}t&&(this.message=String(t)),this.reportErrorToServer=!0}goog.global=this||self,goog.exportPath_=function(t,e,r,n){t=t.split("."),n=n||goog.global,t[0]in n||void 0===n.execScript||n.execScript("var "+t[0]);for(var i;t.length&&(i=t.shift());)if(t.length||void 0===e)n=n[i]&&n[i]!==Object.prototype[i]?n[i]:n[i]={};else if(!r&&goog.isObject(e)&&goog.isObject(n[i]))for(var o in e)e.hasOwnProperty(o)&&(n[i][o]=e[o]);else n[i]=e},goog.define=function(t,e){if(!COMPILED){var r=goog.global.CLOSURE_UNCOMPILED_DEFINES,n=goog.global.CLOSURE_DEFINES;r&&void 0===r.nodeType&&Object.prototype.hasOwnProperty.call(r,t)?e=r[t]:n&&void 0===n.nodeType&&Object.prototype.hasOwnProperty.call(n,t)&&(e=n[t])}return e},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(t){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");if(!COMPILED&&goog.isProvided_(t))throw Error('Namespace "'+t+'" already declared.');goog.constructNamespace_(t)},goog.constructNamespace_=function(t,e,r){if(!COMPILED){delete goog.implicitNamespaces_[t];for(var n=t;(n=n.substring(0,n.lastIndexOf(".")))&&!goog.getObjectByName(n);)goog.implicitNamespaces_[n]=!0}goog.exportPath_(t,e,r)},goog.getScriptNonce=function(t){return t&&t!=goog.global?goog.getScriptNonce_(t.document):(null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(t){return(t=t.querySelector&&t.querySelector("script[n
15672once]"))&&(t=t.nonce||t.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(t)?t:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(t){if("string"!=typeof t||!t||-1==t.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+t+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");if(goog.moduleLoaderState_.moduleName=t,!COMPILED){if(goog.isProvided_(t))throw Error('Namespace "'+t+'" already declared.');delete goog.implicitNamespaces_[t]}},goog.module.get=function(t){return goog.module.getInternal_(t)},goog.module.getInternal_=function(t){if(!COMPILED){if(t in goog.loadedModules_)return goog.loadedModules_[t].exports;if(!goog.implicitNamespaces_[t])return null!=(t=goog.getObjectByName(t))?t:null}return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var t=goog.global.$jscomp;return!!t&&"function"==typeof t.getCurrentModulePath&&!!t.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(t){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error("goog.declareModuleId may only be called from within an ES6 module");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error("goog.declareModuleId may only be called once per module.");if(t in goog.loadedModules_)throw Error('Module with namespace "'+t+'" already exists.')}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=t;else{var e=goog.global.$jscomp;if(!e||"function"!=typeof e.getCurrentModulePath)throw Error('Module with namespace "'+t+'" has been loaded incorrectly.');e=e.require(e.getCurrentModulePath()),goog.loadedModules_[t]={exports:e,type:goog.ModuleType.ES6,moduleId:t}}},goog.setTestOnly=function(t){if(goog.DISALLOW_TEST_ONLY_CODE)throw t=t||"",Error("Importing test-only code into non-debug environment"+(t?": "+t:"."))},goog.forwardDeclare=function(t){},COMPILED||(goog.isProvided_=function(t){return t in goog.loadedModules_||!goog.implicitNamespaces_[t]&&null!=goog.getObjectByName(t)},goog.implicitNamespaces_={"goog.module":!0}),goog.getObjectByName=function(t,e){t=t.split("."),e=e||goog.global;for(var r=0;r<t.length;r++)if(null==(e=e[t[r]]))return null;return e},goog.addDependency=function(t,e,r,n){!COMPILED&&goog.DEPENDENCIES_ENABLED&&goog.debugLoader_.addDependency(t,e,r,n)},goog.ENABLE_DEBUG_LOADER=!0,goog.logToConsole_=function(t){goog.global.console&&goog.global.console.error(t)},goog.require=function(t){if(!COMPILED){if(goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_.requested(t),goog.isProvided_(t)){if(goog.isInModuleLoader_())return goog.module.getInternal_(t)}else if(goog.ENABLE_DEBUG_LOADER){var e=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{goog.debugLoader_.load_(t)}finally{goog.moduleLoaderState_=e}}return null}},goog.requireType=function(t){return{}},goog.basePath="",goog.nullFunction=function(){},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(t){t.instance_=void 0,t.getInstance=function(){return t.instance_?t.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=t),t.instance_=ne
15672w t)}},goog.instantiatedSingletons_=[],goog.LOAD_MODULE_USING_EVAL=!0,goog.SEAL_MODULE_EXPORTS=goog.DEBUG,goog.loadedModules_={},goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER,goog.TRANSPILE="detect",goog.ASSUME_ES_MODULES_TRANSPILED=!1,goog.TRANSPILE_TO_LANGUAGE="",goog.TRANSPILER="transpile.js",goog.hasBadLetScoping=null,goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var a=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(t){a=!1}goog.hasBadLetScoping=a}return goog.hasBadLetScoping},goog.workaroundSafari10EvalBug=function(t){return"(function(){"+t+"\n;})();\n"},goog.loadModule=function(t){var e=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG};var r={},n=r;if("function"==typeof t)n=t.call(void 0,n);else{if("string"!=typeof t)throw Error("Invalid module definition");goog.useSafari10Workaround()&&(t=goog.workaroundSafari10EvalBug(t)),n=goog.loadModuleFromSource_.call(void 0,n,t)}var i=goog.moduleLoaderState_.moduleName;if("string"!=typeof i||!i)throw Error('Invalid module name "'+i+'"');goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(i,n,r!==n):goog.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==typeof n&&null!=n&&Object.seal(n),goog.loadedModules_[i]={exports:n,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName}}finally{goog.moduleLoaderState_=e}},goog.loadModuleFromSource_=function(a,b){return eval(b),a},goog.normalizePath_=function(t){t=t.split("/");for(var e=0;e<t.length;)"."==t[e]?t.splice(e,1):e&&".."==t[e]&&t[e-1]&&".."!=t[e-1]?t.splice(--e,2):e++;return t.join("/")},goog.loadFileSync_=function(t){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(t);try{var e=new goog.global.XMLHttpRequest;return e.open("get",t,!1),e.send(),0==e.status||200==e.status?e.responseText:null}catch(t){return null}},goog.transpile_=function(t,e,r){var n=goog.global.$jscomp;n||(goog.global.$jscomp=n={});var i=n.transpile;if(!i){var o=goog.basePath+goog.TRANSPILER,s=goog.loadFileSync_(o);if(s){if(function(){(0,eval)(s+"\n//# sourceURL="+o)}.call(goog.global),goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile,i=(n=goog.global.$jscomp).transpile}}return i||(i=n.transpile=function(t,e){return goog.logToConsole_(e+" requires transpilation but no transpiler was found."),t}),i(t,e,r)},goog.typeOf=function(t){var e=typeof t;return"object"!=e?e:t?Array.isArray(t)?"array":e:"null"},goog.isArrayLike=function(t){var e=goog.typeOf(t);return"array"==e||"object"==e&&"number"==typeof t.length},goog.isDateLike=function(t){return goog.isObject(t)&&"function"==typeof t.getFullYear},goog.isObject=function(t){var e=typeof t;return"object"==e&&null!=t||"function"==e},goog.getUid=function(t){return Object.prototype.hasOwnProperty.call(t,goog.UID_PROPERTY_)&&t[goog.UID_PROPERTY_]||(t[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(t){return!!t[goog.UID_PROPERTY_]},goog.removeUid=function(t){null!==t&&"removeAttribute"in t&&t.removeAttribute(goog.UID_PROPERTY_);try{delete t[goog.UID_PROPERTY_]}catch(t){}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.cloneObject=function(t){var e=goog.typeOf(t);if("object"==e||"array"==e){if("function"==typeof t.clone)return t.clone();for(var r in e="array"==e?[]:{},t)e[r]=goog.cloneObject(t[r]);return e}return t},goog.bindNative_=function(t,e,r){return t.call.apply(t.bind,arguments)},goog.bindJs_=function(t,e,r){if(!t)throw Error();if(2<arguments.length){var n=Array.prototype.slice.call(arguments,2);return function(){var r=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(r,n),t.apply(e,r)}}return function(){return t.apply(e,arguments)}},goog.bind=function(t,e,r){return Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(t,e){var r=Array.prototype.slice.call(arguments,1
15672);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}},goog.mixin=function(t,e){for(var r in e)t[r]=e[r]},goog.now=function(){return Date.now()},goog.globalEval=function(t){(0,eval)(t)},goog.getCssName=function(t,e){if("."==String(t).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+t);var r=function(t){return goog.cssNameMapping_[t]||t},n=function(t){t=t.split("-");for(var e=[],n=0;n<t.length;n++)e.push(r(t[n]));return e.join("-")};return n=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?r:n:function(t){return t},t=e?t+"-"+n(e):n(t),goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(t):t},goog.setCssNameMapping=function(t,e){goog.cssNameMapping_=t,goog.cssNameMappingStyle_=e},!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING),goog.getMsg=function(t,e,r){return r&&r.html&&(t=t.replace(/</g,"&lt;")),r&&r.unescapeHtmlEntities&&(t=t.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&apos;/g,"'").replace(/&quot;/g,'"').replace(/&amp;/g,"&")),e&&(t=t.replace(/\{\$([^}]+)}/g,(function(t,r){return null!=e&&r in e?e[r]:t}))),t},goog.getMsgWithFallback=function(t,e){return t},goog.exportSymbol=function(t,e,r){goog.exportPath_(t,e,!0,r)},goog.exportProperty=function(t,e,r){t[e]=r},goog.inherits=function(t,e){function r(){}r.prototype=e.prototype,t.superClass_=e.prototype,t.prototype=new r,t.prototype.constructor=t,t.base=function(t,r,n){for(var i=Array(arguments.length-2),o=2;o<arguments.length;o++)i[o-2]=arguments[o];return e.prototype[r].apply(t,i)}},goog.scope=function(t){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a module.");t.call(goog.global)},COMPILED||(goog.global.COMPILED=COMPILED),goog.defineClass=function(t,e){var r=e.constructor,n=e.statics;return r&&r!=Object.prototype.constructor||(r=function(){throw Error("cannot instantiate an interface (no constructor defined).")}),r=goog.defineClass.createSealingConstructor_(r,t),t&&goog.inherits(r,t),delete e.constructor,delete e.statics,goog.defineClass.applyProperties_(r.prototype,e),null!=n&&(n instanceof Function?n(r):goog.defineClass.applyProperties_(r,n)),r},goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG,goog.defineClass.createSealingConstructor_=function(t,e){return goog.defineClass.SEAL_CLASS_INSTANCES?function(){var e=t.apply(this,arguments)||this;return e[goog.UID_PROPERTY_]=e[goog.UID_PROPERTY_],e}:t},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.defineClass.applyProperties_=function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);for(var n=0;n<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;n++)r=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[n],Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},!COMPILED&&goog.DEPENDENCIES_ENABLED&&(goog.inHtmlDocument_=function(){var t=goog.global.document;return null!=t&&"write"in t},goog.isDocumentLoading_=function(){var t=goog.global.document;return t.attachEvent?"complete"!=t.readyState:"loading"==t.readyState},goog.findBasePath_=function(){if(null!=goog.global.CLOSURE_BASE_PATH&&"string"==typeof goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var t=goog.global.document,e=t.currentScript;for(e=(t=e?[e]:t.getElementsByTagName("SCRIPT")).length-1;0<=e;--e){var r=t[e].src,n=r.lastIndexOf("?");if(n=-1==n?r.length:n,"base.js"==r.substr(n-7,7)){goog.basePath=r.substr(0,n-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null,this.transpilationTarget_=goog.TRANSPILE_TO_LANGUAGE},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function a(t,r){e?d[t]=!0:r()?(c=t,d[t]=!1):e=d[t]=!0}function b(g){try{return!!eval(g)}catch(t){return!1}}var c="es3",d={es3:!1},e=!1,f=goog.global.navigator&&goog.global.navigator.userAgent?goog.global.navigator.userAgent:"";return a("es5",(function(){return b("[1,].length==1")})),a("es6",(function(){return!f.match(/Edge\/(\d+)(\.\d)*/i)&&b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')})),a("es7",(function(){return b("2 ** 2 == 4")})),a("es8",(function(){return b("async () => 1, true")})),a("es9",(function(){return b("({...rest} = {}), true")})),a("es_next",(function(){return!1})),{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(t,e){if("always"==goog.TRANSPILE)return!0;
vendor: 5,598 bytes, line 15672
15672if("never"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var r=this.createRequiresTranspilation_();this.requiresTranspilation_=r.map,this.transpilationTarget_=this.transpilationTarget_||r.target}if(t in this.requiresTranspilation_)return!!this.requiresTranspilation_[t]||!(!goog.inHtmlDocument_()||"es6"!=e||"noModule"in goog.global.document.createElement("script"));throw Error("Unknown language mode: "+t)},goog.Transpiler.prototype.transpile=function(t,e){return goog.transpile_(t,e,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(t){return t.replace(/<\/(SCRIPT)/gi,"\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={},this.idToPath_={},this.written_={},this.loadingDeps_=[],this.depsToLoad_=[],this.paused_=!1,this.factory_=new goog.DependencyFactory(goog.transpiler_),this.deferredCallbacks_={},this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(t,e){function r(){n&&(goog.global.setTimeout(n,0),n=null)}var n=e;if(t.length){e=[];for(var i=0;i<t.length;i++){var o=this.getPathFromDeps_(t[i]);if(!o)throw Error("Unregonized namespace: "+t[i]);e.push(this.dependencies_[o])}o=goog.require;var s=0;for(i=0;i<t.length;i++)o(t[i]),e[i].onLoad((function(){++s==t.length&&r()}))}else r()},goog.DebugLoader_.prototype.loadClosureDeps=function(){this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath+"deps.js"),"deps.js",[],[],{},!1)),this.loadDeps_()},goog.DebugLoader_.prototype.requested=function(t,e){(t=this.getPathFromDeps_(t))&&(e||this.areDepsLoaded_(this.dependencies_[t].requires))&&(e=this.deferredCallbacks_[t])&&(delete this.deferredCallbacks_[t],e())},goog.DebugLoader_.prototype.setDependencyFactory=function(t){this.factory_=t},goog.DebugLoader_.prototype.load_=function(t){if(!this.getPathFromDeps_(t))throw t="goog.require could not find: "+t,goog.logToConsole_(t),Error(t);var e=this,r=[],n=function(t){var i=e.getPathFromDeps_(t);if(!i)throw Error("Bad dependency path or symbol: "+t);if(!e.written_[i]){for(e.written_[i]=!0,t=e.dependencies_[i],i=0;i<t.requires.length;i++)goog.isProvided_(t.requires[i])||n(t.requires[i]);r.push(t)}};n(t),t=!!this.depsToLoad_.length,this.depsToLoad_=this.depsToLoad_.concat(r),this.paused_||t||this.loadDeps_()},goog.DebugLoader_.prototype.loadDeps_=function(){for(var t=this,e=this.paused_;this.depsToLoad_.length&&!e;)!function(){var r=!1,n=t.depsToLoad_.shift(),i=!1;t.loading_(n);var o={pause:function(){if(r)throw Error("Cannot call pause after the call to load.");e=!0},resume:function(){r?t.resume_():e=!1},loaded:function(){if(i)throw Error("Double call to loaded.");i=!0,t.loaded_(n)},pending:function(){for(var e=[],r=0;r<t.loadingDeps_.length;r++)e.push(t.loadingDeps_[r]);return e},setModuleState:function(t){goog.moduleLoaderState_={type:t,moduleName:"",declareLegacyNamespace:!1}},registerEs6ModuleExports:function(t,e,r){r&&(goog.loadedModules_[r]={exports:e,type:goog.ModuleType.ES6,moduleId:r||""})},registerGoogModuleExports:function(t,e){goog.loadedModules_[t]={exports:e,type:goog.ModuleType.GOOG,moduleId:t}},clearModuleState:function(){goog.moduleLoaderState_=null},defer:function(e){if(r)throw Error("Cannot register with defer after the call to load.");t.defer_(n,e)},areDepsLoaded:function(){return t.areDepsLoaded_(n.requires)}};try{n.load(o)}finally{r=!0}}();e&&this.pause_()},goog.DebugLoader_.prototype.pause_=function(){this.paused_=!0},goog.DebugLoader_.prototype.resume_=function(){this.paused_&&(this.paused_=!1,this.loadDeps_())},goog.DebugLoader_.prototype.loading_=function(t){this.loadingDeps_.push(t)},goog.DebugLoader_.prototype.loaded_=function(t){for(var e=0;e<this.loadingDeps_.length;e++)if(this.loadingDeps_[e]==t){this.loadingDeps_.splice(e,1);break}for(e=0;e<this.deferredQueue_.length;e++)if(this.deferredQueue_[e]==t.path){this.deferredQueue_.splice(e,1);break}if(this.loadingDeps_.length==this.deferredQueue_.length&&!this.depsToLoad_.length)for(;this.deferredQueue_.length;)this.requested(this.deferredQueue_.shift(),!0);t.loaded()},goog.DebugLoader_.prototype.areDepsLoaded_=function(t){for(var e=0;e<t.length;e++){var r=this.getPathFromDeps_(t[e]);if(!r||!(r in this.deferredCallbacks_)&&!goog.isProvided_(t[e]))return!1}return!0},goog.DebugLoader_.prototype.getPathFromDeps_=function(t){return t in this.idToPath_?this.idToPath_[t]:t in this.dependencies_?t:null},goog.DebugLoader_.prototype.defer_=function(t,e){this.deferredCallbacks_[t.path]=e,this.deferredQueue_.push(t.path)},goog.LoadController=function(){},goog.LoadController.prototype.pause=function(){},goog.LoadController.prototype.resume=function(){},goog.LoadController.prototype.loaded=function(){},goog.LoadController.prototype.pending=function(){},goog.LoadController.prototype.registerEs6ModuleExports=function(t,e,r){},goog.LoadController.prototype.setModuleState=function(t){},goog.LoadController.prototype.clearModuleState=function(){},goog.LoadController.prototype.defer=function(t){},goog.LoadController.prototype.areDepsLoaded=function(){},goog.Dependency=function(t,e,r,n,i){this.path=t,this.relativePath=e,this.provides=r,this.requires=n,this.loadFlags=i,this.loaded_=!1,this.loadCallbacks_=[]},goog.Dependency.prototype.getPathName=function(){var t=this.path,e=t.indexOf("://");return 0<=e&&0<=(e=(t=t.substring(e+3)).indexOf("/"))&&(t=t.substring(e+1)),t},goog.Dependency.prototype.onLoad=function(t){this.loaded_?t():this.loadCallbacks_.push(t)},goog.Dependency.prototype.loaded=function(){this.loaded_=!0;var t=this.loadCallbacks_;this.loadCallbacks_=[];for(var e=0;e<t.length;e++)t[e]()}
15672,goog.Dependency.defer_=!1,goog.Dependency.callbackMap_={},goog.Dependency.registerCallback_=function(t){var e=Math.random().toString(32);return goog.Dependency.callbackMap_[e]=t,e},goog.Dependency.unregisterCallback_=function(t){delete goog.Dependency.callbackMap_[t]},goog.Dependency.callback_=function(t,e){if(!(t in goog.Dependency.callbackMap_))throw Error("Callback key "+t+" does not exist (was base.js loaded more than once?).");for(var r=goog.Dependency.callbackMap_[t],n=[],i=1;i<arguments.length;i++)n.push(arguments[i]);r.apply(void 0,n)},goog.Dependency.prototype.load=function(t){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?t.loaded():t.pause();else if(goog.inHtmlDocument_()){var e=goog.global.document;if("complete"==e.readyState&&!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING){if(/\bdeps.js$/.test(this.path))return void t.loaded();throw Error('Cannot write "'+this.path+'" after document load')}var r=goog.getScriptNonce();if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&goog.isDocumentLoading_()){var n=function(e){e.readyState&&"complete"!=e.readyState?e.onload=n:(goog.Dependency.unregisterCallback_(i),t.loaded())},i=goog.Dependency.registerCallback_(n);r=r?' nonce="'+r+'"':"";var o='<script src="'+this.path+'"'+r+(goog.Dependency.defer_?" defer":"")+' id="script-'+i+'"><\/script>';o+="<script"+r+">",o=goog.Dependency.defer_?o+"document.getElementById('script-"+i+"').onload = function() {\n  goog.Dependency.callback_('"+i+"', this);\n};\n":o+"goog.Dependency.callback_('"+i+"', document.getElementById('script-"+i+"'));",o+="<\/script>",e.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(o):o)}else{var s=e.createElement("script");s.defer=goog.Dependency.defer_,s.async=!1,r&&(s.nonce=r),goog.DebugLoader_.IS_OLD_IE_?(t.pause(),s.onreadystatechange=function(){"loaded"!=s.readyState&&"complete"!=s.readyState||(t.loaded(),t.resume())}):s.onload=function(){s.onload=null,t.loaded()},s.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path,e.head.appendChild(s)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."),t.loaded()):t.pause()},goog.Es6ModuleDependency=function(t,e,r,n,i){goog.Dependency.call(this,t,e,r,n,i)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(t){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?t.loaded():t.pause();else if(goog.inHtmlDocument_()){var e=goog.global.document,r=this;if(goog.isDocumentLoading_()){var n=function(t,r){var n="",i=goog.getScriptNonce();i&&(n=' nonce="'+i+'"'),t=r?'<script type="module" crossorigin'+n+">"+r+"<\/script>":'<script type="module" crossorigin src="'+t+'"'+n+"><\/script>",e.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(t):t)};goog.Dependency.defer_=!0}else n=function(t,r){var n=e.createElement("script");n.defer=!0,n.async=!1,n.type="module",n.setAttribute("crossorigin",!0);var i=goog.getScriptNonce();i&&(n.nonce=i),r?n.text=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScript(r):r:n.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(t):t,e.head.appendChild(n)};var i=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(i),t.setModuleState(goog.ModuleType.ES6)}));n(void 0,'goog.Dependency.callback_("'+i+'")'),n(this.path,void 0);var o=goog.Dependency.registerCallback_((function(e){goog.Dependency.unregisterCallback_(o),t.registerEs6ModuleExports(r.path,e,goog.moduleLoaderState_.moduleName)}));n(void 0,'import * as m from "'+this.path+'"; goog.Dependency.callback_("'+o+'", m)');var s=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(s),t.clearModuleState(),t.loaded()}));n(void 0,'goog.Dependency.callback_("'+s+'")')}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),t.pause()},goog.TransformedDependency=function(t,e,r,n,i){goog.Dependency.
15672call(this,t,e,r,n,i),this.contents_=null,this.lazyFetch_=!goog.inHtmlDocument_()||!("noModule"in goog.global.document.createElement("script"))},goog.inherits(goog.TransformedDependency,goog.Dependency),goog.TransformedDependency.prototype.load=function(t){function e(){s.contents_=goog.loadFileSync_(s.path),s.contents_&&(s.contents_=s.transform(s.contents_),s.contents_&&(s.contents_+="\n//# sourceURL="+s.path))}function r(){if(s.lazyFetch_&&e(),s.contents_){a&&t.setModuleState(goog.ModuleType.ES6);try{var r=s.contents_;if(s.contents_=null,goog.globalEval(r),a)var n=goog.moduleLoaderState_.moduleName}finally{a&&t.clearModuleState()}a&&goog.global.$jscomp.require.ensure([s.getPathName()],(function(){t.registerEs6ModuleExports(s.path,goog.global.$jscomp.require(s.getPathName()),n)})),t.loaded()}}var n,i,o,s=this;if(goog.global.CLOSURE_IMPORT_SCRIPT)e(),this.contents_&&goog.global.CLOSURE_IMPORT_SCRIPT("",this.contents_)?(this.contents_=null,t.loaded()):t.pause();else{var a=this.loadFlags.module==goog.ModuleType.ES6;this.lazyFetch_||e();var d=1<t.pending().length,u=d&&goog.DebugLoader_.IS_OLD_IE_;if(d=goog.Dependency.defer_&&(d||goog.isDocumentLoading_()),u||d)t.defer((function(){r()}));else{var h=goog.global.document;if(u=goog.inHtmlDocument_()&&"ActiveXObject"in goog.global,a&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()&&!u){goog.Dependency.defer_=!0,t.pause();var l=h.onreadystatechange;h.onreadystatechange=function(){"interactive"==h.readyState&&(h.onreadystatechange=l,r(),t.resume()),"function"==typeof l&&l.apply(void 0,arguments)}}else!goog.DebugLoader_.IS_OLD_IE_&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()?(n=goog.global.document,i=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(i),r()})),o="<script"+((o=goog.getScriptNonce())?' nonce="'+o+'"':"")+">"+goog.protectScriptTag_('goog.Dependency.callback_("'+i+'");')+"<\/script>",n.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(o):o)):r()}}},goog.TransformedDependency.prototype.transform=function(t){},goog.TranspiledDependency=function(t,e,r,n,i,o){goog.TransformedDependency.call(this,t,e,r,n,i),this.transpiler=o},goog.inherits(goog.TranspiledDependency,goog.TransformedDependency),goog.TranspiledDependency.prototype.transform=function(t){return this.transpiler.transpile(t,this.getPathName())},goog.PreTranspiledEs6ModuleDependency=function(t,e,r,n,i){goog.TransformedDependency.call(this,t,e,r,n,i)},goog.inherits(goog.PreTranspiledEs6ModuleDependency,goog.TransformedDependency),goog.PreTranspiledEs6ModuleDependency.prototype.transform=function(t){return t},goog.GoogModuleDependency=function(t,e,r,n,i,o,s){goog.TransformedDependency.call(this,t,e,r,n,i),this.needsTranspile_=o,this.transpiler_=s},goog.inherits(goog.GoogModuleDependency,goog.TransformedDependency),goog.GoogModuleDependency.prototype.transform=function(t){return this.needsTranspile_&&(t=this.transpiler_.transpile(t,this.getPathName())),goog.LOAD_MODULE_USING_EVAL&&void 0!==goog.global.JSON?"goog.loadModule("+goog.global.JSON.stringify(t+"\n//# sourceURL="+this.path+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+t+"\n;return exports});\n//# sourceURL="+this.path+"\n"},goog.DebugLoader_.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader_.prototype.addDependency=function(t,e,r,n){e=e||[],t=t.replace(/\\/g,"/");var i=goog.normalizePath_(goog.basePath+t);for(n&&"boolean"!=typeof n||(n=n?{module:goog.ModuleType.GOOG}:{}),r=this.factory_.createDependency(i,t,e,r,n,goog.transpiler_.needsTranspile(n.lang||"es3",n.module)),this.dependencies_[i]=r,r=0;r<e.length;r++)this.idToPath_[e[r]]=i;this.idToPath_[t]=i},goog.DependencyFactory=function(t){this.transpiler=t},goog.DependencyFactory.prototype.createDependency=function(t,e,r,n,i,o){return i.module==goog.ModuleType.GOOG?new goog.GoogModuleDependency(t,e,r,n,i,o,this.transpiler):o?new goog.TranspiledDependency(t,e,r,n,i,this.transpiler):i.module==goog.ModuleType.ES6?"never"==goog.TRANSPILE&&goog.ASSUME_ES_MODULES_TRANSPILED?new goog.PreTranspiledEs6ModuleDependency(t,e,r,n,i):new goog.Es6ModuleDependency(t,e,r,n,i):new goog.Dependency(t,e,r,n,i)},goog.debugLoader_=new goog.DebugLoader_,goog.loadClosureDeps=function(){goog.debugLoader_.loadClosureDeps()},goog.setDependencyFactory=function(t){goog.debugLoader_.setDependencyFactory(t)},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null,goog.global.CLOSURE_NO_DEPS||goog.debugLoader_.loadClosureDeps(),goog.bootstrap=function(t,e){goog.debugLoader_.bootstrap(t,e)}),goog.TRUSTED_TYPES_POLICY_NAME="goog",goog.identity_=function(t){return t},goog.createTrustedTypesPolicy=function(t){var e=null,r=goog.global.trustedTypes;if(!r||!r.createPolicy)return e;try{e=r.createPolicy(t,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_})}catch(t){goog.logToConsole_(t.message)}return e},goog.debug={},goog.inherits(module$contents$goog$debug$Error_DebugError,Error),module$contents$goog$debug$Error_DebugError.prototype.name="CustomError",goog.debug.Error=module$contents$goog$debug$Error_DebugError,goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(t,e){module$contents$goog$debug$Error_DebugError.call(this,goog.asserts.subs_(t,e)),this.messagePattern=t},goog.inherits(goog.asserts.AssertionError,module$contents$goog$debug$Error_DebugError),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(t){throw t},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(t,e){for(var r="",n=(t=t.split("%s")).length-1,i=0;i<n;i++)r+=t[i]+(i<e.length?e[i]:"%s");return r+t[n]},goog.asserts.doAssertFailure_=function(t,e,r,n){var i="Assertion failed";if(r){i+=": "+r;var o=n}else t&&(i+=": "+t,o=e);t=new goog.asserts.AssertionError(""+i,o||[]),goog.asserts.errorHandler_(t)},goog.asserts.setErrorHandler=function(t){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=t)},goog.asserts.assert=function(t,e,r){return goog.asserts.ENABLE_ASSERTS&&!t&&goog.asserts.doAssertFailure_("",null,e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertExists=function(t,e,r){return goog.asserts.ENABLE_ASSERTS&&null==t&&goog.asserts.doAssertFailure_("Expected to exist: %s.",[t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.fail=function(t,e){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(t?": "+t:""),Array.prototype.slice.call(arguments,1
vendor: 25,779 bytes, line 15672
15672)))},goog.asserts.assertNumber=function(t,e,r){return goog.asserts.ENABLE_ASSERTS&&"number"!=typeof t&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(t),t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertString=function(t,e,r){return goog.asserts.ENABLE_ASSERTS&&"string"!=typeof t&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(t),t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertFunction=function(t,e,r){return goog.asserts.ENABLE_ASSERTS&&"function"!=typeof t&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(t),t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertObject=function(t,e,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isObject(t)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(t),t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertArray=function(t,e,r){return goog.asserts.ENABLE_ASSERTS&&!Array.isArray(t)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(t),t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertBoolean=function(t,e,r){return goog.asserts.ENABLE_ASSERTS&&"boolean"!=typeof t&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(t),t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertElement=function(t,e,r){return!goog.asserts.ENABLE_ASSERTS||goog.isObject(t)&&t.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(t),t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertInstanceof=function(t,e,r,n){return!goog.asserts.ENABLE_ASSERTS||t instanceof e||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(e),goog.asserts.getType_(t)],r,Array.prototype.slice.call(arguments,3)),t},goog.asserts.assertFinite=function(t,e,r){return!goog.asserts.ENABLE_ASSERTS||"number"==typeof t&&isFinite(t)||goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[t],e,Array.prototype.slice.call(arguments,2)),t},goog.asserts.assertObjectPrototypeIsIntact=function(){for(var t in Object.prototype)goog.asserts.fail(t+" should not be enumerable in Object.prototype.")},goog.asserts.getType_=function(t){return t instanceof Function?t.displayName||t.name||"unknown type name":t instanceof Object?t.constructor.displayName||t.constructor.name||Object.prototype.toString.call(t):null===t?"null":typeof t},goog.array={},goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;var module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS=2012<goog.FEATURESET_YEAR;function module$contents$goog$array_peek(t){return t[t.length-1]}goog.array.ASSUME_NATIVE_FUNCTIONS=module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS,goog.array.peek=module$contents$goog$array_peek,goog.array.last=module$contents$goog$array_peek;var module$contents$goog$array_indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(t,e,r){return goog.asserts.assert(null!=t.length),Array.prototype.indexOf.call(t,e,r)}:function(t,e,r){if(r=null==r?0:0>r?Math.max(0,t.length+r):r,"string"==typeof t)return"string"!=typeof e||1!=e.length?-1:t.indexOf(e,r);for(;r<t.length;r++)if(r in t&&t[r]===e)return r;return-1};goog.array.indexOf=module$contents$goog$array_indexOf;var module$contents$goog$array_lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(t,e,r){return goog.asserts.assert(null!=t.length),Array.prototype.lastIndexOf.call(t,e,null==r?t.length-1:r)}:function(t,e,r){if(0>(r=null==r?t.length-1:r)&&(r=Math.max(0,t.length+r)),"string"==typeof t)return"string"!=typeof e||1!=e.length?-1:t.lastIndexOf(e,r);for(;0<=r;r--)if(r in t&&t[r]===e)return r;return-1};goog.array.lastIndexOf=module$contents$goog$array_lastIndexOf;var module$contents$goog$array_forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(t,e,r){goog.asserts.assert(null!=t.length),Array.prototype.forEach.call(t,e,r)}:function(t,e,r){for(var n=t.length,i="string"==typeof t?t.split(""):t,o=0;o<n;o++)o in i&&e.call(r,i[o],o,t)};function module$contents$goog$array_forEachRight(t,e,r){var n=t.length,i="string"==typeof t?t.split(""):t;for(--n;0<=n;--n)n in i&&e.call(r,i[n],n,t)}goog.array.forEach=module$contents$goog$array_forEach,goog.array.forEachRight=module$contents$goog$array_forEachRight;var module$contents$goog$array_filter=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(t,e,r){return goog.asserts.assert(null!=t.length),Array.prototype.filter.call(t,e,r)}:function(t,e,r){for(var n=t.length,i=[],o=0,s="string"==typeof t?t.split(""):t,a=0;a<n;a++)if(a in s){var d=s[a];e.call(r,d,a,t)&&(i[o++]=d)}return i};goog.array.filter=module$contents$goog$array_filter;var module$contents$goog$array_map=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(t,e,r){return goog.asserts.assert(null!=t.length),Array.prototype.map.call(t,e,r)}:function(t,e,r){for(var n=t.length,i=Array(n),o="string"==typeof t?t.split(""):t,s=0;s<n;s++)s in o&&(i[s]=e.call(r,o[s],s,t));return i};goog.array.map=module$contents$goog$array_map;var module$contents$goog$array_reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(t,e,r,n){return goog.asserts.assert(null!=t.length),n&&(e=goog.bind(e,n)),Array.prototype.reduce.call(t,e,r)}:function(t,e,r,n){var i=r;return module$contents$goog$array_forEach(t,(function(r,o){i=e.call(n,i,r,o,t)})),i};goog.array.reduce=module$contents$goog$array_reduce;var module$contents$goog$array_reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(t,e,r,n){return goog.asserts.assert(null!=t.length),goog.asserts.assert(null!=e),n&&(e=goog.bind(e,n)),Array.prototype.reduceRight.call(t,e,r)}:function(t,e,r,n){var i=r;return module$contents$goog$array_forEachRight(t,(function(r,o){i=e.call(n,i,r,o,t)})),i};goog.array.reduceRight=module$contents$goog$array_reduceRight;var module$contents$goog$array_some=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(t,e,r){return goog.asserts.assert(null!=t.length),Array.prototype.some.call(t,e,r)}:function(t,e,r){for(var n=t.length,i="string"==typeof t?t.split(""):t,o=0;o<n;o++)if(o in i&&e.call(r,i[o],o,t))return!0;return!1};goog.array.some=module$contents$goog$array_some;var module$contents$goog$array_every=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(t,e,r){return goog.asserts.assert(null!=t.length),Array.prototype.every.call(t,e,r)}:function(t,e,r){for(var n=t.length,i="string"==typeof t?t.split(""):t,o=0;o<n;o++)if(o in i&&!e.call(r,i[o],o,t))return!1;return!0};function module$contents$goog$array_count(t,e,r){var n=0;return module$contents$goog$array_forEach(t,(function(t,i,o){e.call(r,t,i,o)&&++n}),r),n}function module$contents$goog$array_find(t,e,r){return 0>(e=module$contents$goog$array_findIndex(t,e,r))?null:"string"==typeof t?t.charAt(e):t[e]}function module$contents$goog$array_findIndex(t,e,r){for(var n=t.length,i="string"==typeof t?t.split(""):t,o=0;o<n;o++)if(o in i&&e.call(r,i[o],o,t))return o;return-1}function module$contents$goog$array_findRight(t,e,r){return 0>(e=module$contents$goog$array_findIndexRight(t,e,r))?null:"string"==typeof t?t.charAt(e):t[e]}function module$contents$goog$array_findIndexRight(t,e,r){var n=t.length,i="string"==typeof t?t.split(""):t;for(--n;0<=n;n--)if(n in i&&e.call(r,i[n],n,t))return n;return-1}function module$contents$goog$array_contains(t,e){return 0<=module$contents$goog$array_indexOf(t,e)}function module$contents$goog$array_isEmpty(t){return 0==t.length}function module$contents$goog$array_clear(t){if(!Array.isArray(t))for(var e=t.length-1;0<=e;e--)delete t[e];t.length=0}function module$contents$goog$array_insert(t,e){module$contents$goog$array_contains(t,e)||t.push(e)}function module$contents$goog$array_insertAt(t,e,r){module$contents$goog$array_splice(t,r,0,e)}function module$contents$goog$array_insertArrayAt(t,e,r){goog.partial(module$contents$goog$array_splice,t,r,0).apply(null,e)}function module$contents$goog$array_insertBefore(t,e,r){var n;2==arguments.length||0>(n=module$contents$goog$array_indexOf(t,r))?t.push(e):module$contents$goog$array_insertAt(t,e,n)}function module$contents$goog$array_remove(t,e){var r;return(r=0<=(e=module$contents$goog$array_indexOf(t,e)))&&module$contents$goog$array_removeAt(t,e),r}function module$contents$goog$array_removeLast(t,e){return 0<=(e=module$contents$goog$array_lastIndexOf(t,e))&&(module$contents$goog$array_removeAt(t,e),!0)}function module$contents$goog$array_removeAt(t,e){return goog.asserts.assert(null!=t.length),1==Array.prototype.splice.call(t,e,1).length}function module$contents$goog$array_removeIf(t,e,r){return 0<=(e=module$contents$goog$array_findIndex(t,e,r))&&(module$contents$goog$array_removeAt(t,e),!0)}function module$contents$goog$array_removeAllIf(t,e,r){var n=0;return module$contents$goog$array_forEachRight(t,(function(i,o){e.call(r,i,o,t)&&module$contents$goog$array_removeAt(t,o)&&n++})),n}function module$contents$goog$array_concat(t){return Array.prototype.concat.apply([],arguments)}function module$contents$goog$array_join(t){return Array.prototype.concat.apply([],arguments)}function module$contents$goog$array_toArray(t){var e=t.length;if(0<e){for(var r=Array(e),n=0;n<e;n++)r[n]=t[n];return r}return[]}goog.array.every=module$contents$goog$array_every,goog.array.count=module$contents$goog$array_count,goog.array.find=module$contents$goog$array_find,goog.array.findIndex=module$contents$goog$array_findIndex,goog.array.findRight=module$contents$goog$array_findRight,goog.array.findIndexRight=module$contents$goog$array_findIndexRight,goog.array.contains=module$contents$goog$array_contains,goog.array.isEmpty=module$contents$goog$array_isEmpty,goog.array.clear=module$contents$goog$array_clear,goog.array.insert=module$contents$goog$array_insert,goog.array.insertAt=module$contents$goog$array_insertAt,goog.array.insertArrayAt=module$contents$goog$array_insertArrayAt,goog.array.insertBefore=module$contents$goog$array_insertBefore,goog.array.remove=module$contents$goog$array_remove,goog.array.removeLast=module$contents$goog$array_removeLast,goog.array.removeAt=module$contents$goog$array_removeAt,goog.array.removeIf=module$contents$goog$array_removeIf,goog.array.removeAllIf=module$contents$goog$array_removeAllIf,goog.array.concat=module$contents$goog$array_concat,goog.array.join=module$contents$goog$array_join;var module$contents$goog$array_clone=goog.array.toArray=module$contents$goog$array_toArray;function module$contents$goog$array_extend(t,e){for(var r=1;r<arguments.length;r++){var n=arguments[r];if(goog.isArrayLike(n)){var i=t.length||0,o=n.length||0;t.length=i+o;for(var s=0;s<o;s++)t[i+s]=n[s]}else t.push(n)}}function module$contents$goog$array_splice(t,e,r,n){return goog.asserts.assert(null!=t.length),Array.prototype.splice.apply(t,module$contents$goog$array_slice(arguments,1))}function module$contents$goog$array_slice(t,e,r){return goog.asserts.assert(null!=t.length),2>=arguments.length?Array.prototype.slice.call(t,e):Array.prototype.slice.call(t,e,r)}function module$contents$goog$array_removeDuplicates(t,e,r){e=e||t;var n=function(t){return goog.isObject(t)?"o"+goog.getUid(t):(typeof t).charAt(0)+t};r=r||n,n={};for(var i=0,o=0;o<t.length;){var s=t[o++],a=r(s);Object.prototype.hasOwnProperty.call(n,a)||(n[a]=!0,e[i++]=s)}e.length=i}function module$contents$goog$array_binarySearch(t,e,r){return module$contents$goog$array_binarySearch_(t,r||module$contents$goog$array_defaultCompare,!1,e)}function module$contents$goog$array_binarySelect(t,e,r){return module$contents$goog$array_binarySearch_(t,e,!0,void 0,r)}function module$contents$goog$array_binarySearch_(t,e,r,n,i){for(var o,s=0,a=t.length;s<a;){var d=s+(a-s>>>1),u=r?e.call(i,t[d],d,t):e(n,t[d]);0<u?s=d+1:(a=d,o=!u)}return o?s:-s-1}function module$contents$goog$array_sort(t,e){t.sort(e||module$contents$goog$array_defaultCompare)}function module$contents$goog$array_stableSort(t,e){for(var r=Array(t.length),n=0;n<t.length;n++)r[n]={index:n,value:t[n]};var i=e||module$contents$goog$array_defaultCompare;for(module$contents$goog$array_sort(r,(function(t,e){return i(t.value,e.value)||t.index-e.index})),n=0;n<t.length;n++)t[n]=r[n].value}function module$contents$goog$array_sortByKey(t,e,r){var n=r||module$contents$goog$array_defaultCompare;module$contents$goog$array_sort(t,(function(t,r){return n(e(t),e(r))}))}function module$contents$goog$array_sortObjectsByKey(t,e,r){module$contents$goog$array_sortByKey(t,(function(t){return t[e]}),r)}function module$contents$goog$array_isSorted(t,e,r){e=e||module$contents$goog$array_defaultCompare;for(var n=1;n<t.length;n++){var i=e(t[n-1],t[n]);if(0<i||0==i&&r)return!1}return!0}function module$contents$goog$array_equals(t,e,r){if(!goog.isArrayLike(t)||!goog.isArrayLike(e)||t.length!=e.length)return!1;var n=t.length;r=r||module$contents$goog$array_defaultCompareEquality;for(var i=0;i<n;i++)if(!r(t[i],e[i]))return!1;return!0}function module$contents$goog$array_compare3(t,e,r){r=r||module$contents$goog$array_defaultCompare;for(var n=Math.min(t.length,e.length),i=0;i<n;i++){var o=r(t[i],e[i]);if(0!=o)return o}return module$contents$goog$array_defaultCompare(t.length,e.length)}function module$contents$goog$array_defaultCompare(t,e){return t>e?1:t<e?-1:0}function module$contents$goog$array_inverseDefaultCompare(t,e){return-module$contents$goog$array_defaultCompare(t,e)}function module$contents$goog$array_defaultCompareEquality(t,e){return t===e}function module$contents$goog$array_binaryInsert(t,e,r){return 0>(r=module$contents$goog$array_binarySearch(t,e,r))&&(module$contents$goog$array_insertAt(t,e,-(r+1)),!0)}function module$contents$goog$array_binaryRemove(t,e,r){return 0<=(e=module$contents$goog$array_binarySearch(t,e,r))&&module$contents$goog$array_removeAt(t,e)}function module$contents$goog$array_bucket(t,e,r){for(var n={},i=0;i<t.length;i++){var o=t[i],s=e.call(r,o,i,t);void 0!==s&&(n[s]||(n[s]=[])).push(o)}return n}function module$contents$goog$array_toObject(t,e,r){var n={};return module$contents$goog$array_forEach(t,(function(i,o){n[e.call(r,i,o,t)]=i})),n}function module$contents$goog$array_range(t,e,r){var n=[],i=0,o=t;if(void 0!==e&&(i=t,o=e),0>(r=r||1)*(o-i))return[];if(0<r)for(t=i;t<o;t+=r)n.push(t);else for(t=i;t>o;t+=r)n.push(t);return n}function module$contents$goog$array_repeat(t,e){for(var r=[],n=0;n<e;n++)r[n]=t;return r}function module$contents$goog$array_flatten(t){for(var e=[],r=0;r<arguments.length;r++){var n=arguments[r];if(Array.isArray(n))for(var i=0;i<n.length;i+=8192){var o=module$contents$goog$array_slice(n,i,i+8192);o=module$contents$goog$array_flatten.apply(null,o);for(var s=0;s<o.length;s++)e.push(o[s])}else e.push(n)}return e}function module$contents$goog$array_rotate(t,e){return goog.asserts.assert(null!=t.length),t.length&&(0<(e%=t.length)?Array.prototype.unshift.apply(t,t.splice(-e,e)):0>e&&Array.prototype.push.apply(t,t.splice(0,-e))),t}function module$contents$goog$array_moveItem(t,e,r){goog.asserts.assert(0<=e&&e<t.length),goog.asserts.assert(0<=r&&r<t.length),e=Array.prototype.splice.call(t,e,1),Array.prototype.splice.call(t,r,0,e[0])}function module$contents$goog$array_zip(t){if(!arguments.length)return[];for(var e=[],r=arguments[0].length,n=1;n<arguments.length;n++)arguments[n].length<r&&(r=arguments[n].length);for(n=0;n<r;n++){for(var i=[],o=0;o<arguments.length;o++)i.push(arguments[o][n]);e.push(i)}return e}function module$contents$goog$array_shuffle(t,e){e=e||Math.random;for(var r=t.length-1;0<r;r--){var n=Math.floor(e()*(r+1)),i=t[r];t[r]=t[n],t[n]=i}}function module$contents$goog$array_copyByIndex(t,e){var r=[];return module$contents$goog$array_forEach(e,(function(e){r.push(t[e])})),r}function module$contents$goog$array_concatMap(t,e,r){return module$contents$goog$array_concat.apply([],module$contents$goog$array_map(t,e,r))}goog.array.clone=module$contents$goog$array_clone,goog.array.extend=module$contents$goog$array_extend,goog.array.splice=module$contents$goog$array_splice,goog.array.slice=module$contents$goog$array_slice,goog.array.removeDuplicates=module$contents$goog$array_removeDuplicates,goog.array.binarySearch=module$contents$goog$array_binarySearch,goog.array.binarySelect=module$contents$goog$array_binarySelect,goog.array.sort=module$contents$goog$array_sort,goog.array.stableSort=module$contents$goog$array_stableSort,goog.array.sortByKey=module$contents$goog$array_sortByKey,goog.array.sortObjectsByKey=module$contents$goog$array_sortObjectsByKey,goog.array.isSorted=module$contents$goog$array_isSorted,goog.array.equals=module$contents$goog$array_equals,goog.array.compare3=module$contents$goog$array_compare3,goog.array.defaultCompare=module$contents$goog$array_defaultCompare,goog.array.inverseDefaultCompare=module$contents$goog$array_inverseDefaultCompare,goog.array.defaultCompareEquality=module$contents$goog$array_defaultCompareEquality,goog.array.binaryInsert=module$contents$goog$array_binaryInsert,goog.array.binaryRemove=module$contents$goog$array_binaryRemove,goog.array.bucket=module$contents$goog$array_bucket,goog.array.toObject=module$contents$goog$array_toObject,goog.array.range=module$contents$goog$array_range,goog.array.repeat=module$contents$goog$array_repeat,goog.array.flatten=module$contents$goog$array_flatten,goog.array.rotate=module$contents$goog$array_rotate,goog.array.moveItem=module$contents$goog$array_moveItem,goog.array.zip=module$contents$goog$array_zip,goog.array.shuffle=module$contents$goog$array_shuffle,goog.array.copyByIndex=module$contents$goog$array_copyByIndex,goog.array.concatMap=module$contents$goog$array_concatMap,goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(t){if(goog.asserts.ENABLE_ASSERTS){var e=goog.dom.asserts.getWindow_(t);e&&(!t||!(t instanceof e.Location)&&t instanceof e.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(t))}return t},goog.dom.asserts.assertIsElementType_=function(t,e){if(goog.asserts.ENABLE_ASSERTS){var r=goog.dom.asserts.getWindow_(t);r&&void 0!==r[e]&&(t&&(t instanceof r[e]||!(t instanceof r.Location||t instanceof r.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",e,goog.dom.asserts.debugStringForType_(t)))}return t},goog.dom.asserts.assertIsHTMLAnchorElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(t){return goog.dom.asserts.assertIsElementType_(t,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(t){if(!goog.isObject(t))return void 0===t?"undefined":null===t?"null":typeof t;try{return t.constructor.displayName||t.constructor.name||Object.prototype.toString.call(t)}catch(t){return"<object could not be stringified>"}},goog.dom.asserts.getWindow_=function(t){try{var e=t&&t.ownerDocument,r=e&&(e.defaultView||e.parentWindow);if((r=r||goog.global).Element&&r.Location)return r}catch(t){}return null},goog.dom.HtmlElement=function(){},goog.functions={},goog.functions.constant=function(t){return function(){return t}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(t,e){return t},goog.functions.error=function(t){return function(){throw Error(t)}},goog.functions.fail=function(t){return function(){throw t}},goog.functions.lock=function(t,e){return e=e||0,function(){return t.apply(this,Array.prototype.slice.call(arguments,0,e))}},goog.functions.nth=function(t){return function(){return arguments[t]}},goog.functions.partialRight=function(t,e){var r=Array.prototype.slice.call(arguments,1);return function(){var e=this;e===goog.global&&(e=void 0);var n=Array.prototype.slice.call(arguments);return n.push.apply(n,r),t.apply(e,n)}},goog.functions.withReturnValue=function(t,e){return goog.functions.sequence(t,goog.functions.constant(e))},goog.functions.equalTo=function(t,e){return function(r){return e?t==r:t===r}},goog.functions.compose=function(t,e){var r=arguments,n=r.length;return function(){var t;n&&(t=r[n-1].apply(this,arguments));for(var e=n-2;0<=e;e--)t=r[e].call(this,t);return t}},goog.functions.sequence=function(t){var e=arguments,r=e.length;return function(){for(var t,n=0;n<r;n++)t=e[n].apply(this,arguments);return t}},goog.functions.and=function(t){var e=arguments,r=e.length;return function(){for(var t=0;t<r;t++)if(!e[t].apply(this,arguments))return!1;return!0}},goog.functions.or=function(t){var e=arguments,r=e.length;return function(){for(var t=0;t<r;t++)if(e[t].apply(this,arguments))return!0;return!1}},goog.functions.not=function(t){return function(){return!t.apply(this,arguments)}},goog.functions.create=function(t,e){var r=function(){};return r.prototype=t.prototype,r=new r,t.apply(r,Array.prototype.slice.call(arguments,1)),r},goog.functions.CACHE_RETURN_VALUE=!0,goog.functions.cacheReturnValue=function(t){var e,r=!1;return function(){return goog.functions.CACHE_RETURN_VALUE?(r||(e=t(),r=!0),e):t()}},goog.functions.once=function(t){var e=t;return function(){if(e){var t=e;e=null,t()}}},goog.functions.debounce=function(t,e,r){var n=0;return function(i){goog.global.clearTimeout(n);var o=arguments;n=goog.global.setTimeout((function(){t.apply(r,o)}),e)}},goog.functions.throttle=function(t,e,r){var n=0,i=!1,o=[],s=function(){n=0,i&&(i=!1,a())},a=function(){n=goog.global.setTimeout(s,e),t.apply(r,o)};return function(t){o=arguments,n?i=!0:a()}},goog.functions.rateLimit=function(t,e,r){var n=0,i=function(){n=0};return function(o){n||(n=goog.global.setTimeout(i,e),t.apply(r,arguments))}},goog.functions.isFunction=function(t){return"function"==typeof t},goog.dom.TagName=function(){},goog.dom.TagName.cast=function(t,e){return t},goog.dom.TagName.prototype.toString=function(){},goog.dom.TagName.A="A",goog.dom.TagName.ABBR="ABBR",goog.dom.TagName.ACRONYM="ACRONYM",goog.dom.TagName.ADDRESS="ADDRESS",goog.dom.TagName.APPLET="APPLET",goog.dom.TagName.AREA="AREA",goog.dom.TagName.ARTICLE="ARTICLE",goog.dom.TagName.ASIDE="ASIDE",goog.dom.TagName.AUDIO="AUDIO",goog.dom.TagName.B="B",goog.dom.TagName.BASE="BASE",goog.dom.TagName.BASEFONT="BASEFONT",goog.dom.TagName.BDI="BDI",goog.dom.TagName.BDO="BDO",goog.dom.TagName.BIG="BIG",goog.dom.TagName.BLOCKQUOTE="BLOCKQUOTE",goog.dom.TagName.BODY="BODY",goog.dom.TagName.BR="BR",goog.dom.TagName.BUTTON="BUTTON",goog.dom.TagName.CANVAS="CANVAS",goog.dom.TagName.CAPTION="CAPTION",goog.dom.TagName.CENTER="CENTER",goog.dom.TagName.CITE="CITE",goog.dom.TagName.CODE="CODE",goog.dom.TagName.COL="COL",goog.dom.TagName.COLGROUP="COLGROUP",goog.dom.TagName.COMMAND="COMMAND",goog.dom.TagName.DATA="DATA",goog.dom.TagName.DATALIST="DATALIST",goog.dom.TagName.DD="DD",goog.dom.TagName.DEL="DEL",goog.dom.TagName.DETAILS="DETAILS",goog.dom.TagName.DFN="DFN",goog.dom.TagName.DIALOG="DIALOG",goog.dom.TagName.DIR="DIR",goog.dom.TagName.DIV="DIV",goog.dom.TagName.DL="DL",goog.dom.TagName.DT="DT",goog.dom.TagName.EM="EM",goog.dom.TagName.EMBED="EMBED",goog.dom.TagName.FIELDSET="FIELDSET",goog.dom.TagName.FIGCAPTION="FIGCAPTION",goog.dom.TagName.FIGURE="FIGURE",goog.dom.TagName.FONT="FONT",goog.dom.TagName.FOOTER="FOOTER",goog.dom.TagName.FORM="FORM",goog.dom.TagName.FRAME="FRAME",goog.dom.TagName.FRAMESET="FRAMESET",goog.dom.TagName.H1="H1",goog.dom.TagName.H2="H2",goog.dom.TagName.H3="H3",goog.dom.TagName.H4="H4",goog.dom.TagName.H5="H5",goog.dom.TagName.H6="H6",goog.dom.TagName.HEAD="HEAD",goog.dom.TagName.HEADER="HEADER",goog.dom.TagName.HGROUP="HGROUP",goog.dom.TagName.HR="HR",goog.dom.TagName.HTML="HTML",goog.dom.TagName.I="I",goog.dom.TagName.IFRAME="I
15672FRAME",goog.dom.TagName.IMG="IMG",goog.dom.TagName.INPUT="INPUT",goog.dom.TagName.INS="INS",goog.dom.TagName.ISINDEX="ISINDEX",goog.dom.TagName.KBD="KBD",goog.dom.TagName.KEYGEN="KEYGEN",goog.dom.TagName.LABEL="LABEL",goog.dom.TagName.LEGEND="LEGEND",goog.dom.TagName.LI="LI",goog.dom.TagName.LINK="LINK",goog.dom.TagName.MAIN="MAIN",goog.dom.TagName.MAP="MAP",goog.dom.TagName.MARK="MARK",goog.dom.TagName.MATH="MATH",goog.dom.TagName.MENU="MENU",goog.dom.TagName.MENUITEM="MENUITEM",goog.dom.TagName.META="META",goog.dom.TagName.METER="METER",goog.dom.TagName.NAV="NAV",goog.dom.TagName.NOFRAMES="NOFRAMES",goog.dom.TagName.NOSCRIPT="NOSCRIPT",goog.dom.TagName.OBJECT="OBJECT",goog.dom.TagName.OL="OL",goog.dom.TagName.OPTGROUP="OPTGROUP",goog.dom.TagName.OPTION="OPTION",goog.dom.TagName.OUTPUT="OUTPUT",goog.dom.TagName.P="P",goog.dom.TagName.PARAM="PARAM",goog.dom.TagName.PICTURE="PICTURE",goog.dom.TagName.PRE="PRE",goog.dom.TagName.PROGRESS="PROGRESS",goog.dom.TagName.Q="Q",goog.dom.TagName.RP="RP",goog.dom.TagName.RT="RT",goog.dom.TagName.RTC="RTC",goog.dom.TagName.RUBY="RUBY",goog.dom.TagName.S="S",goog.dom.TagName.SAMP="SAMP",goog.dom.TagName.SCRIPT="SCRIPT",goog.dom.TagName.SECTION="SECTION",goog.dom.TagName.SELECT="SELECT",goog.dom.TagName.SMALL="SMALL",goog.dom.TagName.SOURCE="SOURCE",goog.dom.TagName.SPAN="SPAN",goog.dom.TagName.STRIKE="STRIKE",goog.dom.TagName.STRONG="STRONG",goog.dom.TagName.STYLE="STYLE",goog.dom.TagName.SUB="SUB",goog.dom.TagName.SUMMARY="SUMMARY",goog.dom.TagName.SUP="SUP",goog.dom.TagName.SVG="SVG",goog.dom.TagName.TABLE="TABLE",goog.dom.TagName.TBODY="TBODY",goog.dom.TagName.TD="TD",goog.dom.TagName.TEMPLATE="TEMPLATE",goog.dom.TagName.TEXTAREA="TEXTAREA",goog.dom.TagName.TFOOT="TFOOT",goog.dom.TagName.TH="TH",goog.dom.TagName.THEAD="THEAD",goog.dom.TagName.TIME="TIME",goog.dom.TagName.TITLE="TITLE",goog.dom.TagName.TR="TR",goog.dom.TagName.TRACK="TRACK",goog.dom.TagName.TT="TT",goog.dom.TagName.U="U",goog.dom.TagName.UL="UL",goog.dom.TagName.VAR="VAR",goog.dom.TagName.VIDEO="VIDEO",goog.dom.TagName.WBR="WBR",goog.object={},goog.object.forEach=function(t,e,r){for(var n in t)e.call(r,t[n],n,t)},goog.object.filter=function(t,e,r){var n,i={};for(n in t)e.call(r,t[n],n,t)&&(i[n]=t[n]);return i},goog.object.map=function(t,e,r){var n,i={};for(n in t)i[n]=e.call(r,t[n],n,t);return i},goog.object.some=function(t,e,r){for(var n in t)if(e.call(r,t[n],n,t))return!0;return!1},goog.object.every=function(t,e,r){for(var n in t)if(!e.call(r,t[n],n,t))return!1;return!0},goog.object.getCount=function(t){var e,r=0;for(e in t)r++;return r},goog.object.getAnyKey=function(t){for(var e in t)return e},goog.object.getAnyValue=function(t){for(var e in t)return t[e]},goog.object.contains=function(t,e){return goog.object.containsValue(t,e)},goog.object.getValues=function(t){var e,r=[],n=0;for(e in t)r[n++]=t[e];return r},goog.object.getKeys=function(t){var e,r=[],n=0;for(e in t)r[n++]=e;return r},goog.object.getValueByKeys=function(t,e){var r=goog.isArrayLike(e),n=r?e:arguments;for(r=r?0:1;r<n.length;r++){if(null==t)return;t=t[n[r]]}return t},goog.object.containsKey=function(t,e){return null!==t&&e in t},goog.object.containsValue=function(t,e){for(var r in t)if(t[r]==e)return!0;return!1},goog.object.findKey=function(t,e,r){for(var n in t)if(e.call(r,t[n],n,t))return n},goog.object.findValue=function(t,e,r){return(e=goog.object.findKey(t,e,r))&&t[e]},goog.object.isEmpty=function(t){for(var e in t)return!1;return!0},goog.object.clear=function(t){for(var e in t)delete t[e]},goog.object.remove=function(t,e){var r;return(r=e in t)&&delete t[e],r},goog.object.add=function(t,e,r){if(null!==t&&e in t)throw Error('The object already contains the key "'+e+'"');goog.object.set(t,e,r)},goog.object.get=function(t,e,r){return null!==t&&e in t?t[e]:r},goog.object.set=function(t,e,r){t[e]=r},goog.object.setIfUndefined=function(t,e,r){return e in t?t[e]:t[e]=r},goog.object.setWithReturnValueIfNotSet=function(t,e,r){return e in t?t[e]:(r=r(),t[e]=r)},goog.object.equals=function(t,e){for(var r in t)if(!(r in e)||t[r]!==e[r])return!1;for(var n in e)if(!(n in t))return!1;return!0},goog.object.clone=function(t){var e,r={};for(e in t)r[e]=t[e];return r},goog.object.unsafeClone=function(t){if(!t||"object"!=typeof t)return t;if("function"==typeof t.clone)return t.clone();var e,r=Array.isArray(t)?[]:"function"!=typeof ArrayBuffer||"function"!=typeof ArrayBuffer.isView||!ArrayBuffer.isView(t)||t instanceof DataView?{}:new t.constructor(t.length);for(e in t)r[e]=goog.object.unsafeClone(t[e]);return r},goog.object.transpose=function(t){var e,r={};for(e in t)r[t[e]]=e;return r},goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleStr
15672ing toString valueOf".split(" "),goog.object.extend=function(t,e){for(var r,n,i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(var o=0;o<goog.object.PROTOTYPE_FIELDS_.length;o++)r=goog.object.PROTOTYPE_FIELDS_[o],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}},goog.object.create=function(t){var e=arguments.length;if(1==e&&Array.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(e%2)throw Error("Uneven number of arguments");for(var r={},n=0;n<e;n+=2)r[arguments[n]]=arguments[n+1];return r},goog.object.createSet=function(t){var e=arguments.length;if(1==e&&Array.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var r={},n=0;n<e;n++)r[arguments[n]]=!0;return r},goog.object.createImmutableView=function(t){var e=t;return Object.isFrozen&&!Object.isFrozen(t)&&(e=Object.create(t),Object.freeze(e)),e},goog.object.isImmutableView=function(t){return!!Object.isFrozen&&Object.isFrozen(t)},goog.object.getAllPropertyNames=function(t,e,r){if(!t)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(t);for(var n={};t&&(t!==Object.prototype||e)&&(t!==Function.prototype||r);){for(var i=Object.getOwnPropertyNames(t),o=0;o<i.length;o++)n[i[o]]=!0;t=Object.getPrototypeOf(t)}return goog.object.getKeys(n)},goog.object.getSuperClass=function(t){return(t=Object.getPrototypeOf(t.prototype))&&t.constructor},goog.dom.tags={},goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},goog.dom.tags.isVoidTag=function(t){return!0===goog.dom.tags.VOID_TAGS_[t]},goog.string={},goog.string.TypedString=function(){},goog.string.Const=function(t,e){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=t===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&e||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.DEBUG&&(goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"}),goog.string.Const.unwrap=function(t){return t instanceof goog.string.Const&&t.constructor===goog.string.Const&&t.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?t.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+t+"'"),"type_error:Const")},goog.string.Const.from=function(t){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,t)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.getPolicyPrivateDoNotAccessOrElse=function(){return goog.TRUSTED_TYPES_POLICY_NAME?(void 0===goog.html.trustedtypes.cachedPolicy_&&(goog.html.trustedtypes.cachedPolicy_=goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html")),goog.html.trustedtypes.cachedPolicy_):null};var module$contents$goog$html$SafeScript_CONSTRUCTOR_TOKEN_PRIVATE={},module$contents$goog$html$SafeScript_SafeScript=function(t,e){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=e===module$contents$goog$html$SafeScript_CONSTRUCTOR_TOKEN_PRIVATE?t:"",this.implementsGoogStringTypedString=!0};module$contents$goog$html$SafeScript_SafeScript.fromConstant=function(t){return 0===(t=goog.string.Const.unwrap(t)).length?module$contents$goog$html$SafeScript_SafeScript.EMPTY:module$contents$goog$html$SafeScript_SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(t)},module$contents$goog$html$SafeScript_SafeScript.fromConstantAndArgs=function(t,e){for(var r=[],n=1;n<arguments.length;n++)r.push(module$contents$goog$html$SafeScript_SafeScript.stringify_(arguments[n]));return module$contents$goog$html$SafeScript_SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+goog.string.Const.unwrap(t)+")("+r.join(", ")+");")},module$contents$goog$html$SafeScript_SafeScript.fromJson=function(t){return module$contents$goog$html$SafeScript_SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(module$contents$goog$html$SafeScript_SafeScript.stringify_(t))},module$contents$goog$html$SafeScript_SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString()},module$contents$goog$html$SafeScript_SafeScript.unwrap=function(t){return module$contents$goog$html$SafeScript_SafeScript.unwrapTrustedScript(t).toString()},module$contents$goog$html$SafeScript_SafeScript.unwrapTrustedScript=function(t){return t instanceof module$contents$goog$html$SafeScript_SafeScript&&t.constructor===module$contents$goog$html$SafeScript_SafeScript?t.privateDoNotAccessOrElseSafeScriptWrappedValue_:((0,goog.asserts.fail)("expected object of type SafeScript, got '"+t+"' of type "+goog.typeOf(t)),"type_error:SafeScript")},module$contents$goog$html$SafeScript_SafeScript.stringify_=function(t){return JSON.stringify(t).replace(/</g,"\\x3c")},module$contents$goog$html$SafeScript_SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(t){var e=goog.html.trustedtypes.getPolicyPrivateDoNotAccessOrElse();return t=e?e.createScript(t):t,new module$contents$goog$html$SafeScript_SafeScript(t,module$contents$goog$html$SafeScript_CONSTRUCTOR_TOKEN_PRIVATE)},goog.DEBUG&&(module$contents$goog$html$SafeScript_SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"}),module$contents$goog$html$SafeScript_SafeScript.EMPTY=module$contents$goog$html$SafeScript_SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeScript=module$contents$goog$html$SafeScript_SafeScript,goog.fs={}
15672,goog.fs.url={},goog.fs.url.createObjectUrl=function(t){return goog.fs.url.getUrlObject_().createObjectURL(t)},goog.fs.url.revokeObjectUrl=function(t){goog.fs.url.getUrlObject_().revokeObjectURL(t)},goog.fs.url.UrlObject_=function(){},goog.fs.url.UrlObject_.prototype.createObjectURL=function(t){},goog.fs.url.UrlObject_.prototype.revokeObjectURL=function(t){},goog.fs.url.getUrlObject_=function(){var t=goog.fs.url.findUrlObject_();if(null!=t)return t;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return void 0!==goog.global.URL&&void 0!==goog.global.URL.createObjectURL?goog.global.URL:void 0!==goog.global.webkitURL&&void 0!==goog.global.webkitURL.createObjectURL?goog.global.webkitURL:void 0!==goog.global.createObjectURL?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()},goog.fs.blob={},goog.fs.blob.getBlob=function(t){var e=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(void 0!==e){e=new e;for(var r=0;r<arguments.length;r++)e.append(arguments[r]);return e.getBlob()}return goog.fs.blob.getBlobWithProperties(module$contents$goog$array_toArray(arguments))},goog.fs.blob.getBlobWithProperties=function(t,e,r){var n=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(void 0!==n){n=new n;for(var i=0;i<t.length;i++)n.append(t[i],r);return n.getBlob(e)}if(void 0!==goog.global.Blob)return n={},e&&(n.type=e),r&&(n.endings=r),new Blob(t,n);throw Error("This browser doesn't seem to support creating Blobs")},goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))||7<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))&&("adlm"==goog.LOCALE.substring(3,7).toLowerCase()||"arab"==goog.LOCALE.substring(3,7).toLowerCase()||"hebr"==goog.LOCALE.substring(3,7).toLowerCase()||"nkoo"==goog.LOCALE.substring(3,7).toLowerCase()||"rohg"==goog.LOCALE.substring(3,7).toLowerCase()||"thaa"==goog.LOCALE.substring(3,7).toLowerCase())||8<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))&&("adlm"==goog.LOCALE.substring(4,8).toLowerCase()||"arab"==goog.LOCALE.substring(4,8).toLowerCase()||"hebr"==goog.LOCALE.substring(4,8).toLowerCase()||"nkoo"==goog.LOCALE.substring(4,8).toLowerCase()||"rohg"==goog.LOCALE.substring(4,8).toLowerCase()||"thaa"==goog.LOCALE.substring(4,8).toLowerCase()),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"‏"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(t,e){return"number"==typeof t?0<t?goog.i18n.bidi.Dir.LTR:0>t?goog.i18n.bidi.Dir.RTL:e?null:goog.i18n.bidi.Dir.NEUTRAL:null==t?null:t?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-\ud801\ud804-\ud839\ud83c-\udbff豈-﬜︀-﹯﻽-￿",goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ‏\ud802-\ud803\ud83a-\ud83bיִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(t,e){return e?t.replace(goog.i18n.bidi.htmlSkipReg_,""):t},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(t,e){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(t,e))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(t,e){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(t,e))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(t){return goog.i18n.bidi.rtlRe_.test(t)},goog.i18n.bidi.isLtrChar=function(t){return goog.i18n.bidi.ltrRe_.test(t)},goog.i18n.bidi.isNeutralChar=function(t){return!goog.i18n.bidi.isLtrChar(t)&&!goog.i18n.bidi.isRtlChar(t)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(t,e){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(t,e))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(t,e){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(t,e))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(t,e){return t=goog.i18n.bidi.stripHtmlIfNeeded_(t,e),goog.i18n.bidi.isRequiredLtrRe_.test(t)||!goog.i18n.bidi.hasAnyLtr(t)&&!goog.i18n.bidi.hasAnyRtl(t)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr
15672=function(t,e){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(t,e))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(t,e){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(t,e))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(t){return goog.i18n.bidi.rtlLocalesRe_.test(t)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(t,e){return e=(void 0===e?goog.i18n.bidi.hasAnyRtl(t):e)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM,t.replace(goog.i18n.bidi.bracketGuardTextRe_,e+"$&"+e)},goog.i18n.bidi.enforceRtlInHtml=function(t){return"<"==t.charAt(0)?t.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+t+"</span>"},goog.i18n.bidi.enforceRtlInText=function(t){return goog.i18n.bidi.Format.RLE+t+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(t){return"<"==t.charAt(0)?t.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+t+"</span>"},goog.i18n.bidi.enforceLtrInText=function(t){return goog.i18n.bidi.Format.LRE+t+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(t){return t.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(t){return t.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(t,e){var r=0,n=0,i=!1;for(t=goog.i18n.bidi.stripHtmlIfNeeded_(t,e).split(goog.i18n.bidi.wordSeparatorRe_),e=0;e<t.length;e++){var o=t[e];goog.i18n.bidi.startsWithRtl(o)?(r++,n++):goog.i18n.bidi.isRequiredLtrRe_.test(o)?i=!0:goog.i18n.bidi.hasAnyLtr(o)?n++:goog.i18n.bidi.hasNumeralsRe_.test(o)&&(i=!0)}return 0==n?i?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:r/n>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(t,e){return goog.i18n.bidi.estimateDirection(t,e)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(t,e){t&&(e=goog.i18n.bidi.toDir(e))&&(t.style.textAlign=e==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,t.dir=e==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(t,e){switch(goog.i18n.bidi.estimateDirection(e)){case goog.i18n.bidi.Dir.LTR:"ltr"!==t.dir&&(t.dir="ltr");break;case goog.i18n.bidi.Dir.RTL:"rtl"!==t.dir&&(t.dir="rtl");break;default:t.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(t,e){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=e===goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_?t:""},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(t,e){var r=goog.html.TrustedResourceUrl.unwrap(this),n=(r=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(r))[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(r[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",r[2]||"",t)+goog.html.TrustedResourceUrl.stringifyParams_("#",n,e))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(t){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(t){return t instanceof goog.html.TrustedResourceUrl&&t.constructor===goog.html.TrustedResourceUrl?t.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+t+"' of type "+goog.typeOf(t)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.format=function(t,e){var r=goog.string.Const.unwrap(t);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(r))throw Error("Invalid TrustedResourceUrl format: "+r);return t=r.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,(function(t,n){if(!Object.prototype.hasOwnProperty.call(e,n))throw Error('Found marker, "'+n+'", in format str
15672ing, "'+r+'", but no valid label mapping found in args: '+JSON.stringify(e));return(t=e[n])instanceof goog.string.Const?goog.string.Const.unwrap(t):encodeURIComponent(String(t))})),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(t,e,r,n){return goog.html.TrustedResourceUrl.format(t,e).cloneWithParams(r,n)},goog.html.TrustedResourceUrl.fromConstant=function(t){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(t))},goog.html.TrustedResourceUrl.fromConstants=function(t){for(var e="",r=0;r<t.length;r++)e+=goog.string.Const.unwrap(t[r]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.TrustedResourceUrl.fromSafeScript=function(t){return t=goog.fs.blob.getBlobWithProperties([module$contents$goog$html$SafeScript_SafeScript.unwrap(t)],"text/javascript"),t=goog.fs.url.createObjectUrl(t),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(t){var e=goog.html.trustedtypes.getPolicyPrivateDoNotAccessOrElse();return t=e?e.createScriptURL(t):t,new goog.html.TrustedResourceUrl(t,goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_)},goog.html.TrustedResourceUrl.stringifyParams_=function(t,e,r){if(null==r)return e;if("string"==typeof r)return r?t+encodeURIComponent(r):"";for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var i=r[n];i=Array.isArray(i)?i:[i];for(var o=0;o<i.length;o++){var s=i[o];null!=s&&(e||(e=t),e+=(e.length>t.length?"&":"")+encodeURIComponent(n)+"="+encodeURIComponent(String(s)))}}return e},goog.string.internal={},goog.string.internal.startsWith=function(t,e){return 0==t.lastIndexOf(e,0)},goog.string.internal.endsWith=function(t,e){var r=t.length-e.length;return 0<=r&&t.indexOf(e,r)==r},goog.string.internal.caseInsensitiveStartsWith=function(t,e){return 0==goog.string.internal.caseInsensitiveCompare(e,t.substr(0,e.length))},goog.string.internal.caseInsensitiveEndsWith=function(t,e){return 0==goog.string.internal.caseInsensitiveCompare(e,t.substr(t.length-e.length,e.length))},goog.string.internal.caseInsensitiveEquals=function(t,e){return t.toLowerCase()==e.toLowerCase()},goog.string.internal.isEmptyOrWhitespace=function(t){return/^[\s\xa0]*$/.test(t)},goog.string.internal.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(t){return t.trim()}:function(t){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(t)[1]},goog.string.internal.caseInsensitiveCompare=function(t,e){return(t=String(t).toLowerCase())<(e=String(e).toLowerCase())?-1:t==e?0:1},goog.string.internal.newLineToBr=function(t,e){return t.replace(/(\r\n|\r|\n)/g,e?"<br />":"<br>")},goog.string.internal.htmlEscape=function(t,e){if(e)t=t.replace(goog.string.internal.AMP_RE_,"&amp;").replace(goog.string.internal.LT_RE_,"&lt;").replace(goog.string.internal.GT_RE_,"&gt;").replace(goog.string.internal.QUOT_RE_,"&quot;").replace(goog.string.internal.SINGLE_QUOTE_RE_,"&#39;").replace(goog.string.internal.NULL_RE_,"&#0;");else{if(!goog.string.internal.ALL_RE_.test(t))return t;-1!=t.indexOf("&")&&(t=t.replace(goog.string.internal.AMP_RE_,"&amp;")),-1!=t.indexOf("<")&&(t=t.replace(goog.string.internal.LT_RE_,"&lt;")),-1!=t.indexOf(">")&&(t=t.replace(goog.string.internal.GT_RE_,"&gt;")),-1!=t.indexOf('"')&&(t=t.replace(goog.string.internal.QUOT_RE_,"&quot;")),-1!=t.indexOf("'")&&(t=t.replace(goog.string.internal.SINGLE_QUOTE_RE_,"&#39;")),-1!=t.indexOf("\0")&&(t=t.replace(goog.string.internal.NULL_RE_,"&#0;"))}return t},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=/</g,goog.string.internal.GT_RE_=/>/g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_
vendor: 10,692 bytes, line 15672
15672=/'/g,goog.string.internal.NULL_RE_=/\x00/g,goog.string.internal.ALL_RE_=/[\x00&<>"']/,goog.string.internal.whitespaceEscape=function(t,e){return goog.string.internal.newLineToBr(t.replace(/  /g," &#160;"),e)},goog.string.internal.contains=function(t,e){return-1!=t.indexOf(e)},goog.string.internal.caseInsensitiveContains=function(t,e){return goog.string.internal.contains(t.toLowerCase(),e.toLowerCase())},goog.string.internal.compareVersions=function(t,e){var r=0;t=goog.string.internal.trim(String(t)).split("."),e=goog.string.internal.trim(String(e)).split(".");for(var n=Math.max(t.length,e.length),i=0;0==r&&i<n;i++){var o=t[i]||"",s=e[i]||"";do{if(o=/(\d*)(\D*)(.*)/.exec(o)||["","","",""],s=/(\d*)(\D*)(.*)/.exec(s)||["","","",""],0==o[0].length&&0==s[0].length)break;r=0==o[1].length?0:parseInt(o[1],10);var a=0==s[1].length?0:parseInt(s[1],10);r=goog.string.internal.compareElements_(r,a)||goog.string.internal.compareElements_(0==o[2].length,0==s[2].length)||goog.string.internal.compareElements_(o[2],s[2]),o=o[3],s=s[3]}while(0==r)}return r},goog.string.internal.compareElements_=function(t,e){return t<e?-1:t>e?1:0},goog.html.SafeUrl=function(t,e){this.privateDoNotAccessOrElseSafeUrlWrappedValue_=e===goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_?t:""},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(t){return t instanceof goog.html.SafeUrl&&t.constructor===goog.html.SafeUrl?t.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+t+"' of type "+goog.typeOf(t)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(t){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(t))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|font\/\w+|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(t){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(t)},goog.html.SafeUrl.fromBlob=function(t){return t=goog.html.SafeUrl.isSafeMimeType(t.type)?goog.fs.url.createObjectUrl(t):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.revokeObjectUrl=function(t){(t=t.getTypedStringValue())!==goog.html.SafeUrl.INNOCUOUS_STRING&&goog.fs.url.revokeObjectUrl(t)},goog.html.SafeUrl.fromMediaSource=function(t){return goog.asserts.assert("MediaSource"in goog.global,"No support for MediaSource"),t=t instanceof MediaSource?goog.fs.url.createObjectUrl(t):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.DATA_URL_PATTERN_=/^data:(.*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.tryFromDataUrl=function(t){var e=(t=(t=String(t)).replace(/(%0A|%0D)/g,"")).match(goog.html.DATA_URL_PATTERN_);return e&&goog.html.SafeUrl.isSafeMimeType(e[1])?goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t):null},goog.html.SafeUrl.fromDataUrl=function(t){return goog.html.SafeUrl.tryFromDataUrl(t)||goog.html.SafeUrl.INNOCUOUS_URL},goog.html.SafeUrl.fromTelUrl=function(t){return goog.string.internal.caseInsensitiveStartsWith(t,"tel:")||(t=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(t){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(t))||(t=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(t){return goog.string.internal.caseInsensitiveStartsWith(t,"fb-messenger://share")||(t=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.fromWhatsAppUrl=function(t){return goog.string.internal.caseInsensitiveStartsWith(t,"whatsapp://send")||(t=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.fromSmsUrl=function(t){return goog.string.internal.caseInsensitiveStartsWith(t,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(t)||(t=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(t){var e=t.indexOf("#");if(0<e&&(t=t.substring(0,e)),!(e=t.match(/[?&]body=/gi)))return!0;if(1<e.length)return!1;if(!(t=t.match(/[?&]body=([^&]*)/)[1]))return!0;try{decodeURIComponent(t)}catch(t){return!1}return/^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(t)},goog.html.SafeUrl.fromSshUrl=function(t){return goog.string.internal.caseInsensitiveStartsWith(t,"ssh://")||(t=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.sanitizeChromeExtensionUrl=function(t,e){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//,t,e)},goog.html.SafeUrl.sanitizeFirefoxExtensionUrl=function(t,e){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//,t,e)},goog.html.SafeUrl.sanitizeEdgeExtensionUrl=function(t,e){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//,t,e)},goog.html.SafeUrl.sanitizeExtensionUrl_=function(t,e,r){return(t=t.exec(e))?(t=t[1],-1==(r instanceof goog.string.Const?[goog.string.Const.unwrap(r)]:r.map((function(t){return goog.string.Const.unwrap(t)}))).indexOf(t)&&(e=goog.html.SafeUrl.INNOCUOUS_STRING)):e=goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromTrustedResourceUrl=function(t){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(t))},goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,goog.html.SafeUrl.SAFE_URL_PATTERN=goog.html.SAFE_URL_PATTERN_,goog.html.SafeUrl.trySanitize=function(t){return t instanceof goog.html.SafeUrl?t:(t="object"==typeof t&&t.implementsGoogStringTypedString?t.getTypedStringValue():String(t),goog.html.SAFE_URL_PATTERN_.test(t)?goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t):goog.html.SafeUrl.tryFromDataUrl(t))},goog.html.SafeUrl.sanitize=function(t){return goog.html.SafeUrl.trySanitize(t)||goog.html.SafeUrl.INNOCUOUS_URL},goog.html.SafeUrl.sanitizeAssertUnchanged=function(t,e){return t instanceof goog.html.SafeUrl?t:(t="object"==typeof t&&t.implementsGoogStringTypedString?t.getTypedStringValue():String(t),e&&/^data:/i.test(t)&&(e=goog.html.SafeUrl.fromDataUrl(t)).getTypedStringValue()==t?e:(goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(t),"%s does not match the safe URL pattern",t)||(t=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)))},goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(t){return new goog.html.SafeUrl(t,goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_)},goog.html.SafeUrl.INNOCUOUS_URL=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank"),goog.html.SafeStyle=function(t,e){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=e===goog.html.SafeStyle.CONSTRUCTOR_TOKEN_PRIVATE_?t:""},goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyle.fromConstant=function(t){return 0===(t=goog.string.Const.unwrap(t)).length?goog.html.SafeStyle.EMPTY:(goog.asserts.assert(goog.string.internal.endsWith(t,";"),"Last character of style string is not ';': "+t),goog.asserts.assert(goog.string.internal.contains(t,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+t),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t))},goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_},goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"}),goog.html.SafeStyle.unwrap=function(t){return t instanceof goog.html.SafeStyle&&t.constructor===goog.html.SafeStyle?t.privateDoNotAccessOrElseSafeStyleWrappedValue_:(goog.asserts.fail("expected object of type SafeStyle, got '"+t+"' of type "+goog.typeOf(t)),"type_error:SafeStyle")},goog.html.SafeStyle.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(t){return new goog.html.SafeStyle(t,goog.html.SafeStyle.CONSTRUCTOR_TOKEN_PRIVATE_)},goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez",goog.html.SafeStyle.create=function(t){var e,r="";for(e in t)if(Object.prototype.hasOwnProperty.call(t,e)){if(!/^[-_a-zA-Z0-9]+$/.test(e))throw Error("Name allows only [-_a-zA-Z0-9], got: "+e);var n=t[e];null!=n&&(r+=e+":"+(n=Array.isArray(n)?module$contents$goog$array_map(n,goog.html.SafeStyle.sanitizePropertyValue_).join(" "):goog.html.SafeStyle.sanitizePropertyValue_(n))+";")}return r?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(r):goog.html.SafeStyle.EMPTY},goog.html.SafeStyle.sanitizePropertyValue_=function(t){if(t instanceof goog.html.SafeUrl)return'url("'+goog.html.SafeUrl.unwrap(t).replace(/</g,"%3c").replace(/[\\"]/g,"\\$&")+'")';if(t=t instanceof goog.string.Const?goog.string.Const.unwrap(t):goog.html.SafeStyle.sanitizePropertyValueString_(String(t)),/[{;}]/.test(t))throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.",[t]);return t},goog.html.SafeStyle.sanitizePropertyValueString_=function(t){var e=t.replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.URL_RE_,"url");return goog.html.SafeStyle.VALUE_RE_.test(e)?goog.html.SafeStyle.COMMENT_RE_.test(t)?(goog.asserts.fail("Str
15672ing value disallows comments, got: "+t),goog.html.SafeStyle.INNOCUOUS_STRING):goog.html.SafeStyle.hasBalancedQuotes_(t)?goog.html.SafeStyle.hasBalancedSquareBrackets_(t)?goog.html.SafeStyle.sanitizeUrl_(t):(goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: "+t),goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value requires balanced quotes, got: "+t),goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value allows only "+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+t),goog.html.SafeStyle.INNOCUOUS_STRING)},goog.html.SafeStyle.hasBalancedQuotes_=function(t){for(var e=!0,r=!0,n=0;n<t.length;n++){var i=t.charAt(n);"'"==i&&r?e=!e:'"'==i&&e&&(r=!r)}return e&&r},goog.html.SafeStyle.hasBalancedSquareBrackets_=function(t){for(var e=!0,r=/^[-_a-zA-Z0-9]$/,n=0;n<t.length;n++){var i=t.charAt(n);if("]"==i){if(e)return!1;e=!0}else if("["==i){if(!e)return!1;e=!1}else if(!e&&!r.test(i))return!1}return e},goog.html.SafeStyle.VALUE_ALLOWED_CHARS_="[-,.\"'%_!# a-zA-Z0-9\\[\\]]",goog.html.SafeStyle.VALUE_RE_=new RegExp("^"+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$"),goog.html.SafeStyle.URL_RE_=/\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g,goog.html.SafeStyle.ALLOWED_FUNCTIONS_="calc cubic-bezier fit-content hsl hsla linear-gradient matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" "),goog.html.SafeStyle.FUNCTIONS_RE_=new RegExp("\\b("+goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|")+")\\([-+*/0-9a-z.%\\[\\], ]+\\)","g"),goog.html.SafeStyle.COMMENT_RE_=/\/\*/,goog.html.SafeStyle.sanitizeUrl_=function(t){return t.replace(goog.html.SafeStyle.URL_RE_,(function(t,e,r,n){var i="";return r=r.replace(/^(['"])(.*)\1$/,(function(t,e,r){return i=e,r})),t=goog.html.SafeUrl.sanitize(r).getTypedStringValue(),e+i+t+i+n}))},goog.html.SafeStyle.concat=function(t){var e="",r=function(t){Array.isArray(t)?module$contents$goog$array_forEach(t,r):e+=goog.html.SafeStyle.unwrap(t)};return module$contents$goog$array_forEach(arguments,r),e?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e):goog.html.SafeStyle.EMPTY};var module$contents$goog$html$SafeStyleSheet_CONSTRUCTOR_TOKEN_PRIVATE={},module$contents$goog$html$SafeStyleSheet_SafeStyleSheet=function(t,e){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=e===module$contents$goog$html$SafeStyleSheet_CONSTRUCTOR_TOKEN_PRIVATE?t:"",this.implementsGoogStringTypedString=!0};module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.createRule=function(t,e){if((0,goog.string.internal.contains)(t,"<"))throw Error("Selector does not allow '<', got: "+t);var r=t.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(r))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+t);if(!module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.hasBalancedBrackets_(r))throw Error("() and [] in selector must be balanced, got: "+t);return e instanceof goog.html.SafeStyle||(e=goog.html.SafeStyle.create(e)),t=t+"{"+goog.html.SafeStyle.unwrap(e).replace(/</g,"\\3C ")+"}",module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.hasBalancedBrackets_=function(t){for(var e={"(":")","[":"]"},r=[],n=0;n<t.length;n++){var i=t[n];if(e[i])r.push(e[i]);else if(goog.object.contains(e,i)&&r.pop()!=i)return!1}return 0==r.length},module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.concat=function(t){var e="",r=function(t){Array.isArray(t)?module$contents$goog$array_forEach(t,r):e+=module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.unwrap(t)};return module$contents$goog$array_forEach(arguments,r),module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e)},module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.fromConstant=function(t){return 0===(t=goog.string.Const.unwrap(t)).length?module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.EMPTY:((0,goog.asserts.assert)(!(0,goog.string.internal.contains)(t,"<"),"Forbidden '<' character in style sheet string: "+t),module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t))},module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_},module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.unwrap=function(t){return t instanceof module$contents$goog$html$SafeStyleSheet_SafeStyleSheet&&t.constructor===module$contents$goog$html$SafeStyleSheet_SafeStyleSheet?t.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_:((0,goog.asserts.fail)("expected object of type SafeStyleSheet, got '"+t+"' of type "+goog.typeOf(t)),"type_error:SafeStyleSheet")},module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(t){return new module$contents$goog$html$SafeStyleSheet_SafeStyleSheet(t,module$contents$goog$html$SafeStyleSheet_CONSTRUCTOR_TOKEN_PRIVATE)},goog.DEBUG&&(module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"}),module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.EMPTY=module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeStyleSheet=module$contents$goog$html$SafeStyleSheet_SafeStyleSheet,goog.labs={},goog.labs.userAgent={},goog.labs.userAgent.util={},goog.labs.userAgent.util.getNativeUserAgentString_=function(){var t=goog.labs.userAgent.util.getNavigator_();return t&&(t=t.userAgent)?t:""},goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator},goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_(),goog.labs.userAgent.util.setUserAgent=function(t){goog.labs.userAgent.util.userAgent_=t||goog.labs.userAgent.util.getNativeUserAgentString_()},goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_},goog.labs.userAgent.util.matchUserAgent=function(t){var e=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.contains(e,t)},goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(t){var e=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.caseInsensitiveContains(e,t)},goog.labs.userAgent.util.extractVersionTuples=function(t){for(var e,r=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,n=[];e=r.exec(t);)n.push([e[1],e[2],e[3]||void 0]);return n},goog.labs.userAgent.browser={},goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")},goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.browser.matchEdgeHtml_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.browser.matchEdgeChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("Edg/")},goog.labs.userAgent.browser.matchOperaChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("OPR")},goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")||goog.labs.userAgent.util.matchUserAgent("FxiOS")},goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdgeHtml_()||goog.labs.userAgent.browser.matchEdgeChromium_()||goog.labs.userAgent.browser.matchOperaChromium_()||goog.labs.userAgent.browser.matchFirefox_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))},goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")},goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&!goog.labs.userAgent.browser.matchFirefox_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")},goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdgeHtml_()}
15672,goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())},goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_,goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_,goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdgeHtml_,goog.labs.userAgent.browser.isEdgeChromium=goog.labs.userAgent.browser.matchEdgeChromium_,goog.labs.userAgent.browser.isOperaChromium=goog.labs.userAgent.browser.matchOperaChromium_,goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_,goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_,goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_,goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_,goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_,goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_,goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")},goog.labs.userAgent.browser.getVersion=function(){function t(t){return t=module$contents$goog$array_find(t,n),r[t]||""}var e=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(e);e=goog.labs.userAgent.util.extractVersionTuples(e);var r={};module$contents$goog$array_forEach(e,(function(t){r[t[0]]=t[1]}));var n=goog.partial(goog.object.containsKey,r);return goog.labs.userAgent.browser.isOpera()?t(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?t(["Edge"]):goog.labs.userAgent.browser.isEdgeChromium()?t(["Edg"]):goog.labs.userAgent.browser.isChrome()?t(["Chrome","CriOS","HeadlessChrome"]):(e=e[2])&&e[1]||""},goog.labs.userAgent.browser.isVersionOrHigher=function(t){return 0<=goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(),t)},goog.labs.userAgent.browser.getIEVersion_=function(t){var e=/rv: *([\d\.]*)/.exec(t);if(e&&e[1])return e[1];e="";var r=/MSIE +([\d\.]+)/.exec(t);if(r&&r[1])if(t=/Trident\/(\d.\d)/.exec(t),"7.0"==r[1])if(t&&t[1])switch(t[1]){case"4.0":e="8.0";break;case"5.0":e="9.0";break;case"6.0":e="10.0";break;case"7.0":e="11.0"}else e="7.0";else e=r[1];return e},goog.html.SafeHtml=function(t,e,r){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=r===goog.html.SafeHtml.CONSTRUCTOR_TOKEN_PRIVATE_?t:"",this.dir_=e},goog.html.SafeHtml.ENABLE_ERROR_MESSAGES=goog.DEBUG,goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE=!0,goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_},goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0,goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeHtml.unwrap=function(t){return goog.html.SafeHtml.unwrapTrustedHTML(t).toString()},goog.html.SafeHtml.unwrapTrustedHTML=function(t){return t instanceof goog.html.SafeHtml&&t.constructor===goog.html.SafeHtml?t.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeHtml, got '"+t+"' of type "+goog.typeOf(t)),"type_error:SafeHtml")},goog.html.SafeHtml.htmlEscape=function(t){if(t instanceof goog.html.SafeHtml)return t;var e="object"==typeof t,r=null;return e&&t.implementsGoogI18nBidiDirectionalString&&(r=t.getDirection()),t=e&&t.implementsGoogStringTypedString?t.getTypedStringValue():String(t),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(t),r)},goog.html.SafeHtml.htmlEscapePreservingNewlines=function(t){return t instanceof goog.html.SafeHtml?t:(t=goog.html.SafeHtml.htmlEscape(t),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(t)),t.getDirection()))},goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(t){return t instanceof goog.html.SafeHtml?t:(t=goog.html.SafeHtml.htmlEscape(t),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(t)),t.getDirection()))},goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape,goog.html.SafeHtml.comment=function(t){return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("\x3c!--"+goog.string.internal.htmlEscape(t)+"--\x3e",null)},goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/,goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0},goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_=goog.object.createSet(goog.dom.TagName.APPLET,goog.dom.TagName.BASE,goog.dom.TagName.EMBED,goog.dom.TagName.IFRAME,goog.dom.TagName.LINK,goog.dom.TagName.MATH,goog.dom.TagName.META,goog.dom.TagName.OBJECT,goog.dom.TagName.SCRIPT,goog.dom.TagName.STYLE,goog.dom.TagName.SVG,goog.dom.TagName.TEMPLATE),goog.html.SafeHtml.create=function(t,e,r){return goog.html.SafeHtml.verifyTagName(String(t)),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(t),e,r)},goog.html.SafeHtml.verifyTagName=function(t){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(t))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Invalid tag name <"+t+">.":"");
15672if(t.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Tag name <"+t+"> is not allowed for SafeHtml.":"")},goog.html.SafeHtml.createIframe=function(t,e,r,n){t&&goog.html.TrustedResourceUrl.unwrap(t);var i={};return i.src=t||null,i.srcdoc=e&&goog.html.SafeHtml.unwrap(e),t=goog.html.SafeHtml.combineAttributes(i,{sandbox:""},r),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",t,n)},goog.html.SafeHtml.createSandboxIframe=function(t,e,r,n){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"The browser does not support sandboxed iframes.":"");var i={};return i.src=t?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(t)):null,i.srcdoc=e||null,i.sandbox="",t=goog.html.SafeHtml.combineAttributes(i,{},r),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",t,n)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(t,e){return goog.html.TrustedResourceUrl.unwrap(t),t=goog.html.SafeHtml.combineAttributes({src:t},{},e),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",t)},goog.html.SafeHtml.createScript=function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=r.toLowerCase();if("language"==n||"src"==n||"text"==n||"type"==n)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set "'+n+'" attribute':"")}for(r="",t=module$contents$goog$array_concat(t),n=0;n<t.length;n++)r+=module$contents$goog$html$SafeScript_SafeScript.unwrap(t[n]);return t=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(r,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",e,t)},goog.html.SafeHtml.createStyle=function(t,e){e=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},e);var r="";t=module$contents$goog$array_concat(t);for(var n=0;n<t.length;n++)r+=module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.unwrap(t[n]);return t=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(r,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",e,t)},goog.html.SafeHtml.createMetaRefresh=function(t,e){return t=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(t)),(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.internal.contains(t,";")&&(t="'"+t.replace(/'/g,"%27")+"'"),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(e||0)+"; url="+t})},goog.html.SafeHtml.getAttrNameAndValue_=function(t,e,r){if(r instanceof goog.string.Const)r=goog.string.Const.unwrap(r);else if("style"==e.toLowerCase()){if(!goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "style" not supported.':"");r=goog.html.SafeHtml.getStyleValue_(r)}else{if(/^on/i.test(e))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+e+'" requires goog.string.Const value, "'+r+'" given.':"");if(e.toLowerCase()in goog.html.SafeHtml.URL_ATTRIBUTES_)if(r instanceof goog.html.TrustedResourceUrl)r=goog.html.TrustedResourceUrl.unwrap(r);else if(r instanceof goog.html.SafeUrl)r=goog.html.SafeUrl.unwrap(r);else{if("string"!=typeof r)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+e+'" on tag "'+t+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+r+'" given.':"");r=goog.html.SafeUrl.sanitize(r).getTypedStringValue()}}return r.implementsGoogStringTypedString&&(r=r.getTypedStringValue()),goog.asserts.assert("string"==typeof r||"number"==typeof r,"String or number value expected, got "+typeof r+" with value: "+r),e+'="'+goog.string.internal.htmlEscape(String(r))+'"'},goog.html.SafeHtml.getStyleValue_=function(t){if(!goog.isObject(t))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof t+" given: "+t:"");return t instanceof goog.html.SafeStyle||(t=goog.html.SafeStyle.create(t)),goog.html.SafeStyle.unwrap(t)},goog.html.SafeHtml.createWithDir=function(t,e,r,n){return(e=goog.html.SafeHtml.create(e,r,n)).dir_=t,e},goog.html.SafeHtml.join=function(t,e){var r=(t=goog.html.SafeHtml.htmlEscape(t)).getDirection(),n=[],i=function(t){Array.isArray(t)?module$contents$goog$array_forEach(t,i):(t=goog.html.SafeHtml.htmlEscape(t),n.push(goog.html.SafeHtml.unwrap(t)),t=t.getDirection(),r==goog.i18n.bidi.Dir.NEUTRAL?r=t:t!=goog.i18n.bidi.Dir.NEUTRAL&&r!=t&&(r=null))};return module$contents$goog$array_forEach(e,i),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n.join(goog.html.SafeHtml.unwrap(t)),r)},goog.html.SafeHtml.concat=function(t){return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY,Array.prototype.slice.call(arguments))},goog.html.SafeHtml.concatWithDir=function(t,e){var r=goog.html.SafeHtml.concat(module$contents$goog$array_slice(arguments,1
15672));return r.dir_=t,r},goog.html.SafeHtml.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(t,e){var r=goog.html.trustedtypes.getPolicyPrivateDoNotAccessOrElse();return t=r?r.createHTML(t):t,new goog.html.SafeHtml(t,e,goog.html.SafeHtml.CONSTRUCTOR_TOKEN_PRIVATE_)},goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(t,e,r){var n=null,i="<"+t+goog.html.SafeHtml.stringifyAttributes(t,e);return null==r?r=[]:Array.isArray(r)||(r=[r]),goog.dom.tags.isVoidTag(t.toLowerCase())?(goog.asserts.assert(!r.length,"Void tag <"+t+"> does not allow content."),i+=">"):(n=goog.html.SafeHtml.concat(r),i+=">"+goog.html.SafeHtml.unwrap(n)+"</"+t+">",n=n.getDirection()),(t=e&&e.dir)&&(n=/^(ltr|rtl|auto)$/i.test(t)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(i,n)},goog.html.SafeHtml.stringifyAttributes=function(t,e){var r="";if(e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(n))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name "'+n+'".':"");var i=e[n];null!=i&&(r+=" "+goog.html.SafeHtml.getAttrNameAndValue_(t,n,i))}return r},goog.html.SafeHtml.combineAttributes=function(t,e,r){var n,i={};for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&(goog.asserts.assert(n.toLowerCase()==n,"Must be lower case"),i[n]=t[n]);for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(goog.asserts.assert(n.toLowerCase()==n,"Must be lower case"),i[n]=e[n]);if(r)for(n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var o=n.toLowerCase();if(o in t)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot override "'+o+'" attribute, got "'+n+'" with value "'+r[n]+'"':"");o in e&&delete i[o],i[n]=r[n]}return i},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=new goog.html.SafeHtml(goog.global.trustedTypes&&goog.global.trustedTypes.emptyHTML||"",goog.i18n.bidi.Dir.NEUTRAL,goog.html.SafeHtml.CONSTRUCTOR_TOKEN_PRIVATE_),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(t,e,r){return goog.asserts.assertString(goog.string.Const.unwrap(t),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(t)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e,r||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(t,e){return goog.asserts.assertString(goog.string.Const.unwrap(t),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(t)),"must provide non-empty justification"),module$contents$goog$html$SafeScript_SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(e)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(t,e){return goog.asserts.assertString(goog.string.Const.unwrap(t),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(t)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(t,e){return goog.asserts.assertString(goog.string.Const.unwrap(t),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(t)),"must provide non-empty justification"),module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(t,e){return goog.asserts.assertString(goog.string.Const.unwrap(t),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(t)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(t,e){return goog.asserts.assertString(goog.string.Const.unwrap(t),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(t)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.dom.safe={},goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"},goog.dom.safe.insertAdjacentHtml=function(t,e,r){t.insertAdjacentHTML(e,goog.html.SafeHtml.unwrapTrustedHTML(r))},goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.dom.safe.isInnerHtmlCleanupRecursive_=goog.functions.cacheReturnValue((function(){if(goog.DEBUG&&"undefined"==typeof document)return!1;var t=document.createElement("div"),e=document.createElement("div");return e.appendChild(document.createElement("div")),t.appendChild(e),!(goog.DEBUG&&!t.firstChild||(e=t.firstChild.firstChild,t.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),e.parentElement))})),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(t,e){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;
15672t.lastChild;)t.removeChild(t.lastChild);t.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(e)},goog.dom.safe.setInnerHtml=function(t,e){if(goog.asserts.ENABLE_ASSERTS&&t.tagName){var r=t.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[r])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+t.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(t,e)},goog.dom.safe.setInnerHtmlFromConstant=function(t,e){goog.dom.safe.setInnerHtml(t,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Constant HTML to be immediatelly used."),goog.string.Const.unwrap(e)))},goog.dom.safe.setOuterHtml=function(t,e){t.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(e)},goog.dom.safe.setFormElementAction=function(t,e){e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),goog.dom.asserts.assertIsHTMLFormElement(t).action=goog.html.SafeUrl.unwrap(e)},goog.dom.safe.setButtonFormAction=function(t,e){e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),goog.dom.asserts.assertIsHTMLButtonElement(t).formAction=goog.html.SafeUrl.unwrap(e)},goog.dom.safe.setInputFormAction=function(t,e){e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),goog.dom.asserts.assertIsHTMLInputElement(t).formAction=goog.html.SafeUrl.unwrap(e)},goog.dom.safe.setStyle=function(t,e){t.style.cssText=goog.html.SafeStyle.unwrap(e)},goog.dom.safe.documentWrite=function(t,e){t.write(goog.html.SafeHtml.unwrapTrustedHTML(e))},goog.dom.safe.setAnchorHref=function(t,e){goog.dom.asserts.assertIsHTMLAnchorElement(t),e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),t.href=goog.html.SafeUrl.unwrap(e)},goog.dom.safe.setImageSrc=function(t,e){if(goog.dom.asserts.assertIsHTMLImageElement(t),!(e instanceof goog.html.SafeUrl)){var r=/^data:image\//i.test(e);e=goog.html.SafeUrl.sanitizeAssertUnchanged(e,r)}t.src=goog.html.SafeUrl.unwrap(e)},goog.dom.safe.setAudioSrc=function(t,e){if(goog.dom.asserts.assertIsHTMLAudioElement(t),!(e instanceof goog.html.SafeUrl)){var r=/^data:audio\//i.test(e);e=goog.html.SafeUrl.sanitizeAssertUnchanged(e,r)}t.src=goog.html.SafeUrl.unwrap(e)},goog.dom.safe.setVideoSrc=function(t,e){if(goog.dom.asserts.assertIsHTMLVideoElement(t),!(e instanceof goog.html.SafeUrl)){var r=/^data:video\//i.test(e);e=goog.html.SafeUrl.sanitizeAssertUnchanged(e,r)}t.src=goog.html.SafeUrl.unwrap(e)},goog.dom.safe.setEmbedSrc=function(t,e){goog.dom.asserts.assertIsHTMLEmbedElement(t),t.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(e)},goog.dom.safe.setFrameSrc=function(t,e){goog.dom.asserts.assertIsHTMLFrameElement(t),t.src=goog.html.TrustedResourceUrl.unwrap(e)},goog.dom.safe.setIframeSrc=function(t,e){goog.dom.asserts.assertIsHTMLIFrameElement(t),t.src=goog.html.TrustedResourceUrl.unwrap(e)},goog.dom.safe.setIframeSrcdoc=function(t,e){goog.dom.asserts.assertIsHTMLIFrameElement(t),t.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(e)},goog.dom.safe.setLinkHrefAndRel=function(t,e,r){goog.dom.asserts.assertIsHTMLLinkElement(t),t.rel=r,goog.string.internal.caseInsensitiveContains(r,"stylesheet")?(goog.asserts.assert(e instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),t.href=goog.html.TrustedResourceUrl.unwrap(e)):t.href=e instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(e):e instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(e):goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(e))},goog.dom.safe.setObjectData=function(t,e){goog.dom.asserts.assertIsHTMLObjectElement(t),t.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(e)},goog.dom.safe.setScriptSrc=function(t,e){goog.dom.asserts.assertIsHTMLScriptElement(t),t.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(e),goog.dom.safe.setNonceForScriptElement_(t)},goog.dom.safe.setScriptContent=function(t,e){goog.dom.asserts.assertIsHTMLScriptElement(t),t.textContent=module$contents$goog$html$SafeScript_SafeScript.unwrapTrustedScript(e),goog.dom.safe.setNonceForScriptElement_(t)},goog.dom.safe.setNonceForScriptElement_=function(t){var e=goog.getScriptNonce(t.ownerDocument&&t.ownerDocument.defaultView);e&&t.setAttribute("nonce",e)},goog.dom.safe.setLocationHref=function(t,e){goog.dom.asserts.assertIsLocation(t),e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),t.href=goog.html.SafeUrl.unwrap(e)},goog.dom.safe.assignLocation=function(t,e){goog.dom.asserts.assertIsLocation(t),e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),t.assign(goog.html.SafeUrl.unwrap(e))},goog.dom.safe.replaceLocation=function(t,e){e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),t.replace(goog.html.SafeUrl.unwrap(e))},goog.dom.safe.openInWindow=function(t,e,r,n,i){return t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e=e||goog.global,r=r instanceof goog.string.Const?goog.string.Const.unwrap(r):r||"",e.open(goog.html.SafeUrl.unwrap(t),r,n,i)},goog.dom.safe.parseFromStringHtml=function(t,e){return goog.dom.safe.parseFromString(t,e,"text/html")},goog.dom.safe.parseFromString=function(t,e,r){return t.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(e),r)},goog.dom.safe.createImageFromBlob=function(t){if(!/^image\/.*/g.test(t.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var e=goog.global.URL.createObjectURL(t);return(t=new goog.global.Image).onload=function(){goog.global.URL.revokeObjectURL(e)},goog.dom.safe.setImageSrc(t,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),e)),t},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(t,e){for(var r=t.split("%s"),n="",i=Array.prototype.slice.call(arguments,1
vendor: 7,564 bytes, line 15672
15672);i.length&&1<r.length;)n+=r.shift()+i.shift();return n+r.join("%s")},goog.string.collapseWhitespace=function(t){return t.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},goog.string.isEmptyOrWhitespace=goog.string.internal.isEmptyOrWhitespace,goog.string.isEmptyString=function(t){return 0==t.length},goog.string.isEmpty=goog.string.isEmptyOrWhitespace,goog.string.isEmptyOrWhitespaceSafe=function(t){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(t))},goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe,goog.string.isBreakingWhitespace=function(t){return!/[^\t\n\r ]/.test(t)},goog.string.isAlpha=function(t){return!/[^a-zA-Z]/.test(t)},goog.string.isNumeric=function(t){return!/[^0-9]/.test(t)},goog.string.isAlphaNumeric=function(t){return!/[^a-zA-Z0-9]/.test(t)},goog.string.isSpace=function(t){return" "==t},goog.string.isUnicodeChar=function(t){return 1==t.length&&" "<=t&&"~">=t||"€"<=t&&"�">=t},goog.string.stripNewlines=function(t){return t.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(t){return t.replace(/(\r\n|\r|\n)/g,"\n")},goog.string.normalizeWhitespace=function(t){return t.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(t){return t.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(t){return t.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(t){return t.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(t){return t.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(t,e,r){if(t==e)return 0;if(!t)return-1;if(!e)return 1;for(var n=t.toLowerCase().match(r),i=e.toLowerCase().match(r),o=Math.min(n.length,i.length),s=0;s<o;s++){r=n[s];var a=i[s];if(r!=a)return t=parseInt(r,10),!isNaN(t)&&(e=parseInt(a,10),!isNaN(e)&&t-e)?t-e:r<a?-1:1}return n.length!=i.length?n.length-i.length:t<e?-1:1},goog.string.intAwareCompare=function(t,e){return goog.string.numberAwareCompare_(t,e,/\d+|\D+/g)},goog.string.floatAwareCompare=function(t,e){return goog.string.numberAwareCompare_(t,e,/\d+|\.\d+|\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(t){return encodeURIComponent(String(t))},goog.string.urlDecode=function(t){return decodeURIComponent(t.replace(/\+/g," "))},goog.string.newLineToBr=goog.string.internal.newLineToBr,goog.string.htmlEscape=function(t,e){return t=goog.string.internal.htmlEscape(t,e),goog.string.DETECT_DOUBLE_ESCAPING&&(t=t.replace(goog.string.E_RE_,"&#101;")),t},goog.string.E_RE_=/e/g,goog.string.unescapeEntities=function(t){return goog.string.contains(t,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(t):goog.string.unescapePureXmlEntities_(t):t},goog.string.unescapeEntitiesWithDocument=function(t,e){return goog.string.contains(t,"&")?goog.string.unescapeEntitiesUsingDom_(t,e):t},goog.string.unescapeEntitiesUsingDom_=function(t,e){var r={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},n=e?e.createElement("div"):goog.global.document.createElement("div");return t.replace(goog.string.HTML_ENTITY_PATTERN_,(function(t,e){var i=r[t];return i||("#"==e.charAt(0)&&(e=Number("0"+e.substr(1)),isNaN(e)||(i=String.fromCharCode(e))),i||(goog.dom.safe.setInnerHtml(n,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),t+" ")),i=n.firstChild.nodeValue.slice(0,-1)),r[t]=i)}))},goog.string.unescapePureXmlEntities_=function(t){return t.replace(/&([^;]+);/g,(function(t,e){switch(e){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return"#"!=e.charAt(0)||(e=Number("0"+e.substr(1)),isNaN(e))?t:String.fromCharCode(e)}}))},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(t,e){return goog.string.newLineToBr(t.replace(/  /g," &#160;"),e)},goog.string.preserveSpaces=function(t){return t.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(t,e){for(var r=e.length,n=0;n<r;n++){var i=1==r?e:e.charAt(n);if(t.charAt(0)==i&&t.charAt(t.length-1)==i)return t.substring(1,t.length-1)}return t},goog.string.truncate=function(t,e,r){return r&&(t=goog.string.unescapeEntities(t)),t.length>e&&(t=t.substring(0,e-3)+"..."),r&&(t=goog.string.htmlEscape(t)),t},goog.string.truncateMiddle=function(t,e,r,n){if(r&&(t=goog.string.unescapeEntities(t)),n&&t.length>e){n>e&&(n=e);var i=t.length-n;t=t.substring(0,e-n)+"..."+t.substring(i)}else t.length>e&&(n=Math.floor(e/2),i=t.length-n,t=t.substring(0,n+e%2)+"..."+t.substring(i));return r&&(t=goog.string.htmlEscape(t)),t},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(t){t=String(t);for(var e=['"'],r=0;r<t.length;r++){var n=t.charAt(r),i=n.charCodeAt(0);e[r+1]=goog.string.specialEscapeChars_[n]||(31<i&&127>i?n:goog.string.escapeChar(n))}return e.push('"'),e.join("")},goog.string.escapeString=function(t){for(var e=[],r=0;r<t.length;r++)e[r]=goog.string.escapeChar(t.charAt(r));return e.join("")},goog.string.escapeChar=function(t){if(t in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[t];if(t in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[t]=goog.string.specialEscapeChars_[t];var e=t.charCodeAt(0);if(31<e&&127>e)var r=t;else 256>e?(r="\\x",(16>e||256<e)&&(r+="0")):(r="\\u",4096>e&&(r+="0")),r+=e.toString(16).toUpperCase();return goog.string.jsEscapeCache_[t]=r},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(t,e){return t&&e?t.split(e).length-1:0},goog.string.removeAt=function(t,e,r){var n=t;return 0<=e&&e<t.length&&0<r&&(n=t.substr(0,e)+t.substr(e+r,t.length-e-r)),n},goog.string.remove=function(t,e){return t.replace(e,"")},goog.string.removeAll=function(t,e){return e=new RegExp(goog.string.regExpEscape(e),"g"),t.replace(e,"")},goog.string.replaceAll=function(t,e,r){return e=new RegExp(goog.string.regExpEscape(e),"g"),t.replace(e,r.replace(/\$/g,"$$$$"))},goog.string.regExpEscape=function(t){return String(t).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},goog.string.repeat=String.prototype.repeat?function(t,e){return t.repeat(e)}:function(t,e){return Array(e+1).join(t)},goog.string.padNumber=function(t,e,r){return-1==(r=(t=void 0!==r?t.toFixed(r):String(t)).indexOf("."))&&(r=t.length),goog.string.repeat("0",Math.max(0,e-r))+t},goog.string.makeSafe=function(t){return null==t?"":String(t)},goog.string.buildString=function(t){return Array.prototype.join.call(arguments,"")},goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)},goog.string.compareVersions=goog.string.internal.compareVersions,goog.string.hashCode=function(t){for(var e=0,r=0;r<t.length;++r)e=31*e+t.charCodeAt(r)>>>0;return e},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(t){var e=Number(t);return 0==e&&goog.string.isEmptyOrWhitespace(t)?NaN:e},goog.string.isLowerCamelCase=function(t){return/^[a-z]+([A-Z][a-z]*)*$/.test(t)}
15672,goog.string.isUpperCamelCase=function(t){return/^([A-Z][a-z]*)+$/.test(t)},goog.string.toCamelCase=function(t){return String(t).replace(/\-([a-z])/g,(function(t,e){return e.toUpperCase()}))},goog.string.toSelectorCase=function(t){return String(t).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(t,e){return e="string"==typeof e?goog.string.regExpEscape(e):"\\s",t.replace(new RegExp("(^"+(e?"|["+e+"]+":"")+")([a-z])","g"),(function(t,e,r){return e+r.toUpperCase()}))},goog.string.capitalize=function(t){return String(t.charAt(0)).toUpperCase()+String(t.substr(1)).toLowerCase()},goog.string.parseInt=function(t){return isFinite(t)&&(t=String(t)),"string"==typeof t?/^\s*-?0x/i.test(t)?parseInt(t,16):parseInt(t,10):NaN},goog.string.splitLimit=function(t,e,r){t=t.split(e);for(var n=[];0<r&&t.length;)n.push(t.shift()),r--;return t.length&&n.push(t.join(e)),n},goog.string.lastComponent=function(t,e){if(!e)return t;"string"==typeof e&&(e=[e]);for(var r=-1,n=0;n<e.length;n++)if(""!=e[n]){var i=t.lastIndexOf(e[n]);i>r&&(r=i)}return-1==r?t:t.slice(r+1)},goog.string.editDistance=function(t,e){var r=[],n=[];if(t==e)return 0;if(!t.length||!e.length)return Math.max(t.length,e.length);for(var i=0;i<e.length+1;i++)r[i]=i;for(i=0;i<t.length;i++){n[0]=i+1;for(var o=0;o<e.length;o++)n[o+1]=Math.min(n[o]+1,r[o+1]+1,r[o]+Number(t[i]!=e[o]));for(o=0;o<r.length;o++)r[o]=n[o]}return n[e.length]},goog.proto2={},goog.proto2.Descriptor=function(t,e,r){for(this.messageType_=t,this.name_=e.name||null,this.fullName_=e.fullName||null,this.containingType_=e.containingType,this.fields_={},t=0;t<r.length;t++)e=r[t],this.fields_[e.getTag()]=e},goog.proto2.Descriptor.prototype.getName=function(){return this.name_},goog.proto2.Descriptor.prototype.getFullName=function(){return this.fullName_},goog.proto2.Descriptor.prototype.getContainingType=function(){return this.containingType_?this.containingType_.getDescriptor():null},goog.proto2.Descriptor.prototype.getFields=function(){var t=goog.object.getValues(this.fields_);return module$contents$goog$array_sort(t,(function(t,e){return t.getTag()-e.getTag()})),t},goog.proto2.Descriptor.prototype.getFieldsMap=function(){return this.fields_},goog.proto2.Descriptor.prototype.findFieldByName=function(t){return goog.object.findValue(this.fields_,(function(e,r,n){return e.getName()==t}))||null},goog.proto2.Descriptor.prototype.findFieldByTag=function(t){return goog.asserts.assert(goog.string.isNumeric(t)),this.fields_[parseInt(t,10)]||null},goog.proto2.Descriptor.prototype.createMessageInstance=function(){return new this.messageType_},goog.proto2.FieldDescriptor=function(t,e,r){switch(this.parent_=t,goog.asserts.assert(goog.string.isNumeric(e)),this.tag_=e,this.name_=r.name,this.isPacked_=!!r.packed,this.isRepeated_=!!r.repeated,this.isRequired_=!!r.required,this.fieldType_=r.fieldType,this.nativeType_=r.type,this.deserializationConversionPermitted_=!1,this.fieldType_){case goog.proto2.FieldDescriptor.FieldType.INT64:case goog.proto2.FieldDescriptor.FieldType.UINT64:case goog.proto2.FieldDescriptor.FieldType.FIXED64:case goog.proto2.FieldDescriptor.FieldType.SFIXED64:case goog.proto2.FieldDescriptor.FieldType.SINT64:case goog.proto2.FieldDescriptor.FieldType.FLOAT:case goog.proto2.FieldDescriptor.FieldType.DOUBLE:this.deserializationConversionPermitted_=!0}this.defaultValue_=r.defaultValue},goog.proto2.FieldDescriptor.FieldType={DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18},goog.proto2.FieldDescriptor.prototype.getTag=function(){return this.tag_},goog.proto2.FieldDescriptor.prototype.getContainingType=function(){return this.parent_.prototype.getDescriptor()},goog.proto2.FieldDescriptor.prototype.getName=function(){return this.name_},goog.proto2.FieldDescriptor.prototype.getDefaultValue=function(){if(void 0===this.defaultValue_){var t=this.nativeType_;if(t===Boolean)this.defaultValue_=!1;else if(t===Number)this.defaultValue_=0;else{if(t!==String)return new t;this.defaultValue_=this.deserializationConversionPermitted_?"0":""}}return this.defaultValue_},goog.proto2.FieldDescriptor.prototype.getFieldType=function(){return this.fieldType_},goog.proto2.FieldDescriptor.prototype.getNativeType=function(){return this.nativeType_},goog.proto2.FieldDescriptor.prototype.deserializationConversionPermitted=function(){return this.deserializationConversionPermitted_},goog.proto2.FieldDescriptor.prototype.getFieldMessageType=function(){return this.nativeType_.prototype.getDescriptor()},goog.proto2.FieldDescriptor.prototype.isCompositeType=function(){return this.fieldType_==goog.proto2.FieldDescriptor.FieldType.MESSAGE||this.fieldType_==goog.proto2.FieldDescriptor.FieldType.GROUP},goog.proto2.FieldDescriptor.prototype.isPacked=function(){return this.isPacked_},goog.proto2.FieldDescriptor.prototype.isRepeated=function(){return this.isRepeated_},goog.proto2.FieldDescriptor.prototype.isRequired=function(){return this.isRequired_},goog.proto2.FieldDescriptor.prototype.isOptional=function(){return!this.isRepeated_&&!this.isRequired_},goog.proto2.Message=function(){this.values_={},this.fields_=this.getDescriptor().getFieldsMap(),this.deserializedFields_=this.lazyDeserializer_=null},goog.proto2.Message.FieldType={DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18}
15672,goog.proto2.Message.prototype.initializeForLazyDeserializer=function(t,e){this.lazyDeserializer_=t,this.values_=e,this.deserializedFields_={}},goog.proto2.Message.prototype.setUnknown=function(t,e){goog.asserts.assert(!this.fields_[t],"Field is not unknown in this message"),goog.asserts.assert(1<=t,"Tag "+t+' has value "'+e+'" in descriptor '+this.getDescriptor().getName()),goog.asserts.assert(null!==e,"Value cannot be null"),this.values_[t]=e,this.deserializedFields_&&delete this.deserializedFields_[t]},goog.proto2.Message.prototype.forEachUnknown=function(t,e){for(var r in e=e||this,this.values_){var n=Number(r);this.fields_[n]||t.call(e,n,this.values_[r])}},goog.proto2.Message.prototype.getDescriptor=goog.abstractMethod,goog.proto2.Message.prototype.has=function(t){return goog.asserts.assert(t.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.has$Value(t.getTag())},goog.proto2.Message.prototype.arrayOf=function(t){return goog.asserts.assert(t.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.array$Values(t.getTag())},goog.proto2.Message.prototype.countOf=function(t){return goog.asserts.assert(t.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.count$Values(t.getTag())},goog.proto2.Message.prototype.get=function(t,e){return goog.asserts.assert(t.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.get$Value(t.getTag(),e)},goog.proto2.Message.prototype.getOrDefault=function(t,e){return goog.asserts.assert(t.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.get$ValueOrDefault(t.getTag(),e)},goog.proto2.Message.prototype.set=function(t,e){goog.asserts.assert(t.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.set$Value(t.getTag(),e)},goog.proto2.Message.prototype.add=function(t,e){goog.asserts.assert(t.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.add$Value(t.getTag(),e)},goog.proto2.Message.prototype.clear=function(t){goog.asserts.assert(t.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.clear$Field(t.getTag())},goog.proto2.Message.prototype.equals=function(t){if(!t||this.constructor!=t.constructor)return!1;for(var e=this.getDescriptor().getFields(),r=0;r<e.length;r++){var n=e[r],i=n.getTag();if(this.has$Value(i)!=t.has$Value(i))return!1;if(this.has$Value(i)){var o=n.isCompositeType(),s=this.getValueForTag_(i);if(i=t.getValueForTag_(i),n.isRepeated()){if(s.length!=i.length)return!1;for(n=0;n<s.length;n++){var a=s[n],d=i[n];if(o?!a.equals(d):a!=d)return!1}}else if(o?!s.equals(i):s!=i)return!1}}return!0},goog.proto2.Message.prototype.copyFrom=function(t){goog.asserts.assert(this.constructor==t.constructor,"The source message must have the same type."),this!=t&&(this.values_={},this.deserializedFields_&&(this.deserializedFields_={}),this.mergeFrom(t))},goog.proto2.Message.prototype.mergeFrom=function(t){goog.asserts.assert(this.constructor==t.constructor,"The source message must have the same type.");for(var e=this.getDescriptor().getFields(),r=0;r<e.length;r++){var n=e[r],i=n.getTag();if(t.has$Value(i)){this.deserializedFields_&&delete this.deserializedFields_[n.getTag()];var o=n.isCompositeType();if(n.isRepeated()){n=t.array$Values(i);for(var s=0;s<n.length;s++)this.add$Value(i,o?n[s].clone():n[s])}else n=t.getValueForTag_(i),o?(o=this.getValueForTag_(i))?o.mergeFrom(n):this.set$Value(i,n.clone()):this.set$Value(i,n)}}},goog.proto2.Message.prototype.clone=function(){var t=new this.constructor;return t.copyFrom(this),t},goog.proto2.Message.prototype.initDefaults=function(t){for(var e=this.getDescriptor().getFields(),r=0;r<e.length;r++){var n=e[r],i=n.getTag(),o=n.isCompositeType();if(this.has$Value(i)||n.isRepeated()||(o?this.values_[i]=new(n.getNativeType()):t&&(this.values_[i]=n.getDefaultValue())),o)if(n.isRepeated())for(n=this.array$Values(i),i=0;i<n.length;i++)n[i].initDefaults(t);else this.get$Value(i).initDefaults(t)}},goog.proto2.Message.prototype.has$Value=function(t){return null!=this.values_[t]},goog.proto2.Message.prototype.getValueForTag_=function(t){var e=this.values_[t];return null==e?null:this.lazyDeserializer_?t in this.deserializedFields_?this.deserializedFields_[t]:(e=this.lazyDeserializer_.deserializeField(this,this.fields_[t],e),this.deserializedFields_[t]=e):e},goog.proto2.Message.prototype.get$Value=function(t,e){var r=this.getValueForTag_(t);return this.fields_[t].isRepeated()?(t=e||0,goog.asserts.assert(0<=t&&t<r.length,"Given index %s 
15672is out of bounds.  Repeated field length: %s",t,r.length),r[t]):r},goog.proto2.Message.prototype.get$ValueOrDefault=function(t,e){return this.has$Value(t)?this.get$Value(t,e):this.fields_[t].getDefaultValue()},goog.proto2.Message.prototype.array$Values=function(t){return this.getValueForTag_(t)||[]},goog.proto2.Message.prototype.count$Values=function(t){return this.fields_[t].isRepeated()?this.has$Value(t)?this.values_[t].length:0:this.has$Value(t)?1:0},goog.proto2.Message.prototype.set$Value=function(t,e){goog.asserts.ENABLE_ASSERTS&&this.checkFieldType_(this.fields_[t],e),this.values_[t]=e,this.deserializedFields_&&(this.deserializedFields_[t]=e)},goog.proto2.Message.prototype.add$Value=function(t,e){goog.asserts.ENABLE_ASSERTS&&this.checkFieldType_(this.fields_[t],e),this.values_[t]||(this.values_[t]=[]),this.values_[t].push(e),this.deserializedFields_&&delete this.deserializedFields_[t]},goog.proto2.Message.prototype.checkFieldType_=function(t,e){t.getFieldType()==goog.proto2.FieldDescriptor.FieldType.ENUM?goog.asserts.assertNumber(e):goog.asserts.assert(Object(e).constructor==t.getNativeType())},goog.proto2.Message.prototype.clear$Field=function(t){delete this.values_[t],this.deserializedFields_&&delete this.deserializedFields_[t]},goog.proto2.Message.createDescriptor=function(t,e){var r,n=[],i=e[0];for(r in e)0!=r&&n.push(new goog.proto2.FieldDescriptor(t,r,e[r]));return new goog.proto2.Descriptor(t,i,n)},goog.proto2.Serializer=function(){},goog.proto2.Serializer.DECODE_SYMBOLIC_ENUMS=!1,goog.proto2.Serializer.prototype.serialize=goog.abstractMethod,goog.proto2.Serializer.prototype.getSerializedValue=function(t,e){return t.isCompositeType()?this.serialize(e):"number"!=typeof e||isFinite(e)?e:e.toString()},goog.proto2.Serializer.prototype.deserialize=function(t,e){return t=t.createMessageInstance(),this.deserializeTo(t,e),goog.asserts.assert(t instanceof goog.proto2.Message),t},goog.proto2.Serializer.prototype.deserializeTo=goog.abstractMethod,goog.proto2.Serializer.prototype.getDeserializedValue=function(t,e){if(t.isCompositeType())return e instanceof goog.proto2.Message?e:this.deserialize(t.getFieldMessageType(),e);if(t.getFieldType()==goog.proto2.FieldDescriptor.FieldType.ENUM)return goog.proto2.Serializer.DECODE_SYMBOLIC_ENUMS&&"string"==typeof e&&(t=t.getNativeType()).hasOwnProperty(e)?t[e]:"string"==typeof e&&goog.proto2.Serializer.INTEGER_REGEX.test(e)&&0<(t=Number(e))?t:e;if(!t.deserializationConversionPermitted())return e;if((t=t.getNativeType())===String){if("number"==typeof e)return String(e)}else if(t===Number&&"string"==typeof e&&("Infinity"===e||"-Infinity"===e||"NaN"===e||goog.proto2.Serializer.INTEGER_REGEX.test(e)))return Number(e);return e},goog.proto2.Serializer.INTEGER_REGEX=/^-?[0-9]+$/,goog.proto2.LazyDeserializer=function(){},goog.inherits(goog.proto2.LazyDeserializer,goog.proto2.Serializer),goog.proto2.LazyDeserializer.prototype.deserialize=function(t,e){return(t=t.createMessageInstance()).initializeForLazyDeserializer(this,e),goog.asserts.assert(t instanceof goog.proto2.Message),t},goog.proto2.LazyDeserializer.prototype.deserializeTo=function(t,e){throw Error("Unimplemented")},goog.proto2.LazyDeserializer.prototype.deserializeField=goog.abstractMethod,goog.proto2.PbLiteSerializer=function(){},goog.inherits(goog.proto2.PbLiteSerializer,goog.proto2.LazyDeserializer),goog.proto2.PbLiteSerializer.prototype.zeroIndexing_=!1,goog.proto2.PbLiteSerializer.prototype.setZeroIndexed=function(t){this.zeroIndexing_=t},goog.proto2.PbLiteSerializer.prototype.serialize=function(t){for(var e=t.getDescriptor().getFields(),r=[],n=this.zeroIndexing_,i=0;i<e.length;i++){var o=e[i];if(t.has(o)){var s=o.getTag();if(s=n?s-1:s,o.isRepeated()){r[s]=[];for(var a=0;a<t.countOf(o);a++)r[s][a]=this.getSerializedValue(o,t.get(o,a))}else r[s]=this.getSerializedValue(o,t.get(o))}}return t.forEachUnknown((function(t,e){r[n?t-1:t]=e})),r},goog.proto2.PbLiteSerializer.prototype.deserializeField=function(t,e,r){if(null==r)return r;if(e.isRepeated()){t=[],goog.asserts.assert(Array.isArray(r),"Value must be array: %s",r);for(var n=0;n<r.length;n++)t[n]=this.getDeserializedValue(e,r[n]);return t}return this.getDeserializedValue(e,r)}
15672,goog.proto2.PbLiteSerializer.prototype.getSerializedValue=function(t,e){return t.getFieldType()==goog.proto2.FieldDescriptor.FieldType.BOOL?e?1:0:goog.proto2.Serializer.prototype.getSerializedValue.apply(this,arguments)},goog.proto2.PbLiteSerializer.prototype.getDeserializedValue=function(t,e){return t.getFieldType()==goog.proto2.FieldDescriptor.FieldType.BOOL?(goog.asserts.assert("number"==typeof e||"boolean"==typeof e,"Value is expected to be a number or boolean"),!!e):goog.proto2.Serializer.prototype.getDeserializedValue.apply(this,arguments)},goog.proto2.PbLiteSerializer.prototype.deserialize=function(t,e){var r=e;if(this.zeroIndexing_)for(var n in r=[],e)r[parseInt(n,10)+1]=e[n];return goog.proto2.PbLiteSerializer.superClass_.deserialize.call(this,t,r)},goog.string.StringBuffer=function(t,e){null!=t&&this.append.apply(this,arguments)},goog.string.StringBuffer.prototype.buffer_="",goog.string.StringBuffer.prototype.set=function(t){this.buffer_=""+t},goog.string.StringBuffer.prototype.append=function(t,e,r){if(this.buffer_+=String(t),null!=e)for(var n=1;n<arguments.length;n++)this.buffer_+=arguments[n];return this},goog.string.StringBuffer.prototype.clear=function(){this.buffer_=""},goog.string.StringBuffer.prototype.getLength=function(){return this.buffer_.length},goog.string.StringBuffer.prototype.toString=function(){return this.buffer_};var i18n={phonenumbers:{}};i18n.phonenumbers.NumberFormat=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.NumberFormat,goog.proto2.Message),i18n.phonenumbers.NumberFormat.descriptor_=null,i18n.phonenumbers.NumberFormat.prototype.getPattern=function(){return this.get$Value(1)},i18n.phonenumbers.NumberFormat.prototype.getPatternOrDefault=function(){return this.get$ValueOrDefault(1)},i18n.phonenumbers.NumberFormat.prototype.setPattern=function(t){this.set$Value(1,t)},i18n.phonenumbers.NumberFormat.prototype.hasPattern=function(){return this.has$Value(1)},i18n.phonenumbers.NumberFormat.prototype.patternCount=function(){return this.count$Values(1)},i18n.phonenumbers.NumberFormat.prototype.clearPattern=function(){this.clear$Field(1)},i18n.phonenumbers.NumberFormat.prototype.getFormat=function(){return this.get$Value(2)},i18n.phonenumbers.NumberFormat.prototype.getFormatOrDefault=function(){return this.get$ValueOrDefault(2)},i18n.phonenumbers.NumberFormat.prototype.setFormat=function(t){this.set$Value(2,t)},i18n.phonenumbers.NumberFormat.prototype.hasFormat=function(){return this.has$Value(2)},i18n.phonenumbers.NumberFormat.prototype.formatCount=function(){return this.count$Values(2)},i18n.phonenumbers.NumberFormat.prototype.clearFormat=function(){this.clear$Field(2)},i18n.phonenumbers.NumberFormat.prototype.getLeadingDigitsPattern=function(t){return this.get$Value(3,t)},i18n.phonenumbers.NumberFormat.prototype.getLeadingDigitsPatternOrDefault=function(t){return this.get$ValueOrDefault(3,t)},i18n.phonenumbers.NumberFormat.prototype.addLeadingDigitsPattern=function(t){this.add$Value(3,t)},i18n.phonenumbers.NumberFormat.prototype.leadingDigitsPatternArray=function(){return this.array$Values(3)},i18n.phonenumbers.NumberFormat.prototype.hasLeadingDigitsPattern=function(){return this.has$Value(3)},i18n.phonenumbers.NumberFormat.prototype.leadingDigitsPatternCount=function(){return this.count$Values(3)},i18n.phonenumbers.NumberFormat.prototype.clearLeadingDigitsPattern=function(){this.clear$Field(3)},i18n.phonenumbers.NumberFormat.prototype.getNationalPrefixFormattingRule=function(){return this.get$Value(4)},i18n.phonenumbers.NumberFormat.prototype.getNationalPrefixFormattingRuleOrDefault=function(){return this.get$ValueOrDefault(4)},i18n.phonenumbers.NumberFormat.prototype.setNationalPrefixFormattingRule=function(t){this.set$Value(4,t)},i18n.phonenumbers.NumberFormat.prototype.hasNationalPrefixFormattingRule=function(){return this.has$Value(4)},i18n.phonenumbers.NumberFormat.prototype.nationalPrefixFormattingRuleCount=function(){return this.count$Values(4)},i18n.phonenumbers.NumberFormat.prototype.clearNationalPrefixFormattingRule=function(){this.clear$Field(4)},i18n.phonenumbers.NumberFormat.prototype.getNationalPrefixOptionalWhenFormatting=function(){return this.get$Value(6)},i18n.phonenumbers.NumberFormat.prototype.getNationalPrefixOptionalWhenFormattingOrDefault=function(){return this.get$ValueOrDefault(6)},i18n.phonenumbers.NumberFormat.prototype.setNationalPrefixOptionalWhenFormatting=function(t){this.set$Value(6,t)},i18n.phonenumbers.NumberFormat.prototype.hasNationalPrefixOptionalWhenFormatting=function(){return this.has$Value(6)},i18n.phonenumbers.NumberFormat.prototype.nationalPrefixOptionalWhenFormattingCount=function(){return this.count$Values(6)},i18n.phonenumbers.NumberFormat.prototype.clearNationalPrefixOptionalWhenFormatting=function(){this.clear$Field(6)},i18n.phonenumbers.NumberFormat.prototype.getDomesticCarrierCodeFormattingRule=function(){return this.get$Value(5)},i18n.phonenumbers.NumberFormat.prototype.getDomesticCarrierCodeFormattingRuleOrDefault=function(){return this.get$ValueOrDefault(5)},i18n.phonenumbers.NumberFormat.prototype.setDomesticCarrierCodeFormattingRule=function(t){this.set$Value(5,t)},i18n.phonenumbers.NumberFormat.prototype.hasDomesticCarrierCodeFormattingRule=function(){return this.has$Value(5)},i18n.phonenumbers.NumberFormat.prototype.domesticCarrierCodeFormattingRuleCount=function(){return this.count$Values(5)},i18n.phonenumbers.NumberFormat.prototype.clearDomesticCarrierCodeFormattingRule=function(){this.clear$Field(5)},i18n.phonenumbers.PhoneNumberDesc=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.PhoneNumberDesc,goog.proto2.Message),i18n.phonenumbers.PhoneNumberDesc.descriptor_=null,i18n.phonenumbers.PhoneNumberDesc.prototype.getNationalNumberPattern=function(){return this.get$Value(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.getNationalNumberPatternOrDefault=function(){return this.get$ValueOrDefault(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.setNationalNumberPattern=function(t){this.set$Value(2,t)},i18n.phonenumbers.PhoneNumberDesc.prototype.hasNationalNumberPattern=function(){return this.has$Value(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.nationalNumberPatternCount=function(){return this.count$Values(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.clearNationalNumberPattern=function(){this.clear$Field(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLength=function(t){return this.get$Value(9,t)},i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthOrDefault=function(t){return this.get$ValueOrDefault(9,t)},i18n.phonenumbers.PhoneNumberDesc.prototype.addPossibleLength=function(t){this.add$Value(9,t)},i18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthArray=function(){return this.array$Values(9)},i18n.phonenumbers.PhoneNumberDesc.prototype.hasPossibleLength=function(){return this.has$Value(9)},i18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthCount=function(){return this.count$Values(9)},i18n.phonenumbers.PhoneNumberDesc.prototype.clearPossibleLength=function(){this.clear$Field(9)},i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthLocalOnly=function(t){return this.get$Value(10,t)},i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthLocalOnlyOrDefault=function(t){return this.get$ValueOrDefault(10,t)},i18n.phonenumbers.PhoneNumberDesc.prototype.addPossibleLengthLocalOnly=function(t){this.add$Value(10,t)},i18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthLocalOnlyArray=function(){return this.array$Values(10)},i18n.phonenumbers.PhoneNumberDesc.prototype.hasPossibleLengthLocalOnly=function(){return this.has$Value(10)},i18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthLocalOnlyCount=function(){return this.count$Values(10)},i18n.phonenumbers.PhoneNumberDesc.prototype.clearPossibleLengthLocalOnly=function(){this.clear$Field(10)},i18n.phonenumbers.PhoneNumberDesc.prototype.getExampleNumber=function(){return this.get$Value(6)},i18n.phonenumbers.PhoneNumberDesc.prototype.getExampleNumberOrDefault=function(){return this.get$ValueOrDefault(6)},i18n.phonenumbers.PhoneNumberDesc.prototype.setExampleNumber=function(t){this.set$Value(6,t)},i18n.phonenumbers.PhoneNumberDesc.prototype.hasExampleNumber=function(){return this.has$Value(6)},i18n.phonenumbers.PhoneNumberDesc.prototype.exampleNumberCount=function(){return this.count$Values(6)},i18n.phonenumbers.PhoneNumberDesc.prototype.clearExampleNumber=function(){this.clear$Field(6)},i18n.phonenumbers.PhoneMetadata=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.PhoneMetadata,goog.proto2.Message),i18n.phonenumbers.PhoneMetadata.descriptor_=null,i18n.phonenumbers.PhoneMetadata.prototype.getGeneralDesc=function(){return this.get$Value(1)},i18n.phonenumbers.PhoneMetadata.prototype.getGeneralDescOrDefault=function(){return this.get$ValueOrDefault(1)},i18n.phonenumbers.PhoneMetadata.prototype.setGeneralDesc=function(t){this.set$Value(1,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasGeneralDesc=function(){return this.has$Value(1)},i18n.phonenumbers.PhoneMetadata.prototype.generalDescCount=function(){return this.count$Values(1)},i18n.phonenumbers.PhoneMetadata.prototype.clearGeneralDesc=function(){this.clear$Field(1)},i18n.phonenumbers.PhoneMetadata.prototype.getFixedLine=function(){return this.get$Value(2)},i18n.phonenumbers.PhoneMetadata.prototype.getFixedLineOrDefault=function(){return this.get$ValueOrDefault(2)},i18n.phonenumbers.PhoneMetadata.prototype.setFixedLine=function(t){this.set$Value(2,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasFixedLine=function(){return this.has$Value(2)},i18n.phonenumbers.PhoneMetadata.prototype.fixedLineCount=function(){return this.count$Values(2)},i18n.phonenumbers.PhoneMetadata.prototype.clearFixedLine=function(){this.clear$Field(2)},i18n.phonenumbers.PhoneMetadata.prototype.getMobile=function(){return this.get$Value(3)},i18n.phonenumbers.PhoneMetadata.prototype.getMobileOrDefault=function(){return this.get$ValueOrDefault(3)},i18n.phonenumbers.PhoneMetadata.prototype.setMobile=function(t){this.set$Value(3,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasMobile=function(){return this.has$Value(3)},i18n.phonenumbers.PhoneMetadata.prototype.mobileCount=function(){return this.count$Values(3)},i18n.phonenumbers.PhoneMetadata.prototype.clearMobile=function(){this.clear$Field(3)},i18n.phonenumbers.PhoneMetadata.prototype.getTollFree=function(){return this.get$Value(4)},i18n.phonenumbers.PhoneMetadata.prototype.getTollFreeOrDefault=function(){return this.get$ValueOrDefault(4)},i18n.phonenumbers.PhoneMetadata.prototype.setTollFree=function(t){this.set$Value(4,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasTollFree=function(){return this.has$Value(4)},i18n.phonenumbers.PhoneMetadata.prototype.tollFreeCount=function(){return this.count$Values(4)},i18n.phonenumbers.PhoneMetadata.prototype.clearTollFree=function(){this.clear$Field(4)},i18n.phonenumbers.PhoneMetadata.prototype.getPremiumRate=function(){return this.get$Value(5)},i18n.phonenumbers.PhoneMetadata.prototype.getPremiumRateOrDefault=function(){return this.get$ValueOrDefault(5)},i18n.phonenumbers.PhoneMetadata.prototype.setPremiumRate=function(t){this.set$Value(5,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasPremiumRate=function(){return this.has$Value(5)},i18n.phonenumbers.PhoneMetadata.prototype.premiumRateCount=function(){return this.count$Values(5)},i18n.phonenumbers.PhoneMetadata.prototype.clearPremiumRate=function(){this.clear$Field(5)},i18n.phonenumbers.PhoneMetadata.prototype.getSharedCost=function(){return this.get$Value(6)},i18n.phonenumbers.PhoneMetadata.prototype.getSharedCostOrDefault=function(){return this.get$ValueOrDefault(6)},i18n.phonenumbers.PhoneMetadata.prototype.setSharedCost=function(t){this.set$Value(6,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasSharedCost=function(){return this.has$Value(6)},i18n.phonenumbers.PhoneMetadata.prototype.sharedCostCount=function(){return this.count$Values(6)},i18n.phonenumbers.PhoneMetadata.prototype.clearSharedCost=function(){this.clear$Field(6)},i18n.phonenumbers.PhoneMetadata.prototype.getPersonalNumber=function(){return this.get$Value(7)},i18n.phonenumbers.PhoneMetadata.prototype.getPersonalNumberOrDefault=function(){return this.get$ValueOrDefault(7)},i18n.phonenumbers.PhoneMetadata.prototype.setPersonalNumber=function(t){this.set$Value(7,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasPersonalNumber=function(){return this.has$Value(7)},i18n.phonenumbers.PhoneMetadata.prototype.personalNumberCount=function(){return this.count$Values(7)},i18n.phonenumbers.PhoneMetadata.prototype.clearPersonalNumber=function(){this.clear$Field(7)},i18n.phonenumbers.PhoneMetadata.prototype.getVoip=function(){return this.get$Value(8)},i18n.phonenumbers.PhoneMetadata.prototype.getVoipOrDefault=function(){return this.get$ValueOrDefault(8)},i18n.phonenumbers.PhoneMetadata.prototype.setVoip=function(t){this.set$Value(8,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasVoip=function(){return this.has$Value(8)},i18n.phonenumbers.PhoneMetadata.prototype.voipCount=function(){return this.count$Values(8)},i18n.phonenumbers.PhoneMetadata.prototype.clearVoip=function(){this.clear$Field(8)},i18n.phonenumbers.PhoneMetadata.prototype.getPager=function(){return this.get$Value(21)},i18n.phonenumbers.PhoneMetadata.prototype.getPagerOrDefault=function(){return this.get$ValueOrDefault(21)},i18n.phonenumbers.PhoneMetadata.prototype.setPager=function(t){this.set$Value(21,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasPager=function(){return this.has$Value(21)},i18n.phonenumbers.PhoneMetadata.prototype.pagerCount=function(){return this.count$Values(21)},i18n.phonenumbers.PhoneMetadata.prototype.clearPager=function(){this.clear$Field(21)},i18n.phonenumbers.PhoneMetadata.prototype.getUan=function(){return this.get$Value(25)},i18n.phonenumbers.PhoneMetadata.prototype.getUanOrDefault=function(){return this.get$ValueOrDefault(25)},i18n.phonenumbers.PhoneMetadata.prototype.setUan=function(t){this.set$Value(25,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasUan=function(){return this.has$Value(25)},i18n.phonenumbers.PhoneMetadata.prototype.uanCount=function(){return this.count$Values(25)},i18n.phonenumbers.PhoneMetadata.prototype.clearUan=function(){this.clear$Field(25)},i18n.phonenumbers.PhoneMetadata.prototype.getEmergency=function(){return this.get$Value(27)},i18n.phonenumbers.PhoneMetadata.prototype.getEmergencyOrDefault=function(){return this.get$ValueOrDefault(27)},i18n.phonenumbers.PhoneMetadata.prototype.setEmergency=function(t){this.set$Value(27,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasEmergency=function(){return this.has$Value(27)},i18n.phonenumbers.PhoneMetadata.prototype.emergencyCount=function(){return this.count$Values(27)},i18n.phonenumbers.PhoneMetadata.prototype.clearEmergency=function(){this.clear$Field(27)},i18n.phonenumbers.PhoneMetadata.prototype.getVoicemail=function(){return this.get$Value(28)},i18n.phonenumbers.PhoneMetadata.prototype.getVoicemailOrDefault=function(){return this.get$ValueOrDefault(28)},i18n.phonenumbers.PhoneMetadata.prototype.setVoicemail=function(t){this.set$Value(28,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasVoicemail=function(){return this.has$Value(28)},i18n.phonenumbers.PhoneMetadata.prototype.voicemailCount=function(){return this.count$Values(28)},i18n.phonenumbers.PhoneMetadata.prototype.clearVoicemail=function(){this.clear$Field(28)},i18n.phonenumbers.PhoneMetadata.prototype.getShortCode=function(){return this.get$Value(29)},i18n.phonenumbers.PhoneMetadata.prototype.getShortCodeOrDefault=function(){return this.get$ValueOrDefault(29)},i18n.phonenumbers.PhoneMetadata.prototype.setShortCode=function(t){this.set$Value(29,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasShortCode=function(){return this.has$Value(29)},i18n.phonenumbers.PhoneMetadata.prototype.shortCodeCount=function(){return this.count$Values(29)},i18n.phonenumbers.PhoneMetadata.prototype.clearShortCode=function(){this.clear$Field(29)},i18n.phonenumbers.PhoneMetadata.prototype.getStandardRate=function(){return this.get$Value(30)},i18n.phonenumbers.PhoneMetadata.prototype.getStandardRateOrDefault=function(){return this.get$ValueOrDefault(30)},i18n.phonenumbers.PhoneMetadata.prototype.setStandardRate=function(t){this.set$Value(30,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasS
15672tandardRate=function(){return this.has$Value(30)},i18n.phonenumbers.PhoneMetadata.prototype.standardRateCount=function(){return this.count$Values(30)},i18n.phonenumbers.PhoneMetadata.prototype.clearStandardRate=function(){this.clear$Field(30)},i18n.phonenumbers.PhoneMetadata.prototype.getCarrierSpecific=function(){return this.get$Value(31)},i18n.phonenumbers.PhoneMetadata.prototype.getCarrierSpecificOrDefault=function(){return this.get$ValueOrDefault(31)},i18n.phonenumbers.PhoneMetadata.prototype.setCarrierSpecific=function(t){this.set$Value(31,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasCarrierSpecific=function(){return this.has$Value(31)},i18n.phonenumbers.PhoneMetadata.prototype.carrierSpecificCount=function(){return this.count$Values(31)},i18n.phonenumbers.PhoneMetadata.prototype.clearCarrierSpecific=function(){this.clear$Field(31)},i18n.phonenumbers.PhoneMetadata.prototype.getSmsServices=function(){return this.get$Value(33)},i18n.phonenumbers.PhoneMetadata.prototype.getSmsServicesOrDefault=function(){return this.get$ValueOrDefault(33)},i18n.phonenumbers.PhoneMetadata.prototype.setSmsServices=function(t){this.set$Value(33,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasSmsServices=function(){return this.has$Value(33)},i18n.phonenumbers.PhoneMetadata.prototype.smsServicesCount=function(){return this.count$Values(33)},i18n.phonenumbers.PhoneMetadata.prototype.clearSmsServices=function(){this.clear$Field(33)},i18n.phonenumbers.PhoneMetadata.prototype.getNoInternationalDialling=function(){return this.get$Value(24)},i18n.phonenumbers.PhoneMetadata.prototype.getNoInternationalDiallingOrDefault=function(){return this.get$ValueOrDefault(24)},i18n.phonenumbers.PhoneMetadata.prototype.setNoInternationalDialling=function(t){this.set$Value(24,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasNoInternationalDialling=function(){return this.has$Value(24)},i18n.phonenumbers.PhoneMetadata.prototype.noInternationalDiallingCount=function(){return this.count$Values(24)},i18n.phonenumbers.PhoneMetadata.prototype.clearNoInternationalDialling=function(){this.clear$Field(24)},i18n.phonenumbers.PhoneMetadata.prototype.getId=function(){return this.get$Value(9)},i18n.phonenumbers.PhoneMetadata.prototype.getIdOrDefault=function(){return this.get$ValueOrDefault(9)},i18n.phonenumbers.PhoneMetadata.prototype.setId=function(t){this.set$Value(9,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasId=function(){return this.has$Value(9)},i18n.phonenumbers.PhoneMetadata.prototype.idCount=function(){return this.count$Values(9)},i18n.phonenumbers.PhoneMetadata.prototype.clearId=function(){this.clear$Field(9)},i18n.phonenumbers.PhoneMetadata.prototype.getCountryCode=function(){return this.get$Value(10)},i18n.phonenumbers.PhoneMetadata.prototype.getCountryCodeOrDefault=function(){return this.get$ValueOrDefault(10)},i18n.phonenumbers.PhoneMetadata.prototype.setCountryCode=function(t){this.set$Value(10,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasCountryCode=function(){return this.has$Value(10)},i18n.phonenumbers.PhoneMetadata.prototype.countryCodeCount=function(){return this.count$Values(10)},i18n.phonenumbers.PhoneMetadata.prototype.clearCountryCode=function(){this.clear$Field(10)},i18n.phonenumbers.PhoneMetadata.prototype.getInternationalPrefix=function(){return this.get$Value(11)},i18n.phonenumbers.PhoneMetadata.prototype.getInternationalPrefixOrDefault=function(){return this.get$ValueOrDefault(11)},i18n.phonenumbers.PhoneMetadata.prototype.setInternationalPrefix=function(t){this.set$Value(11,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasInternationalPrefix=function(){return this.has$Value(11)},i18n.phonenumbers.PhoneMetadata.prototype.internationalPrefixCount=function(){return this.count$Values(11)},i18n.phonenumbers.PhoneMetadata.prototype.clearInternationalPrefix=function(){this.clear$Field(11)},i18n.phonenumbers.PhoneMetadata.prototype.getPreferredInternationalPrefix=function(){return this.get$Value(17)},i18n.phonenumbers.PhoneMetadata.prototype.getPreferredInternationalPrefixOrDefault=function(){return this.get$ValueOrDefault(17)},i18n.phonenumbers.PhoneMetadata.prototype.setPreferredInternationalPrefix=function(t){this.set$Value(17,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasPreferredInternationalPrefix=function(){return this.has$Value(17)},i18n.phonenumbers.PhoneMetadata.prototype.preferredInternationalPrefixCount=function(){return this.count$Values(17)},i18n.phonenumbers.PhoneMetadata.prototype.clearPreferredInternationalPrefix=function(){this.clear$Field(17)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefix=function(){return this.get$Value(12)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixOrDefault=function(){return this.get$ValueOrDefault(12)},i18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefix=function(t){this.set$Value(12,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefix=function(){return this.has$Value(12)},i18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixCount=function(){return this.count$Values(12)},i18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefix=function(){this.clear$Field(12)},i18n.phonenumbers.PhoneMetadata.prototype.getPreferredExtnPrefix=function(){return this.get$Value(13)},i18n.phonenumbers.PhoneMetadata.prototype.getPreferredExtnPrefixOrDefault=function(){return this.get$ValueOrDefault(13)},i18n.phonenumbers.PhoneMetadata.prototype.setPreferredExtnPrefix=function(t){this.set$Value(13,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasPreferredExtnPrefix=function(){return this.has$Value(13)},i18n.phonenumbers.PhoneMetadata.prototype.preferredExtnPrefixCount=function(){return this.count$Values(13)},i18n.phonenumbers.PhoneMetadata.prototype.clearPreferredExtnPrefix=function(){this.clear$Field(13)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixForParsing=function(){return this.get$Value(15)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixForParsingOrDefault=function(){return this.get$ValueOrDefault(15)},i18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefixForParsing=function(t){this.set$Value(15,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefixForParsing=function(){return this.has$Value(15)},i18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixForParsingCount=function(){return this.count$Values(15)},i18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefixForParsing=function(){this.clear$Field(15)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixTransformRule=function(){return this.get$Value(16)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixTransformRuleOrDefault=function(){return this.get$ValueOrDefault(16)},i18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefixTransformRule=function(t){this.set$Value(16,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefixTransformRule=function(){return this.has$Value(16)},i18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixTransformRuleCount=function(){return this.count$Values(16)},i18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefixTransformRule=function(){this.clear$Field(16)},i18n.phonenumbers.PhoneMetadata.prototype.getSameMobileAndFixedLinePattern=function(){return this.get$Value(18)},i18n.phonenumbers.PhoneMetadata.prototype.getSameMobileAndFixedLinePatternOrDefault=function(){return this.get$ValueOrDefault(18)},i18n.phonenumbers.PhoneMetadata.prototype.setSameMobileAndFixedLinePattern=function(t){this.set$Value(18,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasSameMobileAndFixedLinePattern=function(){return this.has$Value(18)},i18n.phonenumbers.PhoneMetadata.prototype.sameMobileAndFixedLinePatternCount=function(){return this.count$Values(18)},i18n.phonenumbers.PhoneMetadata.prototype.clearSameMobileAndFixedLinePattern=function(){this.clear$Field(18)},i18n.phonenumbers.PhoneMetadata.prototype.getNumberFormat=function(t){return this.get$Value(19,t)},i18n.phonenumbers.PhoneMetadata.prototype.getNumberFormatOrDefault=function(t){return this.get$ValueOrDefault(19,t)},i18n.phonenumbers.PhoneMetadata.prototype.addNumberFormat=function(t){this.add$Value(19,t)},i18n.phonenumbers.PhoneMetadata.prototype.numberFormatArray=function(){return this.array$Values(19)},i18n.phonenumbers.PhoneMetadata.prototype.hasNumberFormat=function(){return this.has$Value(19)},i18n.phonenumbers.PhoneMetadata.prototype.numberFormatCount=function(){return this.count$Values(19)},i18n.phonenumbers.PhoneMetadata.prototype.clearNumberFormat=function(){this.clear$Field(19)},i18n.phonenumbers.PhoneMetadata.prototype.getIntlNumberFormat=function(t){return this.get$Value(20,t)},i18n.phonenumbers.PhoneMetadata.prototype.getIntlNumberFormatOrDefault=function(t){return this.get$ValueOrDefault(20,t)},i18n.phonenumbers.PhoneMetadata.prototype.addIntlNumberFormat=function(t){this.add$Value(20,t)},i18n.phonenumbers.PhoneMetadata.prototype.intlNumberFormatArray=function(){return this.array$Values(20)},i18n.phonenumbers.PhoneMetadata.prototype.hasIntlNumberFormat=function(){return this.has$Value(20)},i18n.phonenumbers.PhoneMetadata.prototype.intlNumberFormatCount=function(){return this.count$Values(20)},i18n.phonenumbers.PhoneMetadata.prototype.clearIntlNumberFormat=function(){this.clear$Field(20)},i18n.phonenumbers.PhoneMetadata.prototype.getMainCountryForCode=function(){return this.get$Value(22)},i18n.phonenumbers.PhoneMetadata.prototype.getMainCountryForCodeOrDefault=function(){return this.get$ValueOrDefault(22)},i18n.phonenumbers.PhoneMetadata.prototype.setMainCountryForCode=function(t){this.set$Value(22,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasMainCountryForCode=function(){return this.has$Value(22)},i18n.phonenumbers.PhoneMetadata.prototype.mainCountryForCodeCount=function(){return this.count$Values(22)},i18n.phonenumbers.PhoneMetadata.prototype.clearMainCountryForCode=function(){this.clear$Field(22)},i18n.phonenumbers.PhoneMetadata.prototype.getLeadingDigits=function(){return this.get$Value(23)},i18n.phonenumbers.PhoneMetadata.prototype.getLeadingDigitsOrDefault=function(){return this.get$ValueOrDefault(23)},i18n.phonenumbers.PhoneMetadata.prototype.setLeadingDigits=function(t){this.set$Value(23,t)},i18n.phonenumbers.PhoneMetadata.prototype.hasLeadingDigits=function(){return this.has$Value(23)},i18n.phonenumbers.PhoneMetadata.prototype.leadingDigitsCount=function(){return this.count$Values(23)},i18n.phonenumbers.PhoneMetadata.prototype.clearLeadingDigits=function(){this.clear$Field(23)},i18n.phonenumbers.PhoneMetadataCollection=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.PhoneMetadataCollection,goog.proto2.Message),i18n.phonenumbers.PhoneMetadataCollection.descriptor_=null,i18n.phonenumbers.PhoneMetadataCollection.prototype.getMetadata=function(t){return this.get$Value(1,t)},i18n.phonenumbers.PhoneMetadataCollection.prototype.getMetadataOrDefault=function(t){return this.get$ValueOrDefault(1,t)},i18n.phonenumbers.PhoneMetadataCollection.prototype.addMetadata=function(t){this.add$Value(1,t)},i18n.phonenumbers.PhoneMetadataCollection.prototype.metadataArray=function(){return this.array$Values(1)},i18n.phonenumbers.PhoneMetadataCollection.prototype.hasMetadata=function(){return this.has$Value(1)},i18n.phonenumbers.PhoneMetadataCollection.prototype.metadataCount=function(){return this.count$Values(1)},i18n.phonenumbers.PhoneMetadataCollection.prototype.clearMetadata=function(){this.clear$Field(1)},i18n.phonenumbers.NumberFormat.prototype.getDescriptor=function(){var t=i18n.phonenumbers.NumberFormat.descriptor_;
vendor: 4,182 bytes, line 15672
15672return t||(i18n.phonenumbers.NumberFormat.descriptor_=t=goog.proto2.Message.createDescriptor(i18n.phonenumbers.NumberFormat,{0:{name:"NumberFormat",fullName:"i18n.phonenumbers.NumberFormat"},1:{name:"pattern",required:!0,fieldType:goog.proto2.Message.FieldType.STRING,type:String},2:{name:"format",required:!0,fieldType:goog.proto2.Message.FieldType.STRING,type:String},3:{name:"leading_digits_pattern",repeated:!0,fieldType:goog.proto2.Message.FieldType.STRING,type:String},4:{name:"national_prefix_formatting_rule",fieldType:goog.proto2.Message.FieldType.STRING,type:String},6:{name:"national_prefix_optional_when_formatting",fieldType:goog.proto2.Message.FieldType.BOOL,defaultValue:!1,type:Boolean},5:{name:"domestic_carrier_code_formatting_rule",fieldType:goog.proto2.Message.FieldType.STRING,type:String}})),t},i18n.phonenumbers.NumberFormat.getDescriptor=i18n.phonenumbers.NumberFormat.prototype.getDescriptor,i18n.phonenumbers.PhoneNumberDesc.prototype.getDescriptor=function(){var t=i18n.phonenumbers.PhoneNumberDesc.descriptor_;return t||(i18n.phonenumbers.PhoneNumberDesc.descriptor_=t=goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneNumberDesc,{0:{name:"PhoneNumberDesc",fullName:"i18n.phonenumbers.PhoneNumberDesc"},2:{name:"national_number_pattern",fieldType:goog.proto2.Message.FieldType.STRING,type:String},9:{name:"possible_length",repeated:!0,fieldType:goog.proto2.Message.FieldType.INT32,type:Number},10:{name:"possible_length_local_only",repeated:!0,fieldType:goog.proto2.Message.FieldType.INT32,type:Number},6:{name:"example_number",fieldType:goog.proto2.Message.FieldType.STRING,type:String}})),t},i18n.phonenumbers.PhoneNumberDesc.getDescriptor=i18n.phonenumbers.PhoneNumberDesc.prototype.getDescriptor,i18n.phonenumbers.PhoneMetadata.prototype.getDescriptor=function(){var t=i18n.phonenumbers.PhoneMetadata.descriptor_;return t||(i18n.phonenumbers.PhoneMetadata.descriptor_=t=goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneMetadata,{0:{name:"PhoneMetadata",fullName:"i18n.phonenumbers.PhoneMetadata"},1:{name:"general_desc",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},2:{name:"fixed_line",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},3:{name:"mobile",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},4:{name:"toll_free",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},5:{name:"premium_rate",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},6:{name:"shared_cost",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},7:{name:"personal_number",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},8:{name:"voip",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},21:{name:"pager",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},25:{name:"uan",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},27:{name:"emergency",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},28:{name:"voicemail",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},29:{name:"short_code",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},30:{name:"standard_rate",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},31:{name:"carrier_specific",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},33:{name:"sms_services",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},24:{name:"no_international_dialling",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},9:{name:"id",required:!0,fieldType:goog.proto2.Message.FieldType.STRING,type:String},10:{name:"country_code",fieldType:goog.proto2.Message.FieldType.INT32,type:Number},11:{name:"international_prefix",fieldType:goog.proto2.Message.FieldType.STRING,type:String}
15672,17:{name:"preferred_international_prefix",fieldType:goog.proto2.Message.FieldType.STRING,type:String},12:{name:"national_prefix",fieldType:goog.proto2.Message.FieldType.STRING,type:String},13:{name:"preferred_extn_prefix",fieldType:goog.proto2.Message.FieldType.STRING,type:String},15:{name:"national_prefix_for_parsing",fieldType:goog.proto2.Message.FieldType.STRING,type:String},16:{name:"national_prefix_transform_rule",fieldType:goog.proto2.Message.FieldType.STRING,type:String},18:{name:"same_mobile_and_fixed_line_pattern",fieldType:goog.proto2.Message.FieldType.BOOL,defaultValue:!1,type:Boolean},19:{name:"number_format",repeated:!0,fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.NumberFormat},20:{name:"intl_number_format",repeated:!0,fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.NumberFormat},22:{name:"main_country_for_code",fieldType:goog.proto2.Message.FieldType.BOOL,defaultValue:!1,type:Boolean},23:{name:"leading_digits",fieldType:goog.proto2.Message.FieldType.STRING,type:String}})),t},i18n.phonenumbers.PhoneMetadata.getDescriptor=i18n.phonenumbers.PhoneMetadata.prototype.getDescriptor,i18n.phonenumbers.PhoneMetadataCollection.prototype.getDescriptor=function(){var t=i18n.phonenumbers.PhoneMetadataCollection.descriptor_;return t||(i18n.phonenumbers.PhoneMetadataCollection.descriptor_=t=goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneMetadataCollection,{0:{name:"PhoneMetadataCollection",fullName:"i18n.phonenumbers.PhoneMetadataCollection"},1:{name:"metadata",repeated:!0,fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneMetadata}})),t},i18n.phonenumbers.PhoneMetadataCollection.getDescriptor=i18n.phonenumbers.PhoneMetadataCollection.prototype.getDescriptor,i18n.phonenumbers.PhoneNumber=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.PhoneNumber,goog.proto2.Message),i18n.phonenumbers.PhoneNumber.descriptor_=null,i18n.phonenumbers.PhoneNumber.prototype.getCountryCode=function(){return this.get$Value(1)},i18n.phonenumbers.PhoneNumber.prototype.getCountryCodeOrDefault=function(){return this.get$ValueOrDefault(1)},i18n.phonenumbers.PhoneNumber.prototype.setCountryCode=function(t){this.set$Value(1,t)},i18n.phonenumbers.PhoneNumber.prototype.hasCountryCode=function(){return this.has$Value(1)},i18n.phonenumbers.PhoneNumber.prototype.countryCodeCount=function(){return this.count$Values(1)},i18n.phonenumbers.PhoneNumber.prototype.clearCountryCode=function(){this.clear$Field(1)},i18n.phonenumbers.PhoneNumber.prototype.getNationalNumber=function(){return this.get$Value(2)},i18n.phonenumbers.PhoneNumber.prototype.getNationalNumberOrDefault=function(){return this.get$ValueOrDefault(2)},i18n.phonenumbers.PhoneNumber.prototype.setNationalNumber=function(t){this.set$Value(2,t)},i18n.phonenumbers.PhoneNumber.prototype.hasNationalNumber=function(){return this.has$Value(2)},i18n.phonenumbers.PhoneNumber.prototype.nationalNumberCount=function(){return this.count$Values(2)},i18n.phonenumbers.PhoneNumber.prototype.clearNationalNumber=function(){this.clear$Field(2)},i18n.phonenumbers.PhoneNumber.prototype.getExtension=function(){return this.get$Value(3)},i18n.phonenumbers.PhoneNumber.prototype.getExtensionOrDefault=function(){return this.get$ValueOrDefault(3)},i18n.phonenumbers.PhoneNumber.prototype.setExtension=function(t){this.set$Value(3,t)},i18n.phonenumbers.PhoneNumber.prototype.hasExtension=function(){return this.has$Value(3)},i18n.phonenumbers.PhoneNumber.prototype.extensionCount=function(){return this.count$Values(3)},i18n.phonenumbers.PhoneNumber.prototype.clearExtension=function(){this.clear$Field(3)},i18n.phonenumbers.PhoneNumber.prototype.getItalianLeadingZero=function(){return this.get$Value(4)},i18n.phonenumbers.PhoneNumber.prototype.getItalianLeadingZeroOrDefault=function(){return this.get$ValueOrDefault(4)},i18n.phonenumbers.PhoneNumber.prototype.setItalianLeadingZero=function(t){this.set$Value(4,t)},i18n.phonenumbers.PhoneNumber.prototype.hasItalianLeadingZero=function(){return this.has$Value(4)},i18n.phonenumbers.PhoneNumber.prototype.italianLeadingZeroCount=function(){return this.count$Values(4)},i18n.phonenumbers.PhoneNumber.prototype.clearItalianLeadingZero=function(){this.clear$Field(4)},i18n.phonenumbers.PhoneNumber.prototype.getNumberOfLeadingZeros=function(){return this.get$Value(8)},i18n.phonenumbers.PhoneNumber.prototype.getNumberOfLeadingZerosOrDefault=function(){return this.get$ValueOrDefault(8)},i18n.phonenumbers.PhoneNumber.prototype.setNumberOfLeadingZeros=function(t){this.set$Value(8,t)},i18n.phonenumbers.PhoneNumber.prototype.hasNumberOfLeadingZeros=function(){return this.has$Value(8)},i18n.phonenumbers.PhoneNumber.prototype.numberOfLeadingZerosCount=function(){return this.count$Values(8)},i18n.phonenumbers.PhoneNumber.prototype.clearNumberOfLeadingZeros=function(){this.clear$Field(8)},i18n.phonenumbers.PhoneNumber.prototype.getRawInput=function(){return this.get$Value(5)},i18n.phonenumbers.PhoneNumber.prototype.getRawInputOrDefault=function(){return this.get$ValueOrDefault(5)},i18n.phonenumbers.PhoneNumber.prototype.setRawInput=function(t){this.set$Value(5,t)},i18n.phonenumbers.PhoneNumber.prototype.hasRawInput=function(){return this.has$Value(5)},i18n.phonenumbers.PhoneNumber.prototype.rawInputCount=function(){return this.count$Values(5)},i18n.phonenumbers.PhoneNumber.prototype.clearRawInput=function(){this.clear$Field(5)},i18n.phonenumbers.PhoneNumber.prototype.getCountryCodeSource=function(){return this.get$Value(6)},i18n.phonenumbers.PhoneNumber.prototype.getCountryCodeSourceOrDefault=function(){return this.get$ValueOrDefault(6)},i18n.phonenumbers.PhoneNumber.prototype.setCountryCodeSource=function(t){this.set$Value(6,t)},i18n.phonenumbers.PhoneNumber.prototype.hasCountryCodeSource=function(){return this.has$Value(6)},i18n.phonenumbers.PhoneNumber.prototype.countryCodeSourceCount=function(){return this.count$Values(6)},i18n.phonenumbers.PhoneNumber.prototype.clearCountryCodeSource=function(){this.clear$Field(6)},i18n.phonenumbers.PhoneNumber.prototype.getPreferredDomesticCarrierCode=function(){return this.get$Value(7)},i18n.phonenumbers.PhoneNumber.prototype.getPreferredDomesticCarrierCodeOrDefault=function(){return this.get$ValueOrDefault(7)},i18n.phonenumbers.PhoneNumber.prototype.setPreferredDomesticCarrierCode=function(t){this.set$Value(7,t)},i18n.phonenumbers.PhoneNumber.prototype.hasPreferredDomesticCarrierCode=function(){return this.has$Value(7)},i18n.phonenumbers.PhoneNumber.prototype.preferredDomesticCarrierCodeCount=function(){return this.count$Values(7)},i18n.phonenumbers.PhoneNumber.prototype.clearPreferredDomesticCarrierCode=function(){this.clear$Field(7)},i18n.phonenumbers.PhoneNumber.CountryCodeSource={UNSPECIFIED:0,FROM_NUMBER_WITH_PLUS_SIGN:1,FROM_NUMBER_WITH_IDD:5,FROM_NUMBER_WITHOUT_PLUS_SIGN:10,FROM_DEFAULT_COUNTRY:20},i18n.phonenumbers.PhoneNumber.prototype.getDescriptor=function(){var t=i18n.phonenumbers.PhoneNumber.descriptor_;
vendor: 4,708 bytes, line 15672
15672return t||(i18n.phonenumbers.PhoneNumber.descriptor_=t=goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneNumber,{0:{name:"PhoneNumber",fullName:"i18n.phonenumbers.PhoneNumber"},1:{name:"country_code",required:!0,fieldType:goog.proto2.Message.FieldType.INT32,type:Number},2:{name:"national_number",required:!0,fieldType:goog.proto2.Message.FieldType.UINT64,type:Number},3:{name:"extension",fieldType:goog.proto2.Message.FieldType.STRING,type:String},4:{name:"italian_leading_zero",fieldType:goog.proto2.Message.FieldType.BOOL,type:Boolean},8:{name:"number_of_leading_zeros",fieldType:goog.proto2.Message.FieldType.INT32,defaultValue:1,type:Number},5:{name:"raw_input",fieldType:goog.proto2.Message.FieldType.STRING,type:String},6:{name:"country_code_source",fieldType:goog.proto2.Message.FieldType.ENUM,defaultValue:i18n.phonenumbers.PhoneNumber.CountryCodeSource.UNSPECIFIED,type:i18n.phonenumbers.PhoneNumber.CountryCodeSource},7:{name:"preferred_domestic_carrier_code",fieldType:goog.proto2.Message.FieldType.STRING,type:String}})),t},i18n.phonenumbers.PhoneNumber.ctor=i18n.phonenumbers.PhoneNumber,i18n.phonenumbers.PhoneNumber.ctor.getDescriptor=i18n.phonenumbers.PhoneNumber.prototype.getDescriptor,i18n.phonenumbers.metadata={},i18n.phonenumbers.metadata.countryCodeToRegionCodeMap={1:"US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI".split(" "),7:["RU","KZ"],20:["EG"],27:["ZA"],30:["GR"],31:["NL"],32:["BE"],33:["FR"],34:["ES"],36:["HU"],39:["IT","VA"],40:["RO"],41:["CH"],43:["AT"],44:["GB","GG","IM","JE"],45:["DK"],46:["SE"],47:["NO","SJ"],48:["PL"],49:["DE"],51:["PE"],52:["MX"],53:["CU"],54:["AR"],55:["BR"],56:["CL"],57:["CO"],58:["VE"],60:["MY"],61:["AU","CC","CX"],62:["ID"],63:["PH"],64:["NZ"],65:["SG"],66:["TH"],81:["JP"],82:["KR"],84:["VN"],86:["CN"],90:["TR"],91:["IN"],92:["PK"],93:["AF"],94:["LK"],95:["MM"],98:["IR"],211:["SS"],212:["MA","EH"],213:["DZ"],216:["TN"],218:["LY"],220:["GM"],221:["SN"],222:["MR"],223:["ML"],224:["GN"],225:["CI"],226:["BF"],227:["NE"],228:["TG"],229:["BJ"],230:["MU"],231:["LR"],232:["SL"],233:["GH"],234:["NG"],235:["TD"],236:["CF"],237:["CM"],238:["CV"],239:["ST"],240:["GQ"],241:["GA"],242:["CG"],243:["CD"],244:["AO"],245:["GW"],246:["IO"],247:["AC"],248:["SC"],249:["SD"],250:["RW"],251:["ET"],252:["SO"],253:["DJ"],254:["KE"],255:["TZ"],256:["UG"],257:["BI"],258:["MZ"],260:["ZM"],261:["MG"],262:["RE","YT"],263:["ZW"],264:["NA"],265:["MW"],266:["LS"],267:["BW"],268:["SZ"],269:["KM"],290:["SH","TA"],291:["ER"],297:["AW"],298:["FO"],299:["GL"],350:["GI"],351:["PT"],352:["LU"],353:["IE"],354:["IS"],355:["AL"],356:["MT"],357:["CY"],358:["FI","AX"],359:["BG"],370:["LT"],371:["LV"],372:["EE"],373:["MD"],374:["AM"],375:["BY"],376:["AD"],377:["MC"],378:["SM"],380:["UA"],381:["RS"],382:["ME"],383:["XK"],385:["HR"],386:["SI"],387:["BA"],389:["MK"],420:["CZ"],421:["SK"],423:["LI"],500:["FK"],501:["BZ"],502:["GT"],503:["SV"],504:["HN"],505:["NI"],506:["CR"],507:["PA"],508:["PM"],509:["HT"],590:["GP","BL","MF"],591:["BO"],592:["GY"],593:["EC"],594:["GF"],595:["PY"],596:["MQ"],597:["SR"],598:["UY"],599:["CW","BQ"],670:["TL"],672:["NF"],673:["BN"],674:["NR"],675:["PG"],676:["TO"],677:["SB"],678:["VU"],679:["FJ"],680:["PW"],681:["WF"],682:["CK"],683:["NU"],685:["WS"],686:["KI"],687:["NC"],688:["TV"],689:["PF"],690:["TK"],691:["FM"],692:["MH"],800:["001"],808:["001"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],870:["001"],878:["001"],880:["BD"],881:["001"],882:["001"],883:["001"],886:["TW"],888:["001"],960:["MV"],961:["LB"],962:["JO"],963:["SY"],964:["IQ"],965:["KW"],966:["SA"],967:["YE"],968:["OM"],970:["PS"],971:["AE"],972:["IL"],973:["BH"],974:["QA"],975:["BT"],976:["MN"],977:["NP"],979:["001"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},i18n.phonenumbers.metadata.countryToMetadata={AC:[,[,,"(?:[01589]\\d|[46])\\d{4}",,,,,,,[5,6]],[,,"6[2-467]\\d{3}",,,,"62889",,,[5]],[,,"4\\d{4}",,,,"40123",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AC",247,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:0[1-9]|[1589]\\d)\\d{4}",,,,"542011",,,[6]],,,[,,,,,,,,,[-1]]],AD:[,[,,"(?:1|6\\d)\\d{7}|[135-9]\\d{5}",,,,,,,[6,8,9]],[,,"[78]\\d{5}",,,,"712345",,,[6]],[,,"690\\d{6}|[356]\\d{5}",,,,"312345",,,[6,9]],[,,"180[02]\\d{4}",,,,"18001234",,,[8]],[,,"[19]\\d{5}",,,,"912345",,,[6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AD",376,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[135-9]"]],[,"(\\d{4})(\\d{4})","$1 $2",["1"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],,[,,,,,,,,,[-1]],,,[,,"1800\\d{4}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AE:[,[,,"(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}
15672",,,,,,,[5,6,7,8,9,10,11,12]],[,,"[2-4679][2-8]\\d{6}",,,,"22345678",,,[8],[7]],[,,"5[024-68]\\d{7}",,,,"501234567",,,[9]],[,,"400\\d{6}|800\\d{2,9}",,,,"800123456"],[,,"900[02]\\d{5}",,,,"900234567",,,[9]],[,,"700[05]\\d{5}",,,,"700012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AE",971,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],[,"(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"600[25]\\d{5}",,,,"600212345",,,[9]],,,[,,,,,,,,,[-1]]],AF:[,[,,"[2-7]\\d{8}",,,,,,,[9],[7]],[,,"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}",,,,"234567890",,,,[7]],[,,"7\\d{8}",,,,"701234567",,,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AF",93,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[1-9]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AG:[,[,,"(?:268|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}",,,,"2684601234",,,,[7]],[,,"268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}",,,,"2684641234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"26848[01]\\d{4}",,,,"2684801234",,,,[7]],"AG",1,"011","1",,,"([457]\\d{6})$|1","268$1",,,,,[,,"26840[69]\\d{4}",,,,"2684061234",,,,[7]],,"268",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AI:[,[,,"(?:264|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"264(?:292|4(?:6[12]|9[78]))\\d{4}",,,,"2644612345",,,,[7]],[,,"264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}",,,,"2642351234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"AI",1,"011","1",,,"([2457]\\d{6})$|1","264$1",,,,,[,,"264724\\d{4}",,,,"2647241234",,,,[7]],,"264",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AL:[,[,,"(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",,,,,,,[6,7,8,9],[5]],[,,"4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}",,,,"22345678",,,[8],[5,6,7]],[,,"6(?:[78][2-9]|9\\d)\\d{6}",,,,"672123456",,,[9]],[,,"800\\d{4}",,,,"8001234",,,[7]],[,,"900[1-9]\\d\\d",,,,"900123",,,[6]],[,,"808[1-9]\\d\\d",,,,"808123",,,[6]],[,,"700[2-9]\\d{4}",,,,"70021234",,,[8]],[,,,,,,,,,[-1]],"AL",355,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3,4})","$1 $2",["80|9"],"0$1"],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[2-6]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4"],"0$1"],[,"(\\d{3})(\\d{5})","$1 $2",["[23578]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AM:[,[,,"(?:[1-489]\\d|55|60|77)\\d{6}",,,,,,,[8],[5,6]],[,,"(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}",,,,"10123456",,,,[5,6]],[,,"(?:33|4[1349]|55|77|88|9[13-9])\\d{6}",,,,"77123456"],[,,"800\\d{5}",,,,"80012345"],[,,"90[016]\\d{5}",,,,"90012345"],[,,"80[1-4]\\d{5}",,,,"80112345"],[,,,,,,,,,[-1]],[,,"60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[0-2])\\d{4}",,,,"60271234"],"AM",374,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0 $1"],[,"(\\d{3})(\\d{5})","$1 $2",["2|3[12]"],"(0$1)"],[,"(\\d{2})(\\d{6})","$1 $2",["1|47"],"(0$1)"],[,"(\\d{2})(\\d{6})","$1 $2",["[3-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AO:[,[,,"[29]\\d{8}",,,,,,,[9]],[,,"2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}",,,,"222123456"],[,,"9[1-79]\\d{7}",,,,"923123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AO",244,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[29]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AR:[,[,,"(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}",,,,,,,[10,11],[6,7,8]],[,,"3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:21[2-6]|(?:3[06]|49)4|6(?:04|1[2-8])|9[17][4-6])|3(?:(?:36|64)4|4(?:1[2-8]|[25][4-6]|84)|5(?:1[2-9]|[38][4-6])|8(?:[17][2-6]|3[4-6]|8[3-68])))\\d{6}|(?:2(?:23|64|99)|3(?:43|85))[3-6]\\d{6}|(?:2(?:657|9(?:54|66))|3(?:487|7(?:55|77)|865))[2-8]\\d{5}|(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|80))[45]\\d{6}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46)
15672)|3327)[45]\\d{5}|(?:2(?:2(?:62|81)|320|622|9(?:42|83))|3(?:329|4(?:62|76|89)|564))[2-6]\\d{5}|(?:2(?:284|3(?:02|23)|477|920)|3(?:4(?:46|[89]2)|541|878))[2-7]\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|35|5[17])))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}",,,,"1123456789",,,[10],[6,7,8]],[,,"93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:21[2-6]|(?:3[06]|49)4|6(?:04|1[2-8])|9[17][4-6])|3(?:(?:36|64)4|4(?:1[2-8]|[25][4-6]|84)|5(?:1[2-9]|[38][4-6])|8(?:[17][2-6]|3[4-6]|8[3-68]))))\\d{6}|9(?:2(?:23|64|99)|3(?:43|85))[3-6]\\d{6}|9(?:2(?:657|9(?:54|66))|3(?:487|7(?:55|77)|865))[2-8]\\d{5}|9(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|80))[45]\\d{6}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46)
15672)|3327)[45]\\d{5}|9(?:2(?:2(?:62|81)|320|622|9(?:42|83))|3(?:329|4(?:62|76|89)|564))[2-6]\\d{5}|9(?:2(?:284|3(?:02|23)|477|920)|3(?:4(?:46|[89]2)|541|878))[2-7]\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|35|5[17])))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}",,,,"91123456789",,,,[6,7,8]],[,,"800\\d{7,8}",,,,"8001234567"],[,,"60[04579]\\d{7}",,,,"6001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AR",54,"00","0",,,"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1",,,[[,"(\\d{3})","$1",["0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911"]],[,"(\\d{2})(\\d{4})","$1-$2",["[1-9]"]],[,"(\\d{3})(\\d{4})","$1-$2",["[2-9]"]],[,"(\\d{4})(\\d{4})","$1-$2",["[1-8]"]],[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",,1],[,"(\\d)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1"],[,"(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 15-$3-$4",["91"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{5})","$1-$2-$3",["8"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9"],"0$1"]],[[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",,1],[,"(\\d)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"]],[,"(\\d)(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3-$4",["91"]],[,"(\\d{3})(\\d{3})(\\d{5})","$1-$2-$3",["8"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9"]]],[,,,,,,,,,[-1]],,,[,,"810\\d{7}",,,,,,,[10]],[,,"810\\d{7}",,,,"8101234567",,,[10]],,,[,,,,,,,,,[-1]]],AS:[,[,,"(?:[58]\\d\\d|684|900)\\d{7}",,,,,,,[10],[7]],[,,"6846(?:22|33|44|55|77|88|9[19])\\d{4}",,,,"6846221234",,,,[7]],[,,"684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}",,,,"6847331234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"AS",1,"011","1",,,"([267]\\d{6})$|1","684$1",,,,,[,,,,,,,,,[-1]],,"684",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AT:[,[,,"1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",,,,,,,[4,5,6,7,8,9,10,11,12,13],[3]],[,,"1(?:11\\d|[2-9]\\d{3,11})|(?:316|463|(?:51|66|73)2)\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}",,,,"1234567890",,,,[3]],[,,"6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}",,,,"664123456",,,[7,8,9,10,11,12,13]],[,,"800\\d{6,10}",,,,"800123456",,,[9,10,11,12,13]],[,,"(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}",,,,"900123456",,,[9,10,11,12,13]],[,,"8(?:10|2[018])\\d{6,10}|828\\d{5}",,,,"810123456",,,[8,9,10,11,12,13]],[,,,,,,,,,[-1]],[,,"5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}",,,,"780123456",,,[5,6,7,8,9,10,11,12,13]],"AT",43,"00","0",,,"0",,,,[[,"(\\d{4})","$1",["14"]],[,"(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],[,"(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],[,"(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],[,"(\\d{6})","$1",["[18]"]],[,"(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],[,"(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],[[,"(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],[,"(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],[,"(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],[,"(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],[,"(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AU:[,[,,"1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}
15672",,,,,,,[5,6,7,8,9,10,12]],[,,"(?:(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\d|2[0-8]))\\d|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90)))\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|3\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}",,,,"212345678",,,[9],[8]],[,,"4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}",,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"190[0-26]\\d{6}",,,,"1900123456",,,[10]],[,,"13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",,,,"1300123456",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,"14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",,,,"147101234",,,[9]],"AU",61,"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","0",,,"(183[12])|0",,"0011",,[[,"(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["13"]],[,"(\\d{3})(\\d{3})","$1 $2",["19"]],[,"(\\d{3})(\\d{4})","$1 $2",["180","1802"]],[,"(\\d{4})(\\d{3,4})","$1 $2",["19"]],[,"(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|4"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)","$CC ($1)"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]],[,"(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["130"]]],[[,"(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|4"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)","$CC ($1)"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],[,,"163\\d{2,6}",,,,"1631234",,,[5,6,7,8,9]],1,,[,,"1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}",,,,,,,[6,7,8,10,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AW:[,[,,"(?:[25-79]\\d\\d|800)\\d{4}",,,,,,,[7]],[,,"5(?:2\\d|8[1-9])\\d{4}",,,,"5212345"],[,,"(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}",,,,"5601234"],[,,"800\\d{4}",,,,"8001234"],[,,"900\\d{4}",,,,"9001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:28\\d|501)\\d{4}",,,,"5011234"],"AW",297,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[25-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AX:[,[,,"2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",,,,,,,[5,6,7,8,9,10,11,12]],[,,"18[1-8]\\d{3,6}",,,,"181234567",,,[6,7,8,9]],[,,"4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}",,,,"412345678",,,[6,7,8,9,10]],[,,"800\\d{4,6}",,,,"800123456",,,[7,8,9]],[,,"[67]00\\d{5,6}",,,,"600123456",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AX",358,"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","0",,,"0",,"00",,,,[,,,,,,,,,[-1]],,"18",[,,,,,,,,,[-1]],[,,"20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}",,,,"10112345"],,,[,,,,,,,,,[-1]]],AZ:[,[,,"365\\d{6}|(?:[124579]\\d|60|88)\\d{7}",,,,,,,[9],[7]],[,,"(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}",,,,"123123456",,,,[7]],[,,"36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}",,,,"401234567"],[,,"88\\d{7}",,,,"881234567"],[,,"900200\\d{3}",,,,"900200123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AZ",994,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[1-9]"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365[45]|46","1[28]|2|365(?:4|5[02])|46"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365[45]|46","1[28]|2|365(?:4|5[02])|46"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BA:[,[,,"6\\d{8}|(?:[35689]\\d|49|70)\\d{6}",,,,,,,[8,9],[6]],[,,"(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}",,,,"30212345",,,[8],[6]],[,,"6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}",,,,"61123456"],[,,"8[08]\\d{6}",,,,"80123456",,,[8]],[,,"9[0246]\\d{6}",,,,"90123456",,,[8]],[,,"8[12]\\d{6}",,,,"82123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BA",387,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})","$1-$2",["[2-9]"]],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}",,,,"70341234",,,[8]],,,[,,,,,,,,,[-1]]],BB:[,[,,"(?:246|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}",,,,"2464123456",,,,[7]],[,,"246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}",,,,"2462501234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"(?:246976|900[2-9]\\d\\d)\\d{4}",,,,"9002123456",,,,[7]],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"24631\\d{5}",,,,"2463101234",,,,[7]],"BB",1,"011","1",,,"([2-9]\\d{6})$|1","246$1",,,,,[,,,,,,,,,[-1]],,"246",[,,,,,,,,,[-1]],[,,"246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}",,,,"2464301234",,,,[7]],,,[,,,,,,,,,[-1]]],BD:[,[,,"[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}",,,,,,,[6,7,8,9,10]],[,,"(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:[23]\\d|[45])\\d\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}",,,,"27111234"],[,,"(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}",,,,"1812345678",,,[10]],[,,"80[03]\\d{7}",,,,"8001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\\d{6}",,,,"9604123456",,,[10]],"BD",880,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{4,6})","$1-$2",["31[5-8]|[459]1"],"0$1"],[,"(\\d{3})(\\d{3,7})","$1-$2",["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"],"0$1"],[,"(\\d{4})(\\d{3,6})","$1-$2",["[13-9]|2[23]"],"0$1"],[,"(\\d)(\\d{7,8})","$1-$2",["2"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BE:[,[,,"4\\d{8}|[1-9]\\d{7}",,,,,,,[8,9]],[,,"80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}",,,,"12345678",,,[8]],[,,"4[5-9]\\d{7}",,,,"470123456",,,[9]],[,,"800[1-9]\\d{4}",,,,"80012345",,,[8]],[,,"(?:70(?:2[0-57]|3[04-7]|44|6[4-69]|7[0579])|90\\d\\d)\\d{4}",,,,"90012345",,,[8]],[,,"7879\\d{4}",,,,"78791234",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BE",32,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"],[,"(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[239]|4[23]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[15-8]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"78(?:0[57]|1[014-8]|2[25]|3[15-8]|48|[56]0|7[06-8]|9\\d)\\d{4}",,,,"78102345",,,[8]],,,[,,,,,,,,,[-1]]],BF:[,[,,"[025-7]\\d{7}",,,,,,,[8]],[,,"2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[01
1567279])|5(?:[34]\\d|50|6[5-7]))\\d{4}",,,,"20491234"],[,,"(?:0[1-7]|5[0-8]|[67]\\d)\\d{6}",,,,"70123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BF",226,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[025-7]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BG:[,[,,"00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}",,,,,,,[6,7,8,9,12],[4,5]],[,,"2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}",,,,"2123456",,,[6,7,8],[4,5]],[,,"(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}",,,,"43012345",,,[8,9]],[,,"(?:00800\\d\\d|800)\\d{5}",,,,"80012345",,,[8,12]],[,,"90\\d{6}",,,,"90123456",,,[8]],[,,"700\\d{5}",,,,"70012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BG",359,"00","0",,,"0",,,,[[,"(\\d{6})","$1",["1"]],[,"(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],[[,"(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BH:[,[,,"[136-9]\\d{7}",,,,,,,[8]],[,,"(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|55|7[7-9]|88)|9[69][69])|7(?:[07]\\d\\d|1(?:11|78)))\\d{4}",,,,"17001234"],[,,"(?:3(?:[0-79]\\d|8[0-57-9])\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\d|7[0-689])))\\d{4}",,,,"36001234"],[,,"8[02369]\\d{6}",,,,"80123456"],[,,"(?:87|9[0-8])\\d{6}",,,,"90123456"],[,,"84\\d{6}",,,,"84123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BH",973,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[13679]|8[02-4679]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BI:[,[,,"(?:[267]\\d|31)\\d{6}",,,,,,,[8]],[,,"(?:22|31)\\d{6}",,,,"22201234"],[,,"(?:29|[67][125-9])\\d{6}",,,,"79561234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BI",257,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2367]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BJ:[,[,,"(?:01\\d|[24-689])\\d{7}",,,,,,,[8,10]],[,,"2090\\d{4}|(?:012\\d\\d|2(?:02|1[037]|2[45]|3[68]|4\\d))\\d{5}",,,,"0120211234"],[,,"(?:01(?:2[5-9]|[4-69]\\d)|4[0-8]|[56]\\d|9[013-9])\\d{6}",,,,"0195123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"857[58]\\d{4}",,,,"85751234",,,[8]],"BJ",229,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-689]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"81\\d{6}",,,,"81123456",,,[8]],,,[,,,,,,,,,[-1]]],BL:[,[,,"(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}",,,,,,,[9]],[,,"590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}",,,,"590271234"],[,,"(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}",,,,"690001234"],[,,"80[0-5]\\d{6}",,,,"800012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}",,,,"976012345"],"BL",590,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BM:[,[,,"(?:441|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}",,,,"4414123456",,,,[7]],[,,"441(?:[2378]\\d|5[0-39]|9[02])\\d{5}",,,,"4413701234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"BM",1,"011","1",,,"([2-9]\\d{6})$|1","441$1",,,,,[,,,,,,,,,[-1]],,"441",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BN:[,[,,"[2-578]\\d{6}",,,,,,,[7]],[,,"22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}",,,,"2345678"],[,,"(?:22[89]|[78]\\d\\d)\\d{4}",,,,"7123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5[34]\\d{5}",,,,"5345678"],"BN",673,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-578]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BO:[,[,,"8001\\d{5}|(?:[2-467]\\d|50)\\d{6}",,,,,,,[8,9],[7]],[,,"(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}",,,,"22123456",,,[8],[7]],[,,"[67]\\d{7}",,,,"71234567",,,[8]],[,,"8001[07]\\d{4}",,,,"800171234",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"50\\d{6}",,,,"50123456",,,[8],[7]],"BO",591,"00(?:1\\d)?","0",,,"0(1\\d)?",,,,[[,"(\\d)(\\d{7})","$1 $2",["[235]|4[46]"],,"0$CC $1"],[,"(\\d{8})","$1",["[67]"],,"0$CC $1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["8"],,"0$CC $1"]],,[,,,,,,,,,[-1]],,,[,,"8001[07]\\d{4}",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BQ:[,[,,"(?:[34]1|7\\d)\\d{5}",,,,,,,[7]],[,,"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}",,,,"7151234"],[,,"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}",,,,"3181234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BQ",599,"00",,,,,,,,,,[,,,,,,,,,[-1]],,"[347]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BR:[,[,,"(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}",,,,,,,[8,9,10,11]],[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}",,,,"1123456789",,,[10],[8]],[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}",,,,"11961234567",,,[10,11],[8,9]],[,,"800\\d{6,7}",,,,"800123456",,,[9,10]],[,,"300\\d{6}|[59]00\\d{6,7}",,,,"300123456",,,[9,10]],[,,"(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370))\\d{4}|300\\d{5}",,,,"40041234",,,[8,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BR",55,"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","0",,,"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2",,,[[,"(\\d{3,6})","$1",["1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610"]],[,"(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"]],[,"(\\d{4})(\\d{4})","$1-$2",["[2-57]","[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))"]],[,"(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],[,"(\\d{5})(\\d{4})","$1-$2",["9"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)","0 $CC ($1)"],[,"(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)","0 $CC ($1)"]],[[,"(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"]],[,"(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)","0 $CC ($1)"],[,"(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)","0 $CC ($1)"]],[,,,,,,,,,[-1]],,,[,,"30(?:0\\d{5,7}|3\\d{7})|40(?:0\\d|20)\\d{4}|800\\d{6,7}",,,,,,,[8,9,10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BS:[,[,,"(?:242|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}",,,,"2423456789",,,,[7]],[,,"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|3[0-4]|[89]9))\\d{4}",,,,"2423591234",,,,[7]],[,,"242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456",,,,[7]],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"BS",1,"011","1",,,"([3-8]\\d{6})$|1","242$1",,,,,[,,,,,,,,,[-1]],,"242",[,,,,,,,,,[-1]],[,,"242225\\d{4}",,,,"2422250123"],,,[,,,,,,,,,[-1]]],BT:[,[,,"[17]\\d{7}|[2-8]\\d{6}",,,,,,,[7,8],[6]],[,,"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}",,,,"2345678",,,[7],[6]],[,,"(?:1[67]|77)\\d{6}",,,,"17123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BT",975,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[2-7]"]],[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|7"]]],[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|7"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BW:[,[,,"(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}",,,,,,,[7,8,10]],[,,"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\\d{4}",,,,"2401234",,,[7]],[,,"(?:321|7[1-8]\\d)\\d{5}",,,,"71123456",,,[8]],[,,"(?:0800|800\\d)\\d{6}",,,,"0800012345",,,[10]],[,,"90\\d{5}",,,,"9012345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"79(?:1(?:[0-2]\\d|3[0-3])|2[0-7]\\d)\\d{3}",,,,"79101234",,,[8]],"BW",267,"00",,,,,,,,[[,"(\\d{2})(\\d{5})","$1 $2",["90"]],[,"(\\d{3})(\\d{4})","$1 $2",["[24-6]|3[15-9]"]],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37]"]],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["0"]],[,"(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BY:[,[,,"(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",,,,,,,[6,7,8,9,10,11],[5]],[,,"(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}",,,,"152450911",,,[9],[5,6,7]],[,,"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}",,,,"294911911",,,[9]],[,,"800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}",,,,"8011234567"],[,,"(?:810|902)\\d{7}",,,,"9021234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"249\\d{6}",,,,"249123456",,,[9]],"BY",375,"810","8",,,"0|80?",,"8~10",,[[,"(\\d{3})(\\d{3})","$1 $2",["800"],"8 $1"],[,"(\\d{3})(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"],[,"(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3",["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"],"8 0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:[56]|7[467])|2[1-3]"],"8 0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-4]"],"8 0$1"],[,"(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["[89]"],"8 $1"]],,[,,,,,,,,,[-1]],,,[,,"800\\d{3,7}|(?:8(?:0[13]|10|20\\d)|902)\\d{7}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BZ:[,[,,"(?:0800\\d|[2-8])\\d{6}",,,,,,,[7,11]],[,,"(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}",,,,"2221234",,,[7]],[,,"6[0-35-7]\\d{5}",,,,"6221234",,,[7]],[,,"0800\\d{7}",,,,"08001234123",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BZ",501,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],[,"(\\d)(\\d{3})(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CA:[,[,,"[2-9]\\d{9}|3\\d{6}",,,,,,,[7,10]],[,,"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}",,,,"5062345678",,,[10],[7]],[,,"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}",,,,"5062345678",,,[10],[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456",,,[10]],[,,"900[2-9]\\d{6}",,,,"9002123456",,,[10]],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\d{6}",,,,"5002345678",,,[10]],[,,"600[2-9]\\d{6}",,,,"6002012345",,,[10]],"CA",1,"011","1",,,"1",,,1,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"310\\d{4}",,,,"3101234",,,[7]],,,[,,,,,,,,,[-1]]],CC:[,[,,"1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",,,,,,,[6,7,8,9,10,12]],[,,"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}",,,,"891621234",,,[9],[8]],[,,"4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}",,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"190[0-26]\\d{6}",,,,"1900123456",,,[10]],[,,"13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",,,,"1300123456",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,"14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",,,,"147101234",,,[9]],"CC",61,"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","0",,,"([59]\\d{7})$|0","8$1","0011",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CD:[,[,,"(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}",,,,,,,[7,8,9,10]],[,,"(?:(?:12|573)\\d\\d|276)\\d{5}|[1-6]\\d{6}",,,,"1234567"],[,,"88\\d{5}|(?:8[0-69]|9[017-9])\\d{7}",,,,"991234567",,,[7,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CD",243,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],[,"(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["5"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CF:[,[,,"(?:[27]\\d{3}|8776)\\d{4}",,,,,,,[8]],[,,"2[12]\\d{6}",,,,"21612345"],[,,"7[024-7]\\d{6}",,,,"70012345"],[,,,,,,,,,[-1]],[,,"8776\\d{4}",,,,"87761234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CF",236,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[278]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CG:[,[,,"222\\d{6}|(?:0\\d|80)\\d{7}",,,,,,,[9]],[,,"222[1-589]\\d{5}",,,,"222123456"],[,,"026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}",,,,"061234567"],[,,,,,,,,,[-1]],[,,"80[0-2]\\d{6}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CG",242,"00",,,,,,,,[[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["8"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CH:[,[,,"8\\d{11}|[2-9]\\d{8}",,,,,,,[9,12]],[,,"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}",,,,"212345678",,,[9]],[,,"(?:6[89]|7[235-9])\\d{7}",,,,"781234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"90[016]\\d{6}",,,,"900123456",,,[9]],[,,"84[0248]\\d{6}",,,,"840123456",,,[9]],[,,"878\\d{6}",,,,"878123456",,,[9]],[,,,,,,,,,[-1]],"CH",41,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]|81"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["8"],"0$1"]],,[,,"74[0248]\\d{6}",,,,"740123456",,,[9]],,,[,,,,,,,,,[-1]],[,,"5[18]\\d{7}",,,,"581234567",,,[9]],,,[,,"860\\d{9}",,,,"860123456789",,,[12]]],CI:[,[,,"[02]\\d{9}",,,,,,,[10]],[,,"2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}",,,,"2123456789"],[,,"0[157]\\d{8}",,,,"012345
156726789"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CI",225,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d)(\\d{5})","$1 $2 $3 $4",["2"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3 $4",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CK:[,[,,"[2-578]\\d{4}",,,,,,,[5]],[,,"(?:2\\d|3[13-7]|4[1-5])\\d{3}",,,,"21234"],[,,"[578]\\d{4}",,,,"71234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CK",682,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1 $2",["[2-578]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CL:[,[,,"12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",,,,,,,[9,10,11]],[,,"2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}",,,,"221234567",,,[9]],[,,"2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}",,,,"221234567",,,[9]],[,,"(?:123|8)00\\d{6}",,,,"800123456",,,[9,11]],[,,,,,,,,,[-1]],[,,"600\\d{7,8}",,,,"6001234567",,,[10,11]],[,,,,,,,,,[-1]],[,,"44\\d{7}",,,,"441234567",,,[9]],"CL",56,"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0",,,,,,,1,[[,"(\\d{4})","$1",["1(?:[03-589]|21)|[29]0|78"]],[,"(\\d{5})(\\d{4})","$1 $2",["219","2196"],"($1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[1-36]"],"($1)"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9[2-9]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"],"($1)"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]],[[,"(\\d{5})(\\d{4})","$1 $2",["219","2196"],"($1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[1-36]"],"($1)"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9[2-9]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"],"($1)"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]],[,,,,,,,,,[-1]],,,[,,"600\\d{7,8}",,,,,,,[10,11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CM:[,[,,"[26]\\d{8}|88\\d{6,7}",,,,,,,[8,9]],[,,"2(?:22|33)\\d{6}",,,,"222123456",,,[9]],[,,"(?:24[23]|6(?:[25-9]\\d|40))\\d{6}",,,,"671234567",,,[9]],[,,"88\\d{6,7}",,,,"88012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CM",237,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["88"]],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]|88"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CN:[,[,,"(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}",,,,,,,[7,8,9,10,11,12],[5,6]],[,,"(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|2(?:[02-57-9]\\d{3}|1(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))|(?:41[03]|8078|9(?:78|94))\\d\\d)\\d{5}|(?:10|2[0-57-9])(?:1(?:00|23)\\d\\d|95\\d{3,4})|(?:41[03]|9(?:78|94))(?:100\\d\\d|95\\d{3,4})|8078123|(?:43[35]|754|851)\\d{7,8}|(?:43[35]|754|851)(?:1(?:00\\d|23)\\d|95\\d{3,4})|(?:3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[13-9]\\d{6}|2(?:[0-24-9]\\d{5}|3\\d(?:\\d{4})?))|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[24-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[13-9]\\d{5}|2(?:[0-24-9]\\d{4}|3\\d(?:\\d{3})?))|9(?:[0-46-9]\\d{5}|5\\d{3,5}))",,,,"1012345678",,,[7,8,9,10,11],[5,6]],[,,"1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}",,,,"13123456789",,,[11]],[,,"(?:(?:10|21)8|8)00\\d{7}",,,,"8001234567",,,[10,12]],[,,"16[08]\\d{5}",,,,"16812345",,,[8]],[,,"10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}",,,,"4001234567",,,[7,8,9,10,11],[5,6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CN",86,"00|1(?:[12]\\d|79)\\d\\d00","0",,,"(1(?:[12]\\d|79)\\d\\d)|0",,"00",,[[,"(\\d{5,6})","$1",["1(?:00|2[13])|9[56]","1(?:00|2(?:1|39))|9[56]","1(?:00|2(?:1|395))|9[56]"]],[,"(\\d{5,6})","$1",["1(?:0|23)|781|[1-9]12","1(?:0|23)|7812|[1-9]123","1(?:0|23(?:[0-8]|9[0-46-9]))|78123|[1-9]123"]],[,"(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]","(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"],"0$1","$CC $1"],[,"(\\d{3})(\\d{4})","$1 $2",["[1-9]","1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])","1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|[3-9]","1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))","1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:0(?:[0-689]|7[0-79])|1[01459]|2[0-489]|[46]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))"]],[,"(\\d{4})(\\d{4})","$1 $2",["16[08]"]],[,"(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1","$CC $1"],[,"(\\d{4})(\\d{4})","$1 $2",["[1-9]","1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]","1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])","1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[1-9]|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{3})(\\d{4}
15672)","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{7,8})","$1 $2",["9"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"],,"$CC $1"],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",,1]],[[,"(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]","(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"],"0$1","$CC $1"],[,"(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1","$CC $1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{7,8})","$1 $2",["9"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"],,"$CC $1"],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",,1]],[,,,,,,,,,[-1]],,,[,,"(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}",,,,,,,[10,11,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CO:[,[,,"(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}",,,,,,,[8,10,11],[4,7]],[,,"601055(?:[0-4]\\d|50)\\d\\d|6010(?:[0-4]\\d|5[0-4])\\d{4}|(?:46|60(?:[124-7][2-9]|8[1-9]))\\d{6}",,,,"6012345678",,,[8,10],[4,7]],[,,"333301[0-5]\\d{3}|3333(?:00|2[5-9]|[3-9]\\d)\\d{4}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}",,,,"3211234567",,,[10]],[,,"1800\\d{7}",,,,"18001234567",,,[11]],[,,"(?:19(?:0[01]|4[78])|901)\\d{7}",,,,"19001234567",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CO",57,"00(?:4(?:[14]4|56)|[579])","0",,,"0([3579]|4(?:[14]4|56))?",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["46"]],[,"(\\d{3})(\\d{7})","$1 $2",["6|90"],"($1)","0$CC $1"],[,"(\\d{3})(\\d{7})","$1 $2",["3[0-357]|91"],,"0$CC $1"],[,"(\\d)(\\d{3})(\\d{7})","$1-$2-$3",["1"],"0$1"]],[[,"(\\d{4})(\\d{4})","$1 $2",["46"]],[,"(\\d{3})(\\d{7})","$1 $2",["6|90"],"($1)","0$CC $1"],[,"(\\d{3})(\\d{7})","$1 $2",["3[0-357]|91"],,"0$CC $1"],[,"(\\d)(\\d{3})(\\d{7})","$1 $2 $3",["1"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CR:[,[,,"(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",,,,,,,[8,10]],[,,"210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}",,,,"22123456",,,[8]],[,,"(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}",,,,"83123456",,,[8]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"90[059]\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:210[0-6]|4\\d{3}|5100)\\d{4}",,,,"40001234",,,[8]],"CR",506,"00",,,,"(19(?:0[0-2468]|1[09]|20|66|77|99))",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[3-9]"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]"],,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CU:[,[,,"(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}",,,,,,,[6,7,8,10],[4,5]],[,,"(?:3[23]|4[89])\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}",,,,"71234567",,,,[4,5]],[,,"(?:5\\d|6[2-4])\\d{6}",,,,"51234567",,,[8]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,,,,,,,,[-1]],[,,"807\\d{7}",,,,"8071234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CU",53,"119","0",,,"0",,,,[[,"(\\d{2})(\\d{4,6})","$1 $2",["2[1-4]|[34]"],"(0$1)"],[,"(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],[,"(\\d)(\\d{7})","$1 $2",["[56]"],"0$1"],[,"(\\d{3})(\\d{7})","$1 $2",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CV:[,[,,"(?:[2-59]\\d\\d|800)\\d{4}",,,,,,,[7]],[,,"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}",,,,"2211234"],[,,"(?:36|5[1-389]|9\\d)\\d{5}",,,,"9911234"],[,,"800\\d{4}",,,,"8001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:3[3-5]|4[356])\\d{5}",,,,"3401234"],"CV",238,"0",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2-589]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CW:[,[,,"(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",,,,,,,[7,8]],[,,"9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}",,,,"94351234"],[,,"953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}",,,,"95181234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"60[0-2]\\d{4}",,,,"6001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CW",599,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[3467]"]],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["9[4-8]"]]],,[,,"955\\d{5}",,,,"95581234",,,[8]],1,"[69]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CX:[,[,,"1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",,,,,,,[6,7,8,9,10,12]],[,,"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}",,,,"891641234",,,[9],[8]],[,,"4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}",,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"190[0-26]\\d{6}",,,,"1900123456",,,[10]],[,,"13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",,,,"1300123456",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,"14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",,,,"147101234",,,[9]],"CX",61,"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","0",,,"([59]\\d{7})$|0","8$1","0011",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CY:[,[,,"(?:[279]\\d|[58]0)\\d{6}",,,,,,,[8]],[,,"2[2-6]\\d{6}",,,,"22345678"],[,,"9(?:10|[4-79]\\d)\\d{5}",,,,"96123456"],[,,"800\\d{5}",,,,"80001234"],[,,"90[09]\\d{5}",,,,"90012345"],[,,"80[1-9]\\d{5}",,,,"80112345"],[,,"700\\d{5}",,,,"70012345"],[,,,,,,,,,[-1]],"CY",357,"00",,,,,,,,[[,"(\\d{2})(\\d{6})","$1 $2",["[257-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:50|77)\\d{6}",,,,"77123456"],,,[,,,,,,,,,[-1]]],CZ:[,[,,"(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}",,,,,,,[9,10,11,12]],[,,"(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}",,,,"212345678",,,[9]],[,,"(?:60[1-8]\\d|7(?:0(?:[2-5]\\d|60)|19[01]|[2379]\\d\\d))\\d{5}",,,,"601123456",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"9(?:0[05689]|76)\\d{6}",,,,"900123456",,,[9]],[,,"8[134]\\d{7}",,,,"811234567",,,[9]],[,,"70[01]\\d{6}",,,,"700123456",,,[9]],[,,"9[17]0\\d{6}",,,,"910123456",,,[9]],"CZ",420,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3 $4",["96"]],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"9(?:5\\d|7[2-4])\\d{6}",,,,"972123456",,,[9]],,,[,,"9(?:3\\d{9}|6\\d{7,10})",,,,"93123456789"]],DE:[,[,,"[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}",,,,,,,[4,5,6,7,8,9,10,11,12,13,14,15],[2,3]],[,,"32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][
156720-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}",,,,"30123456",,,[5,6,7,8,9,10,11,12,13,14,15],[2,3,4]],[,,"16[023]\\d{7,8}|1(?:5310|7[0-57-9]\\d)\\d{6}|1(?:5[0-25-9]|76)\\d{8}",,,,"15123456789",,,[10,11]],[,,"800\\d{7,12}",,,,"8001234567890",,,[10,11,12,13,14,15]],[,,"(?:137[7-9]|900(?:[135]|9\\d))\\d{6}",,,,"9001234567",,,[10,11]],[,,"180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}",,,,"18012345",,,[7,8,9,10,11,12,13,14]],[,,"700\\d{8}",,,,"70012345678",,,[11]],[,,,,,,,,,[-1]],"DE",49,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3,13})","$1 $2",["3[02]|40|[68]9"],"0$1"],[,"(\\d{3})(\\d{3,12})","$1 $2",["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1","2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],"0$1"],[,"(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]","[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["138"],"0$1"],[,"(\\d{5})(\\d{2,10})","$1 $2",["3"],"0$1"],[,"(\\d{3})(\\d{5,11})","$1 $2",["181"],"0$1"],[,"(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["1(?:3|80)|9"],"0$1"],[,"(\\d{3})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],[,"(\\d{3})(\\d{7,12})","$1 $2",["8"],"0$1"],[,"(\\d{5})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"],[,"(\\d{4})(\\d{7})","$1 $2",["18[68]"],"0$1"],[,"(\\d{4})(\\d{7})","$1 $2",["15[1279]"],"0$1"],[,"(\\d{5})(\\d{6})","$1 $2",["15[03568]","15(?:[0568]|31)"],"0$1"],[,"(\\d{3})(\\d{8})","$1 $2",["18"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"],[,"(\\d{4})(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{8})","$1 $2 $3",["15"],"0$1"]],,[,,"16(?:4\\d{1,10}|[89]\\d{1,11})",,,,"16412345",,,[4,5,6,7,8,9,10,11,12,13,14]],,,[,,,,,,,,,[-1]],[,,"18(?:1\\d{5,11}|[2-9]\\d{8})",,,,"18500123456",,,[8,9,10,11,12,13,14]],,,[,,"1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}",,,,"177991234567",,,[12,13]]],DJ:[,[,,"(?:2\\d|77)\\d{6}",,,,,,,[8]],[,,"2(?:1[2-5]|7[45])\\d{5}",,,,"21360003"],[,,"77\\d{6}",,,,"77831001"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"DJ",253,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[27]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DK:[,[,,"[2-9]\\d{7}",,,,,,,[8]],[,,"(?:(?:2\\d|9[1-46-9])\\d|3(?:[0-37]\\d|4[013]|5[0-58]|6[01347-9]|8[0-8]|9[0-79])|4(?:[0-25]\\d|[34][02-9]|6[013-579]|7[013579]|8[0-47]|9[0-27])|5(?:[0-36]\\d|4[0146-9]|5[03-57-9]|7[0568]|8[0-358]|9[0-69])|6(?:[013578]\\d|2[0-68]|4[02-8]|6[01689]|9[015689])|7(?:[0-69]\\d|7[03-9]|8[0147])|8(?:[16-9]\\d|2[0-58]))\\d{5}",,,,"32123456"],[,,"(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6
vendor: 5,388 bytes, line 15672
15672}",,,,"34412345"],[,,"80\\d{6}",,,,"80123456"],[,,"90\\d{6}",,,,"90123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"DK",45,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DM:[,[,,"(?:[58]\\d\\d|767|900)\\d{7}",,,,,,,[10],[7]],[,,"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}",,,,"7674201234",,,,[7]],[,,"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}",,,,"7672251234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"DM",1,"011","1",,,"([2-7]\\d{6})$|1","767$1",,,,,[,,,,,,,,,[-1]],,"767",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DO:[,[,,"(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}",,,,"8092345678",,,,[7]],[,,"8[024]9[2-9]\\d{6}",,,,"8092345678",,,,[7]],[,,"8(?:00(?:14|[2-9]\\d)|(?:33|44|55|66|77|88)[2-9]\\d)\\d{5}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"DO",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"8001|8[024]9",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DZ:[,[,,"(?:[1-4]|[5-79]\\d|80)\\d{7}",,,,,,,[8,9]],[,,"9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[013-689])\\d{6}",,,,"12345678"],[,,"(?:5(?:4[0-29]|5\\d|6[0-3])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}",,,,"551234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"80[3-689]1\\d{5}",,,,"808123456",,,[9]],[,,"80[12]1\\d{5}",,,,"801123456",,,[9]],[,,,,,,,,,[-1]],[,,"98[23]\\d{6}",,,,"983123456",,,[9]],"DZ",213,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EC:[,[,,"1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}",,,,,,,[8,9,10,11],[7]],[,,"[2-7][2-7]\\d{6}",,,,"22123456",,,[8],[7]],[,,"964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}",,,,"991234567",,,[9]],[,,"1800\\d{7}|1[78]00\\d{6}",,,,"18001234567",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"[2-7]890\\d{4}",,,,"28901234",,,[8]],"EC",593,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[2-7]"]],[,"(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-7]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EE:[,[,,"8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",,,,,,,[7,8,10]],[,,"(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}",,,,"3212345",,,[7]],[,,"(?:5\\d{5}|8(?:1(?:0(?:0(?:00|[178]\\d)|[3-9]\\d\\d)|(?:1(?:0[2-6]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:0(?:00|4\\d)|(?:19|[2-7]\\d)\\d)|(?:(?:[124-69]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}",,,,"51234567",,,[7,8]],[,,"800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}",,,,"80012345"],[,,"(?:40\\d\\d|900)\\d{4}",,,,"9001234",,,[7,8]],[,,,,,,,,,[-1]],[,,"70[0-2]\\d{5}",,,,"70012345",,,[8]],[,,,,,,,,,[-1]],"EE",372,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]],[,"(\\d{4})(\\d{3,4})","$1 $2",["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"]],[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["7"]],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,"800[2-9]\\d{3}",,,,,,,[7]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EG:[,[,,"[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}",,,,,,,[8,9,10],[6,7]],[,,"13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2\\d|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}",,,,"234567890",,,[8,9],[6,7]],[,,"1[0-25]\\d{8}",,,,"1001234567",,,[10]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"EG",20,"00","0",,,"0",,,,[[,"(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],[,"(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|8[2468]|9[235-7]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],[,"(\\d{2})(\\d{8})","$1 $2",["1"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EH:[,[,,"[5-8]\\d{8}",,,,,,,[9]],[,,"528[89]\\d{5}",,,,"528812345"],[,,"(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-4
15672]|5[01]|8[0-3
vendor: 10,383 bytes, line 15672
15672]))\\d{6}",,,,"650123456"],[,,"80[0-7]\\d{6}",,,,"801234567"],[,,"89\\d{7}",,,,"891234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}",,,,"592401234"],"EH",212,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,"528[89]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ER:[,[,,"[178]\\d{6}",,,,,,,[7],[6]],[,,"(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}",,,,"8370362",,,,[6]],[,,"(?:17[1-3]|7\\d\\d)\\d{4}",,,,"7123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ER",291,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[178]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ES:[,[,,"[5-9]\\d{8}",,,,,,,[9]],[,,"96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}",,,,"810123456"],[,,"(?:590[16]00\\d|9(?:6906(?:09|10)|7390\\d\\d))\\d\\d|(?:6\\d|7[1-48])\\d{7}",,,,"612345678"],[,,"[89]00\\d{6}",,,,"800123456"],[,,"80[367]\\d{6}",,,,"803123456"],[,,"90[12]\\d{6}",,,,"901123456"],[,,"70\\d{7}",,,,"701234567"],[,,,,,,,,,[-1]],"ES",34,"00",,,,,,,,[[,"(\\d{4})","$1",["905"]],[,"(\\d{6})","$1",["[79]9"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]],[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"51\\d{7}",,,,"511234567"],,,[,,,,,,,,,[-1]]],ET:[,[,,"(?:11|[2-579]\\d)\\d{7}",,,,,,,[9],[7]],[,,"11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8]|7\\d)|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}",,,,"111112345",,,,[7]],[,,"700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\d\\d)\\d{6}",,,,"911234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ET",251,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-579]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FI:[,[,,"[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",,,,,,,[5,6,7,8,9,10,11,12]],[,,"1[3-7][1-8]\\d{3,6}|(?:19[1-8]|[23568][1-8]\\d|9(?:00|[1-8]\\d))\\d{2,6}",,,,"131234567",,,[5,6,7,8,9]],[,,"4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}",,,,"412345678",,,[6,7,8,9,10]],[,,"800\\d{4,6}",,,,"800123456",,,[7,8,9]],[,,"[67]00\\d{5,6}",,,,"600123456",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FI",358,"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","0",,,"0",,"00",,[[,"(\\d{5})","$1",["75[12]"],"0$1"],[,"(\\d{5})","$1",["20[2-59]"],"0$1"],[,"(\\d{6})","$1",["11"]],[,"(\\d{3})(\\d{3,7})","$1 $2",["(?:[1-3]0|[68])0|70[07-9]"],"0$1"],[,"(\\d{2})(\\d{4,8})","$1 $2",["[14]|2[09]|50|7[135]"],"0$1"],[,"(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"],[,"(\\d)(\\d{4,9})","$1 $2",["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"]],[[,"(\\d{5})","$1",["20[2-59]"],"0$1"],[,"(\\d{3})(\\d{3,7})","$1 $2",["(?:[1-3]0|[68])0|70[07-9]"],"0$1"],[,"(\\d{2})(\\d{4,8})","$1 $2",["[14]|2[09]|50|7[135]"],"0$1"],[,"(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"],[,"(\\d)(\\d{4,9})","$1 $2",["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"]],[,,,,,,,,,[-1]],1,"1[03-79]|[2-9]",[,,"20(?:2[023]|9[89])\\d{1,6}|(?:60[12]\\d|7099)\\d{4,5}|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:[1-3]00|7(?:0[1-5]\\d\\d|5[03-9]))\\d{3,7}"],[,,"20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}",,,,"10112345"],,,[,,,,,,,,,[-1]]],FJ:[,[,,"45\\d{5}|(?:0800\\d|[235-9])\\d{6}",,,,,,,[7,11]],[,,"603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}",,,,"3212345",,,[7]],[,,"(?:[279]\\d|45|5[01568]|8[034679])\\d{5}",,,,"7012345",,,[7]],[,,"0800\\d{7}",,,,"08001234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FJ",679,"0(?:0|52)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[235-9]|45"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FK:[,[,,"[2-7]\\d{4}",,,,,,,[5]],[,,"[2-47]\\d{4}",,,,"31234"],[,,"[56]\\d{4}",,,,"51234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FK",500,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FM:[,[,,"(?:[39]\\d\\d|820)\\d{4}",,,,,,,[7]],[,,"31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}",,,,"3201234"],[,,"31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}",,,,"3501234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FM",691,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[389]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FO:[,[,,"[2-9]\\d{5}",,,,,,,[6]],[,,"(?:20|[34]\\d|8[19])\\d{4}",,,,"201234"],[,,"(?:[27][1-9]|5\\d|9[16])\\d{4}",,,,"211234"],[,,"80[257-9]\\d{3}",,,,"802123"],[,,"90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d",,,,"901123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:6[0-36]|88)\\d{4}",,,,"601234"],"FO",298,"00",,,,"(10(?:01|[12]0|88))",,,,[[,"(\\d{6})","$1",["[2-9]"],,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FR:[,[,,"[1-9]\\d{8}",,,,,,,[9]],[,,"(?:26[013-9]|59[1-35-9])\\d{6}|(?:[13]\\d|2[0-57-9]|4[1-9]|5[0-8])\\d{7}",,,,"123456789"],[,,"(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7[3-9]\\d)\\d{6}",,,,"612345678"],[,,"80[0-5]\\d{6}",,,,"801234567"],[,,"836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}",,,,"891123456"],[,,"8(?:1[01]|2[0156]|4[024]|84)\\d{6}",,,,"884012345"],[,,,,,,,,,[-1]],[,,"9\\d{8}",,,,"912345678"],"FR",33,"00","0",,,"0",,,,[[,"(\\d{4})","$1",["10"]],[,"(\\d{3})(\\d{3})","$1 $2",["1"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"80[6-9]\\d{6}",,,,"806123456"],,,[,,,,,,,,,[-1]]],GA:[,[,,"(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",,,,,,,[7,8]],[,,"[01]1\\d{6}",,,,"01441234",,,[8]],[,,"(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}",,,,"06031234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GA",241,"00",,,,"0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})","$1",,,[[,"(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["11|[67]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GB:[,[,,"[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",,,,,,,[7,9,10],[4,5,6,8]],[,,"(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}",,,,"1212345678",,,[9,10],[4,5,6,7,8]],[,,"7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",,,,"7400123456",,,[10]],[,,"80[08]\\d{7}|800\\d{6}|8001111",,,,"8001234567"],[,,"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d",,,,"9012345678",,,[7,10]],[,,,,,,,,,[-1]],[,,"70\\d{8}",,,,"7012345678",,,[10]],[,,"56\\d{8}",,,,"5612345678",,,[10]],"GB",44,"00","0"," x",,"0",,,,[[,"(\\d{3})(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["845","8454","84546","845464"],"0$1"],[,"(\\d{3})(\\d{6})","$1 $2",["800"],"0$1"],[,"(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:(?:38|69)7|5(?:24|39)|768|946)","1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"],"0$1"],[,"(\\d{4})(\\d{5,6})","$1 $2",["1(?:[2-69][02-9]|[78])"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"0$1"],[,"(\\d{4})(\\d{6})","$1 $2",["7"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[1389]"],"0$1"]],,[,,"76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}",,,,"7640123456",,,[10]],1,,[,,,,,,,,,[-1]],[,,"(?:3[0347]|55)\\d{8}",,,,"5512345678",,,[10]],,,[,,,,,,,,,[-1]]],GD:[,[,,"(?:473|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-4]|5[5
1567279]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}",,,,"4732691234",,,,[7]],[,,"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|49|5[68])|5(?:2[01]|3[3-8])|901)\\d{4}",,,,"4734031234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"GD",1,"011","1",,,"([2-9]\\d{6})$|1","473$1",,,,,[,,,,,,,,,[-1]],,"473",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GE:[,[,,"(?:[3-57]\\d\\d|800)\\d{6}",,,,,,,[9],[6,7]],[,,"(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}",,,,"322123456",,,,[6,7]],[,,"5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d|22252[0-4])\\d\\d|5(?:0(?:0[17]0|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\d{3}|(?:5(?:0(?:0(?:0\\d|11|22|3[0-6]|44|5[05]|77|88|9[09])|(?:[14]\\d|77)\\d|22[02])|1(?:1(?:[03][01]|[124]\\d|5[2-6]|7[0-4])|4\\d\\d)|[23]555|4(?:4\\d\\d|555)|5(?:[0157-9]\\d\\d|200|333|444)|6[89]\\d\\d|7(?:[0147-9]\\d\\d|5(?:00|[57]5))|8(?:0(?:[018]\\d|2[0-4])|5(?:55|8[89])|8(?:55|88))|9(?:090|[1-35-9]\\d\\d))|790\\d\\d)\\d{4}",,,,"555123456"],[,,"800\\d{6}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"70[67]\\d{6}",,,,"706123456"],"GE",995,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["32"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[57]"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"70[67]\\d{6}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GF:[,[,,"(?:[56]94\\d|7093)\\d{5}|(?:80|9\\d)\\d{7}",,,,,,,[9]],[,,"594(?:[02-49]\\d|1[0-5]|5[6-9]|6[0-3]|80)\\d{4}",,,,"594101234"],[,,"(?:694(?:[0-249]\\d|3[0-8])|7093[0-3])\\d{4}",,,,"694201234"],[,,"80[0-5]\\d{6}",,,,"800012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:(?:396|76\\d)\\d|476[0-5])\\d{4}",,,,"976012345"],"GF",594,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]|9[47]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GG:[,[,,"(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",,,,,,,[7,9,10],[6]],[,,"1481[25-9]\\d{5}",,,,"1481256789",,,[10],[6]],[,,"7(?:(?:781|839)\\d|911[17])\\d{5}",,,,"7781123456",,,[10]],[,,"80[08]\\d{7}|800\\d{6}|8001111",,,,"8001234567"],[,,"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d",,,,"9012345678",,,[7,10]],[,,,,,,,,,[-1]],[,,"70\\d{8}",,,,"7012345678",,,[10]],[,,"56\\d{8}",,,,"5612345678",,,[10]],"GG",44,"00","0",,,"([25-9]\\d{5})$|0","1481$1",,,,,[,,"76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}",,,,"7640123456",,,[10]],,,[,,,,,,,,,[-1]],[,,"(?:3[0347]|55)\\d{8}",,,,"5512345678",,,[10]],,,[,,,,,,,,,[-1]]],GH:[,[,,"(?:[235]\\d{3}|800)\\d{5}",,,,,,,[8,9],[7]],[,,"3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}",,,,"302345678",,,[9],[7]],[,,"(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}",,,,"231234567",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GH",233,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[237]|8[0-2]"]],[,"(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],[[,"(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,"800\\d{5}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GI:[,[,,"(?:[25]\\d|60)\\d{6}",,,,,,,[8]],[,,"2190[0-2]\\d{3}|2(?:0(?:[02]\\d|3[01])|16[24-9]|2[2-5]\\d)\\d{4}",,,,"20012345"],[,,"5251[0-4]\\d{3}|(?:5(?:[146-8]\\d\\d|250)|60(?:1[01]|6\\d))\\d{4}",,,,"57123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GI",350,"00",,,,,,,,[[,"(\\d{3})(\\d{5})","$1 $2",["2"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GL:[,[,,"(?:19|[2-689]\\d|70)\\d{4}",,,,,,,[6]],[,,"(?:19|3[1-7]|[68][1-9]|70|9\\d)\\d{4}",,,,"321000"],[,,"[245]\\d{5}",,,,"221234"],[,,"80\\d{4}",,,,"801234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3[89]\\d{4}",,,,"381234"],"GL",299,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["19|[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GM:[,[,,"[2-9]\\d{6}",,,,,,,[7]],[,,"(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}",,,,"5661234"],[,,"(?:[23679]\\d|4[015]|5[0-489])\\d{5}",,,,"3012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GM",220,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GN:[,[,,"722\\d{6}|(?:3|6\\d)\\d{7}",,,,,,,[8,9]],[,,"3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}",,,,"30241234",,,[8]],[,,"6[0-356]\\d{7}",,,,"601123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"722\\d{6}",,,,"722123456",,,[9]],"GN",224,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[67]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GP:[,[,,"(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}",,,,,,,[9]],[,,"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}",,,,"590201234"],[,,"(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}",,,,"690001234"],[,,"80[0-5]\\d{6}",,,,"800012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}",,,,"976012345"],"GP",590,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-79]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GQ:[,[,,"222\\d{6}|(?:3\\d|55|[89]0)\\d{7}",,,,,,,[9]],[,,"33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}",,,,"333091234"],[,,"(?:222|55\\d)\\d{6}",,,,"222123456"],[,,"80\\d[1-9]\\d{5}",,,,"800123456"],[,,"90\\d[1-9]\\d{5}",,,,"900123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GQ",240,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],[,"(\\d{3})(\\d{6})","$1 $2",["[89]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GR:[,[,,"5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}",,,,,,,[10,11,12]],[,,"2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57])
15672)\\d{6}",,,,"2123456789",,,[10]],[,,"68[57-9]\\d{7}|(?:69|94)\\d{8}",,,,"6912345678",,,[10]],[,,"800\\d{7,9}",,,,"8001234567"],[,,"90[19]\\d{7}",,,,"9091234567",,,[10]],[,,"8(?:0[16]|12|[27]5|50)\\d{7}",,,,"8011234567",,,[10]],[,,"70\\d{8}",,,,"7012345678",,,[10]],[,,,,,,,,,[-1]],"GR",30,"00",,,,,,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],[,"(\\d{4})(\\d{6})","$1 $2",["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2689]"]],[,"(\\d{3})(\\d{3,4})(\\d{5})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"5005000\\d{3}",,,,"5005000123",,,[10]],,,[,,,,,,,,,[-1]]],GT:[,[,,"80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}",,,,,,,[8,11]],[,,"[267][2-9]\\d{6}",,,,"22456789",,,[8]],[,,"(?:[3-5]\\d\\d|80[0-4])\\d{5}",,,,"51234567",,,[8]],[,,"18[01]\\d{8}",,,,"18001112222",,,[11]],[,,"19\\d{9}",,,,"19001112222",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GT",502,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2-8]"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GU:[,[,,"(?:[58]\\d\\d|671|900)\\d{7}",,,,,,,[10],[7]],[,,"671(?:2\\d\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}",,,,"6713001234",,,,[7]],[,,"671(?:2\\d\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}",,,,"6713001234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"GU",1,"011","1",,,"([2-9]\\d{6})$|1","671$1",,1,,,[,,,,,,,,,[-1]],,"671",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GW:[,[,,"[49]\\d{8}|4\\d{6}",,,,,,,[7,9]],[,,"443\\d{6}",,,,"443201234",,,[9]],[,,"9(?:5\\d|6[569]|77)\\d{6}",,,,"955012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"40\\d{5}",,,,"4012345",,,[7]],"GW",245,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["40"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GY:[,[,,"(?:[2-8]\\d{3}|9008)\\d{3}",,,,,,,[7]],[,,"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56]
15672)|50[0-6]|77[1-57])\\d{4}",,,,"2201234"],[,,"510\\d{4}|(?:6\\d|7[0-5])\\d{5}",,,,"6091234"],[,,"(?:289|8(?:00|6[28]|88|99))\\d{4}",,,,"2891234"],[,,"9008\\d{3}",,,,"9008123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"515\\d{4}",,,,"5151234"],"GY",592,"001",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HK:[,[,,"8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}",,,,,,,[5,6,7,8,9,11]],[,,"(?:2(?:[13-9]\\d|2[013-9])\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\d|8(?:4[0-8]|[579]\\d|6[0-2]))|58(?:0[1-9]|1[2-9]))\\d{4}",,,,"21234567",,,[8]],[,,"(?:4(?:44[0-25-9]|6(?:1[0-7]|4[0-57-9]|6[0-4])|7(?:4[0-2]|6[0-5]))|5(?:73[0-6]|95[0-8])|6(?:26[013-8]|66[0-3])|70(?:7[1-8]|8[0-4])|84(?:4[0-2]|8[0-35-9])|9(?:29[013-9]|39[014-9]|59[0-4]|899))\\d{4}|(?:4(?:4[0-35-9]|6[02357-9]|7[05])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|70[1-49]|84[0-39]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}",,,,"51234567",,,[8]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"900(?:[0-24-9]\\d{7}|3\\d{1,4})",,,,"90012345678",,,[5,6,7,8,11]],[,,,,,,,,,[-1]],[,,"8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}",,,,"81123456",,,[8]],[,,,,,,,,,[-1]],"HK",852,"00(?:30|5[09]|[126-9]?)",,,,,,"00",,[[,"(\\d{3})(\\d{2,5})","$1 $2",["900","9003"]],[,"(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],,[,,"7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}",,,,"71123456",,,[8]],,,[,,,,,,,,,[-1]],[,,"30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}",,,,"30161234",,,[8]],,,[,,,,,,,,,[-1]]],HN:[,[,,"8\\d{10}|[237-9]\\d{7}",,,,,,,[8,11]],[,,"2(?:2(?:0[0-59]|1[1-9]|[23]\\d|4[02-7]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\d|6[014-69]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}",,,,"22123456",,,[8]],[,,"[37-9]\\d{7}",,,,"91234567",,,[8]],[,,"8002\\d{7}",,,,"80021234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"HN",504,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1-$2",["[237-9]"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["8"]]],[[,"(\\d{4})(\\d{4})","$1-$2",["[237-9]"]]],[,,,,,,,,,[-1]],,,[,,"8002\\d{7}",,,,,,,[11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HR:[,[,,"(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}",,,,,,,[6,7,8,9]],[,,"1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}",,,,"12345678",,,[8,9],[6,7]],[,,"9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|55|77|9[5-79])))\\d{4}|98\\d{6}",,,,"921234567",,,[8,9]],[,,"80\\d{5,7}",,,,"800123456",,,[7,8,9]],[,,"6[01459]\\d{6}|6[01]\\d{4,5}",,,,"611234",,,[6,7,8]],[,,,,,,,,,[-1]],[,,"7[45]\\d{6}",,,,"74123456",,,[8]],[,,,,,,,,,[-1]],"HR",385,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["6[01]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["8"],"0$1"],[,"(\\d)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6|7[245]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-57]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"62\\d{6,7}|72\\d{6}",,,,"62123456",,,[8,9]],,,[,,,,,,,,,[-1]]],HT:[,[,,"(?:[2-489]\\d|55)\\d{6}",,,,,,,[8]],[,,"2(?:2\\d|5[1-5]|81|9[149])\\d{5}",,,,"22453300"],[,,"(?:[34]\\d|55)\\d{6}",,,,"34101234"],[,,"8\\d{7}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}",,,,"98901234"],"HT",509,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[2-589]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HU:[,[,,"[235-7]\\d{8}|[1-9]\\d{7}",,,,,,,[8,9],[6,7]],[,,"(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}",,,,"12345678",,,[8],[6,7]],[,,"(?:[257]0|3[01])\\d{7}",,,,"201234567",,,[9]],[,,"(?:[48]0\\d|680[29])\\d{5}",,,,"80123456"],[,,"9[01]\\d{6}",,,,"90123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"21\\d{7}",,,,"211234567",,,[9]],"HU",36,"00","06",,,"06",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"(06 $1)"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"],"(06 $1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"06 $1"]],,[,,,,,,,,,[-1]],,,[,,"(?:[48]0\\d|680[29])\\d{5}"],[,,"38\\d{7}",,,,"381234567",,,[9]],,,[,,,,,,,,,[-1]]],ID:[,[,,"00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}",,,,,,,[7,8,9,10,11,12,13,14,15,16,17],[5,6]],[,,"2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}",,,,"218350123",,,[7,8,9,10,11],[5,6]],[,,"8[1-35-9]\\d{7,10}",,,,"812345678",,,[9,10,11,12]],[,,"00(?:1803\\d{5,11}|7803\\d{7})|(?:177\\d|800)\\d{5,7}",,,,"8001234567",,,[8,9,10,11,12,13,14,15,16,17]],[,,"809\\d{7}",,,,"8091234567",,,[10]],[,,"804\\d{7}",,,,"8041234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ID",62,"00[89]","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],[,"(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],[,"(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],[,"(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],[,"(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],[,"(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],[,"(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{2,8})","$1 $2 $3 $4",["001"]],[,"(\\d{2})(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3 $4",["0"]]],[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],[,"(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],[,"(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],[,"(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],[,"(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],[,"(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],[,"(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"]],[,,,,,,,,,[-1]],,,[,,"001803\\d{5,11}|(?:007803\\d|8071)\\d{6}",,,,,,,[10,11,12,13,14,15,16,17]],[,,"(?:1500|8071\\d{3})\\d{3}",,,,"8071123456",,,[7,10]],,,[,,,,,,,,,[-1]]],IE:[,[,,"(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}",,,,,,,[7,8,9,10],[5,6]],[,,"(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}",,,,"2212345",,,,[5,6]],[,,"8(?:22|[35-9]\\d)\\d{6}",,,,"850123456",,,[9]],[,,"1800\\d{6}",,,,"1800123456",,,[10]],[,,"15(?:1[2-8]|[2-8]0|9[089])\\d{6}",,,,"1520123456",,,[10]],[,,"18[59]0\\d{6}",,,,"1850123456",,,[10]],[,,"700\\d{6}",,,,"700123456",,,[9]],[,,"76\\d{7}",,,,"761234567",,,[9]],"IE",353,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{5})","$1 $2",["2[24-9]|47|58|6[237-9]|9[35-9]"],"(0$1)"],[,"(\\d{3})(\\d{5})","$1 $2",["[45]0"],"(0$1)"],[,"(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2569]|4[1-69]|7[14]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[78]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["4"],"(0$1)"],[,"(\\d{2})(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"18[59]0\\d{6}",,,,,,,[10]],[,,"818\\d{6}",,,,"818123456",,,[9]],,,[,,"88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}",,,,"8551234567",,,[10]]],IL:[,[,,"1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",,,,,,,[7,8,9,10,11,12]],[,,"153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}",,,,"21234567",,,[8,11,12],[7]],[,,"55(?:410|57[0-289])\\d{4}|5(?:(?:[0-2][02-9]|[36]\\d|[49][2-9]|8[3-7])\\d|5(?:01|2\\d|3[0-3]|4[34]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}",,,,"502345678",,,[9]],[,,"1(?:255|80[019]\\d{3})\\d{3}",,,,"1800123456",,,[7,10]],[,,"1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}",,,,"1919123456",,,[8,10]],[,,"1700\\d{6}",,,,"1700123456",,,[10]],[,,,,,,,,,[-1]],[,,"7(?:38(?:0\\d|5[0-2569]|88
vendor: 11,467 bytes, line 15672
15672)|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}",,,,"771234567",,,[9]],"IL",972,"0(?:0|1[2-9])","0",,,"0",,,,[[,"(\\d{4})(\\d{3})","$1-$2",["125"]],[,"(\\d{4})(\\d{2})(\\d{2})","$1-$2-$3",["121"]],[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1-$2-$3",["12"]],[,"(\\d{4})(\\d{6})","$1-$2",["159"]],[,"(\\d)(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"]],[,"(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["15"]]],,[,,,,,,,,,[-1]],,,[,,"1700\\d{6}",,,,,,,[10]],[,,"1599\\d{6}",,,,"1599123456",,,[10]],,,[,,"151\\d{8,9}",,,,"15112340000",,,[11,12]]],IM:[,[,,"1624\\d{6}|(?:[3578]\\d|90)\\d{8}",,,,,,,[10],[6]],[,,"1624(?:230|[5-8]\\d\\d)\\d{3}",,,,"1624756789",,,,[6]],[,,"76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}",,,,"7924123456"],[,,"808162\\d{4}",,,,"8081624567"],[,,"8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}",,,,"9016247890"],[,,,,,,,,,[-1]],[,,"70\\d{8}",,,,"7012345678"],[,,"56\\d{8}",,,,"5612345678"],"IM",44,"00","0",,,"([25-8]\\d{5})$|0","1624$1",,,,,[,,,,,,,,,[-1]],,"74576|(?:16|7[56])24",[,,,,,,,,,[-1]],[,,"3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}",,,,"5512345678"],,,[,,,,,,,,,[-1]]],IN:[,[,,"(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}",,,,,,,[8,9,10,11,12,13],[6,7]],[,,"2717(?:[2-7]\\d|95)\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\d|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}",,,,"7410410123",,,[10],[6,7,8]],[,,"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}",,,,"8123456789",,,[10]],[,,"000800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))",,,,"1800123456"],[,,"186[12]\\d{9}",,,,"1861123456789",,,[13]],[,,"1860\\d{7}",,,,"18603451234",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IN",91,"00","0",,,"0",,,,[[,"(\\d{7})","$1",["575"]],[,"(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],,,1],[,"(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],,,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",,1],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",,1],[,"(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",,1],[,"(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],,,1],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["0"]],[,"(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],,,1]],[[,"(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],,,1],[,"(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],,,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",,1],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",,1],[,"(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",,1],[,"(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],,,1],[,"(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],,,1]],[,,,,,,,,,[-1]],,,[,,"1(?:600\\d{6}|800\\d{4,9})|(?:000800|18(?:03\\d\\d|6(?:0|[12]\\d\\d)))\\d{7}"],[,,"140\\d{7}",,,,"1409305260",,,[10]],,,[,,,,,,,,,[-1]]],IO:[,[,,"3\\d{6}",,,,,,,[7]],[,,"37\\d{5}",,,,"3709100"],[,,"38\\d{5}",,,,"3801234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IO",246,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["3"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IQ:[,[,,"(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}",,,,,,,[8,9,10],[6,7]],[,,"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}",,,,"12345678",,,[8,9],[6,7]],[,,"7[3-9]\\d{8}",,,,"7912345678",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IQ",964,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IR:[,[,,"[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",,,,,,,[4,5,6,7,10],[8]],[,,"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|(?:12\\d|30[0-2])\\d|2(?:121|[2689]0\\d)|4(?:111|40\\d))\\d{4}",,,,"2123456789",,,[6,7,10],[4,5,8]],[,,"9(?:(?:0
15672(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0
vendor: 21,326 bytes, line 15672
15672|8(?:[12]\\d|88)|9(?:0[0-3]|[19]\\d|21|69|77|8[7-9])))\\d{5}",,,,"9123456789",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IR",98,"00","0",,,"0",,,,[[,"(\\d{4,5})","$1",["96"],"0$1"],[,"(\\d{2})(\\d{4,5})","$1 $2",["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))",,,,,,,[4,5,10]],[,,"96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])",,,,"9601",,,[4,5]],,,[,,,,,,,,,[-1]]],IS:[,[,,"(?:38\\d|[4-9])\\d{6}",,,,,,,[7,9]],[,,"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}",,,,"4101234",,,[7]],[,,"(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}",,,,"6111234"],[,,"80[0-8]\\d{4}",,,,"8001234",,,[7]],[,,"90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}",,,,"9001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"49[0-24-79]\\d{4}",,,,"4921234",,,[7]],"IS",354,"00|1(?:0(?:01|[12]0)|100)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"809\\d{4}",,,,"8091234",,,[7]],,,[,,"(?:689|8(?:7[18]|80)|95[48])\\d{4}",,,,"6891234",,,[7]]],IT:[,[,,"0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?",,,,,,,[6,7,8,9,10,11,12]],[,,"0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}",,,,"0212345678",,,[6,7,8,9,10,11]],[,,"3[2-9]\\d{7,8}|(?:31|43)\\d{8}",,,,"3123456789",,,[9,10]],[,,"80(?:0\\d{3}|3)\\d{3}",,,,"800123456",,,[6,9]],[,,"(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}",,,,"899123456",,,[6,8,9,10]],[,,"84(?:[08]\\d{3}|[17])\\d{3}",,,,"848123456",,,[6,9]],[,,"1(?:78\\d|99)\\d{6}",,,,"1781234567",,,[9,10]],[,,"55\\d{8}",,,,"5512345678",,,[10]],"IT",39,"00",,,,,,,,[[,"(\\d{4,5})","$1",["1(?:0|9[246])","1(?:0|9(?:2[2-9]|[46]))"]],[,"(\\d{6})","$1",["1(?:1|92)"]],[,"(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],[,"(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]],[,"(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],[,"(\\d{4})(\\d{4})","$1 $2",["894"]],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1(?:44|[679])|[378]|43"]],[,"(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]|14"]],[,"(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["3"]]],[[,"(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],[,"(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]],[,"(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],[,"(\\d{4})(\\d{4})","$1 $2",["894"]],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1(?:44|[679])|[378]|43"]],[,"(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]|14"]],[,"(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["3"]]],[,,,,,,,,,[-1]],1,,[,,"848\\d{6}",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,"3[2-8]\\d{9,10}",,,,"33101234501",,,[11,12]]],JE:[,[,,"1534\\d{6}|(?:[3578]\\d|90)\\d{8}",,,,,,,[10],[6]],[,,"1534[0-24-8]\\d{5}",,,,"1534456789",,,,[6]],[,,"7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}",,,,"7797712345"],[,,"80(?:07(?:35|81)|8901)\\d{4}",,,,"8007354567"],[,,"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}",,,,"9018105678"],[,,,,,,,,,[-1]],[,,"701511\\d{4}",,,,"7015115678"],[,,"56\\d{8}",,,,"5612345678"],"JE",44,"00","0",,,"([0-24-8]\\d{5})$|0","1534$1",,,,,[,,"76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}",,,,"7640123456"],,,[,,,,,,,,,[-1]],[,,"(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}",,,,"5512345678"],,,[,,,,,,,,,[-1]]],JM:[,[,,"(?:[58]\\d\\d|658|900)\\d{7}",,,,,,,[10],[7]],[,,"8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\d|40|5[06]|6[2-589]|7[0-25-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}",,,,"8765230123",,,,[7]],[,,"(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}",,,,"8762101234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"JM",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"658|876",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],JO:[,[,,"(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}",,,,,,,[8,9]],[,,"87(?:000|90[01])\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\d{4}",,,,"62001234",,,[8]],[,,"7(?:[78][0-25-9]|9\\d)\\d{6}",,,,"790123456",,,[9]],[,,"80\\d{6}",,,,"80012345",,,[8]],[,,"9\\d{7}",,,,"90012345",,,[8]],[,,"85\\d{6}",,,,"85012345",,,[8]],[,,"70\\d{7}",,,,"700123456",,,[9]],[,,,,,,,,,[-1]],"JO",962,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],[,"(\\d{3})(\\d{5,6})","$1 $2",["[89]"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"]],,[,,"74(?:66|77)\\d{5}",,,,"746612345",,,[9]],,,[,,,,,,,,,[-1]],[,,"8(?:10|8\\d)\\d{5}",,,,"88101234",,,[8]],,,[,,,,,,,,,[-1]]],JP:[,[,,"00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",,,,,,,[8,9,10,11,12,13,14,15,16,17]],[,,"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}",,,,"312345678",,,[9]],[,,"[7-9]0[1-9]\\d{7}",,,,"9012345678",,,[10]],[,,"00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}",,,,"120123456"],[,,"990\\d{6}",,,,"990123456",,,[9]],[,,,,,,,,,[-1]],[,,"60\\d{7}",,,,"601234567",,,[9]],[,,"50[1-9]\\d{7}",,,,"5012345678",,,[10]],"JP",81,"010","0",,,"(000[259]\\d{6})$|(?:(?:003768)0?)|0","$1",,,[[,"(\\d{4})(\\d{4})","$1-$2",["007","0077","00777","00777[01]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[289][2-9]|5[3-9]|7[2-4679]"],"0$1"],[,"(\\d{4})(\\d{2})(\\d{3,4})","$1-$2-$3",["007","0077"]],[,"(\\d{4})(\\d{2})(\\d{4})","$1-$2-$3",["008"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[257-9]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3,4})","$1-$2-$3",["0"]],[,"(\\d{4})(\\d{4})(\\d{4,5})","$1-$2-$3",["0"]],[,"(\\d{4})(\\d{5})(\\d{5,6})","$1-$2-$3",["0"]],[,"(\\d{4})(\\d{6})(\\d{6,7})","$1-$2-$3",["0"]]],[[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[289][2-9]|5[3-9]|7[2-4679]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[257-9]"],"0$1"]],[,,"20\\d{8}",,,,"2012345678",,,[10]],,,[,,"00(?:777(?:[01]|(?:5|8\\d)\\d)|882[1245]\\d\\d)\\d\\d|00(?:37|66|78)\\d{6,13}"],[,,"570\\d{6}",,,,"570123456",,,[9]],,,[,,,,,,,,,[-1]]],KE:[,[,,"(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",,,,,,,[7,8,9,10]],[,,"(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}",,,,"202012345",,,[7,8,9]],[,,"(?:1(?:0[0-8]|1[0-7]|2[014]|30)|7\\d\\d)\\d{6}",,,,"712123456",,,[9]],[,,"800[02-8]\\d{5,6}",,,,"800223456",,,[9,10]],[,,"900[02-9]\\d{5}",,,,"900223456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KE",254,"000","0",,,"0",,,,[[,"(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],[,"(\\d{3})(\\d{6})","$1 $2",["[17]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KG:[,[,,"8\\d{9}|[235-9]\\d{8}",,,,,,,[9,10],[5,6]],[,,"312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}",,,,"312123456",,,[9],[5,6]],[,,"312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|9(?:12|9[05-9]))\\d{6}",,,,"700123456",,,[9]],[,,"800\\d{6,7}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KG",996,"00","0",,,"0",,,,[[,"(\\d{4})(\\d{5})","$1 $2",["3(?:1[346]|[24-79])"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-79]|88"],"0$1"],[,"(\\d{3})(\\d{3})(\\d)(\\d{2,3})","$1 $2 $3 $4",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KH:[,[,,"1\\d{9}|[1-9]\\d{7,8}",,,,,,,[8,9,10],[6,7]],[,,"23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})",,,,"23756789",,,[8,9],[6,7]],[,,"(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}",,,,"91234567",,,[8,9]],[,,"1800(?:1\\d|2[019])\\d{4}",,,,"1800123456",,,[10]],[,,"1900(?:1\\d|2[09])\\d{4}",,,,"1900123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KH",855,"00[14-9]","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-9]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KI:[,[,,"(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",,,,,,,[5,8]],[,,"(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}",,,,"31234"],[,,"(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\d{3}|(?:63\\d\\d|7(?:(?:[0146-9]\\d|2[0-689])\\d|3(?:[02-9]\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\d)))\\d{4}",,,,"72001234",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"30(?:0[01]\\d\\d|12(?:11|20))\\d\\d",,,,"30010000",,,[8]],"KI",686,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KM:[,[,,"[3478]\\d{6}",,,,,,,[7],[4]],[,,"7[4-7]\\d{5}",,,,"7712345",,,,[4]],[,,"[34]\\d{6}",,,,"3212345"],[,,,,,,,,,[-1]],[,,"8\\d{6}",,,,"8001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KM",269,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[3478]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KN:[,[,,"(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\d{4}",,,,"8692361234",,,,[7]],[,,"869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}",,,,"8697652917",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"KN",1,"011","1",,,"([2-7]\\d{6})$|1","869$1",,,,,[,,,,,,,,,[-1]],,"869",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KP:[,[,,"85\\d{6}|(?:19\\d|[2-7])\\d{7}",,,,,,,[8,10],[6,7]],[,,"(?:(?:195|2)\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\d{6}",,,,"21234567",,,,[6,7]],[,,"19[1-3]\\d{7}",,,,"1921234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KP",850,"00|99","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"238[02-9]\\d{4}|2(?:[0-24-9]\\d|3[0-79])\\d{5}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KR:[,[,,"00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",,,,,,,[5,6,8,9,10,11,12,13,14],[3,4,7]],[,,"(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}",,,,"22123456",,,[5,6,8,9,10],[3,4,7]],[,,"1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[0-46-9]|[16-9]\\d|2[013-9])\\d{6,7}",,,,"1020000000",,,[9,10]],[,,"00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|[38]0)\\d{7}",,,,"801234567",,,[9,11,12,13,14]],[,,"60[2-9]\\d{6}",,,,"602345678",,,[9]],[,,,,,,,,,[-1]],[,,"50\\d{8,9}",,,,"5012345678",,,[10,11]],[,,"70\\d{8}",,,,"7012345678",,,[10]],"KR",82,"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","0",,,"0(8(?:[1-46-8]|5\\d\\d))?",,,,[[,"(\\d{5})","$1",["1[016-9]1","1[016-9]11","1[016-9]114"],"0$1"],[,"(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1","0$CC-$1"],[,"(\\d{4})(\\d{4})","$1-$2",["1"]],[,"(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[36]0|8"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1","0$CC-$1"],[,"(\\d{5})(\\d{3})(\\d{3})","$1 $2 $3",["003","0030"]],[,"(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1","0$CC-$1"],[,"(\\d{5})(\\d{3,4})(\\d{4})","$1 $2 $3",["0"]],[,"(\\d{5})(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["0"]]],[[,"(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1","0$CC-$1"],[,"(\\d{4})(\\d{4})","$1-$2",["1"]],[,"(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[36]0|8"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1","0$CC-$1"]],[,,"15\\d{7,8}",,,,"1523456789",,,[9,10]],,,[,,"00(?:3(?:08\\d{6,7}|68\\d{7})|798\\d{7,9})",,,,,,,[11,12,13,14]],[,,"1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[0168]|88)|8(?:00|33|55|77|99))\\d{4}",,,,"15441234",,,[8]],,,[,,,,,,,,,[-1]]],KW:[,[,,"18\\d{5}|(?:[2569]\\d|41)\\d{6}",,,,,,,[7,8]],[,,"2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}",,,,"22345678",,,[8]],[,,"(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|6[16])|2[26]2|3[36]3|4[46]4|7(?:0[013-9]|[67]\\d)|8[68]8|9(?:[069]\\d|3[039]))|9(?:(?:[04679]\\d|8[057-9])\\d|1(?:1[01]|99)|2(?:00|2\\d)|3(?:00|3[03])|5(?:00|5\\d)))\\d{4}",,,,"50012345",,,[8]],[,,"18\\d{5}",,,,"1801234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KW",965,"00",,,,,,,,[[,"(\\d{4})(\\d{3,4})","$1 $2",["[169]|2(?:[235]|4[1-35-9])|52"]],[,"(\\d{3})(\\d{5})","$1 $2",["[245]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KY:[,[,,"(?:345|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|
15672[48]8)|9(?:14|4[035-9]))\\d{4}",,,,"3452221234",,,,[7]],[,,"345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}",,,,"3453231234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"(?:345976|900[2-9]\\d\\d)\\d{4}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"KY",1,"011","1",,,"([2-9]\\d{6})$|1","345$1",,,,,[,,"345849\\d{4}",,,,"3458491234"],,"345",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KZ:[,[,,"(?:33622|8\\d{8})\\d{5}|[78]\\d{9}",,,,,,,[10,14],[5,6,7]],[,,"(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9]|97)|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}",,,,"7123456789",,,[10],[5,6,7]],[,,"7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}",,,,"7710009998",,,[10]],[,,"8(?:00|108\\d{3})\\d{7}",,,,"8001234567"],[,,"809\\d{7}",,,,"8091234567",,,[10]],[,,,,,,,,,[-1]],[,,"808\\d{7}",,,,"8081234567",,,[10]],[,,"751\\d{7}",,,,"7511234567",,,[10]],"KZ",7,"810","8",,,"8",,"8~10",,,,[,,,,,,,,,[-1]],,"33|7",[,,"751\\d{7}",,,,,,,[10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LA:[,[,,"[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}",,,,,,,[8,9,10],[6]],[,,"(?:2[13]|[35-7][14]|41|8[1468])\\d{6}",,,,"21212862",,,[8],[6]],[,,"208[78]\\d{6}|(?:20[23579]|30[24])\\d{7}",,,,"2023123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LA",856,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["30[0135-9]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[23]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"30[0135-9]\\d{6}",,,,"301234567",,,[9]],,,[,,,,,,,,,[-1]]],LB:[,[,,"[27-9]\\d{7}|[13-9]\\d{6}",,,,,,,[7,8]],[,,"7(?:62|8[0-7]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}",,,,"1123456"],[,,"793(?:[01]\\d|2[0-4])\\d{3}|(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[89]|9[12]))\\d{5}",,,,"71123456"],[,,,,,,,,,[-1]],[,,"9[01]\\d{6}",,,,"90123456",,,[8]],[,,"80\\d{6}",,,,"80123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LB",961,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LC:[,[,,"(?:[58]\\d\\d|758|900)\\d{7}",,,,,,,[10],[7]],[,,"758(?:234|4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\d{4}",,,,"7584305678",,,,[7]],[,,"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}",,,,"7582845678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"LC",1,"011","1",,,"([2-8]\\d{6})$|1","758$1",,,,,[,,,,,,,,,[-1]],,"758",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LI:[,[,,"[68]\\d{8}|(?:[2378]\\d|90)\\d{5}",,,,,,,[7,9]],[,,"(?:2(?:01|1[27]|2[02]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}",,,,"2345678",,,[7]],[,,"(?:6(?:(?:4[5-9]|5[0-469])\\d|6(?:[024-6]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}",,,,"660234567"],[,,"8002[28]\\d\\d|80(?:05\\d|9)\\d{4}",,,,"8002222"],[,,"90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d",,,,"9002222",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LI",423,"00","0",,,"(1001)|0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2379]|8(?:0[09]|7)","[2379]|8(?:0(?:02|9)|7)"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["69"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"],,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"870(?:28|87)\\d\\d",,,,"8702812",,,[7]],,,[,,"697(?:42|56|[78]\\d)\\d{4}",,,,"697861234",,,[9]]],LK:[,[,,"[1-9]\\d{8}",,,,,,,[9],[7]],[,,"(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}
15672",,,,"112345678",,,,[7]],[,,"7(?:[0-25-8]\\d|4[0-4])\\d{6}",,,,"712345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LK",94,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[1-689]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"1973\\d{5}",,,,"197312345"],,,[,,,,,,,,,[-1]]],LR:[,[,,"(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}",,,,,,,[7,8,9]],[,,"2\\d{7}",,,,"21234567",,,[8]],[,,"(?:(?:(?:22|33)0|555|(?:77|88)\\d)\\d|4(?:240|[67]))\\d{5}|[56]\\d{6}",,,,"770123456",,,[7,9]],[,,,,,,,,,[-1]],[,,"332(?:02|[34]\\d)\\d{4}",,,,"332021234",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LR",231,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["4[67]|[56]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-578]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LS:[,[,,"(?:[256]\\d\\d|800)\\d{5}",,,,,,,[8]],[,,"2\\d{7}",,,,"22123456"],[,,"[56]\\d{7}",,,,"50123456"],[,,"800[1256]\\d{4}",,,,"80021234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LS",266,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2568]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LT:[,[,,"(?:[3469]\\d|52|[78]0)\\d{6}",,,,,,,[8]],[,,"(?:3[1478]|4[124-6]|52)\\d{6}",,,,"31234567"],[,,"6\\d{7}",,,,"61234567"],[,,"80[02]\\d{5}",,,,"80012345"],[,,"9(?:0[0239]|10)\\d{5}",,,,"90012345"],[,,"808\\d{5}",,,,"80812345"],[,,"70[05]\\d{5}",,,,"70012345"],[,,"[89]01\\d{5}",,,,"80123456"],"LT",370,"00","0",,,"[08]",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["52[0-7]"],"(0-$1)",,1],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"0 $1",,1],[,"(\\d{2})(\\d{6})","$1 $2",["37|4(?:[15]|6[1-8])"],"(0-$1)",,1],[,"(\\d{3})(\\d{5})","$1 $2",["[3-6]"],"(0-$1)",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"70[67]\\d{5}",,,,"70712345"],,,[,,,,,,,,,[-1]]],LU:[,[,,"35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",,,,,,,[4,5,6,7,8,9,10,11]],[,,"(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}",,,,"27123456"],[,,"6(?:[269][18]|5[1568]|7[189]|81)\\d{6}",,,,"628123456",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"90[015]\\d{5}",,,,"90012345",,,[8]],[,,"801\\d{5}",,,,"80112345",,,[8]],[,,,,,,,,,[-1]],[,,"20(?:1\\d{5}|[2-689]\\d{1,7})",,,,"20201234",,,[4,5,6,7,8,9,10]],"LU",352,"00",,,,"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)",,,,[[,"(\\d{2})(\\d{3})","$1 $2",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20[2-689]"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4",["2(?:[0367]|4[3-8])"],,"$CC $1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["80[01]|90[015]"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["2(?:[0367]|4[3-8])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","$1 $2 $3 $4",["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"],,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LV:[,[,,"(?:[268]\\d|90)\\d{6}",,,,,,,[8]],[,,"6\\d{7}",,,,"63123456"],[,,"23(?:23[0-57-9]|33[0238])\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[024-9]|3[0-24-9]))\\d{4}",,,,"21234567"],[,,"80\\d{6}",,,,"80123456"],[,,"90\\d{6}",,,,"90123456"],[,,"81\\d{6}",,,,"81123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LV",371,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[269]|8[01]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LY:[,[,,"[2-9]\\d{8}",,,,,,,[9],[7]],[,,"(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}",,,,"212345678",,,,[7]],[,,"9[1-6]\\d{7}",,,,"912345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LY",218,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{7})","$1-$2",["[2-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MA:[,[,,"[5-8]\\d{8}",,,,,,,[9]],[,,"5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}",,,,"520123456"],[,,"(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-4]|5[01]|8[0-3]))\\d{6}",,,,"650123456"],[,,"80[0-7]\\d{6}",,,,"801234567"],[,,"89\\d{7}",,,,"891234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}",,,,"592401234"],"MA",212,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5[45]"],"0$1"],[,"(\\d{4})(\\d{5})","$1-$2",["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"],"0$1"],[,"(\\d{2})(\\d{7})","$1-$2",["8"],"0$1"],[,"(\\d{3})(\\d{6})","$1-$2",["[5-7]"],"0$1"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MC:[,[,,"(?:[3489]|6\\d)\\d{7}",,,,,,,[8,9]],[,,"(?:870|9[2-47-9]\\d)\\d{5}",,,,"99123456",,,[8]],[,,"4(?:[469]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}",,,,"612345678"],[,,"(?:800|90\\d)\\d{5}",,,,"90123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MC",377,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["87"]],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[389]"]],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[389]"]],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],[,,,,,,,,,[-1]],,,[,,"8[07]0\\d{5}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MD:[,[,,"(?:[235-7]\\d|[89]0)\\d{6}",,,,,,,[8]],[,,"(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}",,,,"22212345"],[,,"562\\d{5}|(?:6\\d|7[16-9])\\d{6}",,,,"62112345"],[,,"800\\d{5}",,,,"80012345"],[,,"90[056]\\d{5}",,,,"90012345"],[,,"808\\d{5}
15672",,,,"80812345"],[,,,,,,,,,[-1]],[,,"3[08]\\d{6}",,,,"30123456"],"MD",373,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[25-7]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"803\\d{5}",,,,"80312345"],,,[,,,,,,,,,[-1]]],ME:[,[,,"(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}",,,,,,,[8,9],[6]],[,,"(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}",,,,"30234567",,,[8],[6]],[,,"6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}",,,,"67622901",,,[8]],[,,"80(?:[0-2578]|9\\d)\\d{5}",,,,"80080002"],[,,"9(?:4[1568]|5[178])\\d{5}",,,,"94515151",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"78[1-49]\\d{5}",,,,"78108780",,,[8]],"ME",382,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"77[1-9]\\d{5}",,,,"77273012",,,[8]],,,[,,,,,,,,,[-1]]],MF:[,[,,"(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}",,,,,,,[9]],[,,"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}",,,,"590271234"],[,,"(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}",,,,"690001234"],[,,"80[0-5]\\d{6}",,,,"800012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}",,,,"976012345"],"MF",590,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MG:[,[,,"[23]\\d{8}",,,,,,,[9],[7]],[,,"2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[356]|8[268]|9[2457])\\d{5}",,,,"202123456",,,,[7]],[,,"3[2-47-9]\\d{7}",,,,"321234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"22\\d{7}",,,,"221234567"],"MG",261,"00","0",,,"([24-9]\\d{6})$|0","20$1",,,[[,"(\\d{2})(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",["[23]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MH:[,[,,"329\\d{4}|(?:[256]\\d|45)\\d{5}",,,,,,,[7]],[,,"(?:247|528|625)\\d{4}",,,,"2471234"],[,,"(?:(?:23|54)5|329|45[35-8])\\d{4}",,,,"2351234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"635\\d{4}",,,,"6351234"],"MH",692,"011","1",,,"1",,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[2-6]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MK:[,[,,"[2-578]\\d{7}",,,,,,,[8],[6,7]],[,,"(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[0-3]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}",,,,"22012345",,,,[6,7]],[,,"7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-48]\\d|6[01]|7[01578])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|5[01]|7[015]))\\d{4}",,,,"72345678"],[,,"800\\d{5}",,,,"80012345"],[,,"5\\d{7}",,,,"50012345"],[,,"8(?:0[1-9]|[1-9]\\d)\\d{5}",,,,"80123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MK",389,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2|34[47]|4(?:[37]7|5[47]|64)"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[347]"],"0$1"],[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ML:[,[,,"[24-9]\\d{7}",,,,,,,[8]],[,,"2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\d{5}",,,,"20212345"],[,,"2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[01]|[679]\\d|8[2-49])\\d{6}",,,,"65012345"],[,,"80\\d{6}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ML",223,"00",,,,,,,,[[,"(\\d{4})","$1",["67[057-9]|74[045]","67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]],[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]],[,,,,,,,,,[-1]],,,[,,"80\\d{6}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MM:[,[,,"1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",,,,,,,[6,7,8,9,10],[5]],[,,"(?:1(?:(?:12|[28]\\d|3[56]|7[3-6]|9[0-6])\\d|4(?:2[29]|62|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|[26]2|7[0-2]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[013])|3(?:20\\d|4(?:70|83)|56)|420\\d|5(?:2\\d|470))|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|2472|3(?:20\\d|470)|4(?:2[04]\\d|472)|7(?:3\\d\\d|4[67]0|8(?:[01459]\\d|8))))\\d{4}|5(?:2(?:2\\d{5,6}|47[02]\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[01])|8(?:20\\d|47[02])|9(?:20\\d|470))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:(?:2\\d|51)\\d|4(?:[1-35-9]\\d|4[0-57-9]))|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|(?:[35
15672]2|64)\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}",,,,"1234567",,,[6,7,8,9],[5]],[,,"(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|8[89]|9[4-8])\\d|7(?:3|40|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}",,,,"92123456",,,[7,8,9,10]],[,,"80080(?:0[1-9]|2\\d)\\d{3}",,,,"8008001234",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"1333\\d{4}|[12]468\\d{4}",,,,"13331234",,,[8]],"MM",95,"00","0",,,"0",,,,[[,"(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]"],"0$1"],[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|452|678|86","[12]|452|6788|86"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[4-7]|8[1-35]"],"0$1"],[,"(\\d)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92"],"0$1"],[,"(\\d)(\\d{5})(\\d{4})","$1 $2 $3",["9"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MN:[,[,,"[12]\\d{7,9}|[5-9]\\d{7}",,,,,,,[8,9,10],[4,5,6]],[,,"[12]2[1-3]\\d{5,6}|(?:(?:[12](?:1|27)|5[368])\\d\\d|7(?:0(?:[0-5]\\d|7[078]|80)|128))\\d{4}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}",,,,"53123456",,,,[4,5,6]],[,,"(?:83[01]|92[039])\\d{5}|(?:5[05]|6[069]|8[015689]|9[013-9])\\d{6}",,,,"88123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"712[0-79]\\d{4}|7(?:1[013-9]|[25-9]\\d)\\d{5}",,,,"75123456",,,[8]],"MN",976,"001","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],[,"(\\d{4})(\\d{4})","$1 $2",["[5-9]"]],[,"(\\d{3})(\\d{5,6})","$1 $2",["[12]2[1-3]"],"0$1"],[,"(\\d{4})(\\d{5,6})","$1 $2",["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"0$1"],[,"(\\d{5})(\\d{4,5})","$1 $2",["[12]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MO:[,[,,"0800\\d{3}|(?:28|[68]\\d)\\d{6}",,,,,,,[7,8]],[,,"(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}",,,,"28212345",,,[8]],[,,"6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}",,,,"66123456",,,[8]],[,,"0800\\d{3}",,,,"0800501",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MO",853,"00",,,,,,,,[[,"(\\d{4})(\\d{3})","$1 $2",["0"]],[,"(\\d{4})(\\d{4})","$1 $2",["[268]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MP:[,[,,"[58]\\d{9}|(?:67|90)0\\d{7}",,,,,,,[10],[7]],[,,"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}",,,,"6702345678",,,,[7]],[,,"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}",,,,"6702345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"MP",1,"011","1",,,"([2-9]\\d{6})$|1","670$1",,1,,,[,,,,,,,,,[-1]],,"670",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MQ:[,[,,"(?:596\\d|7091)\\d{5}|(?:69|[89]\\d)\\d{7}",,,,,,,[9]],[,,"(?:596(?:[03-7]\\d|1[05]|2[7-9]|8[0-39]|9[04-9])|80[6-9]\\d\\d|9(?:477[6-9]|767[4589]))\\d{4}",,,,"596301234"],[,,"(?:69[67]\\d\\d|7091[0-3])\\d{4}",,,,"696201234"],[,,"80[0-5]\\d{6}",,,,"800012345"],[,,"8[129]\\d{7}",,,,"810123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:397[0-3]|477[0-5]|76(?:6\\d|7[0-367]))\\d{4}",,,,"976612345"],"MQ",596,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-79]|8(?:0[6-9]|[36])"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MR:[,[,,"(?:[2-4]\\d\\d|800)\\d{5}",,,,,,,[8]],[,,"(?:25[08]|35\\d|45[1-7])\\d{5}",,,,"35123456"],[,,"[2-4][0-46-9]\\d{6}",,,,"22123456"],[,,"800\\d{5}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MR",222,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-48]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MS:[,[,,"(?:[58]\\d\\d|664|900)\\d{7}",,,,,,,[10],[7]],[,,"6644(?:1[0-3]|91)\\d{4}",,,,"6644912345",,,,[7]],[,,"664(?:3(?:49|9[1-6])|49[2-6])\\d{4}",,,,"6644923456",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"MS",1,"011","1",,,"([34]\\d{6})$|1","664$1",,,,,[,,,,,,,,,[-1]],,"664",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MT:[,[,,"3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}",,,,,,,[8]],[,,"20(?:3[1-4]|6[059])\\d{4}|2(?:0[19]|[1-357]\\d|60)\\d{5}",,,,"21001234"],[,,"(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}",,,,"96961234"],[,,"800(?:02|[3467]\\d)\\d{3}",,,,"80071234"],[,,"5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}",,,,"50037123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3550\\d{4}",,,,"35501234"],"MT",356,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2357-9]"]]],,[,,"7117\\d{4}",,,,"71171234"],,,[,,,,,,,,,[-1]],[,,"501\\d{5}",,,,"50112345"],,,[,,,,,,,,,[-1]]],MU:[,[,,"(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}",,,,,,,[7,8,10]],[,,"(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-8]|71)|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}
15672",,,,"54480123",,,[7,8]],[,,"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-4]|3[013]))\\d{5}",,,,"52512345",,,[8]],[,,"802\\d{7}|80[0-2]\\d{4}",,,,"8001234",,,[7,10]],[,,"30\\d{5}",,,,"3012345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3(?:20|9\\d)\\d{4}",,,,"3201234",,,[7]],"MU",230,"0(?:0|[24-7]0|3[03])",,,,,,"020",,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-46]|8[013]"]],[,"(\\d{4})(\\d{4})","$1 $2",["[57]"]],[,"(\\d{5})(\\d{5})","$1 $2",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MV:[,[,,"(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",,,,,,,[7,10]],[,,"(?:3(?:0[0-4]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\d{4}",,,,"6701234",,,[7]],[,,"(?:46[46]|[79]\\d\\d)\\d{4}",,,,"7712345",,,[7]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MV",960,"0(?:0|19)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1-$2",["[34679]"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"4(?:0[01]|50)\\d{4}",,,,"4001234",,,[7]],,,[,,,,,,,,,[-1]]],MW:[,[,,"(?:[1289]\\d|31|77)\\d{7}|1\\d{6}",,,,,,,[7,9]],[,,"(?:1[2-9]|2[12]\\d\\d)\\d{5}",,,,"1234567"],[,,"111\\d{6}|(?:31|77|[89][89])\\d{7}",,,,"991234567",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MW",265,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1[2-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[137-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MX:[,[,,"[2-9]\\d{9}",,,,,,,[10],[7,8]],[,,"657[12]\\d{6}|(?:2(?:0[01]|2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\d|7[12]|8[1-8]))\\d{7}",,,,"2001234567",,,,[7,8]],[,,"657[12]\\d{6}|(?:2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\d|7[12]|8[1-8]))\\d{7}",,,,"2221234567",,,,[7,8]],[,,"8(?:00|88)\\d{7}",,,,"8001234567"],[,,"900\\d{7}",,,,"9001234567"],[,,"300\\d{7}",,,,"3001234567"],[,,"500\\d{7}",,,,"5001234567"],[,,,,,,,,,[-1]],"MX",52,"0[09]",,,,,,"00",,[[,"(\\d{5})","$1",["53"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"]]],[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MY:[,[,,"1\\d{8,9}|(?:3\\d|[4-9])\\d{7}",,,,,,,[8,9,10],[6,7]],[,,"4270\\d{4}|(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}",,,,"323856789",,,[8,9],[6,7]],[,,"1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0-4]\\d|5[0-7]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}",,,,"123456789",,,[9,10]],[,,"1[378]00\\d{6}",,,,"1300123456",,,[10]],[,,"1600\\d{6}",,,,"1600123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}",,,,"1546012345",,,[10]],"MY",60,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1-$2 $3",["1(?:[02469]|[378][1-9]|53)|8","1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],[,"(\\d)(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3-$4",["1(?:[367]|80)"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2 $3",["1"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MZ:[,[,,"(?:2|8\\d)\\d{7}",,,,,,,[8,9]],[,,"2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}",,,,"21123456",,,[8]],[,,"8[2-79]\\d{7}",,,,"821234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MZ",258,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-79]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NA:[,[,,"[68]\\d{7,8}",,,,,,,[8,9]],[,,"64426\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\d{4,5}|6(?:1(?:(?:0\\d|2[0189]|3[24-69]|4[5-9])\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06
15672]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\d{4}",,,,"61221234"],[,,"(?:60|8[1245])\\d{7}",,,,"811234567",,,[9]],[,,"80\\d{7}",,,,"800123456",,,[9]],[,,"8701\\d{5}",,,,"870123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"8(?:3\\d\\d|86)\\d{5}",,,,"88612345"],"NA",264,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["87"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NC:[,[,,"(?:050|[2-57-9]\\d\\d)\\d{3}",,,,,,,[6]],[,,"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}",,,,"201234"],[,,"(?:5[0-4]|[79]\\d|8[0-79])\\d{4}",,,,"751234"],[,,"050\\d{3}",,,,"050012"],[,,"36\\d{4}",,,,"366711"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NC",687,"00",,,,,,,,[[,"(\\d{3})","$1",["5[6-8]"]],[,"(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[02-57-9]"]]],[[,"(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[02-57-9]"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NE:[,[,,"[027-9]\\d{7}",,,,,,,[8]],[,,"2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}",,,,"20201234"],[,,"(?:23|7[0467]|[89]\\d)\\d{6}",,,,"93123456"],[,,"08\\d{6}",,,,"08123456"],[,,"09\\d{6}",,,,"09123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NE",227,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["08"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[089]|2[013]|7[0467]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NF:[,[,,"[13]\\d{5}",,,,,,,[6],[5]],[,,"(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}",,,,"106609",,,,[5]],[,,"(?:14|3[58])\\d{4}",,,,"381234",,,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NF",672,"00",,,,"([0-258]\\d{4})$","3$1",,,[[,"(\\d{2})(\\d{4})","$1 $2",["1[0-3]"]],[,"(\\d)(\\d{5})","$1 $2",["[13]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NG:[,[,,"38\\d{6}|[78]\\d{9,13}|(?:20|9\\d)\\d{8}",,,,,,,[8,10,11,12,13,14],[6,7]],[,,"(?:20(?:[1259]\\d|3[013-9]|4[1-8]|6[024-689]|7[1-79]|8[2-9])|38)\\d{6}",,,,"2033123456",,,[8,10],[6,7]],[,,"(?:702[0-24-9]|819[01])\\d{6}|(?:7(?:0[13-9]|[12]\\d)|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-6]))\\d{7}",,,,"8021234567",,,[10]],[,,"800\\d{7,11}",,,,"80017591759",,,[10,11,12,13,14]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NG",234,"009","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["3"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[7-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["20[129]"],"0$1"],[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]"],"0$1"],[,"(\\d{3})(\\d{5})(\\d{5,6})","$1 $2 $3",["[78]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"700\\d{7,11}",,,,"7001234567",,,[10,11,12,13,14]],,,[,,,,,,,,,[-1]]],NI:[,[,,"(?:1800|[25-8]\\d{3})\\d{4}",,,,,,,[8]],[,,"2\\d{7}",,,,"21234567"],[,,"(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}",,,,"81234567"],[,,"1800\\d{4}",,,,"18001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NI",505,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[125-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NL:[,[,,"(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}",,,,,,,[5,6,7,8,9,10,11]],[,,"(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}",,,,"101234567",,,[9]],[,,"(?:6[1-58]|970\\d)\\d{7}",,,,"612345678",,,[9,11]],[,,"800\\d{4,7}",,,,"8001234",,,[7,8,9,10]],[,,"90[069]\\d{4,7}",,,,"9061234",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:85|91)\\d{7}",,,,"851234567",,,[9]],"NL",31,"00","0",,,"0",,,,[[,"(\\d{4})","$1",["1[238]|[34]"]],[,"(\\d{2})(\\d{3,4})","$1 $2",["14"]],[,"(\\d{6})","$1",["1"]],[,"(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],[,"(\\d)(\\d{8})","$1 $2",["6"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-578]|91"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",["9"],"0$1"]],[[,"(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],[,"(\\d)(\\d{8})","$1 $2",["6"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-578]|91"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",["9"],"0$1"]],[,,"66\\d{7}",,,,"662345678",,,[9]],,,[,,"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\d",,,,,,,[5,6]],[,,"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d",,,,"14020",,,[5,6,9]],,,[,,,,,,,,,[-1]]],NO:[,[,,"(?:0|[2-9]\\d{3})\\d{4}",,,,,,,[5,8]],[,,"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}",,,,"21234567",,,[8]],[,,"(?:4[015-8]|9\\d)\\d{6}",,,,"40612345",,,[8]],[,,"80[01]\\d{5}",,,,"80012345",,,[8]],[,,"82[09]\\d{5}",,,,"82012345",,,[8]],[,,"810(?:0[0-6]|[2-8]\\d)\\d{3}",,,,"81021234",,,[8]],[,,"880\\d{5}",,,,"88012345",,,[8]],[,,"85[0-5]\\d{5}",,,,"85012345",,,[8]],"NO",47,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["8"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]"]]],,[,,,,,,,,,[-1]],1,"[02-689]|7[0-8]",[,,,,,,,,,[-1]],[,,"(?:0[235-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}",,,,"02000"],,,[,,"81[23]\\d{5}",,,,"81212345",,,[8]]],NP:[,[,,"(?:1\\d|9)\\d{9}|[1-9]\\d{7}",,,,,,,[8,10,11],[6,7]],[,,"(?:1[0-6]\\d|99[02-6])\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\d{5}",,,,"14567890",,,[8],[6,7]],[,,"9(?:00|6[0-3]|7[024-6]|8[0-24-68])\\d{7}",,,,"9841234567",,,[10]],[,,"1(?:66001|800\\d\\d)\\d{5}",,,,"16600101234",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NP",977,"00","0",,,"0",,,,[[,"(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],[,"(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"],"0$1"],[,"(\\d{3})(\\d{7})","$1-$2",["9"]],[,"(\\d{4})(\\d{2})(\\d{5})","$1-$2-$3",["1"]]],[[,"(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],[,"(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"],"0$1"],[,"(\\d{3})(\\d{7})","$1-$2",["9"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NR:[,[,,"(?:444|
15672(?:55|8\\d)\\d|666)\\d{4}",,,,,,,[7]],[,,"444\\d{4}",,,,"4441234"],[,,"(?:55[3-9]|666|8\\d\\d)\\d{4}",,,,"5551234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NR",674,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[4-68]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NU:[,[,,"(?:[4-7]|888\\d)\\d{3}",,,,,,,[4,7]],[,,"[47]\\d{3}",,,,"7012",,,[4]],[,,"(?:[56]|888[1-9])\\d{3}",,,,"8884012"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NU",683,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NZ:[,[,,"[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}",,,,,,,[5,6,7,8,9,10]],[,,"240\\d{5}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}",,,,"32345678",,,[8],[7]],[,,"2(?:[0-27-9]\\d|6)\\d{6,7}|2(?:1\\d|75)\\d{5}",,,,"211234567",,,[8,9,10]],[,,"508\\d{6,7}|80\\d{6,8}",,,,"800123456",,,[8,9,10]],[,,"(?:1[13-57-9]\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}",,,,"900123456",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,"70\\d{7}",,,,"701234567",,,[9]],[,,,,,,,,,[-1]],"NZ",64,"0(?:0|161)","0",,,"0",,"00",,[[,"(\\d{2})(\\d{3,8})","$1 $2",["8[1-79]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["50[036-8]|8|90","50(?:[0367]|88)|8|90"],"0$1"],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["24|[346]|7[2-57-9]|9[2-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|[589]"],"0$1"],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1|2[028]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:[169]|7[0-35-9])|7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"8(?:1[16-9]|22|3\\d|4[045]|5[459]|6[235-9]|7[0-3579]|90)\\d{2,7}",,,,"83012378"],,,[,,,,,,,,,[-1]]],OM:[,[,,"(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}",,,,,,,[7,8,9]],[,,"2[1-6]\\d{6}",,,,"23123456",,,[8]],[,,"(?:1505|90[1-9]\\d)\\d{4}|(?:7[126-9]|9[1-9])\\d{6}",,,,"92123456",,,[8]],[,,"8007\\d{4,5}|(?:500|800[05])\\d{4}",,,,"80071234"],[,,"900\\d{5}",,,,"90012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"OM",968,"00",,,,,,,,[[,"(\\d{3})(\\d{4,6})","$1 $2",["[58]"]],[,"(\\d{2})(\\d{6})","$1 $2",["2"]],[,"(\\d{4})(\\d{4})","$1 $2",["[179]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PA:[,[,,"(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}",,,,,,,[7,8,10,11]],[,,"(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[058]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[07-9]\\d|1[0-7]|2[0-5]|33|4[0-79]|5[0-35]|6[068])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[0156]|7[0-24-9]|8[5-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}",,,,"2001234",,,[7]],[,,"(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}",,,,"61234567",,,[7,8]],[,,"800\\d{4,5}|(?:00800|800\\d)\\d{6}",,,,"8001234"],[,,"(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}",,,,"8601234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PA",507,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],[,"(\\d{4})(\\d{4})","$1-$2",["[68]"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PE:[,[,,"(?:[14-8]|9\\d)\\d{7}",,,,,,,[8,9],[6,7]],[,,"(?:(?:(?:4[34]|5[14])[0-8]|687)\\d|7(?:173|(?:3[0-8]|55)\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[0569]|[56]0)))\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\d{6}",,,,"11234567",,,[8],[6,7]],[,,"9\\d{8}",,,,"912345678",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"805\\d{5}",,,,"80512345",,,[8]],[,,"801\\d{5}",,,,"80112345",,,[8]],[,,"80[24]\\d{5}",,,,"80212345",,,[8]],[,,,,,,,,,[-1]],"PE",51,"00|19(?:1[124]|77|90)00","0"," Anexo ",,"0",,"00",,[[,"(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],[,"(\\d)(\\d{7})","$1 $2",["1"],"(0$1)"],[,"(\\d{2})(\\d{6})","$1 $2",["[4-8]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PF:[,[,,"4\\d{5}
15672(?:\\d{2})?|8\\d{7,8}",,,,,,,[6,8,9]],[,,"4(?:0[4-689]|9[4-68])\\d{5}",,,,"40412345",,,[8]],[,,"8[7-9]\\d{6}",,,,"87123456",,,[8]],[,,"80[0-5]\\d{6}",,,,"800012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"499\\d{5}",,,,"49901234",,,[8]],"PF",689,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4|8[7-9]"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],,[,,,,,,,,,[-1]],,,[,,"44\\d{4}",,,,,,,[6]],[,,"44\\d{4}",,,,"440123",,,[6]],,,[,,,,,,,,,[-1]]],PG:[,[,,"(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",,,,,,,[7,8]],[,,"(?:(?:3[0-2]|4[257]|5[34]|9[78])\\d|64[1-9]|85[02-46-9])\\d{4}",,,,"3123456",,,[7]],[,,"(?:7\\d|8[1-38])\\d{6}",,,,"70123456",,,[8]],[,,"180\\d{4}",,,,"1801234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"2(?:0[0-57]|7[568])\\d{4}",,,,"2751234",,,[7]],"PG",675,"00|140[1-3]",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["18|[2-69]|85"]],[,"(\\d{4})(\\d{4})","$1 $2",["[78]"]]],,[,,"27[01]\\d{4}",,,,"2700123",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PH:[,[,,"(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}",,,,,,,[6,8,9,10,11,12,13],[4,5,7]],[,,"(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|(?:2|8[2-8]\\d\\d)\\d{5}",,,,"232345678",,,[6,8,9,10],[4,5,7]],[,,"(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}",,,,"9051234567",,,[10]],[,,"1800\\d{7,9}",,,,"180012345678",,,[11,12,13]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PH",63,"00","0",,,"0",,,,[[,"(\\d)(\\d{5})","$1 $2",["2"],"(0$1)"],[,"(\\d{4})(\\d{4,6})","$1 $2",["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2","3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"],"(0$1)"],[,"(\\d{5})(\\d{4})","$1 $2",["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"(0$1)"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|8[2-8]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PK:[,[,,"122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",,,,,,,[8,9,10,11,12],[5,6,7]],[,,"(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}",,,,"2123456789",,,[9,10],[5,6,7,8]],[,,"3(?:[0-247]\\d|3[0-79]|55|64)\\d{7}",,,,"3012345678",,,[10]],[,,"800\\d{5}(?:\\d{3})?",,,,"80012345",,,[8,11]],[,,"900\\d{5}",,,,"90012345",,,[8]],[,,,,,,,,,[-1]],[,,"122\\d{6}",,,,"122044444",,,[9]],[,,,,,,,,,[-1]],"PK",92,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{2,7})","$1 $2 $3",["[89]0"],"0$1"],[,"(\\d{4})(\\d{5})","$1 $2",["1"]],[,"(\\d{3})(\\d{6,7})","$1 $2",["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])","9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"],"(0$1)"],[,"(\\d{2})(\\d{7,8})","$1 $2",["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"],"(0$1)"],[,"(\\d{5})(\\d{5})","$1 $2",["58"],"(0$1)"],[,"(\\d{3})(\\d{7})","$1 $2",["3"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[24-9]"],"(0$1)"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}",,,,"21111825888",,,[11,12]],,,[,,,,,,,,,[-1]]],PL:[,[,,"(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}",,,,,,,[6,7,8,9,10]],[,,"47\\d{7}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))",,,,"123456789",,,[7,9]],[,,"21(?:1[013-5]|2\\d|3[4-9])\\d{5}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}",,,,"512345678",,,[9]],[,,"800\\d{6,7}",,,,"800123456",,,[9,10]],[,,"70[01346-8]\\d{6}",,,,"701234567",,,[9]],[,,"801\\d{6}",,,,"801234567",,,[9]],[,,,,,,,,,[-1]],[,,"39\\d{7}",,,,"391234567",,,[9]],"PL",48,"00",,,,,,,,[[,"(\\d{5})","$1",["19"]],[,"(\\d{3})(\\d{3})","$1 $2",["11|20|64"]],[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1","(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]],[,"(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2-8]|[2-7]|8[1-79]|9[145]"]],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["8"]]],,[,,"64\\d{4,7}",,,,"641234567",,,[6,7,8,9]],,,[,,,,,,,,,[-1]],[,,"804\\d{6}",,,,"804123456",,,[9]],,,[,,,,,,,,,[-1]]],PM:[,[,,"[45]\\d{5}|(?:708|8\\d\\d)\\d{6}",,,,,,,[6,9]],[,,"(?:4[1-35-9]|5[0-47-9]|80[6-9]\\d\\d)\\d{4}",,,,"430123"],[,,"(?:4[02-489]|5[02-9]|708(?:4[0-5]|5[0-6]))\\d{4}",,,,"551234"],[,,"80[0-5]\\d{6}",,,,"800012345",,,[9]],[,,"8[129]\\d{7}",,,,"810123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PM",508,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[45]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PR:[,[,,"(?:[589]\\d\\d|787)\\d{7}
15672",,,,,,,[10],[7]],[,,"(?:787|939)[2-9]\\d{6}",,,,"7872345678",,,,[7]],[,,"(?:787|939)[2-9]\\d{6}",,,,"7872345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"PR",1,"011","1",,,"1",,,1,,,[,,,,,,,,,[-1]],,"787|939",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PS:[,[,,"[2489]2\\d{6}|(?:1\\d|5)\\d{8}",,,,,,,[8,9,10],[7]],[,,"(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\d{5}",,,,"22234567",,,[8],[7]],[,,"5[69]\\d{7}",,,,"599123456",,,[9]],[,,"1800\\d{6}",,,,"1800123456",,,[10]],[,,,,,,,,,[-1]],[,,"1700\\d{6}",,,,"1700123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PS",970,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PT:[,[,,"1693\\d{5}|(?:[26-9]\\d|30)\\d{7}",,,,,,,[9]],[,,"2(?:[12]\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\d{6}",,,,"212345678"],[,,"6(?:[06]92(?:30|9\\d)|[35]92(?:[049]\\d|3[034]))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}",,,,"912345678"],[,,"80[02]\\d{6}",,,,"800123456"],[,,"(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}",,,,"760123456"],[,,"80(?:8\\d|9[1579])\\d{5}",,,,"808123456"],[,,"884[0-4689]\\d{5}",,,,"884123456"],[,,"30\\d{7}",,,,"301234567"],"PT",351,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["16|[236-9]"]]],,[,,"6(?:222\\d|8988)\\d{4}",,,,"622212345"],,,[,,,,,,,,,[-1]],[,,"70(?:38[01]|596|(?:7\\d|8[17])\\d)\\d{4}",,,,"707123456"],,,[,,"600\\d{6}|6[06]92(?:0\\d|3[349]|49)\\d{3}",,,,"600110000"]],PW:[,[,,"(?:[24-8]\\d\\d|345|900)\\d{4}",,,,,,,[7]],[,,"(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}",,,,"2771234"],[,,"(?:(?:46|83)[0-5]|6[2-4689]0)\\d{4}|(?:45|77|88)\\d{5}",,,,"6201234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PW",680,"01[12]",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PY:[,[,,"59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}",,,,,,,[6,7,8,9,10,11],[5]],[,,"(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}",,,,"212345678",,,[7,8,9],[5,6]],[,,"9(?:51|6[129]|7[1-6]|8[1-7]|9[1-5])\\d{6}",,,,"961456789",,,[9]],[,,"9800\\d{5,7}",,,,"98000123456",,,[9,10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"8700[0-4]\\d{4}",,,,"870012345",,,[9]],"PY",595,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],[,"(\\d{2})(\\d{5})","$1 $2",["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"],"(0$1)"],[,"(\\d{3})(\\d{4,5})","$1 $2",["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["87"]],[,"(\\d{3})(\\d{6})","$1 $2",["9(?:[5-79]|8[1-7])"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["9"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"[2-9]0\\d{4,7}",,,,"201234567",,,[6,7,8,9]],,,[,,,,,,,,,[-1]]],QA:[,[,,"800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}",,,,,,,[7,8,9,11]],[,,"4(?:1111|2022)\\d{3}|4(?:[04]\\d\\d|14[0-6]|999)\\d{4}",,,,"44123456",,,[8]],[,,"[35-7]\\d{7}",,,,"33123456",,,[8]],[,,"800\\d{4}|(?:0080[01]|800)\\d{6}",,,,"8001234",,,[7,9,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"QA",974,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["2[16]|8"]],[,"(\\d{4})(\\d{4})","$1 $2",["[3-7]"]]],,[,,"2[16]\\d{5}",,,,"2123456",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RE:[,[,,"709\\d{6}|(?:26|[689]\\d)\\d{7}",,,,,,,[9]],[,,"26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}",,,,"262161234"],[,,"(?:69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}",,,,"692123456"],[,,"80\\d{7}",,,,"801234567"],[,,"89[1-37-9]\\d{6}",,,,"891123456"],[,,"8(?:1[019]|2[0156]|84|90)\\d{6}",,,,"810123456"],[,,,,,,,,,[-1]],[,,"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\d{4}",,,,"939901234"],"RE",262,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[26-9]"],"0$1"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RO:[,[,,"(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}",,,,,,,[6,9]],[,,"[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d",,,,"211234567"],[,,"(?:630|702)0\\d{5}|(?:6(?:00|2\\d)|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[0-39]))\\d{6}",,,,"712034567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"90[0136]\\d{6}",,,,"900123456",,,[9]],[,,"801\\d{6}",,,,"801123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RO",40,"00","0"," int ",,"0",,,,[[,"(\\d{3})(\\d{3})","$1 $2",["2[3-6]","2[3-6]\\d9"],"0$1"],[,"(\\d{2})(\\d{4})","$1 $2",["219|31"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[236-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:37\\d|80[578])\\d{6}",,,,"372123456",,,[9]],,,[,,,,,,,,,[-1]]],RS:[,[,,"38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",,,,,,,[6,7,8,9,10,11,12],[4,5]],[,,"(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}",,,,"10234567",,,[7,8,9,10,11,12],[4,5,6]],[,,"6(?:[0-689]|7\\d)\\d{6,7}",,,,"601234567",,,[8,9,10]],[,,"800\\d{3,9}",,,,"80012345"],[,,"(?:78\\d|90[0169])\\d{3,7}",,,,"90012345",,,[6,7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RS",381,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3,9})","$1 $2",["(?:2[389]|39)0|[7-9]"],"0$1"],[,"(\\d{2})(\\d{5,10})","$1 $2",["[1-36]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"7[06]\\d{4,10}",,,,"700123456"],,,[,,,,,,,,,[-1]]],RU:[,[,,"8\\d{13}|[347-9]\\d{9}",,,,,,,[10,14],[7]],[,,"(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8
15672(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\d{7}",,,,"3011234567",,,[10],[7]],[,,"9\\d{9}",,,,"9123456789",,,[10]],[,,"8(?:0[04]|108\\d{3})\\d{7}",,,,"8001234567"],[,,"80[39]\\d{7}",,,,"8091234567",,,[10]],[,,,,,,,,,[-1]],[,,"808\\d{7}",,,,"8081234567",,,[10]],[,,,,,,,,,[-1]],"RU",7,"810","8",,,"8",,"8~10",,[[,"(\\d{3})(\\d{2})(\\d{2})","$1-$2-$3",["[0-79]"]],[,"(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",,1],[,"(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[349]|8(?:[02-7]|1[1-8])"],"8 ($1)",,1],[,"(\\d{4})(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["8"],"8 ($1)"]],[[,"(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",,1],[,"(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[349]|8(?:[02-7]|1[1-8])"],"8 ($1)",,1],[,"(\\d{4})(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["8"],"8 ($1)"]],[,,,,,,,,,[-1]],1,"3[04-689]|[489]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RW:[,[,,"(?:06|[27]\\d\\d|[89]00)\\d{6}",,,,,,,[8,9]],[,,"(?:06|2[23568]\\d)\\d{6}",,,,"250123456"],[,,"7[237-9]\\d{7}",,,,"720123456",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"900\\d{6}",,,,"900123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RW",250,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SA:[,[,,"92\\d{7}|(?:[15]|8\\d)\\d{8}",,,,,,,[9,10],[7]],[,,"1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}",,,,"112345678",,,[9],[7]],[,,"579[01]\\d{5}|5(?:[013-689]\\d|7[0-8])\\d{6}",,,,"512345678",,,[9]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"925\\d{6}",,,,"925012345",,,[9]],[,,"920\\d{6}",,,,"920012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SA",966,"00","0",,,"0",,,,[[,"(\\d{4})(\\d{5})","$1 $2",["9"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["81"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"811\\d{7}",,,,"8110123456",,,[10]],,,[,,,,,,,,,[-1]]],SB:[,[,,"[6-9]\\d{6}|[1-6]\\d{4}",,,,,,,[5,7]],[,,"(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}",,,,"40123",,,[5]],[,,"48\\d{3}|(?:(?:6[89]|7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}",,,,"7421234"],[,,"1[38]\\d{3}",,,,"18123",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5[12]\\d{3}",,,,"51123",,,[5]],"SB",677,"0[01]",,,,,,,,[[,"(\\d{2})(\\d{5})","$1 $2",["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SC:[,[,,"(?:[2489]\\d|64)\\d{5}",,,,,,,[7]],[,,"4[2-46]\\d{5}",,,,"4217123"],[,,"2[125-8]\\d{5}",,,,"2510123"],[,,"800[08]\\d{3}",,,,"8000000"],[,,"85\\d{5}",,,,"8512345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"971\\d{4}|(?:64|95)\\d{5}",,,,"6412345"],"SC",248,"010|0[0-2]",,,,,,"00",,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]|9[57]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SD:[,[,,"[19]\\d{8}",,,,,,,[9]],[,,"1(?:5\\d|8[35-7])\\d{6}",,,,"153123456"],[,,"(?:1[0-2]|9[0-3569])\\d{7}",,,,"911231234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SD",249,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[19]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SE:[,[,,"(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",,,,,,,[6,7,8,9,10,12]],[,,"(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}",,,,"8123456",,,[7,8,9]],[,,"7[02369]\\d{7}",,,,"701234567",,,[9]],[,,"20\\d{4,7}",,,,"20123456",,,[6,7,8,9]],[,,"649\\d{6}|99[1-59]\\d{4}(?:\\d{3})?|9(?:00|39|44)[1-8]\\d{3,6}",,,,"9001234567",,,[7,8,9,10]],[,,"77[0-7]\\d{6}",,,,"771234567",,,[9]],[,,"75[1-8]\\d{6}",,,,"751234567",,,[9]],[,,,,,,,,,[-1]],"SE",46,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1"],[,"(\\d{3})(\\d{4})","$1-$2",["9(?:00|39|44|9)"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})","$1-$2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],"0$1"],[,"(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["8"],"0$1"],[,"(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1"],[,"(\\d{3})(\\d{2,3})(\\d{3})","$1-$2 $3",["9(?:00|39|44)"],"0$1"],[,"(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["10|7"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["[26]"],"0$1"]],[[,"(\\d{2})(\\d{2,3})(\\d{2})","$1 $2 $3",["20"]],[,"(\\d{3})(\\d{4})","$1 $2",["9(?:00|39|44|9)"]],[,"(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"]],[,"(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],[,"(\\d{3})(\\d{2,3})(\\d{2})","$1 $2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"]],[,"(\\d{3})(\\d{2,3})(\\d{3})","$1 $2 $3",["9(?:00|39|44)"]],[,"(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"]],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["10|7"]],[,"(\\d)(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3 $4",["8"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["9"]],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]"]]],[,,"74[02-9]\\d{6}",,,,"740123456",,,[9]],,,[,,,,,,,,,[-1]],[,,"10[1-8]\\d{6}",,,,"102345678",,,[9]],,,[,,"(?:25[245]|67[3-68])\\d{9}",,,,"254123456789",,,[12]]],SG:[,[,,"(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}",,,,,,,[8,10,11]],[,,"662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}
15672",,,,"61234567",,,[8]],[,,"896[0-4]\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-5])|9[0-8]\\d)\\d{5}",,,,"81234567",,,[8]],[,,"(?:18|8)00\\d{7}",,,,"18001234567",,,[10,11]],[,,"1900\\d{7}",,,,"19001234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:3[12]\\d|666)\\d{5}",,,,"31234567",,,[8]],"SG",65,"0[0-3]\\d",,,,,,,,[[,"(\\d{4,5})","$1",["1[013-9]|77","1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"]],[,"(\\d{4})(\\d{4})","$1 $2",["[369]|8(?:0[1-9]|[1-9])"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],[,"(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],[[,"(\\d{4})(\\d{4})","$1 $2",["[369]|8(?:0[1-9]|[1-9])"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],[,"(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"7000\\d{7}",,,,"70001234567",,,[11]],,,[,,,,,,,,,[-1]]],SH:[,[,,"(?:[256]\\d|8)\\d{3}",,,,,,,[4,5]],[,,"2(?:[0-57-9]\\d|6[4-9])\\d\\d",,,,"22158"],[,,"[56]\\d{4}",,,,"51234",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"262\\d\\d",,,,"26212",,,[5]],"SH",290,"00",,,,,,,,,,[,,,,,,,,,[-1]],1,"[256]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SI:[,[,,"[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",,,,,,,[5,6,7,8]],[,,"(?:[1-357][2-8]|4[24-8])\\d{6}",,,,"12345678",,,[8],[7]],[,,"65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}",,,,"31234567",,,[8]],[,,"80\\d{4,6}",,,,"80123456",,,[6,7,8]],[,,"89[1-3]\\d{2,5}|90\\d{4,6}",,,,"90123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}",,,,"59012345",,,[8]],"SI",386,"00|10(?:22|66|88|99)","0",,,"0",,"00",,[[,"(\\d{2})(\\d{3,6})","$1 $2",["8[09]|9"],"0$1"],[,"(\\d{3})(\\d{5})","$1 $2",["59|8"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],[,"(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-57]"],"(0$1)"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SJ:[,[,,"0\\d{4}|(?:[489]\\d|79)\\d{6}",,,,,,,[5,8]],[,,"79\\d{6}",,,,"79123456",,,[8]],[,,"(?:4[015-8]|9\\d)\\d{6}",,,,"41234567",,,[8]],[,,"80[01]\\d{5}",,,,"80012345",,,[8]],[,,"82[09]\\d{5}",,,,"82012345",,,[8]],[,,"810(?:0[0-6]|[2-8]\\d)\\d{3}",,,,"81021234",,,[8]],[,,"880\\d{5}",,,,"88012345",,,[8]],[,,"85[0-5]\\d{5}",,,,"85012345",,,[8]],"SJ",47,"00",,,,,,,,,,[,,,,,,,,,[-1]],,"79",[,,,,,,,,,[-1]],[,,"(?:0[235-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}",,,,"02000"],,,[,,"81[23]\\d{5}",,,,"81212345",,,[8]]],SK:[,[,,"[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}",,,,,,,[6,7,9]],[,,"(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d",,,,"221234567"],[,,"909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}",,,,"912123456",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"9(?:00|[78]\\d)\\d{6}",,,,"900123456",,,[9]],[,,"8[5-9]\\d{7}",,,,"850123456",,,[9]],[,,,,,,,,,[-1]],[,,"6(?:02|5[0-4]|9[0-6])\\d{6}",,,,"690123456",,,[9]],"SK",421,"00","0",,,"0",,,,[[,"(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],[,"(\\d{4})(\\d{3})","$1 $2",["909","9090"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],[[,"(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],[,,"9090\\d{3}",,,,"9090123",,,[7]],,,[,,"9090\\d{3}|(?:602|8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}",,,,,,,[7,9]],[,,"96\\d{7}",,,,"961234567",,,[9]],,,[,,,,,,,,,[-1]]],SL:[,[,,"(?:[237-9]\\d|66)\\d{6}",,,,,,,[8],[6]],[,,"22[2-4][2-9]\\d{4}",,,,"22221234",,,,[6]],[,,"(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\d{6}",,,,"25123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SL",232,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{6})","$1 $2",["[236-9]"],"(0$1)"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SM:[,[,,"(?:0549|[5-7]\\d)\\d{6}",,,,,,,[8,10],[6]],[,,"0549(?:8[0157-9]|9\\d)\\d{4}",,,,"0549886377",,,[10],[6]],[,,"6[16]\\d{6}",,,,"66661212",,,[8]],[,,,,,,,,,[-1]],[,,"7[178]\\d{6}",,,,"71123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5[158]\\d{6}",,,,"58001110",,,[8]],"SM",378,"00",,,,"([89]\\d{5})$","0549$1",,,[[,"(\\d{6})","$1",["[89]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],[,"(\\d{4})(\\d{6})","$1 $2",["0"]]],[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],[,"(\\d{4})(\\d{6})","$1 $2",["0"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SN:[,[,,"(?:[378]\\d|93)\\d{7}",,,,,,,[9]],[,,"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}",,,,"301012345"],[,,"7(?:(?:[06-8]\\d|[19]0|21)\\d|5(?:0[01]|[19]0|2[25]|3[36]|[4-7]\\d|8[35]))\\d{5}",,,,"701234567"],[,,"800\\d{6}",,,,"800123456"],[,,"88[4689]\\d{6}",,,,"884123456"],[,,"81[02468]\\d{6}
15672",,,,"810123456"],[,,,,,,,,,[-1]],[,,"(?:3(?:392|9[01]\\d)\\d|93(?:3[13]0|929))\\d{4}",,,,"933301234"],"SN",221,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SO:[,[,,"[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}",,,,,,,[6,7,8,9]],[,,"(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}",,,,"4012345",,,[6,7]],[,,"(?:(?:15|(?:3[59]|4[89]|6\\d|7[79]|8[08])\\d|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}",,,,"71123456",,,[7,8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SO",252,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{4})","$1 $2",["8[125]"]],[,"(\\d{6})","$1",["[134]"]],[,"(\\d)(\\d{6})","$1 $2",["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],[,"(\\d)(\\d{7})","$1 $2",["(?:2|90)4|[67]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[348]|64|79|90"]],[,"(\\d{2})(\\d{5,7})","$1 $2",["1|28|6[0-35-9]|77|9[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SR:[,[,,"(?:[2-5]|68|[78]\\d)\\d{5}",,,,,,,[6,7]],[,,"(?:2[1-3]|3[0-7]|(?:4|68)\\d|5[2-58])\\d{4}",,,,"211234"],[,,"(?:7[124-7]|8[124-9])\\d{5}",,,,"7412345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"56\\d{4}",,,,"561234",,,[6]],"SR",597,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],[,"(\\d{3})(\\d{3})","$1-$2",["[2-5]"]],[,"(\\d{3})(\\d{4})","$1-$2",["[6-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SS:[,[,,"[19]\\d{8}",,,,,,,[9]],[,,"1[89]\\d{7}",,,,"181234567"],[,,"(?:12|9[1257-9])\\d{7}",,,,"977123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SS",211,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[19]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ST:[,[,,"(?:22|9\\d)\\d{5}",,,,,,,[7]],[,,"22\\d{5}",,,,"2221234"],[,,"900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}",,,,"9812345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ST",239,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[29]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SV:[,[,,"[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?",,,,,,,[7,8,11]],[,,"2(?:79(?:0[0347-9]|[1-9]\\d)|89(?:0[024589]|[1-9]\\d))\\d{3}|2(?:[1-69]\\d|[78][0-8])\\d{5}",,,,"21234567",,,[8]],[,,"[67]\\d{7}",,,,"70123456",,,[8]],[,,"800\\d{8}|80[01]\\d{4}",,,,"8001234",,,[7,11]],[,,"900\\d{4}(?:\\d{4})?",,,,"9001234",,,[7,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SV",503,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[89]"]],[,"(\\d{4})(\\d{4})","$1 $2",["[267]"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SX:[,[,,"7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"7215(?:4[2-8]|8[239]|9[056])\\d{4}",,,,"7215425678",,,,[7]],[,,"7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}",,,,"7215205678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"SX",1,"011","1",,,"(5\\d{6})$|1","721$1",,,,,[,,,,,,,,,[-1]],,"721",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SY:[,[,,"[1-359]\\d{8}|[1-5]\\d{7}",,,,,,,[8,9],[6,7]],[,,"21\\d{6,7}|(?:1(?:[14]\\d|[2356])|2[235]|3(?:[13]\\d|4)|4[134]|5[1-3])\\d{6}",,,,"112345678",,,,[6,7]],[,,"(?:50|9[1-689])\\d{7}",,,,"944567890",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SY",963,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-4]|5[1-3]"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[59]"],"0$1",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SZ:[,[,,"0800\\d{4}|(?:[237]\\d|900)\\d{6}",,,,,,,[8,9]],[,,"[23][2-5]\\d{6}",,,,"22171234",,,[8]],[,,"7[6-9]\\d{6}",,,,"76123456",,,[8]],[,,"0800\\d{4}",,,,"08001234",,,[8]],[,,"900\\d{6}",,,,"900012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"70\\d{6}",,,,"70012345",,,[8]],"SZ",268,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[0237]"]],[,"(\\d{5})(\\d{4})","$1 $2",["9"]]],,[,,,,,,,,,[-1]],,,[,,"0800\\d{4}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TA:[,[,,"8\\d{3}",,,,,,,[4]],[,,"8\\d{3}",,,,"8999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TA",290,"00",,,,,,,,,,[,,,,,,,,,[-1]],,"8",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TC:[,[,,"(?:[58]\\d\\d|649|900)\\d{7}",,,,,,,[10],[7]],[,,"649(?:266|712|9(?:4\\d|50))\\d{4}",,,,"6497121234",,,,[7]],[,,"649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}",,,,"6492311234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"649(?:71[01]|966)\\d{4}",,,,"6497101234",,,,[7]],"TC",1,"011","1",,,"([2-479]\\d{6})$|1","649$1",,,,,[,,,,,,,,,[-1]],,"649",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TD:[,[,,"(?:22|[689]\\d|77)\\d{6}",,,,,,,[8]],[,,"22(?:[37-9]0|5[0-5]|6[89])\\d{4}",,,,"22501234"],[,,"(?:[69]\\d|77|8[56])\\d{6}",,,,"63012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TD",235,"00|16",,,,,,"00",,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[26-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TG:[,[,,"[279]\\d{7}",,,,,,,[8]],[,,"2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}",,,,"22212345"],[,,"(?:7[0-29]|9[0-36-9])\\d{6}",,,,"90112345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TG",228,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[279]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TH:[,[,,"(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}",,,,,,,[8,9,10,13]],[,,"(?:1[0689]|2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}",,,,"21234567",,,[8]],[,,"67(?:1[0-8]|2[4-7])\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}",,,,"812345678",,,[9]],[,,"(?:001800\\d|1800)\\d{6}",,,,"1800123456",,,[10,13]],[,,"1900\\d{6}",,,,"1900123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"6[08]\\d{7}",,,,"601234567",,,[9]],"TH",66,"00[1-9]","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13-9]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TJ:[,[,,"[0-57-9]\\d{8}",,,,,,,[9],[3,5,6,7]],[,,"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}",,,,"372123456",,,,[3,5,6,7]],[,,"(?:33[03-9]|4(?:1[18]|4[02-479])|81[1-9])\\d{6}|(?:[09]\\d|1[0178]|2[02
vendor: 8,879 bytes, line 15672
15672]|[34]0|5[05]|7[01578]|8[078])\\d{7}",,,,"917123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TJ",992,"810",,,,,,"8~10",,[[,"(\\d{6})(\\d)(\\d{2})","$1 $2 $3",["331","3317"]],[,"(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["44[02-479]|[34]7"]],[,"(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3(?:[1245]|3[12])"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[0-57-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TK:[,[,,"[2-47]\\d{3,6}",,,,,,,[4,5,6,7]],[,,"(?:2[2-4]|[34]\\d)\\d{2,5}",,,,"3101"],[,,"7[2-4]\\d{2,5}",,,,"7290"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TK",690,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TL:[,[,,"7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}",,,,,,,[7,8]],[,,"(?:2[1-5]|3[1-9]|4[1-4])\\d{5}",,,,"2112345",,,[7]],[,,"7[2-8]\\d{6}",,,,"77212345",,,[8]],[,,"80\\d{5}",,,,"8012345",,,[7]],[,,"90\\d{5}",,,,"9012345",,,[7]],[,,,,,,,,,[-1]],[,,"70\\d{5}",,,,"7012345",,,[7]],[,,,,,,,,,[-1]],"TL",670,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],[,"(\\d{4})(\\d{4})","$1 $2",["7"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TM:[,[,,"(?:[1-6]\\d|71)\\d{6}",,,,,,,[8]],[,,"(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}",,,,"12345678"],[,,"(?:6\\d|71)\\d{6}",,,,"66123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TM",993,"810","8",,,"8",,"8~10",,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"],"(8 $1)"],[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-5]"],"(8 $1)"],[,"(\\d{2})(\\d{6})","$1 $2",["[67]"],"8 $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TN:[,[,,"[2-57-9]\\d{7}",,,,,,,[8]],[,,"81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}",,,,"30010123"],[,,"3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-8])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}",,,,"20123456"],[,,"8010\\d{4}",,,,"80101234"],[,,"88\\d{6}",,,,"88123456"],[,,"8[12]10\\d{4}",,,,"81101234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TN",216,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TO:[,[,,"(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}",,,,,,,[5,7]],[,,"(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}",,,,"20123",,,[5]],[,,"(?:5(?:4[0-5]|5[4-6])|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}",,,,"7715123",,,[7]],[,,"0800\\d{3}",,,,"0800222",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"55[0-37-9]\\d{4}",,,,"5510123",,,[7]],"TO",676,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1-$2",["[2-4]|50|6[09]|7[0-24-69]|8[05]"]],[,"(\\d{4})(\\d{3})","$1 $2",["0"]],[,"(\\d{3})(\\d{4})","$1 $2",["[5-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TR:[,[,,"4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}",,,,,,,[7,10,12,13]],[,,"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}",,,,"2123456789",,,[10]],[,,"561(?:011|61\\d)\\d{4}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}",,,,"5012345678",,,[10]],[,,"8(?:00\\d{7}(?:\\d{2,3})?|11\\d{7})",,,,"8001234567",,,[10,12,13]],[,,"(?:8[89]8|900)\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,"592(?:21[12]|461)\\d{4}",,,,"5922121234",,,[10]],[,,"850\\d{7}",,,,"8500123456",,,[10]],"TR",90,"00","0",,,"0",,,,[[,"(\\d{3})(\\d)(\\d{3})","$1 $2 $3",["444"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[01589]|90"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|61[06])","5(?:[0-59]|61[06]1)"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",,1],[,"(\\d{3})(\\d{3})(\\d{6,7})","$1 $2 $3",["80"],"0$1",,1]],[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[01589]|90"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|61[06])","5(?:[0-59]|61[06]1)"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",,1],[,"(\\d{3})(\\d{3})(\\d{6,7})","$1 $2 $3",["80"],"0$1",,1]],[,,"512\\d{7}",,,,"5123456789",,,[10]],,,[,,"(?:444|811\\d{3})\\d{4}",,,,,,,[7,10]],[,,"444\\d{4}",,,,"4441444",,,[7]],,,[,,,,,,,,,[-1]]],TT:[,[,,"(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"868(?:2(?:01|1[5-9]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}",,,,"8682211234",,,,[7]],[,,"868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}",,,,"8682911234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"TT",1,"011","1",,,"([2-46-8]\\d{6})$|1","868$1",,,,,[,,,,,,,,,[-1]],,"868",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"868619\\d{4}",,,,"8686191234",,,,[7]]],TV:[,[,,"(?:2|7\\d\\d|90)\\d{4}",,,,,,,[5,6,7]],[,,"2[02-9]\\d{3}",,,,"20123",,,[5]],[,,"(?:7[01]\\d|90)\\d{4}",,,,"901234",,,[6,7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TV",688,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1 $2",["2"]],[,"(\\d{2})(\\d{4})","$1 $2",["90"]],[,"(\\d{2})(\\d{5})","$1 $2",["7"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TW:[,[,,"[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",,,,,,,[7,8,9,10,11]],[,,"(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}",,,,"221234567",,,[8,9]],[,,"(?:40001[0-2]|9[0-8]\\d{4})\\d{3}",,,,"912345678",,,[9]],[,,"80[0-79]\\d{6}|800\\d{5}",,,,"800123456",,,[8,9]],[,,"20(?:[013-9]\\d\\d|2)\\d{4}",,,,"203123456",,,[7,9]],[,,,,,,,,,[-1]],[,,"99\\d{7}",,,,"990123456",,,[9]],[,,"7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}",,,,"7012345678",,,[10,11]],"TW",886,"0(?:0[25-79]|19)","0","#",,"0",,,,[[,"(\\d{2})(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[258]0"],"0$1"],[,"(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4,5})","$1 $2 $3",["7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"50[0-46-9]\\d{6}",,,,"500123456",,,[9]],,,[,,,,,,,,,[-1]]],TZ:[,[,,"(?:[25-8]\\d|41|90)\\d{7}",,,,,,,[9]],[,,"2[2-8]\\d{7}",,,,"222345678"],[,,"(?:6[125-9]|7[13-9])\\d{7}",,,,"621234567"],[,,"80[08]\\d{6}",,,,"800123456"],[,,"90\\d{7}",,,,"900123456"],[,,"8(?:40|6[01])\\d{6}",,,,"840123456"],[,,,,,,,,,[-1]],[,,"41\\d{7}",,,,"412345678"],"TZ",255,"00[056]","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["5"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[67]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"(?:8(?:[04]0|6[01])|90\\d)\\d{6}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UA:[,[,,"[89]\\d{9}|[3-9]\\d{8}",,,,,,,[9,10],[5,6,7]],[,,"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}",,,,"311234567",,,[9],[5,6,7]],[,,"790\\d{6}|(?:39|50|6[36-8]|7[1-357]|9[1-9])\\d{7}",,,,"501234567",,,[9]],[,,"800[1-8]\\d{5,6}",,,,"800123456"],[,,"900[239]\\d{5,6}",,,,"900212345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"89[1-579]\\d{6}",,,,"891234567",,,[9]],"UA",380,"00","0",,,"0",,"0~0",,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]","6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"],"0$1"],[,"(\\d{4})(\\d{5})","$1 $2",["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])","3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|89|9[1-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UG:[,[,,"800\\d{6}|(?:[29]0|[347]\\d)\\d{7}",,,,,,,[9],[5,6,7]],[,,"20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|3[1-4]|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}",,,,"312345678",,,,[5,6,7]],[,,"72[48]0\\d{5}|7(?:[015-8]\\d|2[067]|36|4[0-
156726]|9[89])\\d{6}",,,,"712345678"],[,,"800[1-3]\\d{5}",,,,"800123456"],[,,"90[1-3]\\d{6}",,,,"901123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UG",256,"00[057]","0",,,"0",,,,[[,"(\\d{4})(\\d{5})","$1 $2",["202","2024"],"0$1"],[,"(\\d{3})(\\d{6})","$1 $2",["[27-9]|4(?:6[45]|[7-9])"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["[34]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],US:[,[,,"[2-9]\\d{9}|3\\d{6}",,,,,,,[10],[7]],[,,"(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[468])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}",,,,"2015550123",,,,[7]],[,,"(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[468])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}",,,,"2015550123",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"305209\\d{4}",,,,"3052090123",,,,[7]],"US",1,"011","1",,,"1",,,1,[[,"(\\d{3})(\\d{4})","$1-$2",["310"],,,1],[,"(\\d{3})(\\d{4})","$1-$2",["[24-9]|3(?:[02-9]|1[1-9])"]],[,"(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",["[2-9]"],,,1]],[[,"(\\d{3})(\\d{4})","$1-$2",["310"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[2-9]"]]],[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UY:[,[,,"0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}",,,,,,,[6,7,8,9,10,11,12,13]],[,,"(?:1(?:770|9(?:20|[89]7))|(?:2\\d|4[2-7])\\d\\d)\\d{4}",,,,"21231234",,,[8],[7]],[,,"9[1-9]\\d{6}",,,,"94231234",,,[8]],[,,"0004\\d{2,9}|(?:405|80[05])\\d{4}",,,,"8001234"],[,,"90[0-8]\\d{4}",,,,"9001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UY",598,"0(?:0|1[3-9]\\d)","0"," int. ",,"0",,"00",,[[,"(\\d{3})(\\d{3,4})","$1 $2",["0"]],[,"(\\d{3})(\\d{4})","$1 $2",["[49]0|8"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"],[,"(\\d{4})(\\d{4})","$1 $2",["[124]"]],[,"(\\d{3})(\\d{3})(\\d{2,4})","$1 $2 $3",["0"]],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})","$1 $2 $3 $4",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UZ:[,[,,"(?:20|33|[5-79]\\d|88)\\d{7}",,,,,,,[9]],[,,"(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|[69]\\d\\d|7(?:[23]\\d|7[69]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|[68]\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|9(?:22|5[1-9])))\\d{5}",,,,"669050123"],[,,"(?:(?:[25]0|33|88|9[0-57-9])\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079])))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}",,,,"912345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UZ",998,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[235-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VA:[,[,,"0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",,,,,,,[6,7,8,9,10,11,12]],[,,"06698\\d{1,6}",,,,"0669812345",,,[6,7,8,9,10,11]],[,,"3[1-9]\\d{8}|3[2-9]\\d{7}",,,,"3123456789",,,[9,10]],[,,"80(?:0\\d{3}|3)\\d{3}",,,,"800123456",,,[6,9]],[,,"(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}",,,,"899123456",,,[6,8,9,10]],[,,"84(?:[08]\\d{3}|[17])\\d{3}",,,,"848123456",,,[6,9]],[,,"1(?:78\\d|99)\\d{6}",,,,"1781234567",,,[9,10]],[,,"55\\d{8}",,,,"5512345678",,,[10]],"VA",39,"00",,,,,,,,,,[,,,,,,,,,[-1]],,"06698",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"3[2-8]\\d{9,10}",,,,"33101234501",,,[11,12]]],VC:[,[,,"(?:[58]\\d\\d|784|900)\\d{7}",,,,,,,[10],[7]],[,,"784(?:266|3(?:6[6-9]|7\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}",,,,"7842661234",,,,[7]],[,,"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}",,,,"7844301234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"78451[0-2]\\d{4}",,,,"7845101234",,,,[7]],"VC",1,"011","1",,,"([2-7]\\d{6})$|1","784$1",,,,,[,,,,,,,,,[-1]],,"784",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VE:[,[,,"[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}",,,,,,,[10],[7]],[,,"(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}",,,,"2121234567",,,,[7]],[,,"4(?:1[24-8]|2[46])\\d{7}",,,,"4121234567"],[,,"800\\d{7}",,,,"8001234567"],[,,"90[01]\\d{7}",,,,"9001234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"VE",58,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{7})","$1-$2",["[24-689]"],"0$1","$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"501\\d{7}",,,,"5010123456",,,,[7]],,,[,,,,,,,,,[-1]]],VG:[,[,,"(?:284|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}",,,,"2842291234",,,,[7]],[,,"284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\d{4}",,,,"2843001234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"VG",1,"011","1",,,"([2-578]\\d{6})$|1","284$1",,,,,[,,,,,,,,,[-1]],,"284",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VI:[,[,,"[58]\\d{9}|(?:34|90)0\\d{7}",,,,,,,[10],[7]],[,,"340(?:2(?:0\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}",,,,"3406421234",,,,[7]],[,,"340(?:2(?:0\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}",,,,"3406421234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"VI",1,"011","1",,,"([2-9]\\d{6})$|1","340$1",,1,,,[,,,,,,,,,[-1]],,"340",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VN:[,[,,"[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}",,,,,,,[7,8,9,10]],[,,"2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}",,,,"2101234567",,,[10]],[,,"(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[1689]|7[06-9]|8[1-8]|9[0-8])\\d{7}",,,,"912345678",,,[9]],[,,"1800\\d{4,6}|12(?:0[13]|28)\\d{4}",,,,"1800123456",,,[8,9,10]],[,,"1900\\d{4,6}",,,,"1900123456",,,[8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"672\\d{6}",,,,"672012345",,,[9]],"VN",84,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[17]99"],"0$1",,1],[,"(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",,1],[,"(\\d{3})(\\d{4,5})","$1 $2",["69"],"0$1",,1],[,"(\\d{4})(\\d{4,6})","$1 $2",["1"],,,1],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["6"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[357-9]"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",,1],[,"(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",,1]],[[,"(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",,1],[,"(\\d{4})(\\d{4,6})","$1 $2",["1"],,,1],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["6"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[357-9]"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",,1],[,"(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",,1]],[,,,,,,,,,[-1]],,,[,,"[17]99\\d{4}|69\\d{5,6}",,,,,,,[7,8]],[,,"(?:[17]99|80\\d)\\d{4}|69\\d{5,6}",,,,"1992000",,,[7,8]],,,[,,,,,,,,,[-1]]],VU:[,[,,"[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}",,,,,,,[5,7]],[,,"(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}",,,,"22123",,,[5]],[,,"(?:[58]\\d|7[013-7])\\d{5}",,,,"5912345",,,[7]],[,,"81[18]\\d\\d",,,,"81123",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:0[1-9]|1[01])\\d{4}",,,,"9010123",,,[7]],"VU",678,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[57-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:3[03]|900\\d)\\d{3}",,,,"30123"],,,[,,,,,,,,,[-1]]],WF:[,[,,"(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}",,,,,,,[6,9]],[,,"72\\d{4}",,,,"721234",,,[6]],[,,"(?:72|8[23])\\d{4}",,,,"821234",,,[6]],[,,"80[0-5]\\d{6}",,,,"800012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9[23]\\d{4}",,,,"921234",,,[6]],"WF",681,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[47-9]"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"[48]0\\d{4}",,,,"401234",,,[6]]],WS:[,[,,"(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}",,,,,,,[5,6,7,10]],[,,"6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}",,,,"22123",,,[5,6]],[,,"(?:7[1-35-7]|8(?:[3-7]|9\\d{3}))\\d{5}",,,,"7212345",,,[7,10]],[,,"800\\d{3}",,,,"800123",,,[6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"WS",685,"0",,,,,,,,[[,"(\\d{5})","$1",["[2-5]|6[1-9]"]],[,"(\\d{3})(\\d{3,7})","$1 $2",["[68]"]],[,"(\\d{2})(\\d{5})","$1 $2",["7"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],XK:[,[,,"2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}",,,,,,,[8,9,10,11,12]],[,,"38\\d{6,10}|(?:2[89]|39)(?:0\\d{5,6}|[1-9]\\d{5})",,,,"28012345"],[,,"4[3-9]\\d{6}",,,,"43201234",,,[8]],[,,"800\\d{5}",,,,"80001234",,,[8]],[,,"900\\d{5}",,,,"90001234",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"XK",383,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-4]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2|39"],"0$1"],[,"(\\d{2})(\\d{7,10})","$1 $2",["3"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YE:[,[,,"(?:1|7\\d)\\d{7}|[1-7]\\d{6}",,,,,,,[7,8,9],[6]],[,,"78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}",,,,"1234567",,,[7,8],[6]],[,,"7[01378]\\d{7}",,,,"712345678",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"YE",967,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7(?:[24-6]|8[0-7])"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YT:[,[,,"7093\\d{5}|(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}",,,,,,,[9]],[,,"269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}",,,,"269601234"],[,,"(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}",,,,"639012345"],[,,"80\\d{7}",,,,"801234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:(?:39|47)8[01]|769\\d)\\d{4}",,,,"939801234"],"YT",262,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZA:[,[,,"[1-79]\\d{8}|8\\d{4,9}",,,,,,,[5,6,7,8,9,10]],[,,"(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}",,,,"101234567",,,[9]],[,,"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}
15672|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:6\\d\\d|7(?:[0-46-9]\\d|5[0-4]))\\d\\d|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}",,,,"711234567",,,[5,6,7,8,9]],[,,"80\\d{7}",,,,"801234567",,,[9]],[,,"(?:86[2-9]|9[0-2]\\d)\\d{6}",,,,"862345678",,,[9]],[,,"860\\d{6}",,,,"860123456",,,[9]],[,,,,,,,,,[-1]],[,,"87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}",,,,"871234567",,,[9]],"ZA",27,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3,4})","$1 $2",["8[1-4]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["8[1-4]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"861\\d{6,7}",,,,"861123456",,,[9,10]],,,[,,,,,,,,,[-1]]],ZM:[,[,,"800\\d{6}|(?:21|63|[79]\\d)\\d{7}",,,,,,,[9],[6]],[,,"21[1-8]\\d{6}",,,,"211234567",,,,[6]],[,,"(?:7[5-79]|9[5-8])\\d{7}",,,,"955123456"],[,,"800\\d{6}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"63\\d{7}",,,,"630123456"],"ZM",260,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[1-9]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["[79]"],"0$1"]],[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["[79]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZW:[,[,,"2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",,,,,,,[5,6,7,8,9,10],[3,4]],[,,"(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}",,,,"1312345",,,,[3,4]],[,,"7(?:[1278]\\d|3[1-9])\\d{6}",,,,"712345678",,,[9]],[,,"80(?:[01]\\d|20|8[0-8])\\d{3}",,,,"8001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"86(?:1[12]|22|30|44|55|77|8[368])\\d{6}",,,,"8686123456",,,[10]],"ZW",263,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3,5})","$1 $2",["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"],"0$1"],[,"(\\d)(\\d{3})(\\d{2,4})","$1 $2 $3",["[49]"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["80"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2","2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"0$1"],[,"(\\d{4})(\\d{6})","$1 $2",["8"],"0$1"],[,"(\\d{2})(\\d{3,5})","$1 $2",["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["29[013-9]|39|54"],"0$1"],[,"(\\d{4})(\\d{3,5})","$1 $2",["(?:25|54)8","258|5483"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],800:[,[,,"(?:00|[1-9]\\d)\\d{6}",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:00|[1-9]\\d)\\d{6}",,,,"12345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",800,,,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2",["\\d"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],808:[,[,,"[1-9]\\d{7}",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"[1-9]\\d{7}",,,,"12345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",808,,,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],870:[,[,,"7\\d{11}|[235-7]\\d{8}",,,,,,,[9,12]],[,,,,,,,,,[-1]],[,,"(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}",,,,"301234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"2\\d{8}",,,,"201234567",,,[9]],"001",870,,,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-7]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],878:[,[,,"10\\d{10}",,,,,,,[12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"10\\d{10}",,,,"101234567890"],"001",878,,,,,,,,1,[[,"(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],881:[,[,,"6\\d{9}|[0-36-9]\\d{8}",,,,,,,[9,10]],[,,,,,,,,,[-1]],[,,"6\\d{9}|[0-36-9]\\d{8}",,,,"612345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",881,,,,,,,,,[[,"(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[0-37-9]"]],[,"(\\d)(\\d{3})(\\d{5,6})","$1 $2 $3",["6"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],882:[,[,,"[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?",,,,,,,[7,8,9,10,11,12]],[,,,,,,,,,[-1]],[,,"342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}",,,,"3421234",,,[7,8,9,10,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}",,,,"390123456789"],"001",882,,,,,,,,,[[,"(\\d{2})(\\d{5})","$1 $2",["16|342"]],[,"(\\d{2})(\\d{6})","$1 $2",["49"]],[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["1[36]|9"]],[,"(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["16"]],[,"(\\d{2})(\\d{4})(\\d{4}
15672)","$1 $2 $3",["10|23|3(?:[15]|4[57])|4|51"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["34"]],[,"(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["[1-35]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"348[57]\\d{7}",,,,"34851234567",,,[11]]],883:[,[,,"(?:[1-4]\\d|51)\\d{6,10}",,,,,,,[8,9,10,11,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}",,,,"510012345"],"001",883,,,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{2,8})","$1 $2 $3",["[14]|2[24-689]|3[02-689]|51[24-9]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["21"]],[,"(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["51[13]"]],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[235]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],888:[,[,,"\\d{11}",,,,,,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",888,,,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"\\d{11}",,,,"12345678901"],,,[,,,,,,,,,[-1]]],979:[,[,,"[1359]\\d{8}",,,,,,,[9],[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"[1359]\\d{8}",,,,"123456789",,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",979,,,,,,,,1,[[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[1359]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]]},i18n.phonenumbers.PhoneNumberUtil=function(){this.regionToMetadataMap={}},goog.addSingletonGetter(i18n.phonenumbers.PhoneNumberUtil),i18n.phonenumbers.Error={INVALID_COUNTRY_CODE:"Invalid country calling code",NOT_A_NUMBER:"The string supplied did not seem to be a phone number",TOO_SHORT_AFTER_IDD:"Phone number too short after IDD",TOO_SHORT_NSN:"The string supplied is too short to be a phone number",TOO_LONG:"The string supplied is too long to be a phone number"},i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_=1,i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_=2,i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_FOR_NSN_=17,i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_COUNTRY_CODE_=3,i18n.phonenumbers.PhoneNumberUtil.MAX_INPUT_STRING_LENGTH_=250,i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_="ZZ",i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_={54:"9"},i18n.phonenumbers.PhoneNumberUtil.GEO_MOBILE_COUNTRIES_=[52,54,55],i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN="+",i18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_="*",i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_=";ext=",i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_="tel:",i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_=";phone-context=",i18n.phonenumbers.PhoneNumberUtil.RFC3966_ISDN_SUBADDRESS_=";isub=",i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9"},i18n.phonenumbers.PhoneNumberUtil.DIALLABLE_CHAR_MAPPINGS_={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","+":i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN,"*":"*","#":"#"},i18n.phonenumbers.PhoneNumberUtil.ALPHA_MAPPINGS_={A:"2",B:"2",C:"2",D:"3",E:"3",F:"3",G:"4",H:"4",I:"4",J:"5",K:"5",L:"5",M:"6",N:"6",O:"6",P:"7",Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},i18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9",A:"2",B:"2",C:"2",D:"3",E:"3",F:"3",G:"4",H:"4",I:"4",J:"5",K:"5",L:"5",M:"6",N:"6",O:"
156726",P:"7",Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},i18n.phonenumbers.PhoneNumberUtil.ALL_PLUS_NUMBER_GROUPING_SYMBOLS_={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",A:"A",B:"B",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"J",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"X",Y:"Y",Z:"Z",a:"A",b:"B",c:"C",d:"D",e:"E",f:"F",g:"G",h:"H",i:"I",j:"J",k:"K",l:"L",m:"M",n:"N",o:"O",p:"P",q:"Q",r:"R",s:"S",t:"T",u:"U",v:"V",w:"W",x:"X",y:"Y",z:"Z","-":"-","-":"-","‐":"-","‑":"-","‒":"-","–":"-","—":"-","―":"-","−":"-","/":"/","/":"/"," ":" "," ":" ","⁠":" ",".":".",".":"."},i18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_=/[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?/,i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION="-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~",i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_="0-90-9٠-٩۰-۹",i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_="A-Za-z",i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_="++",i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN=new RegExp("["+i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_+"]+"),i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN=new RegExp("^["+i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_+"]+"),i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_="["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+"]+",i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN=new RegExp("(["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"])"),i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN_=new RegExp("["+i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]"),i18n.phonenumbers.PhoneNumberUtil.SECOND_NUMBER_START_PATTERN_=/[\\\/] *x/,i18n.phonenumbers.PhoneNumberUtil.UNWANTED_END_CHAR_PATTERN_=new RegExp("[^"+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_+"#]+$"),i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_=/(?:.*?[A-Za-z]){3}.*/,i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_PHONE_NUMBER_PATTERN_="["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]{"+i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_+"}",i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_="["+i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_+"]*(?:["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+i18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_+"]*["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]){3,}["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+i18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_+i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]*",i18n.phonenumbers.PhoneNumberUtil.DEFAULT_EXTN_PREFIX_=" ext. ",i18n.phonenumbers.PhoneNumberUtil.RFC3966_VISUAL_SEPARATOR_="[\\-\\.\\(\\)]?",i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_DIGIT_="(["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]|"+i18n.phonenumbers.PhoneNumberUtil.RFC3966_VISUAL_SEPARATOR_+")",i18n.phonenumbers.PhoneNumberUtil.RFC3966_GLOBAL_NUMBER_DIGITS_="^\\"+i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_DIGIT_+"*["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]"+i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_DIGIT_+"*$",i18n.phonenumbers.PhoneNumberUtil.RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_=new RegExp(i18n.phonenumbers.PhoneNumberUtil.RFC3966_GLOBAL_NUMBER_DIGITS_),i18n.phonenumbers.PhoneNumberUtil.ALPHANUM_=i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_,i18n.phonenumbers.PhoneNumberUtil.RFC3966_DOMAINLABEL_="["+i18n.phonenumbers.PhoneNumberUtil.ALPHANUM_+"]+((\\-)*["+i18n.phonenumbers.PhoneNumberUtil.ALPHANUM_+"])*",
15672i18n.phonenumbers.PhoneNumberUtil.RFC3966_TOPLABEL_="["+i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_+"]+((\\-)*["+i18n.phonenumbers.PhoneNumberUtil.ALPHANUM_+"])*",i18n.phonenumbers.PhoneNumberUtil.RFC3966_DOMAINNAME_="^("+i18n.phonenumbers.PhoneNumberUtil.RFC3966_DOMAINLABEL_+"\\.)*"+i18n.phonenumbers.PhoneNumberUtil.RFC3966_TOPLABEL_+"\\.?$",i18n.phonenumbers.PhoneNumberUtil.RFC3966_DOMAINNAME_PATTERN_=new RegExp(i18n.phonenumbers.PhoneNumberUtil.RFC3966_DOMAINNAME_),i18n.phonenumbers.PhoneNumberUtil.extnDigits_=function(t){return"(["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]{1,"+t+"})"},i18n.phonenumbers.PhoneNumberUtil.createExtnPattern_=function(){return i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_+i18n.phonenumbers.PhoneNumberUtil.extnDigits_("20")+"|[  \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|доб|anexo)[:\\..]?[  \\t,-]*"+i18n.phonenumbers.PhoneNumberUtil.extnDigits_("20")+"#?|[  \\t,]*(?:[xx##~~]|int|int)[:\\..]?[  \\t,-]*"+i18n.phonenumbers.PhoneNumberUtil.extnDigits_("9")+"#?|[- ]+"+i18n.phonenumbers.PhoneNumberUtil.extnDigits_("6")+"#|[  \\t]*(?:,{2}|;)[:\\..]?[  \\t,-]*"+i18n.phonenumbers.PhoneNumberUtil.extnDigits_("15")+"#?|[  \\t]*(?:,)+[:\\..]?[  \\t,-]*"+i18n.phonenumbers.PhoneNumberUtil.extnDigits_("9")+"#?"},i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_=new RegExp("(?:"+i18n.phonenumbers.PhoneNumberUtil.createExtnPattern_()+")$","i"),i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_PATTERN_=new RegExp("^"+i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_PHONE_NUMBER_PATTERN_+"$|^"+i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_+"(?:"+i18n.phonenumbers.PhoneNumberUtil.createExtnPattern_()+")?$","i"),i18n.phonenumbers.PhoneNumberUtil.NON_DIGITS_PATTERN_=/\D+/,i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_=/(\$\d)/,i18n.phonenumbers.PhoneNumberUtil.NP_PATTERN_=/\$NP/,i18n.phonenumbers.PhoneNumberUtil.FG_PATTERN_=/\$FG/,i18n.phonenumbers.PhoneNumberUtil.CC_PATTERN_=/\$CC/,i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_ONLY_PREFIX_PATTERN_=/^\(?\$1\)?$/,i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY="001",i18n.phonenumbers.PhoneNumberFormat={E164:0,INTERNATIONAL:1,NATIONAL:2,RFC3966:3},i18n.phonenumbers.PhoneNumberType={FIXED_LINE:0,MOBILE:1,FIXED_LINE_OR_MOBILE:2,TOLL_FREE:3,PREMIUM_RATE:4,SHARED_COST:5,VOIP:6,PERSONAL_NUMBER:7,PAGER:8,UAN:9,VOICEMAIL:10,UNKNOWN:-1},i18n.phonenumbers.PhoneNumberUtil.MatchType={NOT_A_NUMBER:0,NO_MATCH:1,SHORT_NSN_MATCH:2,NSN_MATCH:3,EXACT_MATCH:4},i18n.phonenumbers.PhoneNumberUtil.ValidationResult={IS_POSSIBLE:0,IS_POSSIBLE_LOCAL_ONLY:4,INVALID_COUNTRY_CODE:1,TOO_SHORT:2,INVALID_LENGTH:5,TOO_LONG:3},i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber=function(t){var e=t.search(i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN_);return 0<=e?0<=(e=(t=(t=t.substring(e)).replace(i18n.phonenumbers.PhoneNumberUtil.UNWANTED_END_CHAR_PATTERN_,"")).search(i18n.phonenumbers.PhoneNumberUtil.SECOND_NUMBER_START_PATTERN_))&&(t=t.substring(0,e)):t="",t},i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber=function(t){return!(t.length<i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_)&&i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_PATTERN_,t)},i18n.phonenumbers.PhoneNumberUtil.normalize=function(t){return i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_,t)?i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(t,i18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_,!0):i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(t)},i18n.phonenumbers.PhoneNumberUtil.normalizeSB_=function(t){var e=i18n.phonenumbers.PhoneNumberUtil.normalize(t.toString());t.clear(),t.append(e)},i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly=function(t){return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(t,i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS,!0)},i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly=function(t){return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(t,i18n.phonenumbers.PhoneNumberUtil.DIALLABLE_CHAR_MAPPINGS_,!0)},i18n.phonenumbers.PhoneNumberUtil.convertAlphaCharactersInNumber=function(t){return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(t,i18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_,!1)},i18n.phonenumbers.PhoneNumberUtil.prototype.getLengthOfGeographicalAreaCode=function(t){var e=this.getMetadataForRegion(this.getRegionCodeForNumber(t));return null!=e&&(e.hasNationalPrefix()||t.hasItalianLeadingZero())&&this.isNumberGeographical(t)?this.getLengthOfNationalDestinationCode(t):0},i18n.phonenumbers.PhoneNumberUtil.prototype.getLengthOfNationalDestinationCode=function(t){if(t.hasExtension()){var e=t.clone();e.clearExtension()}else e=t;return 0==(e=this.format(e,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL).split(i18n.phonenumbers.PhoneNumberUtil.NON_DIGITS_PATTERN_))[0].length&&e.shift(),2>=e.length?0:this.getNumberType(t)==i18n.phonenumbers.PhoneNumberType.MOBILE&&""!=(t=i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken(t.getCountryCodeOrDefault()))?e[2].length+t.length:e[1].length},i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken=function(t){return i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_[t]||""}
15672,i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedRegions=function(){return Object.keys(i18n.phonenumbers.metadata.countryToMetadata).filter((function(t){return isNaN(t)}))},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedGlobalNetworkCallingCodes=function(){return Object.keys(i18n.phonenumbers.metadata.countryToMetadata).filter((function(t){return!isNaN(t)})).map((function(t){return parseInt(t,10)}))},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedCallingCodes=function(){var t=Object.keys(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap);return[].concat($jscomp.arrayFromIterable(this.getSupportedGlobalNetworkCallingCodes()),$jscomp.arrayFromIterable(t.map((function(t){return parseInt(t,10)}))))},i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_=function(t){return null!=t&&(1!=t.possibleLengthCount()||-1!=t.possibleLengthArray()[0])},i18n.phonenumbers.PhoneNumberUtil.descHasData_=function(t){return null!=t&&(t.hasExampleNumber()||i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(t)||t.hasNationalNumberPattern())},i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_=function(t){var e=[];return goog.object.forEach(i18n.phonenumbers.PhoneNumberType,(function(r){if(r!=i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE&&r!=i18n.phonenumbers.PhoneNumberType.UNKNOWN){var n=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(t,r);i18n.phonenumbers.PhoneNumberUtil.descHasData_(n)&&e.push(r)}})),e},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForRegion=function(t){return this.isValidRegionCode_(t)?i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(this.getMetadataForRegion(t)):[]},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForNonGeoEntity=function(t){return null==(t=this.getMetadataForNonGeographicalRegion(t))?[]:i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(t)},i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_=function(t,e,r){for(var n,i,o=new goog.string.StringBuffer,s=t.length,a=0;a<s;++a)null!=(i=e[(n=t.charAt(a)).toUpperCase()])?o.append(i):r||o.append(n);return o.toString()},i18n.phonenumbers.PhoneNumberUtil.prototype.formattingRuleHasFirstGroupOnly=function(t){return 0==t.length||i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_ONLY_PREFIX_PATTERN_.test(t)},i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberGeographical=function(t){var e=this.getNumberType(t);return e==i18n.phonenumbers.PhoneNumberType.FIXED_LINE||e==i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE||i18n.phonenumbers.PhoneNumberUtil.GEO_MOBILE_COUNTRIES_.includes(t.getCountryCodeOrDefault())&&e==i18n.phonenumbers.PhoneNumberType.MOBILE},i18n.phonenumbers.PhoneNumberUtil.prototype.isValidRegionCode_=function(t){return null!=t&&isNaN(t)&&t.toUpperCase()in i18n.phonenumbers.metadata.countryToMetadata},i18n.phonenumbers.PhoneNumberUtil.prototype.hasValidCountryCallingCode_=function(t){return t in i18n.phonenumbers.metadata.countryCodeToRegionCodeMap},i18n.phonenumbers.PhoneNumberUtil.prototype.format=function(t,e){if(0==t.getNationalNumber()&&t.hasRawInput()){var r=t.getRawInputOrDefault();if(0<r.length)return r}r=t.getCountryCodeOrDefault();var n=this.getNationalSignificantNumber(t);if(e==i18n.phonenumbers.PhoneNumberFormat.E164)return this.prefixNumberWithCountryCallingCode_(r,i18n.phonenumbers.PhoneNumberFormat.E164,n,"");if(!this.hasValidCountryCallingCode_(r))return n;var i=this.getRegionCodeForCountryCode(r);return i=this.getMetadataForRegionOrCallingCode_(r,i),t=this.maybeGetFormattedExtension_(t,i,e),n=this.formatNsn_(n,i,e),this.prefixNumberWithCountryCallingCode_(r,e,n,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatByPattern=function(t,e,r){var n=t.getCountryCodeOrDefault(),i=this.getNationalSignificantNumber(t);if(!this.hasValidCountryCallingCode_(n))return i;var o=this.getRegionCodeForCountryCode(n);o=this.getMetadataForRegionOrCallingCode_(n,o);var s=this.chooseFormattingPatternForNumber_(r,i);if(null!=s){if(r=s.clone(),0<(s=s.getNationalPrefixFormattingRuleOrDefault()).length){var a=o.getNationalPrefixOrDefault();0<a.length?(s=s.replace(i18n.phonenumbers.PhoneNumberUtil.NP_PATTERN_,a).replace(i18n.phonenumbers.PhoneNumberUtil.FG_PATTERN_,"$1"),r.setNationalPrefixFormattingRule(s)):r.clearNationalPrefixFormattingRule()}i=this.formatNsnUsingPattern_(i,r,e)}return t=this.maybeGetFormattedExtension_(t,o,e),this.prefixNumberWithCountryCallingCode_(n,e,i,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNationalNumberWithCarrierCode=function(t,e){var r=t.getCountryCodeOrDefault(),n=this.getNationalSignificantNumber(t);if(!this.hasValidCountryCallingCode_(r))return n;var i=this.getRegionCodeForCountryCode(r);return i=this.getMetadataForRegionOrCallingCode_(r,i),t=this.maybeGetFormattedExtension_(t,i,i18n.phonenumbers.PhoneNumberFormat.NATIONAL),e=this.formatNsn_(n,i,i18n.phonenumbers.PhoneNumberFormat.NATIONAL,e),this.prefixNumberWithCountryCallingCode_(r,i18n.phonenumbers.PhoneNumberFormat.NATIONAL,e,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegionOrCallingCode_=function(t,e){return i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY==e?this.getMetadataForNonGeographicalRegion(t):this.getMetadataForRegion(e)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNationalNumberWithPreferredCarrierCode=function(t,e){return this.formatNationalNumberWithCarrierCode(t,0<t.getPreferredDomesticCarrierCodeOrDefault().length?t.getPreferredDomesticCarrierCodeOrDefault():e)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberForMobileDialing=function(t,e,r){var n=t.getCountryCodeOrDefault();if(!this.hasValidCountryCallingCode_(n))return t.hasRawInput()?t.getRawInputOrDefault():"";var i="";(t=t.clone()).clearExtension();var o=this.getRegionCodeForCountryCode(n),s=this.getNumberType(t),a=s!=i18n.phonenumbers.PhoneNumberType.UNKNOWN;if(e==o)i=s==i18n.phonenumbers.PhoneNumberType.FIXED_LINE||s==i18n.phonenumbers.PhoneNumberType.MOBILE||s==i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE,"BR"==o&&i?i=0<t.getPreferredDomesticCarrierCodeOrDefault().length?this.formatNationalNumberWithPreferredCarrierCode(t,""):"":n==i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_?(e=this.getMetadataForRegion(e),i=this.canBeInternationallyDialled(t)&&this.testNumberLength_(this.getNationalSignificantNumber(t),e)!=i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT?this.format(t,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL):this.format(t,i18n.phonenumbers.PhoneNumberFormat.NATIONAL)):i=(o==i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY||("MX"==o||"CL"==o||"UZ"==o)&&i)&&this.canBeInternationallyDialled(t)?this.format(t,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL):this.format(t,i18n.phonenumbers.PhoneNumberFormat.NATIONAL);else if(a&&this.canBeInternationallyDialled(t))return r?this.format(t,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL):this.format(t,i18n.phonenumbers.PhoneNumberFormat.E164);return r?i:i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(i)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryCallingNumber=function(t,e){if(!this.isValidRegionCode_(e))return this.format(t,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);var r=t.getCountryCodeOrDefault(),n=this.getNationalSignificantNumber(t);if(!this.hasValidCountryCallingCode_(r))return n;if(r==i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_){if(this.isNANPACountry(e))return r+" "+this.format(t,i18n.phonenumbers.PhoneNumberFormat.NATIONAL)}
15672else if(r==this.getCountryCodeForValidRegion_(e))return this.format(t,i18n.phonenumbers.PhoneNumberFormat.NATIONAL);var i=this.getMetadataForRegion(e),o=i.getInternationalPrefixOrDefault();return e="",i.hasPreferredInternationalPrefix()?e=i.getPreferredInternationalPrefixOrDefault():i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_,o)&&(e=o),i=this.getRegionCodeForCountryCode(r),i=this.getMetadataForRegionOrCallingCode_(r,i),n=this.formatNsn_(n,i,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL),t=this.maybeGetFormattedExtension_(t,i,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL),0<e.length?e+" "+r+" "+n+t:this.prefixNumberWithCountryCallingCode_(r,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL,n,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatInOriginalFormat=function(t,e){if(t.hasRawInput()&&!this.hasFormattingPatternForNumber_(t))return t.getRawInputOrDefault();if(!t.hasCountryCodeSource())return this.format(t,i18n.phonenumbers.PhoneNumberFormat.NATIONAL);switch(t.getCountryCodeSource()){case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN:e=this.format(t,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);break;case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_IDD:e=this.formatOutOfCountryCallingNumber(t,e);break;case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN:e=this.format(t,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL).substring(1);break;default:var r=this.getRegionCodeForCountryCode(t.getCountryCodeOrDefault()),n=this.getNddPrefixForRegion(r,!0);if(e=this.format(t,i18n.phonenumbers.PhoneNumberFormat.NATIONAL),null!=n&&0!=n.length&&!this.rawInputContainsNationalPrefix_(t.getRawInputOrDefault(),n,r)&&(r=this.getMetadataForRegion(r),n=this.getNationalSignificantNumber(t),null!=(r=this.chooseFormattingPatternForNumber_(r.numberFormatArray(),n)))){var i=(n=r.getNationalPrefixFormattingRuleOrDefault()).indexOf("$1");0>=i||(n=n.substring(0,i),0!=(n=i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(n)).length&&((e=r.clone()).clearNationalPrefixFormattingRule(),e=this.formatByPattern(t,i18n.phonenumbers.PhoneNumberFormat.NATIONAL,[e])))}}return t=t.getRawInputOrDefault(),null!=e&&0<t.length&&(r=i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(e))!=(n=i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(t))&&(e=t),e},i18n.phonenumbers.PhoneNumberUtil.prototype.rawInputContainsNationalPrefix_=function(t,e,r){if(t=i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(t),goog.string.startsWith(t,e))try{return this.isValidNumber(this.parse(t.substring(e.length),r))}catch(t){}return!1},i18n.phonenumbers.PhoneNumberUtil.prototype.hasFormattingPatternForNumber_=function(t){var e=t.getCountryCodeOrDefault(),r=this.getRegionCodeForCountryCode(e);return null!=(e=this.getMetadataForRegionOrCallingCode_(e,r))&&(t=this.getNationalSignificantNumber(t),null!=this.chooseFormattingPatternForNumber_(e.numberFormatArray(),t))},i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryKeepingAlphaChars=function(t,e){var r=t.getRawInputOrDefault();if(0==r.length)return this.formatOutOfCountryCallingNumber(t,e);var n=t.getCountryCodeOrDefault();if(!this.hasValidCountryCallingCode_(n))return r;r=i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(r,i18n.phonenumbers.PhoneNumberUtil.ALL_PLUS_NUMBER_GROUPING_SYMBOLS_,!0);var i=this.getNationalSignificantNumber(t);if(3<i.length){var o=r.indexOf(i.substring(0,3));-1!=o&&(r=r.substring(o))}if(o=this.getMetadataForRegion(e),n==i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_){if(this.isNANPACountry(e))return n+" "+r}else if(null!=o&&n==this.getCountryCodeForValidRegion_(e))return null==(n=this.chooseFormattingPatternForNumber_(o.numberFormatArray(),i))?r:((n=n.clone()).setPattern("(\\d+)(.*)"),n.setFormat("$1$2"),this.formatNsnUsingPattern_(r,n,i18n.phonenumbers.PhoneNumberFormat.NATIONAL));return e="",null!=o&&(e=o.getInternationalPrefixOrDefault(),e=i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_,e)?e:o.getPreferredInternationalPrefixOrDefault()),o=this.getRegionCodeForCountryCode(n),o=this.getMetadataForRegionOrCallingCode_(n,o),t=this.maybeGetFormattedExtension_(t,o,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL),0<e.length?e+" "+n+" "+r+t:this.prefixNumberWithCountryCallingCode_(n,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL,r,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.getNationalSignificantNumber=function(t){if(!t.hasNationalNumber())return"";var e=""+t.getNationalNumber();return t.hasItalianLeadingZero()&&t.getItalianLeadingZero()&&0<t.getNumberOfLeadingZerosOrDefault()?Array(t.getNumberOfLeadingZerosOrDefault()+1).join("0")+e:e},i18n.phonenumbers.PhoneNumberUtil.prototype.prefixNumberWithCountryCallingCode_=function(t,e,r,n){switch(e){case i18n.phonenumbers.PhoneNumberFormat.E164:return i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+t+r+n;case i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL:return i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+t+" "+r+n;case i18n.phonenumbers.PhoneNumberFormat.RFC3966:return i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_+i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+t+"-"+r+n;default:return r+n}},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNsn_=function(t,e,r,n){return e=0==e.intlNumberFormatArray().length||r==i18n.phonenumbers.PhoneNumberFormat.NATIONAL?e.numberFormatArray():e.intlNumberFormatArray(),null==(e=this.chooseFormattingPatternForNumber_(e,t))?t:this.formatNsnUsingPattern_(t,e,r,n)},i18n.phonenumbers.PhoneNumberUtil.prototype.chooseFormattingPatternForNumber_=function(t,e){for(var r,n=t.length,i=0;i<n;++i){var o=(r=t[i]).leadingDigitsPatternCount();if((0==o||0==e.search(r.getLeadingDigitsPattern(o-1)))&&(o=new RegExp(r.getPattern()),i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(o,e)))return r}return null},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNsnUsingPattern_=function(t,e,r,n){var i=e.getFormatOrDefault(),o=new RegExp(e.getPattern()),s=e.getDomesticCarrierCodeFormattingRuleOrDefault();return r==i18n.phonenumbers.PhoneNumberFormat.NATIONAL&&null!=n&&0<n.length&&0<s.length?(e=s.replace(i18n.phonenumbers.PhoneNumberUtil.CC_PATTERN_,n),i=i.replace(i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_,e),t=t.replace(o,i)):(e=e.getNationalPrefixFormattingRuleOrDefault(),t=r==i18n.phonenumbers.PhoneNumberFormat.NATIONAL&&null!=e&&0<e.length?t.replace(o,i.replace(i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_,e)):t.replace(o,i)),r==i18n.phonenumbers.PhoneNumberFormat.RFC3966&&(t=(t=t.replace(new RegExp("^"+i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_),"")).replace(new RegExp(i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_,"g"),"-")),t},i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumber=function(t){return this.getExampleNumberForType(t,i18n.phonenumbers.PhoneNumberType.FIXED_LINE)},i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForType=function(t,e){if(!this.isValidRegionCode_(t))return null;e=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(this.getMetadataForRegion(t),e);try{if(e.hasExampleNumber())return this.parse(e.getExampleNumber(),t)}catch(t){}return null},i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForNonGeoEntity=function(t){var e=this.getMetadataForNonGeographicalRegion(t);if(null!=e&&void 0!==(e=[e.getMobile(),e.getTollFree(),e.getSharedCost(),e.getVoip(),e.getVoicemail(),e.getUan(),e.getPremiumRate()].find((function(t,e){return t.hasExampleNumber()}))))try{return this.parse("+"+t+e.getExampleNumber(),"ZZ")}catch(t){}return null},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeGetFormattedExtension_=function(t,e,r){return t.hasExtension()&&0!=t.getExtension().length?r==i18n.phonenumbers.PhoneNumberFormat.RFC3966?i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_+t.getExtension():e.hasPreferredExtnPrefix()?e.getPreferredExtnPrefix()+t.getExtensionOrDefault():i18n.phonenumbers.PhoneNumberUtil.DEFAULT_EXTN_PREFIX_+t.getExtensionOrDefault():""},i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_=function(t,e){switch(e){case i18n.phonenumbers.PhoneNumberType.PREMIUM_RATE:return t.getPremiumRate();case i18n.phonenumbers.PhoneNumberType.TOLL_FREE:return t.getTollFree();case i18n.phonenumbers.PhoneNumberType.MOBILE:return t.getMobile();case i18n.phonenumbers.PhoneNumberType.FIXED_LINE:case i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE:return t.getFixedLine();case i18n.phonenumbers.PhoneNumberType.SHARED_COST:return t.getSharedCost();case i18n.phonenumbers.PhoneNumberType.VOIP:return t.getVoip();case i18n.phonenumbers.PhoneNumberType.PERSONAL_NUMBER:return t.getPersonalNumber();case i18n.phonenumbers.PhoneNumberType.PAGER:return t.getPager();case i18n.phonenumbers.PhoneNumberType.UAN:return t.getUan();case i18n.phonenumbers.PhoneNumberType.VOICEMAIL:return t.getVoicemail();default:return t.getGeneralDesc()}},i18n.phonenumbers.PhoneNumberUtil.prototype.getNumberType=function(t){var e=this.getRegionCodeForNumber(t);return null==(e=this.getMetadataForRegionOrCallingCode_(t.getCountryCodeOrDefault(),e))?i18n.phonenumbers.PhoneNumberType.UNKNOWN:(t=this.getNationalSignificantNumber(t),this.getNumberTypeHelper_(t,e))},i18n.phonenumbers.PhoneNumberUtil.prototype.getNumberTypeHelper_=function(t,e){return this.isNumberMatchingDesc_(t,e.getGeneralDesc())?this.isNumberMatchingDesc_(t,e.getPremiumRate())?i18n.phonenumbers.PhoneNumberType.PREMIUM_RATE:this.isNumberMatchingDesc_(t,e.getTollFree())?i18n.phonenumbers.PhoneNumberType.TOLL_FREE:this.isNumberMatchingDesc_(t,e.getSharedCost())?i18n.phonenumbers.PhoneNumberType.SHARED_COST:this.isNumberMatchingDesc_(t,e.getVoip())?i18n.phonenumbers.PhoneNumberType.VOIP:this.isNumberMatchingDesc_(t,e.getPersonalNumber())?i18n.phonenumbers.PhoneNumberType.PERSONAL_NUMBER:this.isNumberMatchingDesc_(t,e.getPager()
15672)?i18n.phonenumbers.PhoneNumberType.PAGER:this.isNumberMatchingDesc_(t,e.getUan())?i18n.phonenumbers.PhoneNumberType.UAN:this.isNumberMatchingDesc_(t,e.getVoicemail())?i18n.phonenumbers.PhoneNumberType.VOICEMAIL:this.isNumberMatchingDesc_(t,e.getFixedLine())?e.getSameMobileAndFixedLinePattern()||this.isNumberMatchingDesc_(t,e.getMobile())?i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE:i18n.phonenumbers.PhoneNumberType.FIXED_LINE:!e.getSameMobileAndFixedLinePattern()&&this.isNumberMatchingDesc_(t,e.getMobile())?i18n.phonenumbers.PhoneNumberType.MOBILE:i18n.phonenumbers.PhoneNumberType.UNKNOWN:i18n.phonenumbers.PhoneNumberType.UNKNOWN},i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegion=function(t){if(null==t)return null;t=t.toUpperCase();var e=this.regionToMetadataMap[t];if(null==e){e=new goog.proto2.PbLiteSerializer;var r=i18n.phonenumbers.metadata.countryToMetadata[t];if(null==r)return null;e=e.deserialize(i18n.phonenumbers.PhoneMetadata.getDescriptor(),r),this.regionToMetadataMap[t]=e}return e},i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForNonGeographicalRegion=function(t){return this.getMetadataForRegion(""+t)},i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatchingDesc_=function(t,e){var r=t.length;return!(0<e.possibleLengthCount()&&-1==e.possibleLengthArray().indexOf(r))&&i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(e.getNationalNumberPatternOrDefault(),t)},i18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumber=function(t){var e=this.getRegionCodeForNumber(t);return this.isValidNumberForRegion(t,e)},i18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumberForRegion=function(t,e){var r=t.getCountryCodeOrDefault(),n=this.getMetadataForRegionOrCallingCode_(r,e);return null!=n&&(i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY==e||r==this.getCountryCodeForValidRegion_(e))&&(t=this.getNationalSignificantNumber(t),this.getNumberTypeHelper_(t,n)!=i18n.phonenumbers.PhoneNumberType.UNKNOWN)},i18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForNumber=function(t){if(null==t)return null;var e=t.getCountryCodeOrDefault();return null==(e=i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[e])?null:1==e.length?e[0]:this.getRegionCodeForNumberFromRegionList_(t,e)},i18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForNumberFromRegionList_=function(t,e){t=this.getNationalSignificantNumber(t);for(var r,n=e.length,i=0;i<n;i++){r=e[i];var o=this.getMetadataForRegion(r);if(o.hasLeadingDigits()){if(0==t.search(o.getLeadingDigits()))return r}else if(this.getNumberTypeHelper_(t,o)!=i18n.phonenumbers.PhoneNumberType.UNKNOWN)return r}return null},i18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForCountryCode=function(t){return null==(t=i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[t])?i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_:t[0]},i18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodesForCountryCode=function(t){return null==(t=i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[t])?[]:t},i18n.phonenumbers.PhoneNumberUtil.prototype.getCountryCodeForRegion=function(t){return this.isValidRegionCode_(t)?this.getCountryCodeForValidRegion_(t):0},i18n.phonenumbers.PhoneNumberUtil.prototype.getCountryCodeForValidRegion_=function(t){var e=this.getMetadataForRegion(t);if(null==e)throw Error("Invalid region code: "+t);return e.getCountryCodeOrDefault()},i18n.phonenumbers.PhoneNumberUtil.prototype.getNddPrefixForRegion=function(t,e){return null==(t=this.getMetadataForRegion(t))||0==(t=t.getNationalPrefixOrDefault()).length?null:(e&&(t=t.replace("~","")),t)},i18n.phonenumbers.PhoneNumberUtil.prototype.isNANPACountry=function(t){return null!=t&&i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_].includes(t.toUpperCase())},i18n.phonenumbers.PhoneNumberUtil.prototype.isAlphaNumber=function(t){return!!i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(t)&&(t=new goog.string.StringBuffer(t),this.maybeStripExtension(t),i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_,t.toString()))},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumber=function(t){return(t=this.isPossibleNumberWithReason(t))==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE||t==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberForType=function(t,e){return(t=this.isPossibleNumberForTypeWithReason(t,e))==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE||t==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY},i18n.phonenumbers.PhoneNumberUtil.prototype.testNumberLength_=function(t,e){return this.testNumberLengthForType_(t,e,i18n.phonenumbers.PhoneNumberType.UNKNOWN)},i18n.phonenumbers.PhoneNumberUtil.prototype.testNumberLengthForType_=function(t,e,r){var n=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(e,r),i=0==n.possibleLengthCount()?e.getGeneralDesc().possibleLengthArray():n.possibleLengthArray();if(n=n.possibleLengthLocalOnlyArray(),r==i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE){if(!i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(e,i18n.phonenumbers.PhoneNumberType.FIXED_LINE)))return this.testNumberLengthForType_(t,e,i18n.phonenumbers.PhoneNumberType.MOBILE);r=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(e,i18n.phonenumbers.PhoneNumberType.MOBILE),i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(r)&&((i=i.concat(0==r.possibleLengthCount()?e.getGeneralDesc().possibleLengthArray():r.possibleLengthArray())).sort(),0==n.length?n=r.possibleLengthLocalOnlyArray():(n=n.concat(r.possibleLengthLocalOnlyArray())).sort())}return-1==i[0]?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_LENGTH:(t=t.length,-1<n.indexOf(t)?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY:(e=i[0])==t?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE:e>t?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT:i[i.length-1]<t?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG:-1<i.indexOf(t,1)?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE:i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_LENGTH)},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberWithReason=function(t){return this.isPossibleNumberForTypeWithReason(t,i18n.phonenumbers.PhoneNumberType.UNKNOWN)},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberForTypeWithReason=function(t,e){var r=this.getNationalSignificantNumber(t);if(t=t.getCountryCodeOrDefault(),!this.hasValidCountryCallingCode_(t))return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_COUNTRY_CODE;var n=this.getRegionCodeForCountryCode(t);return t=this.getMetadataForRegionOrCallingCode_(t,n),this.testNumberLengthForType_(r,t,e)},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberString=function(t,e){try{return this.isPossibleNumber(this.parse(t,e))}catch(t){return!1}},i18n.phonenumbers.PhoneNumberUtil.prototype.truncateTooLongNumber=function(t){if(this.isValidNumber(t))return!0;var e=t.clone(),r=t.getNationalNumberOrDefault();do{if(r=Math.floor(r/10),e.setNationalNumber(r),0==r||this.isPossibleNumberWithReason(e)==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT)return!1}while(!this.isValidNumber(e));return t.setNationalNumber(r),!0},i18n.phonenumbers.PhoneNumberUtil.prototype.extractCountryCode=function(t,e){if(0==(t=t.toString()).length||"0"==t.charAt(0))return 0;for(var r,n=t.length,i=1;i<=i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_COUNTRY_CODE_&&i<=n;++i)if((r=parseInt(t.substring(0,i),10))in i18n.phonenumbers.metadata.countryCodeToRegionCodeMap)return e.append(t.substring(i)),r;return 0},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeExtractCountryCode=function(t,e,r,n,i){if(0==t.length)return 0;var o;if(t=new goog.string.StringBuffer(t),null!=e&&(o=e.getInternationalPrefix()),null==o&&(o="NonMatch"),o=this.maybeStripInternationalPrefixAndNormalize(t,o),n&&i.setCountryCodeSource(o),o!=i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY){if(t.getLength()<=i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_)throw Error(i18n.phonenumbers.Error.TOO_SHORT_AFTER_IDD);if(0!=(e=this.extractCountryCode(t,r)))return i.setCountryCode(e),e;throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE)}if(null!=e){var s=""+(o=e.getCountryCodeOrDefault()),a=t.toString();if(goog.string.startsWith(a,s)&&(s=new goog.string.StringBuffer(a.substring(s.length)),a=e.getGeneralDesc(),a=new RegExp(a.getNationalNumberPatternOrDefault()),this.maybeStripNationalPrefixAndCarrierCode(s,e,null),s=s.toString(),!i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(a,t.toString())&&i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(a,s)||this.testNumberLength_(t.toString(),e)==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG))return r.append(s),n&&i.setCountryCodeSource(i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN),i.setCountryCode(o),o}return i.setCountryCode(0),0},i18n.phonenumbers.PhoneNumberUtil.prototype.parsePrefixAsIdd_=function(t,e){var r=e.toString();if(0==r.search(t)){t=r.match(t)[0].length;var n=r.substring(t).match(i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN);return!(n&&null!=n[1]&&0<n[1].length&&"0"==i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(n[1])||(e.clear(),e.append(r.substring(t)),0))}return!1},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripInternationalPrefixAndNormalize=function(t,e){var r=t.toString();
15672return 0==r.length?i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY:i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(r)?(r=r.replace(i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN,""),t.clear(),t.append(i18n.phonenumbers.PhoneNumberUtil.normalize(r)),i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN):(e=new RegExp(e),i18n.phonenumbers.PhoneNumberUtil.normalizeSB_(t),this.parsePrefixAsIdd_(e,t)?i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_IDD:i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY)},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripNationalPrefixAndCarrierCode=function(t,e,r){var n=t.toString(),i=n.length,o=e.getNationalPrefixForParsing();if(0==i||null==o||0==o.length)return!1;var s=new RegExp("^(?:"+o+")");if(i=s.exec(n)){o=new RegExp(e.getGeneralDesc().getNationalNumberPatternOrDefault());var a=i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(o,n),d=i.length-1;if(null==(e=e.getNationalPrefixTransformRule())||0==e.length||null==i[d]||0==i[d].length){if(a&&!i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(o,n.substring(i[0].length)))return!1;null!=r&&0<d&&null!=i[d]&&r.append(i[1]),t.set(n.substring(i[0].length))}else{if(n=n.replace(s,e),a&&!i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(o,n))return!1;null!=r&&0<d&&r.append(i[1]),t.set(n)}return!0}return!1},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripExtension=function(t){var e=t.toString(),r=e.search(i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_);if(0<=r&&i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(e.substring(0,r)))for(var n=e.match(i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_),i=n.length,o=1;o<i;++o)if(null!=n[o]&&0<n[o].length)return t.clear(),t.append(e.substring(0,r)),n[o];return""},i18n.phonenumbers.PhoneNumberUtil.prototype.checkRegionForParsing_=function(t,e){return this.isValidRegionCode_(e)||null!=t&&0<t.length&&i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(t)},i18n.phonenumbers.PhoneNumberUtil.prototype.parse=function(t,e){return this.parseHelper_(t,e,!1,!0)},i18n.phonenumbers.PhoneNumberUtil.prototype.parseAndKeepRawInput=function(t,e){if(!this.isValidRegionCode_(e)&&0<t.length&&t.charAt(0)!=i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN)throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE);return this.parseHelper_(t,e,!0,!0)},i18n.phonenumbers.PhoneNumberUtil.setItalianLeadingZerosForPhoneNumber_=function(t,e){if(1<t.length&&"0"==t.charAt(0)){e.setItalianLeadingZero(!0);for(var r=1;r<t.length-1&&"0"==t.charAt(r);)r++;1!=r&&e.setNumberOfLeadingZeros(r)}},i18n.phonenumbers.PhoneNumberUtil.prototype.parseHelper_=function(t,e,r,n){if(null==t)throw Error(i18n.phonenumbers.Error.NOT_A_NUMBER);if(t.length>
15672i18n.phonenumbers.PhoneNumberUtil.MAX_INPUT_STRING_LENGTH_)throw Error(i18n.phonenumbers.Error.TOO_LONG);var i=new goog.string.StringBuffer;if(this.buildNationalNumberForParsing_(t,i),!i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(i.toString()))throw Error(i18n.phonenumbers.Error.NOT_A_NUMBER);if(n&&!this.checkRegionForParsing_(i.toString(),e))throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE);n=new i18n.phonenumbers.PhoneNumber,r&&n.setRawInput(t),0<(t=this.maybeStripExtension(i)).length&&n.setExtension(t);var o=this.getMetadataForRegion(e);t=new goog.string.StringBuffer;var s=0,a=i.toString();try{s=this.maybeExtractCountryCode(a,o,t,r,n)}catch(e){if(e.message!=i18n.phonenumbers.Error.INVALID_COUNTRY_CODE||!i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(a))throw e;if(a=a.replace(i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN,""),0==(s=this.maybeExtractCountryCode(a,o,t,r,n)))throw e}if(0!=s?(i=this.getRegionCodeForCountryCode(s))!=e&&(o=this.getMetadataForRegionOrCallingCode_(s,i)):(i18n.phonenumbers.PhoneNumberUtil.normalizeSB_(i),t.append(i.toString()),null!=e?(s=o.getCountryCodeOrDefault(),n.setCountryCode(s)):r&&n.clearCountryCodeSource()),t.getLength()<i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_)throw Error(i18n.phonenumbers.Error.TOO_SHORT_NSN);if(null!=o&&(e=new goog.string.StringBuffer,i=new goog.string.StringBuffer(t.toString()),this.maybeStripNationalPrefixAndCarrierCode(i,o,e),(o=this.testNumberLength_(i.toString(),o))!=(s=i18n.phonenumbers.PhoneNumberUtil.ValidationResult).TOO_SHORT&&o!=s.IS_POSSIBLE_LOCAL_ONLY&&o!=s.INVALID_LENGTH&&(t=i,r&&0<e.toString().length&&n.setPreferredDomesticCarrierCode(e.toString()))),r=t.toString(),(t=r.length)<i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_)throw Error(i18n.phonenumbers.Error.TOO_SHORT_NSN);if(t>i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_FOR_NSN_)throw Error(i18n.phonenumbers.Error.TOO_LONG);return i18n.phonenumbers.PhoneNumberUtil.setItalianLeadingZerosForPhoneNumber_(r,n),n.setNationalNumber(parseInt(r,10)),n},i18n.phonenumbers.PhoneNumberUtil.prototype.extractPhoneContext_=function(t){var e=t.indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_);if(-1===e)return null;if((e+=i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_.length)>=t.length)return"";var r=t.indexOf(";",e);return-1!==r?t.substring(e,r):t.substring(e)},i18n.phonenumbers.PhoneNumberUtil.prototype.isPhoneContextValid_=function(t){if(null==t)return!0;if(0===t.length)return!1;var e=i18n.phonenumbers.PhoneNumberUtil.RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.exec(t);return t=i18n.phonenumbers.PhoneNumberUtil.RFC3966_DOMAINNAME_PATTERN_.exec(t),null!==e||null!==t},i18n.phonenumbers.PhoneNumberUtil.prototype.buildNationalNumberForParsing_=function(t,e){var r=i18n.phonenumbers.PhoneNumberUtil.prototype.extractPhoneContext_(t);if(!i18n.phonenumbers.PhoneNumberUtil.prototype.isPhoneContextValid_(r))throw Error(i18n.phonenumbers.Error.NOT_A_NUMBER);if(null!=r){r.charAt(0)===i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN&&e.append(r),r=0<=(r=t.indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_))?r+i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_.length:0;var n=t.indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_);e.append(t.substring(r,n))}else e.append(i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber(null!=t?t:""));0<(r=(t=e.toString()).indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_ISDN_SUBADDRESS_))&&(e.clear(),e.append(t.substring(0,r)))},i18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_=function(t){var e=new i18n.phonenumbers.PhoneNumber;return e.setCountryCode(t.getCountryCodeOrDefault()),e.setNationalNumber(t.getNationalNumberOrDefault()),0<t.getExtensionOrDefault().length&&e.setExtension(t.getExtensionOrDefault()),t.getItalianLeadingZero()&&(e.setItalianLeadingZero(!0),e.setNumberOfLeadingZeros(t.getNumberOfLeadingZerosOrDefault())),e},i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatch=function(t,e){if("string"==typeof t)try{var r=this.parse(t,i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_)}catch(o){if(o.message!=i18n.phonenumbers.Error.INVALID_COUNTRY_CODE)return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER;if("string"!=typeof e){var n=this.getRegionCodeForCountryCode(e.getCountryCodeOrDefault());if(n!=i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_){try{r=this.parse(t,n)}catch(t){return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER}var i=this.isNumberMatch(r,e);return i==i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH?i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH:i}}try{r=this.parseHelper_(t,null,!1,!1)}catch(t){return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER}}else r=t.clone();if("string"==typeof e)try{return i=this.parse(e,i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_),this.isNumberMatch(t,i)}catch(t){return t.message!=i18n.phonenumbers.Error.INVALID_COUNTRY_CODE?i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER:this.isNumberMatch(e,r)}else i=e.clone();return t=i18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_(r),i=i18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_(i),t.hasExtension()&&i.hasExtension()&&t.getExtension()!=i.getExtension()?i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH:(e=t.getCountryCodeOrDefault(),r
15672=i.getCountryCodeOrDefault(),0!=e&&0!=r?t.equals(i)?i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH:e==r&&this.isNationalNumberSuffixOfTheOther_(t,i)?i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH:i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH:(t.setCountryCode(0),i.setCountryCode(0),t.equals(i)?i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH:this.isNationalNumberSuffixOfTheOther_(t,i)?i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH:i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH))},i18n.phonenumbers.PhoneNumberUtil.prototype.isNationalNumberSuffixOfTheOther_=function(t,e){return t=""+t.getNationalNumber(),e=""+e.getNationalNumber(),goog.string.endsWith(t,e)||goog.string.endsWith(e,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.canBeInternationallyDialled=function(t){var e=this.getMetadataForRegion(this.getRegionCodeForNumber(t));return null==e||(t=this.getNationalSignificantNumber(t),!this.isNumberMatchingDesc_(t,e.getNoInternationalDialling()))},i18n.phonenumbers.PhoneNumberUtil.matchesEntirely=function(t,e){return!(!(t="string"==typeof t?e.match("^(?:"+t+")$"):e.match(t))||t[0].length!=e.length)},i18n.phonenumbers.PhoneNumberUtil.matchesPrefix=function(t,e){return!(!(t="string"==typeof t?e.match("^(?:"+t+")"):e.match(t))||!goog.string.startsWith(e,t[0]))},i18n.phonenumbers.shortnumbermetadata={},i18n.phonenumbers.shortnumbermetadata.countryCodeToRegionCodeMap={0:"AC AD AE AF AG AI AL AM AO AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GR GT GU GW GY HK HN HR HT HU ID IE IL IM IN IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR SS ST SV SX SY SZ TC TD TG TH TJ TL TM TN TO TR TT TV TW TZ UA UG US UY UZ VA VC VE VG VI VN VU WF WS XK YE YT ZA ZM ZW".split(" ")},i18n.phonenumbers.shortnumbermetadata.countryToMetadata={AC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"AC",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AD:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[0268]",,,,"110"],[,,,,,,,,,[-1]],,,,"AD",,,,,,,,,,,,,,,,,,[,,"11[0268]",,,,"110"],,[,,"11[0268]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AE:[,[,,"[149]\\d{2,3}",,,,,,,[3,4]],,,[,,"112|99[7-9]",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"AE",,,,,,,,,,,,,,,,,,[,,"112|99[7-9]",,,,"112",,,[3]],,[,,"112|445[16]|99[7-9]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"445\\d",,,,"4450",,,[4]]],AF:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:0[02]|19)",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"AF",,,,,,,,,,,,,,,,,,[,,"1(?:0[02]|19)",,,,"100",,,[3]],,[,,"1(?:0[02]|19)|40404",,,,"100"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],AG:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"AG",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"176|9(?:11|88|99)",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],AI:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"AI",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"176|9(?:11|88)",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],AL:[,[,,"[15]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:2|6[01]\\d\\d)|2[7-9]|3[15]|41)",,,,"112",,,[3,6]],[,,"5\\d{4}",,,,"50000",,,[5]],,,,"AL",,,,,,,,,,,,,,,,,,[,,"1(?:12|2[7-9])",,,,"112",,,[3]],,[,,"1(?:1(?:6(?:000|1(?:06|11|23))|8\\d\\d)|65\\d|89[12])|5\\d{4}|1(?:[1349]\\d|2[2-9])",,,,"110"],[,,,,,,,,,[-1]],[,,"123",,,,"123",,,[3]],,[,,"131|5\\d{4}",,,,"131",,,[3,5]]],AM:[,[,,"[148]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"10[1-3]",,,,"101",,,[3]],[,,,,,,,,,[-1]],,,,"AM",,,,,,,,,,,,,,,,,,[,,"10[1-3]",,,,"101",,,[3]],,[,,"(?:1|8[1-7])\\d\\d|40404",,,,"100"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],AO:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[235]",,,,"112"],[,,,,,,,,,[-1]],,,,"AO",,,,,,,,,,,,,,,,,,[,,"11[235]",,,,"112"],,[,,"11[235]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AR:[,[,,"[01389]\\d{1,4}",,,,,,,[2,3,4,5]],,,[,,"000|1(?:0[0-35-7]|1[0245]|2[015]|3[47]|4[478]|9)|911",,,,"19",,,[2,3]],[,,,,,,,,,[-1]],,,,"AR",,,,,,,,,,,,,,,,,,[,,"10[017]|911",,,,"100",,,[3]],,[,,"000|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478]|9)|3372|89338|911",,,,"19"],[,,,,,,,,,[-1]],[,,"893\\d\\d",,,,"89300",,,[5]],,[,,"(?:337|893\\d)\\d",,,,"3370",,,[4,5]]],AS:[,[,,"[49]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"9(?:11|88)",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"AS",,,,,,,,,,,,,,,,,,[,,"911",,,,"911",,,[3]],,[,,"40404|9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"404\\d\\d",,,,"40400",,,[5]]],AT:[,[,,"[1268]\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"1(?:12|2[0238]|3[03]|4[0-247])|1(?:16\\d\\d|4[58])\\d",,,,"112"],[,,,,,,,,,[-1]],,,,"AT",,,,,,,,,,,,,,,,,,[,,"1(?:[12]2|33|44)",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:00[06]|1(?:17|23)))|2[0238]|3[03]|4(?:[0-247]|5[05]|84))|(?:220|61|8108[1-3])0",,,,"112"],[,,,,,,,,,[-1]],[,,"(?:220|810\\d\\d)\\d|610",,,,"610"],,[,,,,,,,,,[-1]]],AU:[,[,,"[0-27]\\d{2,7}",,,,,,,[3,4,5,6,7,8]],,,[,,"000|1(?:06|12|258885|55\\d)|733",,,,"000",,,[3,4,7]],[,,"1(?:2(?:34|456)|9\\d{4,6})",,,,"1234",,,[4,5,6,7,8]],,,,"AU",,,,,,,,,,,,,,,,,,[,,"000|1(?:06|12)",,,,"000",,,[3]],,[,,"000|1(?:06|1(?:00|2|9[46])|2(?:014[1-3]|[23]\\d|(?:4|5\\d)\\d{2,3}|68[689]|72(?:20|3\\d\\d)|8(?:[013-9]\\d|2))|555|9\\d{4,6})|225|7(?:33|67)",,,,"000"],[,,"1(?:1[09]\\d|24733)|225|767",,,,"225",,,[3,4,6]],[,,"1(?:258885|55\\d)",,,,"1550",,,[4,7]],,[,,"19\\d{4,6}",,,,"190000",,,[6,7,8]]],AW:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"100|911",,,,"100"],[,,,,,,,,,[-1]],,,,"AW",,,,,,,,,,,,,,,,,,[,,"100|911",,,,"100"],,[,,"1(?:00|18|76)|91[13]",,,,"100"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],AX:[,[,,"[17]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"112",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"AX",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"112|75[12]\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AZ:[,[,,"[148]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],[,,,,,,,,,[-1]],,,,"AZ",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],,[,,"1(?:0[1-3]|12)|(?:404|880)0",,,,"101"],[,,,,,,,,,[-1]],[,,"(?:404|880)\\d",,,,"4040",,,[4]],,[,,"(?:404|880)\\d",,,,"4040",,,[4]]],BA:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:16\\d{3}|2[2-4])",,,,"122",,,[3,6]],[,,,,,,,,,[-1]],,,,"BA",,,,,,,,,,,,,,,,,,[,,"12[2-4]",,,,"122",,,[3]],,[,,"1(?:16(?:00[06]|1(?:1[17]|23))|2(?:0[0-7]|[2-5]|6[0-26])|(?:[3-5]|7\\d)\\d\\d)|1(?:18|2[78])\\d\\d?",,,,"122"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BB:[,[,,"[2-689]\\d\\d",,,,,,,[3]],,,[,,"988|[2359]11",,,,"211"],[,,,,,,,,,[-1]],,,,"BB",,,,,,,,,,,,,,,,,,[,,"[2359]11",,,,"211"],,[,,"988|[2-689]11",,,,"211"],[,,,,,,,,,[-1]],[,,"[468]11",,,,"411"],,[,,,,,,,,,[-1]]],BD:[,[,,"[1579]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"10[0-26]|[19]99",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"BD",,,,,,,,,,,,,,,,,,[,,"10[0-2]|[19]99",,,,"100",,,[3]],,[,,"1(?:0(?:[0-369]|5[1-4]|7[0-4]|8[0-29])|1[16-9]|2(?:[134]|2[0-5])|3(?:1\\d?|6[3-6])|5[2-9])|5012|786|9594|[19]99|1(?:0(?:50|6\\d)|33|4(?:0|1\\d))\\d",,,,"100"],[,,,,,,,,,[-1]],[,,"1(?:11|2[13])|(?:501|959)\\d|786",,,,"111",,,[3,4]],,[,,"959\\d",,,,"9590",,,[4]]],BE:[,[,,"[1-9]\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"1(?:0[0-35-8]|1[0269]|7(?:12|77)|813)|(?:116|8)\\d{3}",,,,"100"],[,,"1(?:2[03]|40)4|(?:1(?:[24]1|3[01])|[2-79]\\d\\d)\\d",,,,"1204",,,[4]],,,,"BE",,,,,,,,,,,,,,,,,,[,,"1(?:0[01]|12)",,,,"100",,,[3]],,[,,"1(?:0[0-8]|16117|2(?:12|3[0-24])|313|414|5(?:1[05]|5[15]|66|95)|6(?:1[167]|36|6[16])|7(?:[07][017]|1[27-9]|22|33|65)|81[39])|[2-9]\\d{3}|11[02679]|1(?:1600|45)0|1(?:[2-4]9|78)9|1[2-4]0[47]",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"[2-9]\\d{3}
15672",,,,"2000",,,[4]]],BF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"BF",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BG:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"1(?:1(?:2|6\\d{3})|50|6[06])",,,,"112"],[,,,,,,,,,[-1]],,,,"BG",,,,,,,,,,,,,,,,,,[,,"1(?:12|50|6[06])",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:000|111))|50|6[06])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BH:[,[,,"[0189]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"(?:0[167]|81)\\d{3}|[19]99",,,,"199"],[,,"9[148]\\d{3}",,,,"91000",,,[5]],,,,"BH",,,,,,,,,,,,,,,,,,[,,"[19]99",,,,"199",,,[3]],,[,,"1(?:[02]\\d|12|4[01]|51|8[18]|9[169])|99[02489]|(?:0[167]|8[158]|9[148])\\d{3}",,,,"100"],[,,,,,,,,,[-1]],[,,"0[67]\\d{3}|88000|98555",,,,"06000",,,[5]],,[,,"88000|98555",,,,"88000",,,[5]]],BI:[,[,,"[16-9]\\d{2,3}",,,,,,,[3,4]],,,[,,"11[237]|611",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"BI",,,,,,,,,,,,,,,,,,[,,"11[237]",,,,"112",,,[3]],,[,,"1(?:1\\d|5[2-9]|6[0-256])|611|7(?:10|77|979)|8[28]8|900",,,,"110"],[,,,,,,,,,[-1]],[,,"611|7(?:10|77)|888|900",,,,"611",,,[3]],,[,,"(?:71|90)0",,,,"710",,,[3]]],BJ:[,[,,"[17]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[246-8]|3[68]|6[06])|7[3-5]\\d\\d",,,,"112"],[,,,,,,,,,[-1]],,,,"BJ",,,,,,,,,,,,,,,,,,[,,"11[246-8]",,,,"112",,,[3]],,[,,"1(?:05|1[24-8]|2[02-5]|3[126-8]|5[05]|6[06]|89)|7[0-5]\\d\\d",,,,"105"],[,,,,,,,,,[-1]],[,,"12[02-5]",,,,"120",,,[3]],,[,,,,,,,,,[-1]]],BL:[,[,,"1\\d",,,,,,,[2]],,,[,,"18",,,,"18"],[,,,,,,,,,[-1]],,,,"BL",,,,,,,,,,,,,,,,,,[,,"18",,,,"18"],,[,,"18",,,,"18"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BM:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"BM",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"176|9(?:11|88)",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],BN:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"99[135]",,,,"991"],[,,,,,,,,,[-1]],,,,"BN",,,,,,,,,,,,,,,,,,[,,"99[135]",,,,"991"],,[,,"99[135]",,,,"991"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BO:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[089]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"BO",,,,,,,,,,,,,,,,,,[,,"11[089]",,,,"110",,,[3]],,[,,"11[089]|40404",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"404\\d\\d",,,,"40400",,,[5]]],BQ:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|911",,,,"112"],[,,,,,,,,,[-1]],,,,"BQ",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112"],,[,,"1(?:12|76)|911",,,,"112"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],BR:[,[,,"[1-69]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:00|12|28|8[015]|9[0-47-9])|4(?:57|82\\d)|911",,,,"100",,,[3,4]],[,,,,,,,,,[-1]],,,,"BR",,,,,,,,,,,,,,,,,,[,,"1(?:12|28|9[023])|911",,,,"112",,,[3]],,[,,"1(?:0(?:[02]|3(?:1[2-579]|2[13-9]|3[124-9]|4[1-3578]|5[1-468]|6[139]|8[149]|9[168])|5[0-35-9]|6(?:0|1[0-35-8]?|2[0145]|3[0137]?|4[37-9]?|5[0-35]|6[016]?|7[137]?|8[5-8]|9[1359]))|1[25-8]|2[357-9]|3[024-68]|4[12568]|5\\d|6[0-8]|8[015]|9[0-47-9])|2(?:7(?:330|878)|85959?)|(?:32|91)1|4(?:0404?|57|828)|55555|6(?:0\\d{4}|10000)|(?:133|411)[12]",,,,"100"],[,,"102|273\\d\\d|321",,,,"102",,,[3,5]],[,,"151|(?:278|555)\\d\\d|4(?:04\\d\\d?|11\\d|57)",,,,"151",,,[3,4,5]],,[,,"285\\d{2,3}|321|40404|(?:27[38]\\d|482)\\d|6(?:0\\d|10)\\d{3}",,,,"321"]],BS:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:1[19]|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"BS",,,,,,,,,,,,,,,,,,[,,"91[19]",,,,"911"],,[,,"9(?:1[19]|88)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BT:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[023]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"BT",,,,,,,,,,,,,,,,,,[,,"11[023]",,,,"110",,,[3]],,[,,"11[0-6]|40404",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"404\\d\\d",,,,"40400",,,[5]]],BW:[,[,,"[19]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"9(?:11|9[7-9])",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"BW",,,,,,,,,,,,,,,,,,[,,"9(?:11|9[7-9])",,,,"911",,,[3]],,[,,"1(?:1[26]|3123)|9(?:1[14]|9[1-57-9])",,,,"112"],[,,,,,,,,,[-1]],[,,"131\\d\\d",,,,"13100",,,[5]],,[,,"131\\d\\d",,,,"13100",,,[5]]],BY:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:0[1-3]|12)",,,,"101"],[,,,,,,,,,[-1]],,,,"BY",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101"],,[,,"1(?:0[1-79]|1[246]|35|5[1-35]|6[89]|7[5-7]|8[58]|9[1-7])",,,,"101"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BZ:[,[,,"9\\d\\d?",,,,,,,[2,3]],,,[,,"9(?:0|11|22|66|77|9[09])",,,,"90"],[,,,,,,,,,[-1]],,,,"BZ",,,,,,,,,,,,,,,,,,[,,"9(?:0|11|90)",,,,"90"],,[,,"9(?:0|11|22|66|77|9[09])",,,,"90"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CA:[,[,,"[1-9]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"112|988|[29]11",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"CA",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112",,,[3]],,[,,"[1-35-9]\\d{4,5}|112|[2-8]11|9(?:11|88)",,,,"112"],[,,,,,,,,,[-1]],[,,"[235-7]11",,,,"211",,,[3]],,[,,"[1-35-9]\\d{4,5}",,,,"10000",,,[5,6]]],CC:[,[,,"[01]\\d\\d",,,,,,,[3]],,,[,,"000|112",,,,"000"],[,,,,,,,,,[-1]],,,,"CC",,,,,,,,,,,,,,,,,,[,,"000|112",,,,"000"],,[,,"000|112",,,,"000"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CD:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:1[348]|77|88)",,,,"113",,,[3]],[,,,,,,,,,[-1]],,,,"CD",,,,,,,,,,,,,,,,,,[,,"1(?:1[348]|77|88)",,,,"113",,,[3]],,[,,"1(?:1[348]|23|77|88)|40404",,,,"113"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],CF:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[78]|22\\d)",,,,"117"],[,,,,,,,,,[-1]],,,,"CF",,,,,,,,,,,,,,,,,,[,,"1(?:1[78]|220)",,,,"117"],,[,,"1(?:1[478]|220)",,,,"114"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CG:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[178]",,,,"111"],[,,,,,,,,,[-1]],,,,"CG",,,,,,,,,,,,,,,,,,[,,"11[78]",,,,"117"],,[,,"11[126-8]",,,,"111"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CH:[,[,,"[1-9]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:[278]|6\\d{3})|4[47])|5200",,,,"112",,,[3,4,6]],[,,"1(?:14|8[0-2589])\\d|543|83111",,,,"543",,,[3,4,5]],,,,"CH",,,,,,,,,,,,,,,,,,[,,"1(?:1[278]|44)",,,,"112",,,[3]],,[,,"1(?:0[78]\\d\\d|1(?:[278]|45|6(?:000|111))|4(?:[03-57]|1[0145])|6(?:00|[1-46])|8(?:02|1[189]|[25]0|7|8[08]|99))|[2-9]\\d{2,4}",,,,"112"],[,,"1(?:4[035]|6[1-46])|1(?:41|60)\\d",,,,"140",,,[3,4]],[,,"5(?:200|35)",,,,"535",,,[3,4]],,[,,"[2-9]\\d{2,4}",,,,"200",,,[3,4,5]]],CI:[,[,,"[14]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[01]|[78]0)",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"CI",,,,,,,,,,,,,,,,,,[,,"1(?:1[01]|[78]0)",,,,"110",,,[3]],,[,,"1(?:1[01]|[78]0)|4443",,,,"110"],[,,,,,,,,,[-1]],[,,"444\\d",,,,"4440",,,[4]],,[,,"444\\d",,,,"4440",,,[4]]],CK:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"99[689]",,,,"996"],[,,,,,,,,,[-1]],,,,"CK",,,,,,,,,,,,,,,,,,[,,"99[689]",,,,"996"],,[,,"99[689]",,,,"996"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CL:[,[,,"[1-9]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:213|3[1-3])|434\\d|911",,,,"131",,,[3,4]],[,,"1(?:211|3(?:13|[348]0|5[01]))|(?:1(?:[05]6|[48]1|9[18])|2(?:01\\d|[23]2|77|88)|3(?:0[59]|13|3[279]|66)|4(?:[12]4|36\\d|4[017]|55)|5(?:00|41\\d|5[67]|99)|6(?:07\\d|13|22|3[06]|50|69)|787|8(?:[01]1|[48]8)|9(?:01|[12]0|33))\\d",,,,"1060",,,[4,5]],,,,"CL",,,,,,,,,,,,,,,,,,[,,"13[1-3]|911",,,,"131",,,[3]],,[,,"1(?:00|21[13]|3(?:13|[348]0|5[01])|4(?:0[02-6]|17|[379])|818|919)|2(?:0(?:01|122)|22[47]|323|777|882)|3(?:0(?:51|99)|132|3(?:29|[37]7)|665)|43656|5(?:(?:00|415)4|5(?:66|77)|995)|6(?:131|222|366|699)|7878|8(?:011|11[28]|482|889)|9(?:01|1)1|13\\d|4(?:[13]42|243|4(?:02|15|77)|554)|(?:1(?:[05]6|98)|339|6(?:07|[35])0|9(?:[12]0|33))0",,,,"100"],[,,"(?:200|333)\\d",,,,"2000",,,[4]],[,,,,,,,,,[-1]],,[,,"13(?:13|[348]0|5[01])|(?:1(?:[05]6|[28]1|4[01]|9[18])|2(?:0(?:0|1\\d)|[23]2|77|88)|3(?:0[59]|13|3[2379]|66)|436\\d|5(?:00|41\\d|5[67]|99)|6(?:07\\d|13|22|3[06]|50|69)|787|8(?:[01]1|[48]8)|9(?:01|[12]0|33))\\d|4(?:[1-3]4|4[017]|55)\\d",,,,"1060",,,[4,5]]],CM:[,[,,"[18]\\d{1,3}",,,,,,,[2,3,4]],,,[,,"1(?:1[37]|[37])",,,,"13",,,[2,3]],[,,,,,,,,,[-1]],,,,"CM",,,,,,,,,,,,,,,,,,[,,"1(?:1[37]|[37])",,,,"13",,,[2,3]],,[,,"1(?:1[37]|[37])|8711",,,,"13"],[,,,,,,,,,[-1]],[,,"871\\d",,,,"8710",,,[4]],,[,,"871\\d",,,,"8710",,,[4]]],CN:[,[,,"[19]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1[09]|2(?:[02]|1\\d\\d|395))",,,,"110",,,[3,5]],[,,,,,,,,,[-1]],,,,"CN",,,,,,,,,,,,,,,,,,[,,"1(?:1[09]|20)",,,,"110",,,[3]],,[,,"1(?:00|1[0249]|2395|6[08])|9[56]\\d{3,4}|12[023]|1(?:0(?:[0-26]\\d|8)|21\\d)\\d",,,,"100"],[,,"1(?:0(?:[0-26]\\d|8)\\d|1[24]|23|6[08])|9[56]\\d{3,4}|100",,,,"100"],[,,,,,,,,,[-1]],,[,,"12110",,,,"12110",,,[5]]],CO:[,[,,"[1-589]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"1(?:1[29]|23|32|56)",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"CO",,,,,,,,,,,,,,,,,,[,,"1(?:1[29]|23|32|56)",,,,"112",,,[3]],,[,,"1(?:06|1[2-9]|2[35-7]|3[27]|4[467]|5[36]|6[4-7]|95)|(?:29002|39003)9|40404|5930\\d\\d|85432|(?:[2359][57]|8(?:7|9\\d))\\d{3}",,,,"106"],[,,,,,,,,,[-1]],[,,"(?:40|85)4\\d\\d",,,,"40400",,,[5]],,[,,"(?:40|85)4\\d\\d",,,,"40400",,,[5]]],CR:[,[,,"[1359]\\d{2,3}",,,,,,,[3,4]],,,[,,"112|911",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"CR",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112",,,[3]],,[,,"1(?:0(?:00|15|2[2-4679])|1(?:1[0-35-9]|2|37|[46]6|7[57]|8[79]|9[0-379])|2(?:00|[12]2|34|55)|3(?:21|33)|4(?:0[06]|1[4-6])|5(?:15|5[15])|693|7(?:00|1[7-9]|2[02]|[67]7)|975)|3855|5(?:0(?:30|49)|510)|911",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"(?:385|5(?:0[34]|51))\\d",,,,"3850",,,[4]]],CU:[,[,,"[12]\\d\\d(?:\\d{3,4})?",,,,,,,[3,6,7]],,,[,,"10[4-7]|(?:116|204\\d)\\d{3}",,,,"104"],[,,,,,,,,,[-1]],,,,"CU",,,,,,,,,,,,,,,,,,[,,"10[4-6]",,,,"104",,,[3]],,[,,"1(?:0[4-7]|1(?:6111|8)|40)|2045252",,,,"104"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CV:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"13[0-2]",,,,"130"],[,,,,,,,,,[-1]],,,,"CV",,,,,,,,,,,,,,,,,,[,,"13[0-2]",,,,"130"],,[,,"13[0-2]",,,,"130"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CW:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|911",,,,"112"],[,,,,,,,,,[-1]],,,,"CW",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112"],,[,,"1(?:12|76)|911",,,,"112"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],CX:[,[,,"[01]\\d\\d",,,,,,,[3]],,,[,,"000|112",,,,"000"],[,,,,,,,,,[-1]],,,,"CX",,,,,,,,,,,,,,,,,,[,,"000|112",,,,"000"],,[,,"000|112",,,,"000"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CY:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"1(?:1(?:2|6\\d{3})|99)",,,,"112"],[,,,,,,,,,[-1]],,,,"CY",,,,,,,,,,,,,,,,,,[,,"1(?:12|99)",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:000|111))|99)",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CZ:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:2|6(?:00[06]|1(?:11|23)))|5\\d)",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"CZ",,,,,,,,,,,,,,,,,,[,,"1(?:12|5\\d)",,,,"112",,,[3]],,[,,"1(?:1(?:2|8\\d)|(?:2|3\\d)\\d{2,3}|5\\d|99)|1(?:16|4)\\d{3}",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DE:[,[,,"[13]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:[02]|6\\d{3})",,,,"110",,,[3,6]],[,,,,,,,,,[-1]],,,,"DE",,,,,,,,,,,,,,,,,,[,,"11[02]",,,,"110",,,[3]],,[,,"11(?:[025]|6(?:00[06]|1(?:1[167]|23))|800\\d)|3311|118\\d\\d",,,,"110"],[,,,,,,,,,[-1]],[,,"331\\d",,,,"3310",,,[4]],,[,,,,,,,,,[-1]]],DJ:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"DJ",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DK:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:[24]|6\\d{3})",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"DK",,,,,,,,,,,,,,,,,,[,,"11[24]",,,,"112",,,[3]],,[,,"1(?:1(?:[2-
vendor: 12,066 bytes, line 15672
1567248]|6(?:00[06]|111))|619[0-2]|8(?:01|1[0238]|28|30|5[13]|8[18]))",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DM:[,[,,"[39]\\d\\d",,,,,,,[3]],,,[,,"333|9(?:11|88|99)",,,,"333"],[,,,,,,,,,[-1]],,,,"DM",,,,,,,,,,,,,,,,,,[,,"333|9(?:11|99)",,,,"333"],,[,,"333|9(?:11|88|99)",,,,"333"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DO:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|9(?:11|88)",,,,"112"],[,,,,,,,,,[-1]],,,,"DO",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112"],,[,,"112|9(?:11|88)",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DZ:[,[,,"[17]\\d{1,3}",,,,,,,[2,3,4]],,,[,,"1(?:12|[47]|54\\d)",,,,"14"],[,,,,,,,,,[-1]],,,,"DZ",,,,,,,,,,,,,,,,,,[,,"1(?:12|[47])",,,,"14",,,[2,3]],,[,,"1(?:055|12|[47]|548)|730",,,,"14"],[,,,,,,,,,[-1]],[,,"730",,,,"730",,,[3]],,[,,"730",,,,"730",,,[3]]],EC:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"1(?:0[12]|12)|911",,,,"101"],[,,,,,,,,,[-1]],,,,"EC",,,,,,,,,,,,,,,,,,[,,"1(?:0[12]|12)|911",,,,"101"],,[,,"1(?:0[12]|12)|911",,,,"101"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],EE:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:[02]|6\\d{3})|2(?:05|28)|3(?:014|3(?:21|5\\d?)|660)|492|5(?:1[03]|410|501)|6(?:112|333|644)|7(?:012|127|89)|8(?:10|8[57])|9(?:0[134]|14))",,,,"110"],[,,"1(?:18(?:00|[12458]\\d?)|2(?:0(?:[02-46-8]\\d?|1[0-36])|1(?:[0-4]\\d?|6[06])|2(?:[0-4]\\d?|5[25])|[367]|4(?:0[04]|[12]\\d?|4[24]|54)|55[12457])|3(?:0(?:[02]\\d?|1[13578]|3[356])|1[1347]|2[02-5]|3(?:[01347]\\d?|2[023]|88)|4(?:[35]\\d?|4[34])|5(?:3[134]|5[035])|666)|4(?:2(?:00|4\\d?)|4(?:0[01358]|1[024]|50|7\\d?)|900)|5(?:0[0-35]|1(?:[1267]\\d?|5[0-7]|82)|2(?:[014-6]\\d?|22)|330|4(?:[35]\\d?|44)|5(?:00|[1-69]\\d?)|9(?:[159]\\d?|[38]0|77))|6(?:1(?:00|1[19]|[35-9]\\d?)|2(?:2[26]|[68]\\d?)|3(?:22|36|6[36])|5|6(?:[0-359]\\d?|6[0-26])|7(?:00|55|7\\d?|8[89])|9(?:00|1\\d?|69))|7(?:0(?:[023]\\d?|1[0578])|1(?:00|2[034]|[4-9]\\d?)|2(?:[07]\\d?|20|44)|7(?:[0-57]\\d?|9[79])|8(?:0[08]|2\\d?|8[0178])|9(?:00|97))|8(?:1[127]|8[1268]|9[269])|9(?:0(?:[02]\\d?|69|9[0269])|1[1-3689]|21))",,,,"123",,,[3,4,5]],,,,"EE",,,,,,,,,,,,,,,,,,[,,"11[02]",,,,"110",,,[3]],,[,,"1(?:1(?:[02-579]|6(?:000|111)|8(?:[09]\\d|[1-8]))|2[36-9]|3[7-9]|4[05-7]|5[6-8]|6[05]|7[3-6]|8[02-7]|9[3-9])|1(?:2[0-245]|3[0-6]|4[1-489]|5[0-59]|6[1-46-9]|7[0-27-9]|8[189]|9[0-2])\\d\\d?",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"1(?:18[1258]|2(?:0(?:1[036]|[46]\\d?)|166|21|4(?:0[04]|1\\d?|5[47])|[67])|3(?:0(?:1[13-578]|2\\d?|3[56])|1[15]|2[045]|3(?:[13]\\d?|2[13])|43|5(?:00|3[34]|53))|44(?:0[0135]|14|50|7\\d?)|5(?:05|1(?:[12]\\d?|5[1246]|8[12])|2(?:[01]\\d?|22)|3(?:00|3[03])|4(?:15|5\\d?)|500|9(?:5\\d?|77|80))|6(?:1[35-8]|226|3(?:22|3[36]|66)|644|7(?:00|7\\d?|89)|9(?:00|69))|7(?:01[258]|1(?:00|[15]\\d?)|2(?:44|7\\d?)|8(?:00|87|9\\d?))|8(?:1[128]|8[56]|9(?:[26]\\d?|77))|90(?:2\\d?|69|92))",,,,"126",,,[3,4,5]]],EG:[,[,,"[13]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:2[23]|80)",,,,"122",,,[3]],[,,,,,,,,,[-1]],,,,"EG",,,,,,,,,,,,,,,,,,[,,"1(?:2[23]|80)",,,,"122",,,[3]],,[,,"1(?:2[23]|[679]\\d{3}|80)|34400",,,,"122"],[,,,,,,,,,[-1]],[,,"344\\d\\d",,,,"34400",,,[5]],,[,,"344\\d\\d",,,,"34400",,,[5]]],EH:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:[59]|77)",,,,"15"],[,,,,,,,,,[-1]],,,,"EH",,,,,,,,,,,,,,,,,,[,,"1(?:[59]|77)",,,,"15"],,[,,"1(?:[59]|77)",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ER:[,[,,"[12]\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"11[2-46]|(?:12[47]|20[12])\\d{3}",,,,"112"],[,,,,,,,,,[-1]],,,,"ER",,,,,,,,,,,,,,,,,,[,,"1(?:1[2-46]|24422)|20(?:1(?:606|917)|2914)|(?:1277|2020)99",,,,"112"],,[,,"1(?:1[2-6]|24422)|20(?:1(?:606|917)|2914)|(?:1277|2020)99",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ES:[,[,,"[0-379]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"0(?:16|6[57]|8[58])|1(?:006|12|[3-7]\\d\\d)|(?:116|20\\d)\\d{3}",,,,"016",,,[3,4,6]],[,,"[12]2\\d{1,4}|90(?:5\\d|7)|(?:118|2(?:[357]\\d|80)|3[357]\\d)\\d\\d|[79]9[57]\\d{3}",,,,"120"],,,,"ES",,,,,,,,,,,,,,,,,,[,,"08[58]|112",,,,"085",,,[3]],,[,,"0(?:1[0-26]|6[0-257]|8[058]|9[12])|1(?:0[03-57]\\d{1,3}|1(?:2|6(?:000|111)|8\\d\\d)|2\\d{1,4}|[3-9]\\d\\d)|2(?:2\\d{1,4}|80\\d\\d)|90(?:5[124578]|7)|1(?:3[34]|77)|(?:2[01]\\d|[79]9[57])\\d{3}|[23][357]\\d{3}",,,,"010"],[,,"0(?:[16][0-2]|80|9[12])|21\\d{4}",,,,"010",,,[3,6]],[,,"1(?:3[34]|77)|[12]2\\d{1,4}",,,,"120"],,[,,"(?:2[0-2]\\d|3[357]|[79]9[57])\\d{3}|2(?:[2357]\\d|80)\\d\\d",,,,"22000",,,[5,6]]],ET:[,[,,"9\\d\\d?",,,,,,,[2,3]],,,[,,"9(?:07|11?|2|39?|9[17])",,,,"91"],[,,,,,,,,,[-1]],,,,"ET",,,,,,,,,,,,,,,,,,[,,"9(?:11?|2|39?|9[17])",,,,"91"],,[,,"9(?:07|11?|2|39?|45|9[17])",,,,"91"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FI:[,[,,"[17]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"11(?:2|6\\d{3})",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"FI",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"11(?:2|6(?:00[06]|1(?:1[17]|23)))|(?:1[2-8]\\d|75[12])\\d\\d",,,,"112"],[,,"1[2-8]\\d{3}",,,,"12000",,,[5]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FJ:[,[,,"[0-579]\\d(?:\\d(?:\\d{2})?)?",,,,,,,[2,3,5]],,,[,,"91[17]",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"FJ",,,,,,,,,,,,,,,,,,[,,"91[17]",,,,"911",,,[3]],,[,,"0(?:1[34]|8[1-4])|1(?:0[1-3]|[25]9)|2[289]|30|40404|91[137]|[45]4|75",,,,"22"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"404\\d\\d",,,,"40400",,,[5]]],FK:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"FK",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"1\\d\\d|999",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FM:[,[,,"[39]\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"320\\d{3}|911",,,,"911"],[,,,,,,,,,[-1]],,,,"FM",,,,,,,,,,,,,,,,,,[,,"(?:32022|91)1",,,,"911"],,[,,"(?:32022|91)1",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FO:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[24]|81\\d)",,,,"112"],[,,,,,,,,,[-1]],,,,"FO",,,,,,,,,,,,,,,,,,[,,"11[24]",,,,"112",,,[3]],,[,,"1(?:1[248]|819)|1(?:4[124]|71|8[7-9])\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FR:[,[,,"[1-8]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"1(?:1[02459]|[578]|9[167])|224|(?:3370|74)0|(?:116\\d|3[01])\\d\\d",,,,"15"],[,,"(?:1(?:0|18\\d)|366|[4-8]\\d\\d)\\d\\d|3[2-9]\\d\\d",,,,"1000",,,[4,5,6]],,,,"FR",,,,,,,,,,,,,,,,,,[,,"1(?:12|[578])",,,,"15",,,[2,3]],,[,,"1(?:0\\d\\d|1(?:[02459]|6(?:000|111)|8\\d{3})|[578]|9[167])|2(?:0(?:00|2)0|24)|[3-8]\\d{4}|3\\d{3}|6(?:1[14]|34)|7(?:0[06]|22|40)",,,,"15"],[,,"202\\d|6(?:1[14]|34)|70[06]",,,,"611",,,[3,4]],[,,"118777|224|6(?:1[14]|34)|7(?:0[06]|22|40)|20(?:0\\d|2)\\d",,,,"224",,,[3,4,5,6]],,[,,"114|[3-8]\\d{4}",,,,"114",,,[3,5]]],GA:[,[,,"1\\d(?:\\d{2})?",,,,,,,[2,4]],,,[,,"18|1(?:3\\d|73)\\d",,,,"18"],[,,,,,,,,,[-1]],,,,"GA",,,,,,,,,,,,,,,,,,[,,"1(?:3\\d\\d|730|8)",,,,"18"],,[,,"1(?:3\\d\\d|730|8)",,,,"18"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GB:[,[,,"[1-46-9]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:05|1(?:[29]|6\\d{3})|7[56]\\d|8000)|2(?:20\\d|48)|4444|999",,,,"105"],[,,,,,,,,,[-1]],,,,"GB",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"1(?:0[015]|1(?:[129]|6(?:000|1(?:11|23))|8\\d{3})|2(?:[1-3]|50)|33|4(?:1|7\\d)|571|7(?:0\\d|[56]0)|800\\d|9[15])|2(?:0202|1300|2(?:02|11)|3(?:02|336|45)|4(?:25|8))|3[13]3|4(?:0[02]|35[01]|44[45]|5\\d)|(?:[68]\\d|7[089])\\d{3}|15\\d|2[02]2|650|789|9(?:01|99)",,,,"100"],[,,,,,,,,,[-1]],[,,"1(?:(?:25|7[56])\\d|571)|2(?:02(?:\\d{2})?|[13]3\\d\\d|48)|4444|901",,,,"202",,,[3,4,5]],,[,,"(?:125|2(?:020|13\\d)|(?:7[089]|8[01])\\d\\d)\\d",,,,"1250",,,[4,5]]],GD:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"GD",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"176|9(?:11|88)",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],GE:[,[,,"[014]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"0(?:11|33)|11[1-3]|[01]22",,,,"011",,,[3]],[,,,,,,,,,[-1]],,,,"GE",,,,,,,,,,,,,,,,,,[,,"0(?:11|33)|11[1-3]|[01]22",,,,"011",,,[3]],,[,,"0(?:11|33)|11[1-3]|40404|[01]22",,,,"011"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],GF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"GF",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GG:[,[,,"[19]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"112|999",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"GG",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"1(?:0[01]|1[12]|23|41|55|9[05])|999|1(?:1[68]\\d\\d|47|800)\\d",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GH:[,[,,"[14589]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"19[1-3]|999",,,,"191",,,[3]],[,,,,,,,,,[-1]],,,,"GH",,,,,,,,,,,,,,,,,,[,,"19[1-3]|999",,,,"191",,,[3]],,[,,"19[1-3]|40404|(?:54|83)00|999",,,,"191"],[,,,,,,,,,[-1]],[,,"404\\d\\d|(?:54|83)0\\d",,,,"5400",,,[4,5]],,[,,"404\\d\\d|(?:54|83)0\\d",,,,"5400",,,[4,5]]],GI:[,[,,"[158]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:00|1[25]|23|4(?:1|7\\d)|5[15]|9[02-49])|555|(?:116\\d|80)\\d\\d",,,,"100",,,[3,4,6]],[,,"8[1-69]\\d\\d",,,,"8100",,,[4]],,,,"GI",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[09])",,,,"112",,,[3]],,[,,"1(?:00|1(?:[25]|6(?:00[06]|1(?:1[17]|23))|8\\d\\d)|23|4(?:1|7[014])|5[015]|9[02-49])|555|8[0-79]\\d\\d|8(?:00|4[0-2]|8[0-589])",,,,"100"],[,,"150|87\\d\\d",,,,"150",,,[3,4]],[,,"1(?:00|1(?:5|8\\d\\d)|23|51|9[2-4])|555|8(?:00|4[0-2]|8[0-589])",,,,"100",,,[3,5]],,[,,,,,,,,,[-1]]],GL:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"112",,,,"112"],[,,,,,,,,,[-1]],,,,"GL",,,,,,,,,,,,,,,,,,[,,"112",,,,"112"],,[,,"1[1-8]\\d",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GM:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:1[6-8]|[6-8])",,,,"16"],[,,,,,,,,,[-1]],,,,"GM",,,,,,,,,,,,,,,,,,[,,"1(?:1[6-8]|[6-8])",,,,"16"],,[,,"1(?:1[6-8]|[6-8])",,,,"16"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GN:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,,"GN",,,,,,,,,,,,,,,,,,[,,,,,,,,,[-1]],,[,,"12\\d|40404",,,,"120"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],GP:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"GP",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GR:[,[,,"1\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"1(?:0[089]|1(?:2|6\\d{3})|66|99)",,,,"100",,,[3,6]],[,,,,,,,,,[-1]],,,,"GR",,,,,,,,,,,,,,,,,,[,,"1(?:00|12|66|99)",,,,"100",,,[3]],,[,,"1(?:0[089]|1(?:2|320|6(?:000|1(?:1[17]|23)))|(?:389|9)9|66)",,,,"100"],[,,"113\\d\\d",,,,"11300",,,[5]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GT:[,[,,"[14]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:10|2[03])",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"GT",,,,,,,,,,,,,,,,,,[,,"1(?:10|2[03])",,,,"110",,,[3]],,[,,"110|40404|1(?:2|[57]\\d)\\d",,,,"110"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],GU:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"GU",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GW:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[378]",,,,"113"],[,,,,,,,,,[-1]],,,,"GW",,,,,,,,,,,,,,,,,,[,,"11[378]",,,,"113"],,[,,"11[378]",,,,"113"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GY:[,[,,"[019]\\d{2,3}",,,,,,,[3,4]],,,[,,"91[1-3]",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"GY",,,,,,,,,,,,,,,,,,[,,"91[1-3]",,,,"911",,,[3]],,[,,"0(?:02|(?:17|80)1|444|7(?:[67]7|9)|9(?:0[78]|[2-47]))|1(?:443|5[568])|91[1-3]",,,,"002"],[,,,,,,,,,[-1]],[,,"144\\d",,,,"1440",,,[4]],,[,,"144\\d",,,,"1440",,,[4]]],HK:[,[,,"[19]\\d{2,6}",,,,,,,[3,4,5,6,7]],,,[,,"112|99[29]",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"HK",,,,,,,,,,,,,,,,,,[,,"112|99[29]",,,,"112",,,[3]],,[,,"1(?:0(?:(?:[0136]\\d|2[14])\\d{0,3}|8[138])|12|2(?:[0-3]\\d{0,4}|(?:58|8[13])\\d{0,3})|7(?:[135-9]\\d{0,4}|219\\d{0,2})|8(?:0(?:(?:[13]|60\\d)\\d|8)|1(?:0\\d|[2-8])|2(?:0[5-9]|(?:18|2)2|3|8[128])|(?:(?:3[0-689]\\d|7(?:2[1-389]|8[0235-9]|93))\\d|8)\\d|50[138]|6(?:1(?:11|86)|8)))|99[29]|10[0139]",,,,"100"],[,,,,,,,,,[-1]],[,,"109|1(?:08|85\\d)\\d",,,,"109",,,[3,4,5]],,[,,"992",,,,"992",,,[3]]],HN:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"199",,,,"199",,,[3]],[,,,,,,,,,[-1]],,,,"HN",,,,,,,,,,,,,,,,,,[,,"199",,,,"199",,,[3]],,[,,"199|40404",,,,"199"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],HR:[,[,,"[
1567219]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"1(?:12|9[2-4])|9[34]|1(?:16\\d|39)\\d\\d",,,,"93",,,[2,3,5,6]],[,,"118\\d\\d",,,,"11800",,,[5]],,,,"HR",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[2-4])|9[34]",,,,"93",,,[2,3]],,[,,"
vendor: 21,373 bytes, line 15672
156721(?:1(?:2|6(?:00[06]|1(?:1[17]|23))|8\\d\\d)|3977|9(?:[2-5]|87))|9[34]",,,,"93"],[,,,,,,,,,[-1]],[,,"139\\d\\d",,,,"13900",,,[5]],,[,,"139\\d\\d",,,,"13900",,,[5]]],HT:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[48]",,,,"114",,,[3]],[,,,,,,,,,[-1]],,,,"HT",,,,,,,,,,,,,,,,,,[,,"11[48]",,,,"114",,,[3]],,[,,"11[48]|40404",,,,"114"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],HU:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:0[457]|12|4[0-4]\\d)|1(?:16\\d|37|45)\\d\\d",,,,"104"],[,,,,,,,,,[-1]],,,,"HU",,,,,,,,,,,,,,,,,,[,,"1(?:0[457]|12)",,,,"104",,,[3]],,[,,"1(?:0[457]|1(?:2|6(?:000|1(?:11|23))|800)|2(?:0[0-4]|1[013489]|2[0-5]|3[0-46]|4[0-24-68]|5[0-2568]|6[06]|7[0-25-7]|8[028]|9[08])|37(?:00|37|7[07])|4(?:0[0-5]|1[013-8]|2[034]|3[23]|4[02-9]|5(?:00|41|67))|777|8(?:1[27-9]|2[04]|40|[589]))",,,,"104"],[,,,,,,,,,[-1]],[,,"1(?:4[0-4]|77)\\d|1(?:18|2|45)\\d\\d",,,,"1200",,,[4,5]],,[,,"184\\d",,,,"1840",,,[4]]],ID:[,[,,"[178]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"11[02389]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"ID",,,,,,,,,,,,,,,,,,[,,"11[02389]",,,,"110",,,[3]],,[,,"1(?:1[02389]|40\\d\\d|50264)|71400|89887",,,,"110"],[,,,,,,,,,[-1]],[,,"(?:714|898)\\d\\d",,,,"71400",,,[5]],,[,,"714\\d\\d",,,,"71400",,,[5]]],IE:[,[,,"[159]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|6\\d{3})|999",,,,"112",,,[3,6]],[,,"5[37]\\d{3}",,,,"53000",,,[5]],,,,"IE",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"11(?:2|6(?:00[06]|1(?:1[17]|23)))|999|(?:1(?:18|9)|5[0137]\\d)\\d\\d",,,,"112"],[,,"51\\d{3}",,,,"51000",,,[5]],[,,"51210",,,,"51210",,,[5]],,[,,"51210|(?:118|5[037]\\d)\\d\\d",,,,"11800",,,[5]]],IL:[,[,,"[12]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:0[0-2]|12)",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"IL",,,,,,,,,,,,,,,,,,[,,"1(?:0[0-2]|12)",,,,"100",,,[3]],,[,,"1(?:0[0-2]|1(?:[013-9]\\d|2)|[2-9]\\d\\d)|2407|(?:104|27)00",,,,"100"],[,,,,,,,,,[-1]],[,,"104\\d\\d",,,,"10400",,,[5]],,[,,"104\\d\\d",,,,"10400",,,[5]]],IM:[,[,,"[189]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"999",,,,"999",,,[3]],[,,,,,,,,,[-1]],,,,"IM",,,,,,,,,,,,,,,,,,[,,"999",,,,"999",,,[3]],,[,,"1\\d\\d(?:\\d{3})?|8(?:6444|9887)|999",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"8(?:64|98)\\d\\d",,,,"86400",,,[5]]],IN:[,[,,"[12578]\\d{2,8}",,,,,,,[3,4,5,6,7,8,9]],,,[,,"1(?:0[0-248]|1[289]|21|[39][89]|4[01]|6(?:1|6\\d?)|8[12])|777|800|1[05]5\\d|1(?:07|51|94)\\d\\d?|(?:1(?:[05]5\\d|70)\\d|261)\\d|1(?:0[369]|10|29|3[126]|9[0-256])\\d",,,,"100",,,[3,4,5,6]],[,,"11[67]\\d{4}|56161561",,,,"1160000",,,[7,8]],,,,"IN",,,,,,,,,,,,,,,,,,[,,"1(?:0[0-28]|12|298)|2611",,,,"100",,,[3,4]],,[,,"1(?:0(?:[0-248]|3[39]|5(?:010|6)|6[3468]|7(?:[01357]|[28]0?|4[01])|9[0135-9])|1(?:00|[289])|2(?:1|98)|3(?:11|2[0-2]|63|[89])|4[01]|5(?:1(?:0[0-36]|[127])|54)|6(?:1|6[01]?)|7000|8[12]|9(?:0[013-59]|12|25|4[4-9]\\d?|50|6[1347]|[89]))|2611|5(?:0(?:0(?:0\\d|1|20?)|325|5[2-79]\\d{3,5})|1(?:234|555|717|818|96[49])|2(?:0(?:0[01]|[14]0)|151|555|666|888|9(?:06|99\\d?))|3(?:0[01]0|131|553|(?:66|77)6)|(?:464|55[05])\\d{1,3}|6(?:070|3[68]|43)|717\\d)|777|800|5(?:05(?:0|1\\d)|221|3(?:03|3[23]))\\d{1,4}|5(?:(?:04|88)0|2(?:2[0267]|3[16])|4(?:1[04]|20|3[02])|5(?:3[16]|67)|6(?:06|[67]\\d)|787|9(?:64|90))\\d\\d?|(?:1(?:05[79]|(?:1[67][0-2]|802)\\d|55[23])\\d|5(?:(?:00(?:0\\d|1)|(?:304|616)\\d\\d)\\d|1(?:0[12]|4[2-4])|2(?:2[3589]|3(?:1\\d{3}|2)|4[04]|7[78])|4(?:[02]4|32\\d{4}|4[04]|99)|5(?:1[25]|[36]5|4[45]|93)|7(?:(?:17\\d|57)\\d\\d|[27]7|88)|8(?:3[4-69]|4[01]|5[58]|88(?:8\\d\\d|9)|99)|9(?:0(?:0|2\\d{3})|55|6[67]|77|88)))\\d",,,,"100"],[,,"5(?:14(?:2[5-9]|[34]\\d)|757555)",,,,"51425",,,[5,7]],[,,"1(?:(?:1[67]\\d\\d|70)\\d\\d|55330|909)|5(?:300\\d|6161(?:17[89]|561))|1(?:[19][89]|21|4[01])",,,,"118",,,[3,4,5,6,7,8]],,[,,"1(?:39|90[019])|5(?:14(?:2[5-9]|[34]\\d)|6161(?:17[89]|561)|757555)",,,,"139",,,[3,4,5,7,8]]],IQ:[,[,,"[1479]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:0[04]|15|22)",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"IQ",,,,,,,,,,,,,,,,,,[,,"1(?:0[04]|15|22)",,,,"100",,,[3]],,[,,"1(?:0[04]|15|22)|4432|71117|9988",,,,"100"],[,,,,,,,,,[-1]],[,,"(?:443|711\\d|998)\\d",,,,"4430",,,[4,5]],,[,,"(?:443|711\\d|998)\\d",,,,"4430",,,[4,5]]],IR:[,[,,"[129]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1[0-68]|2[0-59]|9[0-579])|911",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"IR",,,,,,,,,,,,,,,,,,[,,"1(?:1[025]|25)|911",,,,"110",,,[3]],,[,,"1(?:1[0-68]|2[0-59]|3[346-8]|4(?:[0147]|[289]0)|5(?:0[14]|1[02479]|2[0-3]|39|[49]0|65)|6(?:[16]6|[27]|90)|8(?:03|1[18]|22|3[37]|4[28]|88|99)|9[0-579])|20(?:[09]0|1(?:[038]|1[079]|26|9[69])|2[01])|9(?:11|9(?:0009|90))",,,,"110"],[,,"1(?:5[0-469]|8[0-489])\\d",,,,"1500",,,[4]],[,,"(?:1(?:5[0-469]|8[0-489])|99(?:0\\d\\d|9))\\d",,,,"1500",,,[4,6]],,[,,"990\\d{3}",,,,"990000",,,[6]]],IS:[,[,,"1\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"1(?:12|71\\d)",,,,"112",,,[3,4]],[,,,,,,,,,[-1]],,,,"IS",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"1(?:1(?:[28]|61(?:16|23))|4(?:00|1[145]|4[0146])|55|7(?:00|17|7[07-9])|8(?:[02]0|1[16-9]|88)|900)",,,,"112"],[,,,,,,,,,[-1]],[,,"14(?:0\\d|41)",,,,"1400",,,[4]],,[,,"1(?:415|90\\d)",,,,"1415",,,[4]]],IT:[,[,,"[14]\\d{2,6}",,,,,,,[3,4,5,6,7]],,,[,,"1(?:1(?:[2358]|6\\d{3})|87)",,,,"112",,,[3,6]],[,,"(?:12|4(?:[478](?:[0-4]|[5-9]\\d\\d)|55))\\d\\d",,,,"1200",,,[4,5,7]],,,,"IT",,,,,,,,,,,,,,,,,,[,,"11[2358]",,,,"112",,,[3]],,[,,"1(?:0\\d{2,3}|1(?:[2-57-9]|6(?:000|111))|3[39]|4(?:82|9\\d{1,3})|5(?:00|1[58]|2[25]|3[03]|44|[59])|60|8[67]|9(?:[01]|2[2-9]|4\\d|696))|4(?:2323|5045)|(?:1(?:2|92[01])|4(?:3(?:[01]|[45]\\d\\d)|[478](?:[0-4]|[5-9]\\d\\d)|55))\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"4(?:3(?:[01]|[45]\\d\\d)|[478](?:[0-4]|[5-9]\\d\\d)|5[05])\\d\\d",,,,"43000",,,[5,7]]],JE:[,[,,"[129]\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"112|999",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"JE",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"1(?:00|1(?:2|8\\d{3})|23|4(?:[14]|28|7\\d)|5\\d|7(?:0[12]|[128]|35?)|808|9[0135])|23[2-4]|999",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],JM:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"11[029]|9(?:11|88)",,,,"110"],[,,,,,,,,,[-1]],,,,"JM",,,,,,,,,,,,,,,,,,[,,"11[029]|911",,,,"110"],,[,,"1(?:1[029]|76)|9(?:11|88)",,,,"110"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],JO:[,[,,"[19]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:0[235]|1[2-6]|9[127])|911",,,,"102",,,[3]],[,,"9[0-4689]\\d{3}",,,,"90000",,,[5]],,,,"JO",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[127])|911",,,,"112",,,[3]],,[,,"1(?:0[2359]|1[0-68]|9[0-24-79])|9[0-4689]\\d{3}|911",,,,"102"],[,,,,,,,,,[-1]],[,,"9[0-4689]\\d{3}",,,,"90000",,,[5]],,[,,"9[0-4689]\\d{3}",,,,"90000",,,[5]]],JP:[,[,,"[01]\\d\\d(?:\\d{7})?",,,,,,,[3,10]],,,[,,"11[089]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"JP",,,,,,,,,,,,,,,,,,[,,"11[09]",,,,"110",,,[3]],,[,,"000[259]\\d{6}|1(?:0[24]|1[089]|44|89)",,,,"102"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"000[259]\\d{6}",,,,"0002000000",,,[10]]],KE:[,[,,"[1-9]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:1(?:[246]|9\\d)|5(?:01|2[127]|6[26]\\d))|999",,,,"112"],[,,"909\\d\\d",,,,"90900",,,[5]],,,,"KE",,,,,,,,,,,,,,,,,,[,,"11[24]|999",,,,"112",,,[3]],,[,,"1(?:0(?:[07-9]|1[0-25]|400)|1(?:[024-6]|9[0-579])|2[1-3]|3[01]|4[14]|5(?:[01][01]|2[0-24-79]|33|4[05]|5[59]|6(?:00|29|6[67]))|(?:6[035]\\d|[78])\\d|9(?:[02-9]\\d\\d|19))|(?:(?:2[0-79]|[37][0-29]|4[0-4]|6[2357]|8\\d)\\d|5(?:[0-7]\\d|99))\\d\\d|9(?:09\\d\\d|99)|8988",,,,"100"],[,,,,,,,,,[-1]],[,,"1(?:(?:04|6[35])\\d\\d|3[01]|4[14]|5(?:1\\d|2[25]))|(?:(?:2[0-79]|[37][0-29]|4[0-4]|6[2357]|8\\d)\\d|5(?:[0-7]\\d|99)|909)\\d\\d|898\\d",,,,"130"],,[,,"1(?:(?:04|6[035])\\d\\d|4[14]|5(?:01|55|6[26]\\d))|40404|8988|909\\d\\d",,,,"141"]],KG:[,[,,"[14]\\d{2,3}",,,,,,,[3,4]],,,[,,"10[1-3]",,,,"101",,,[3]],[,,,,,,,,,[-1]],,,,"KG",,,,,,,,,,,,,,,,,,[,,"10[1-3]",,,,"101",,,[3]],,[,,"10[1-3]|4040",,,,"101"],[,,,,,,,,,[-1]],[,,"404\\d",,,,"4040",,,[4]],,[,,"404\\d",,,,"4040",,,[4]]],KH:[,[,,"[146]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[7-9]|666",,,,"117",,,[3]],[,,,,,,,,,[-1]],,,,"KH",,,,,,,,,,,,,,,,,,[,,"11[7-9]|666",,,,"117",,,[3]],,[,,"11[7-9]|40404|666",,,,"117"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],KI:[,[,,"[179]\\d{2,3}",,,,,,,[3,4]],,,[,,"19[2-5]|99[2-4]",,,,"192",,,[3]],[,,,,,,,,,[-1]],,,,"KI",,,,,,,,,,,,,,,,,,[,,"19[2-5]|99[2-4]",,,,"192",,,[3]],,[,,"1(?:05[0-259]|88|9[2-5])|777|99[2-4]|10[0-8]",,,,"100"],[,,"103",,,,"103",,,[3]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KM:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"KM",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KN:[,[,,"[39]\\d\\d",,,,,,,[3]],,,[,,"333|9(?:11|88|99)",,,,"333"],[,,,,,,,,,[-1]],,,,"KN",,,,,,,,,,,,,,,,,,[,,"333|9(?:11|99)",,,,"333"],,[,,"333|9(?:11|88|99)",,,,"333"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KP:[,[,,"[18]\\d\\d",,,,,,,[3]],,,[,,"11[29]|819",,,,"112"],[,,,,,,,,,[-1]],,,,"KP",,,,,,,,,,,,,,,,,,[,,"11[29]|819",,,,"112"],,[,,"11[29]|819",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KR:[,[,,"1\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:1[27-9]|28|330|82)",,,,"112",,,[3,4]],[,,,,,,,,,[-1]],,,,"KR",,,,,,,,,,,,,,,,,,[,,"11[29]",,,,"112",,,[3]],,[,,"1(?:[016-9]114|3(?:0[01]|2|3[0-35-9]|45?|5[057]|6[569]|7[79]|8[2589]|9[0189]))|1(?:0[015]|1\\d|2[01357-9]|41|8[28])",,,,"100"],[,,,,,,,,,[-1]],[,,"1(?:0[01]|1[4-6]|41)|1(?:[06-9]1\\d|111)\\d",,,,"100",,,[3,5]],,[,,,,,,,,,[-1]]],KW:[,[,,"[18]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"112",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"KW",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"1[0-7]\\d|89887",,,,"100"],[,,,,,,,,,[-1]],[,,"898\\d\\d",,,,"89800",,,[5]],,[,,,,,,,,,[-1]]],KY:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"KY",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KZ:[,[,,"[1-4]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:0[1-3]|12)|212\\d",,,,"101",,,[3,4]],[,,,,,,,,,[-1]],,,,"KZ",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],,[,,"1(?:0[1-4]|12)|2121|(?:3040|404)0",,,,"101"],[,,,,,,,,,[-1]],[,,"(?:304\\d|404)\\d",,,,"4040",,,[4,5]],,[,,"(?:304\\d|404)\\d",,,,"4040",,,[4,5]]],LA:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"19[015]",,,,"190"],[,,,,,,,,,[-1]],,,,"LA",,,,,,,,,,,,,,,,,,[,,"19[015]",,,,"190"],,[,,"19[015]",,,,"190"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LB:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"1(?:12|40|75)|999",,,,"112"],[,,,,,,,,,[-1]],,,,"LB",,,,,,,,,,,,,,,,,,[,,"1(?:12|40|75)|999",,,,"112"],,[,,"1(?:12|40|75)|999",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"LC",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LI:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[278]|44)",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"LI",,,,,,,,,,,,,,,,,,[,,"1(?:1[278]|44)",,,,"112",,,[3]],,[,,"1(?:1(?:[278]|45)|4[3-57]|50|75|81[18])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LK:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"11[02689]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"LK",,,,,,,,,,,,,,,,,,[,,"11[02689]",,,,"110",,,[3]],,[,,"1(?:1[024-9]|3(?:00|1[2-49]|2[23]|3[1-3]|44|5[07]|[67]9|88|9[039])|9(?:0[0-2589]|1[0-357-9]|2[0-25689]|3[0389]|4[0489]|5[014-69]|6[0-2689]|7[03579]|8[02457-9]|9[0-2569]))",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LR:[,[,,"[3489]\\d{2,3}",,,,,,,[3,4]],,,[,,"355|911",,,,"355",,,[3]],[,,,,,,,,,[-1]],,,,"LR",,,,,,,,,,,,,,,,,,[,,"355|911",,,,"355",,,[3]],,[,,"355|4040|8(?:400|933)|911",,,,"355"],[,,,,,,,,,[-1]],[,,"(?:404|8(?:40|93))\\d",,,,"4040",,,[4]],,[,,"(?:404|8(?:40|93))\\d",,,,"4040",,,[4]]],LS:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[257]",,,,"112"],[,,,,,,,,,[-1]],,,,"LS",,,,,,,,,,,,,,,,,,[,,"11[257]",,,,"112"],,[,,"11[257]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LT:[,[,,"[01]\\d(?:\\d(?:\\d{3})?)?",,,,,,,[2,3,6]],,,[,,"0(?:11?|22?|33?)|1(?:0[1-3]|1(?:2|6111))|116(?:0\\d|12)\\d",,,,"01"],[,,,,,,,,,[-1]],,,,"LT",,,,,,,,,,,,,,,,,,[,,"0(?:11?|22?|33?)|1(?:0[1-3]|12)",,,,"01",,,[2,3]],,[,,"0(?:11?|22?|33?)|1(?:0[1-3]|1(?:[27-9]|6(?:000|1(?:1[17]|23))))",,,,"01"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LU:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:[23]|6\\d{3})",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"LU",,,,,,,,,,,,,,,,,,[,,"11[23]",,,,"112",,,[3]],,[,,"11(?:[23]|6(?:000|111))|1(?:18|[25]\\d|3)\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LV:[,[,,"[018]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"0[1-3]|11(?:[023]|6\\d{3})",,,,"01",,,[2,3,6]],[,,"1180|821\\d\\d",,,,"1180",,,[4,5]],,,,"LV",,,,,,,,,,,,,,,,,,[,,"0[1-3]|11[023]",,,,"01",,,[2,3]],,[,,"0[1-4]|1(?:1(?:[02-4]|6(?:000|111)|8[0189])|(?:5|65)5|77)|821[57]4",,,,"01"],[,,"1181",,,,"1181",,,[4]],[,,"165\\d",,,,"1650",,,[4]],,[,,,,,,,,,[-1]]],LY:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"19[013]",,,,"190"],[,,,,,,,,,[-1]],,,,"LY",,,,,,,,,,,,,,,,,,[,,"19[013]",,,,"190"],,[,,"19[013]",,,,"190"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MA:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:[59]|77)",,,,"15"],[,,,,,,,,,[-1]],,,,"MA",,,,,,,,,,,,,,,,,,[,,"1(?:[59]|77)",,,,"15"],,[,,"1(?:[59]|77)",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MC:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:12|[578])",,,,"15"],[,,,,,,,,,[-1]],,,,"MC",,,,,,,,,,,,,,,,,,[,,"1(?:12|[578])",,,,"15"],,[,,"1(?:12|41|[578])",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MD:[,[,,"[19]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|6(?:000|1(?:11|2\\d)))|90[1-3]",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"MD",,,,,,,,,,,,,,,,,,[,,"112|90[1-3]",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:00[06]|1(?:1[17]|23))|8\\d\\d?|99)|90[04-9])|90[1-3]|1(?:4\\d\\d|6[0-389]|9[1-4])\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ME:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:12|2[2-4])",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"ME",,,,,,,,,,,,,,,,,,[,,"1(?:12|2[2-4])",,,,"112",,,[3]],,[,,"1(?:1(?:(?:[013-57-9]|6\\d\\d)\\d|2)|[249]\\d{3}|5999|8(?:0[089]|1[0-8]|888))|1(?:[02-5]\\d\\d|60[06]|700)|12\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"MF",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MG:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:1[78]|[78])",,,,"17"],[,,,,,,,,,[-1]],,,,"MG",,,,,,,,,,,,,,,,,,[,,"1(?:1[78]|[78])",,,,"17"],,[,,"1(?:1[78]|[78])",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MH:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"MH",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MK:[,[,,"1\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"1(?:1(?:2|6\\d{3})|9[2-4])",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"MK",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[2-4])",,,,"112",,,[3]],,[,,"1(?:1(?:2|8\\d)|3\\d|9[2-4])|1(?:16|2\\d)\\d{3}",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ML:[,[,,"[136-8]\\d{1,4}",,,,,,,[2,3,4,5]],,,[,,"1[578]|(?:352|67)00|7402|(?:677|744|8000)\\d",,,,"15",,,[2,4,5]],[,,"(?:12|800)2\\d|3(?:52(?:11|2[02]|3[04-6]|99)|7574)",,,,"1220",,,[4,5]],,,,"ML",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15",,,[2]],,[,,"1(?:1(?:[013-9]\\d|2)|2(?:1[02-469]|2[13])|[578])|350(?:35|57)|67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)|800[0-2][12]|3(?:52|[67]\\d)\\d\\d",,,,"15"],[,,"37(?:433|575)|7400|8001\\d",,,,"7400",,,[4,5]],[,,"3503\\d|(?:3[67]\\d|800)\\d\\d",,,,"35030",,,[5]],,[,,"374(?:0[24-9]|[1-9]\\d)|7400|3(?:6\\d|75)\\d\\d",,,,"7400",,,[4,5]]],MM:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"199",,,,"199"],[,,,,,,,,,[-1]],,,,"MM",,,,,,,,,,,,,,,,,,[,,"199",,,,"199"],,[,,"199",,,,"199"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MN:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"10[0-35]",,,,"100"],[,,,,,,,,,[-1]],,,,"MN",,,,,,,,,,,,,,,,,,[,,"10[0-35]",,,,"100"],,[,,"10[0-35]",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MO:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"MO",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MP:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"MP",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MQ:[,[,,"[13]\\d(?:\\d(?:\\d(?:\\d{2})?)?)?",,,,,,,[2,3,4,6]],,,[,,"1(?:12|[578])|3[01]\\d\\d",,,,"15",,,[2,3,4]],[,,"3[2469]\\d\\d",,,,"3200",,,[4]],,,,"MQ",,,,,,,,,,,,,,,,,,[,,"1(?:12|[578])",,,,"15",,,[2,3]],,[,,"1(?:12|[578])|(?:118[02-9]|3[0-2469])\\d\\d",,,,"15"],[,,"118\\d{3}",,,,"118000",,,[6]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MR:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"MR",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MS:[,[,,"[29]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"MS",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"211|9(?:11|88|99)",,,,"211"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MT:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"11(?:2|6\\d{3})",,,,"112"],[,,,,,,,,,[-1]],,,,"MT",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"11(?:2|6(?:000|1(?:11|23)))",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MU:[,[,,"[189]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"11[45]|99[59]",,,,"114",,,[3]],[,,,,,,,,,[-1]],,,,"MU",,,,,,,,,,,,,,,,,,[,,"11[45]|99[59]",,,,"114",,,[3]],,[,,"1\\d{2,4}|(?:8\\d\\d|99)\\d",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MV:[,[,,"[14]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:02|1[89])",,,,"102",,,[3]],[,,,,,,,,,[-1]],,,,"MV",,,,,,,,,,,,,,,,,,[,,"1(?:02|1[89])",,,,"102",,,[3]],,[,,"1(?:[0-37-9]|[4-6]\\d)\\d|4040|1[45]1",,,,"100"],[,,,,,,,,,[-1]],[,,"1[45]1",,,,"141",,,[3]],,[,,,,,,,,,[-1]]],MW:[,[,,"[189]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"199|99[7-9]",,,,"199",,,[3]],[,,,,,,,,,[-1]],,,,"MW",,,,,,,,,,,,,,,,,,[,,"199|99[7-9]",,,,"199",,,[3]],,[,,"199|80400|99[7-9]",,,,"199"],[,,,,,,,,,[-1]],[,,"804\\d\\d",,,,"80400",,,[5]],,[,,"804\\d\\d",,,,"80400",,,[5]]],MX:[,[,,"[0579]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"0(?:6[0568]|80)|911",,,,"060",,,[3]],[,,"(?:530\\d|776)\\d",,,,"7760",,,[4,5]],,,,"MX",,,,,,,,,,,,,,,,,,[,,"0(?:6[0568]|80)|911",,,,"060",,,[3]],,[,,"0[1-9]\\d|53053|7766|911",,,,"010"],[,,,,,,,,,[-1]],[,,"0(?:[249]0|[35][01])",,,,"020",,,[3]],,[,,,,,,,,,[-1]]],MY:[,[,,"[1369]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"112|999",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"MY",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"1(?:0[01348]|1(?:[02]|1[128]|311)|2(?:0[125]|[13-6]|2\\d{0,2})|(?:3[1-35-79]|7[45])\\d\\d?|5(?:454|5\\d\\d?|77|888|999?)|8(?:18?|2|8[18])|9(?:[124]\\d?|68|71|9[0679]))|66628|99[1-469]|13[5-7]|(?:1(?:0[569]|309|5[12]|7[136-9]|9[03])|3[23679]\\d\\d)\\d",,,,"100"],[,,"666\\d\\d",,,,"66600",,,[5]],[,,,,,,,,,[-1]],,[,,"(?:3[23679]\\d|666)\\d\\d",,,,"32000",,,[5]]],MZ:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[79]|9[78])",,,,"117",,,[3]],[,,,,,,,,,[-1]],,,,"MZ",,,,,,,,,,,,,,,,,,[,,"1(?:1[79]|9[78])",,,,"117",,,[3]],,[,,"1(?:[02-5]\\d\\d|1[79]|9[78])",,,,"117"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NA:[,[,,"[19]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"10111",,,,"10111",,,[5]],[,,,,,,,,,[-1]],,,,"NA",,,,,,,,,,,,,,,,,,[,,"10111",,,,"10111",,,[5]],,[,,"(?:10|93)111|(?:1\\d|9)\\d\\d",,,,"900"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NC:[,[,,"[135]\\d{1,3}",,,,,,,[2,3,4]],,,[,,"1(?:0(?:00|1[23]|3[0-2]|8\\d)|[5-8])|363\\d|577",,,,"15"],[,,,,,,,,,[-1]],,,,"NC",,,,,,,,,,,,,,,,,,[,,"1[5-8]",,,,"15",,,[2]],,[,,"1(?:0(?:0[06]|1[02-46]|20|3[0-25]|42|5[058]|77|88)|[5-8])|3631|5[6-8]\\d",,,,"15"],[,,"5(?:67|88)",,,,"567",,,[3]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NE:[,[,,"[1-3578]\\d(?:\\d(?:\\d{3})?)?",,,,,,,[2,3,6]],,,[,,"1(?:18|[578])|723\\d{3}",,,,"15"],[,,,,,,,,,[-1]],,,,"NE",,,,,,,,,,,,,,,,,,[,,"1(?:18|[578])|723141",,,,"15"],,[,,"1(?:0[01]|1[128]|2[034]|3[013]|[46]0|55?|[78])|222|333|555|723141|888",,,,"15"],[,,,,,,,,,[-1]],[,,"1(?:0[01]|1[12]|2[034]|3[013]|[46]0|55)|222|333|555|888",,,,"100",,,[3]],,[,,,,,,,,,[-1]]],NF:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|55|77)",,,,"911"],[,,,,,,,,,[-1]],,,,"NF",,,,,,,,,,,,,,,,,,[,,"9(?:11|55|77)",,,,"911"],,[,,"9(?:11|55|77)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NG:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"199",,,,"199",,,[3]],[,,,,,,,,,[-1]],,,,"NG",,,,,,,,,,,,,,,,,,[,,"199",,,,"199",,,[3]],,[,,"199|40700",,,,"199"],[,,,,,,,,,[-1]],[,,"407\\d\\d",,,,"40700",,,[5]],,[,,"407\\d\\d",,,,"40700",,,[5]]],NI:[,[,,"[12467]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[58]|2[08])|737\\d",,,,"115"],[,,,,,,,,,[-1]],,,,"NI",,,,,,,,,,,,,,,,,,[,,"1(?:1[58]|2[08])",,,,"115",,,[3]],,[,,"1(?:1[58]|200)|4878|7(?:010|373)|12[0158]|(?:19|[267]1)00",,,,"115"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NL:[,[,,"[1349]\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"11(?:2|6\\d{3})|911",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"NL",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:00[06]|1(?:11|23)))|2(?:0[0-4]|3[34]|44)|3[03-9]\\d|400|8(?:[02-9]\\d|1[0-79]))|[34]000|911",,,,"112"],[,,,,,,,,,[-1]],[,,"120\\d",,,,"1200",,,[4]],,[,,"[34]00\\d",,,,"3000",,,[4]]],NO:[,[,,"[01]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:[023]|6\\d{3})",,,,"110",,,[3,6]],[,,,,,,,,,[-1]],,,,"NO",,,,,,,,,,,,,,,,,,[,,"11[023]",,,,"110",,,[3]],,[,,"04\\d{3}|1(?:1(?:[0239]|61(?:1[17]|23))|2[048]|4(?:12|[59])|7[57]|8
15672[5-9]
vendor: 21,547 bytes, line 15672
15672\\d|90)",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"04\\d{3}",,,,"04000",,,[5]]],NP:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:0[0-36]|12)|1(?:09|11)\\d",,,,"100"],[,,,,,,,,,[-1]],,,,"NP",,,,,,,,,,,,,,,,,,[,,"1(?:0[0-3]|12)",,,,"100",,,[3]],,[,,"1(?:0(?:[0-36]|98)|1(?:1[1-4]|2))",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NR:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[0-2]",,,,"110"],[,,,,,,,,,[-1]],,,,"NR",,,,,,,,,,,,,,,,,,[,,"11[0-2]",,,,"110"],,[,,"1(?:1[0-2]|23|92)",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NU:[,[,,"[019]\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"NU",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"01[05]|101|999",,,,"010"],[,,,,,,,,,[-1]],[,,"010",,,,"010"],,[,,,,,,,,,[-1]]],NZ:[,[,,"\\d{3,4}",,,,,,,[3,4]],,,[,,"111",,,,"111",,,[3]],[,,"018",,,,"018",,,[3]],,,,"NZ",,,,,,,,,,,,,,,,,,[,,"111",,,,"111",,,[3]],,[,,"018|1(?:(?:1|37)1|(?:23|94)4|7[03]7)|[2-57-9]\\d{2,3}|6(?:161|26[0-3]|742)",,,,"018"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"018|(?:1(?:23|37|7[03]|94)|6(?:[12]6|74))\\d|[2-57-9]\\d{2,3}",,,,"018"]],OM:[,[,,"[19]\\d{3}",,,,,,,[4]],,,[,,"1444|999\\d",,,,"1444"],[,,,,,,,,,[-1]],,,,"OM",,,,,,,,,,,,,,,,,,[,,"1444|9999",,,,"1444"],,[,,"1(?:111|222|4(?:4[0-5]|50|66|7[7-9])|51[0-8])|9999|1(?:2[3-5]|3[0-2]|50)\\d",,,,"1111"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PA:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"PA",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"10[2-4]|911",,,,"102"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PE:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:05|1[67])",,,,"105"],[,,,,,,,,,[-1]],,,,"PE",,,,,,,,,,,,,,,,,,[,,"1(?:05|1[67])",,,,"105"],,[,,"1(?:05|1[67])",,,,"105"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"PF",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PG:[,[,,"[01]\\d{2,6}",,,,,,,[3,4,5,6,7]],,,[,,"000|11[01]",,,,"000",,,[3]],[,,,,,,,,,[-1]],,,,"PG",,,,,,,,,,,,,,,,,,[,,"000|11[01]",,,,"000",,,[3]],,[,,"000|1(?:1[01]|5\\d\\d|6\\d{2,5})",,,,"000"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"16\\d{2,5}",,,,"1600",,,[4,5,6,7]]],PH:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"11[27]|911",,,,"112"],[,,,,,,,,,[-1]],,,,"PH",,,,,,,,,,,,,,,,,,[,,"11[27]|911",,,,"112"],,[,,"11[27]|911",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PK:[,[,,"1\\d{1,3}",,,,,,,[2,3,4]],,,[,,"1(?:1(?:2\\d?|5)|[56])",,,,"15"],[,,,,,,,,,[-1]],,,,"PK",,,,,,,,,,,,,,,,,,[,,"1(?:1(?:22?|5)|[56])",,,,"15"],,[,,"1(?:122|3[014]|[56])|11[2457-9]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PL:[,[,,"[19]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"11(?:2|6\\d{3})|99[7-9]",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"PL",,,,,,,,,,,,,,,,,,[,,"112|99[7-9]",,,,"112",,,[3]],,[,,"1(?:1(?:2|61(?:11|23)|891[23])|9\\d{3})|9(?:8[4-7]|9[1-9])|11[68]000",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PM:[,[,,"[13]\\d(?:\\d\\d(?:\\d{2})?)?",,,,,,,[2,4,6]],,,[,,"1[578]|3(?:0\\d|1[689])\\d",,,,"15",,,[2,4]],[,,"3[2469]\\d\\d",,,,"3200",,,[4]],,,,"PM",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15",,,[2]],,[,,"1[578]|31(?:03|[689]\\d)|(?:118[02-9]|3[02469])\\d\\d",,,,"15"],[,,"118\\d{3}",,,,"118000",,,[6]],[,,"310\\d",,,,"3100",,,[4]],,[,,,,,,,,,[-1]]],PR:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"PR",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PS:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:0[0-2]|66)",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"PS",,,,,,,,,,,,,,,,,,[,,"10[0-2]",,,,"100",,,[3]],,[,,"1(?:0[0-2]|122|44|66|99)",,,,"100"],[,,,,,,,,,[-1]],[,,"112\\d",,,,"1120",,,[4]],,[,,,,,,,,,[-1]]],PT:[,[,,"1\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"11[257]|1(?:16\\d\\d|5[1589]|8[279])\\d",,,,"112"],[,,,,,,,,,[-1]],,,,"PT",,,,,,,,,,,,,,,,,,[,,"11[25]",,,,"112",,,[3]],,[,,"1(?:0(?:45|5[01])|1(?:[2578]|600[06])|4(?:1[45]|4)|583|6(?:1[0236]|3[02]|9[169]))|1(?:1611|59)1|1[068]78|1[08]9[16]|1(?:0[1-38]|40|5[15]|6[258]|82)0",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PW:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"PW",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PY:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"128|911",,,,"128"],[,,,,,,,,,[-1]],,,,"PY",,,,,,,,,,,,,,,,,,[,,"128|911",,,,"128"],,[,,"1[1-9]\\d|911",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],QA:[,[,,"[129]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"99\\d",,,,"990",,,[3]],[,,"900",,,,"900",,,[3]],,,,"QA",,,,,,,,,,,,,,,,,,[,,"999",,,,"999",,,[3]],,[,,"9(?:00|[19]\\d)|(?:1|20|9[27]\\d)\\d\\d",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],RE:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:12|[578])",,,,"15"],[,,,,,,,,,[-1]],,,,"RE",,,,,,,,,,,,,,,,,,[,,"1(?:12|[578])",,,,"15"],,[,,"1(?:12|[578])",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],RO:[,[,,"[18]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|6\\d{3})",,,,"112",,,[3,6]],[,,"(?:1(?:18[39]|[24])|8[48])\\d\\d",,,,"1200",,,[4,6]],,,,"RO",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:000|1(?:11|23))|8(?:(?:01|8[18])1|119|[23]00|932))|[24]\\d\\d|9(?:0(?:00|19)|1[19]|21|3[02]|5[178]))|8[48]\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"(?:1[24]|8[48])\\d\\d",,,,"1200",,,[4]]],RS:[,[,,"[19]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"112|9[2-4]",,,,"92",,,[2,3]],[,,,,,,,,,[-1]],,,,"RS",,,,,,,,,,,,,,,,,,[,,"112|9[2-4]",,,,"92",,,[2,3]],,[,,"1[189]\\d{1,4}|9[2-4]",,,,"92"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],RU:[,[,,"[01]\\d\\d?",,,,,,,[2,3]],,,[,,"112|(?:0|10)[1-3]",,,,"01"],[,,,,,,,,,[-1]],,,,"RU",,,,,,,,,,,,,,,,,,[,,"112|(?:0|10)[1-3]",,,,"01"],,[,,"112|(?:0|10)[1-4]",,,,"01"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],RW:[,[,,"[14]\\d\\d",,,,,,,[3]],,,[,,"11[1245]",,,,"111"],[,,,,,,,,,[-1]],,,,"RW",,,,,,,,,,,,,,,,,,[,,"11[12]",,,,"111"],,[,,"1(?:0[0-2]|1[0-24-6]|2[13]|70|99)|456",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SA:[,[,,"[19]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|6\\d{3})|9(?:11|37|9[7-9])",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"SA",,,,,,,,,,,,,,,,,,[,,"112|9(?:11|9[79])",,,,"112",,,[3]],,[,,"1(?:1(?:00|2|6111)|410|9(?:00|1[89]|9(?:099|22|9[0-3])))|9(?:0[24-79]|11|3[379]|40|66|8[5-9]|9[02-9])",,,,"112"],[,,"141\\d",,,,"1410",,,[4]],[,,"1(?:10|41)\\d|90[24679]",,,,"902",,,[3,4]],,[,,,,,,,,,[-1]]],SB:[,[,,"[127-9]\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"SB",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"1(?:[02]\\d|1[12]|[35][01]|[49][1-9]|6[2-9]|7[7-9]|8[0-8])|269|777|835|9(?:[01]1|22|33|55|77|88|99)",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SC:[,[,,"[19]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[1468]|60)|999",,,,"111",,,[3]],[,,,,,,,,,[-1]],,,,"SC",,,,,,,,,,,,,,,,,,[,,"999",,,,"999",,,[3]],,[,,"1(?:[06]\\d|1[0-246-8]|2[0-8]|3[13]|4[0-2]|5[15]|7[124-6]|8[158]|9[015])|9(?:6\\d\\d|99)",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SD:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"SD",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SE:[,[,,"[1-37-9]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|(?:3|6\\d)\\d\\d|414|77)|900\\d\\d",,,,"112"],[,,"11811[89]|72\\d{3}",,,,"72000",,,[5,6]],,,,"SE",,,,,,,,,,,,,,,,,,[,,"112|90000",,,,"112",,,[3,5]],,[,,"11(?:[25]|313|6(?:00[06]|1(?:1[17]|23))|7[0-8])|2(?:2[02358]|33|4[01]|50|6[1-4])|32[13]|8(?:22|88)|9(?:0(?:00|51)0|12)|(?:11(?:4|8[02-46-9])|7\\d\\d|90[2-4])\\d\\d|(?:118|90)1(?:[02-9]\\d|1[013-9])",,,,"112"],[,,,,,,,,,[-1]],[,,"2(?:2[02358]|33|4[01]|50|6[1-4])|32[13]|8(?:22|88)|912",,,,"220",,,[3]],,[,,"7\\d{4}",,,,"70000",,,[5]]],SG:[,[,,"[179]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"99[359]",,,,"993",,,[3]],[,,,,,,,,,[-1]],,,,"SG",,,,,,,,,,,,,,,,,,[,,"99[359]",,,,"993",,,[3]],,[,,"1(?:(?:[01368]\\d|44)\\d|[57]\\d{2,3}|9(?:0[1-9]|[1-9]\\d))|77222|99[02-9]|100",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"772\\d\\d",,,,"77200",,,[5]]],SH:[,[,,"[129]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"9(?:11|99)",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"SH",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911",,,[3]],,[,,"1\\d{2,3}|26[01]\\d\\d|9(?:11|99)",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SI:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:(?:0|6\\d)\\d\\d|[23]|8\\d\\d?)",,,,"112"],[,,,,,,,,,[-1]],,,,"SI",,,,,,,,,,,,,,,,,,[,,"11[23]",,,,"112",,,[3]],,[,,"1(?:1(?:00[146]|[23]|6(?:000|1(?:11|23))|8(?:[08]|99))|9(?:059|1(?:0[12]|16)|5|70|87|9(?:00|[149])))|19(?:08|81)[09]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SJ:[,[,,"[01]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[023]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"SJ",,,,,,,,,,,,,,,,,,[,,"11[023]",,,,"110",,,[3]],,[,,"04\\d{3}|11[023]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"04\\d{3}",,,,"04000",,,[5]]],SK:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:2|6\\d{3})|5[058])",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"SK",,,,,,,,,,,,,,,,,,[,,"1(?:12|5[058])",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:000|111)|8[0-8])|[248]\\d{3}|5[0589])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SL:[,[,,"[069]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"(?:01|99)9",,,,"019",,,[3]],[,,,,,,,,,[-1]],,,,"SL",,,,,,,,,,,,,,,,,,[,,"(?:01|99)9",,,,"019",,,[3]],,[,,"(?:01|99)9|60400",,,,"019"],[,,,,,,,,,[-1]],[,,"604\\d\\d",,,,"60400",,,[5]],,[,,"604\\d\\d",,,,"60400",,,[5]]],SM:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[358]",,,,"113"],[,,,,,,,,,[-1]],,,,"SM",,,,,,,,,,,,,,,,,,[,,"11[358]",,,,"113"],,[,,"11[358]",,,,"113"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SN:[,[,,"[12]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"1(?:515|[78])|2(?:00|1)\\d{3}",,,,"17",,,[2,4,5,6]],[,,"2(?:0[246]|[468])\\d{3}",,,,"24000",,,[5,6]],,,,"SN",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17",,,[2]],,[,,"1(?:1[69]|(?:[246]\\d|51)\\d)|2(?:0[0-246]|[12468])\\d{3}|1[278]",,,,"12"],[,,"2(?:01|2)\\d{3}",,,,"22000",,,[5,6]],[,,"1[46]\\d\\d",,,,"1400",,,[4]],,[,,"2[468]\\d{3}",,,,"24000",,,[5]]],SO:[,[,,"[57-9]\\d\\d",,,,,,,[3]],,,[,,"555|888|999",,,,"555"],[,,,,,,,,,[-1]],,,,"SO",,,,,,,,,,,,,,,,,,[,,"555|888|999",,,,"555"],,[,,"555|777|888|999",,,,"555"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SR:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"115",,,,"115",,,[3]],[,,,,,,,,,[-1]],,,,"SR",,,,,,,,,,,,,,,,,,[,,"115",,,,"115",,,[3]],,[,,"1\\d{2,3}",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SS:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"SS",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ST:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"112",,,,"112"],[,,,,,,,,,[-1]],,,,"ST",,,,,,,,,,,,,,,,,,[,,"112",,,,"112"],,[,,"112",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SV:[,[,,"[149]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"116\\d{3}|911",,,,"911",,,[3,6]],[,,,,,,,,,[-1]],,,,"SV",,,,,,,,,,,,,,,,,,[,,"91[13]",,,,"911",,,[3]],,[,,"1(?:1(?:2|6111)|2[136-8]|3[0-6]|9[05])|40404|9(?:1\\d|29)",,,,"112"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],SX:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:19|88)",,,,"919"],[,,,,,,,,,[-1]],,,,"SX",,,,,,,,,,,,,,,,,,[,,"919",,,,"919"],,[,,"9(?:19|88)",,,,"919"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SY:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[023]",,,,"110"],[,,,,,,,,,[-1]],,,,"SY",,,,,,,,,,,,,,,,,,[,,"11[023]",,,,"110"],,[,,"11[023]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SZ:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"SZ",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"TC",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TD:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"TD",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TG:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[78]|7[127])",,,,"117",,,[3]],[,,,,,,,,,[-1]],,,,"TG",,,,,,,,,,,,,,,,,,[,,"1(?:1[78]|7[127])",,,,"117",,,[3]],,[,,"1(?:011|1[078]|7[127])",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TH:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1(?:00|2[03]|3[3479]|7[67]|9[0246])|578|6(?:44|6[79]|88|9[16])|88\\d|9[19])|1[15]55",,,,"191"],[,,"1(?:113|2[23]\\d|5(?:09|56))",,,,"1113",,,[4]],,,,"TH",,,,,,,,,,,,,,,,,,[,,"1(?:669|9[19])",,,,"191"],,[,,"1(?:0[0-2]|1(?:0[03]|1[1-35]|2[0358]|3[03-79]|4[02-489]|5[04-9]|6[04-79]|7[03-9]|8[027-9]|9[02-9])|2(?:22|3[89]|66)|3(?:18|2[23]|3[013]|5[56]|6[45]|73)|477|5(?:0\\d|4[0-37-9]|5[1-8]|6[01679]|7[12568]|8[0-24589]|9[013589])|6(?:0[0-29]|2[03]|4[3-6]|6[1-9]|7[0257-9]|8[0158]|9[014-9])|7(?:[14]9|7[27]|90)|888|9[19])",,,,"100"],[,,"1(?:1(?:03|1[15]|2[58]|3[056]|4[02-49]|5[046-9]|7[03-589]|9[57-9])|5(?:0[0-8]|4[0-378]|5[1-478]|7[156])|6(?:20|4[356]|6[1-68]|7[057-9]|8[015]|9[0457-9]))|1(?:1[68]|26|3[1-35]|5[689]|60|7[17])\\d",,,,"1103",,,[4]],[,,"114[89]",,,,"1148",,,[4]],,[,,,,,,,,,[-1]]],TJ:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:0[1-3]|12)",,,,"101"],[,,,,,,,,,[-1]],,,,"TJ",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101"],,[,,"1(?:0[1-3]|12)",,,,"101"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TL:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[25]",,,,"112"],[,,,,,,,,,[-1]],,,,"TL",,,,,,,,,,,,,,,,,,[,,"11[25]",,,,"112"],,[,,"1(?:0[02]|1[25]|2[0138]|72|9[07])",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TM:[,[,,"0\\d",,,,,,,[2]],,,[,,"0[1-49]",,,,"01"],[,,,,,,,,,[-1]],,,,"TM",,,,,,,,,,,,,,,,,,[,,"0[1-3]",,,,"01"],,[,,"0[1-49]",,,,"01"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TN:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"19[078]",,,,"190"],[,,,,,,,,,[-1]],,,,"TN",,,,,,,,,,,,,,,,,,[,,"19[078]",,,,"190"],,[,,"19[078]",,,,"190"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TO:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|22|33|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"TO",,,,,,,,,,,,,,,,,,[,,"9(?:11|22|33|99)",,,,"911"],,[,,"9(?:11|22|33|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TR:[,[,,"[1-9]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:1[02]|22|3[126]|4[04]|5[15-9]|6[18]|77|83)",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"TR",,,,,,,,,,,,,,,,,,[,,"1(?:1[02]|55)",,,,"110",,,[3]],,[,,"1(?:1(?:[02-79]|8(?:1[018]|2[0245]|3[2-4]|42|5[058]|6[06]|7[07]|8[01389]|9[089]))|3(?:37|[58]6|65)|471|5(?:07|78)|6(?:[02]6|99)|8(?:63|95))|2(?:077|268|4(?:17|23)|5(?:7[26]|82)|6[14]4|8\\d\\d|9(?:30|89))|3(?:0(?:05|72)|353|4(?:06|30|64)|502|674|747|851|9(?:1[29]|60))|4(?:0(?:25|3[12]|[47]2)|3(?:3[13]|[89]1)|439|5(?:43|55)|717|832)|5(?:145|290|[4-6]\\d\\d|772|833|9(?:[06]1|92))|6(?:236|6(?:12|39|8[59])|769)|7890|8(?:688|7(?:28|65)|85[06])|9(?:159|290)|1[2-9]\\d",,,,"110"],[,,"(?:285|542)0",,,,"2850",,,[4]],[,,,,,,,,,[-1]],,[,,"1(?:3(?:37|[58]6|65)|4(?:4|71)|5(?:07|78)|6(?:[02]6|99)|8(?:3|63|95))|(?:2(?:07|26|4[12]|5[78]|6[14]|8\\d|9[38])|3(?:0[07]|[38]5|4[036]|50|67|74|9[16])|4(?:0[2-47]|3[389]|[48]3|5[45]|71)|5(?:14|29|[4-6]\\d|77|83|9[069])|6(?:23|6[138]|76)|789|8(?:68|7[26]|85)|9(?:15|29))\\d",,,,"144",,,[3,4]]],TT:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:88|9[09])",,,,"988"],[,,,,,,,,,[-1]],,,,"TT",,,,,,,,,,,,,,,,,,[,,"99[09]",,,,"990"],,[,,"9(?:88|9[09])",,,,"988"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TV:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"TV",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"1\\d\\d|911",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TW:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"11[0289]|1(?:81|92)\\d",,,,"110"],[,,"10[56]",,,,"105",,,[3]],,,,"TW",,,,,,,,,,,,,,,,,,[,,"11[029]",,,,"110",,,[3]],,[,,"1(?:0[04-6]|1[0237-9]|3[389]|6[05-8]|7[07]|8(?:0|11)|9(?:19|22|5[057]|68|8[05]|9[15689]))",,,,"100"],[,,"1(?:65|9(?:1\\d|50|85|98))",,,,"165"],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TZ:[,[,,"[149]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:1[0-79]|9[09])|999",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"TZ",,,,,,,,,,,,,,,,,,[,,"11[0-245]|999",,,,"110",,,[3]],,[,,"1(?:1\\d|9[09])|46400|999",,,,"110"],[,,,,,,,,,[-1]],[,,"464\\d\\d",,,,"46400",,,[5]],,[,,"464\\d\\d",,,,"46400",,,[5]]],UA:[,[,,"[189]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:0[1-3]|1(?:2|6\\d{3}))",,,,"101",,,[3,6]],[,,,,,,,,,[-1]],,,,"UA",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],,[,,"1(?:0[1-49]|1(?:2|6(?:000|1(?:11|23))|8\\d\\d?)|(?:[278]|5\\d)\\d)|[89]00\\d\\d?|151|1(?:06|4\\d|6)\\d\\d",,,,"101"],[,,,,,,,,,[-1]],[,,"(?:118|[89]00)\\d\\d?",,,,"1180",,,[4,5]],,[,,,,,,,,,[-1]]],UG:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"UG",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],US:[,[,,"[1-9]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"112|611|9(?:11|33|88)",,,,"112",,,[3]],[,,"24280|(?:381|968)35|4(?:3355|7553|8221)|5(?:(?:489|934)2|5928)|72078|(?:323|960)40|(?:276|414)63|(?:2(?:520|744)|7390|9968)9|(?:693|732|976)88|(?:3(?:556|825)|5294|8623|9729)4|(?:3378|4136|7642|8961|9979)6|(?:4(?:6(?:15|32)|827)|(?:591|720)8|9529)7",,,,"24280",,,[5]],,,,"US",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112",,,[3]],,[,,"11(?:2|5[1-47]|[68]\\d|7[0-57]|98)|[2-9]\\d{3,5}|[2-8]11|9(?:11|33|88)",,,,"112"],[,,"2(?:3333|(?:4224|7562|900)2|56447|6688)|3(?:1010|2665|7404)|40404|560560|6(?:0060|22639|5246|7622)|7(?:0701|3822|4666)|8(?:(?:3825|7226)5|4816)|99099",,,,"23333",,,[5,6]],[,,"336\\d\\d|[2-9]\\d{3}|[2356]11",,,,"211",,,[3,4,5]],,[,,"[2-9]\\d{4,5}",,,,"20000",,,[5,6]]],UY:[,[,,"[129]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"128|911",,,,"128",,,[3]],[,,,,,,,,,[-1]],,,,"UY",,,,,,,,,,,,,,,,,,[,,"128|911",,,,"128",,,[3]],,[,,"1(?:0[4-9]|1[2368]|2[0-3568]|787|997\\d?)|21997|911",,,,"104"],[,,"178\\d",,,,"1780",,,[4]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],UZ:[,[,,"[04]\\d(?:\\d(?:\\d{2})?)?",,,,,,,[2,3,5]],,,[,,"0(?:0[1-3]|[1-3]|50)",,,,"01",,,[2,3]],[,,,,,,,,,[-1]],,,,"UZ",,,,,,,,,,,,,,,,,,[,,"0(?:0[1-3]|[1-3]|50)",,,,"01",,,[2,3]],,[,,"0(?:0[1-3]|[1-3]|50)|45400",,,,"01"],[,,,,,,,,,[-1]],[,,"454\\d\\d",,,,"45400",,,[5]],,[,,"454\\d\\d",,,,"45400",,,[5]]],VA:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[2358]",,,,"112"],[,,,,,,,,,[-1]],,,,"VA",,,,,,,,,,,,,,,,,,[,,"11[2358]",,,,"112"],,[,,"11[2358]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"VC",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VE:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"1(?:12|71)|911",,,,"112"],[,,,,,,,,,[-1]],,,,"VE",,,,,,,,,,,,,,,,,,[,,"1(?:12|71)|911",,,,"112"],,[,,"1(?:12|71)|911",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VG:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"VG",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|88|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VI:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],,,,"VI",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"9(?:11|88)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VN:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[3-5]",,,,"113"],[,,,,,,,,,[-1]],,,,"VN",,,,,,,,,,,,,,,,,,[,,"11[3-5]",,,,"113"],,[,,"11[3-5]",,,,"113"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VU:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"112",,,,"112"],[,,,,,,,,,[-1]],,,,"VU",,,,,,,,,,,,,,,,,,[,,"112",,,,"112"],,[,,"112",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],WF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"WF",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],WS:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|9[4-69])",,,,"911"],[,,,,,,,,,[-1]],,,,"WS",,,,,,,,,,,,,,,,,,[,,"9(?:11|9[4-69])",,,,"911"],,[,,"1(?:1[12]|2[0-6]|[39]0)|9(?:11|9[4-79])",,,,"111"],[,,,,,,,,,[-1]],[,,"12[0-6]",,,,"120"],,[,,,,,,,,,[-1]]],XK:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:12|9[2-4])",,,,"112"],[,,,,,,,,,[-1]],,,,"XK",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[2-4])",,,,"112"],,[,,"1(?:12|9[2-4])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],YE:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"19[1459]",,,,"191"],[,,,,,,,,,[-1]],,,,"YE",,,,,,,,,,,,,,,,,,[,,"19[1459]",,,,"191"],,[,,"19[1459]",,,,"191"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],YT:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:12|5)",,,,"15"],[,,,,,,,,,[-1]],,,,"YT",,,,,,,,,,,,,,,,,,[,,"1(?:12|5)",,,,"15"],,[,,"1(?:12|5)",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ZA:[,[,,"[134]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:01\\d\\d|12)",,,,"112",,,[3,5]],[,,"41(?:348|851)",,,,"41348",,,[5]],,,,"ZA",,,,,,,,,,,,,,,,,,[,,"1(?:01(?:11|77)|12)",,,,"112",,,[3,5]],,[,,"1(?:0(?:1(?:11|77)|20|7)|1[12]|77(?:3[237]|[45]7|6[279]|9[26]))|[34]\\d{4}",,,,"107"],[,,"3(?:078[23]|7(?:064|567)|8126)|4(?:394[16]|7751|8837)|4[23]699",,,,"30782",,,[5]],[,,"111",,,,"111",,,[3]],,[,,"[34]\\d{4}",,,,"30000",,,[5]]],ZM:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|99[139]",,,,"112"],[,,,,,,,,,[-1]],,,,"ZM",,,,,,,,,,,,,,,,,,[,,"112|99[139]",,,,"112"],,[,,"112|99[139]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ZW:[,[,,"[139]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"112|9(?:5[023]|61|9[3-59])",,,,"112",,,[3]],[,,"3[013-57-9]\\d{3}",,,,"30000",,,[5]],,,,"ZW",,,,,,,,,,,,,,,,,,[,,"112|99[3-59]",,,,"112",,,[3]],,[,,"11[2469]|3[013-57-9]\\d{3}|9(?:5[023]|6[0-25]|9[3-59])",,,,"112"],[,,,,,,,,,[-1]],[,,"114|9(?:5[023]|6[0-25])",,,,"114",,,[3]],,[,,,,,,,,,[-1]]]}
15672,i18n.phonenumbers.ShortNumberInfo=function(){this.regionToMetadataMap={}},goog.addSingletonGetter(i18n.phonenumbers.ShortNumberInfo),i18n.phonenumbers.ShortNumberInfo.REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT_=["BR","CL","NI"],i18n.phonenumbers.ShortNumberInfo.ShortNumberCost={TOLL_FREE:0,STANDARD_RATE:1,PREMIUM_RATE:2,UNKNOWN_COST:3},i18n.phonenumbers.ShortNumberInfo.prototype.getRegionCodesForCountryCode_=function(t){return(t=i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[t])?t:[]},i18n.phonenumbers.ShortNumberInfo.prototype.regionDialingFromMatchesNumber_=function(t,e){return t=this.getRegionCodesForCountryCode_(t.getCountryCodeOrDefault()),null!=e&&t.includes(e)},i18n.phonenumbers.ShortNumberInfo.prototype.isPossibleShortNumberForRegion=function(t,e){return!!this.regionDialingFromMatchesNumber_(t,e)&&!!(e=this.getMetadataForRegion_(e))&&(t=this.getNationalSignificantNumber_(t).length,e.getGeneralDesc().possibleLengthArray().includes(t))},i18n.phonenumbers.ShortNumberInfo.prototype.isPossibleShortNumber=function(t){var e=this.getRegionCodesForCountryCode_(t.getCountryCodeOrDefault());t=this.getNationalSignificantNumber_(t).length;for(var r=0;r<e.length;r++){var n=this.getMetadataForRegion_(e[r]);if(n&&n.getGeneralDesc().possibleLengthArray().includes(t))return!0}return!1},i18n.phonenumbers.ShortNumberInfo.prototype.isValidShortNumberForRegion=function(t,e){if(!this.regionDialingFromMatchesNumber_(t,e))return!1;if(!(e=this.getMetadataForRegion_(e)))return!1;t=this.getNationalSignificantNumber_(t);var r=e.getGeneralDesc();return!!this.matchesPossibleNumberAndNationalNumber_(t,r)&&(e=e.getShortCode(),this.matchesPossibleNumberAndNationalNumber_(t,e))},i18n.phonenumbers.ShortNumberInfo.prototype.isValidShortNumber=function(t){var e=this.getRegionCodesForCountryCode_(t.getCountryCodeOrDefault()),r=this.getRegionCodeForShortNumberFromRegionList_(t,e);return 1<e.length&&null!=r||this.isValidShortNumberForRegion(t,r)},i18n.phonenumbers.ShortNumberInfo.prototype.getExpectedCostForRegion=function(t,e){var r=i18n.phonenumbers.ShortNumberInfo.ShortNumberCost;if(!this.regionDialingFromMatchesNumber_(t,e))return r.UNKNOWN_COST;var n=this.getMetadataForRegion_(e);return n?(t=this.getNationalSignificantNumber_(t),n.getGeneralDesc().possibleLengthArray().includes(t.length)?this.matchesPossibleNumberAndNationalNumber_(t,n.getPremiumRate())?r.PREMIUM_RATE:this.matchesPossibleNumberAndNationalNumber_(t,n.getStandardRate())?r.STANDARD_RATE:this.matchesPossibleNumberAndNationalNumber_(t,n.getTollFree())||this.isEmergencyNumber(t,e)?r.TOLL_FREE:r.UNKNOWN_COST:r.UNKNOWN_COST):r.UNKNOWN_COST},i18n.phonenumbers.ShortNumberInfo.prototype.getExpectedCost=function(t){var e=i18n.phonenumbers.ShortNumberInfo.ShortNumberCost,r=this.getRegionCodesForCountryCode_(t.getCountryCodeOrDefault());if(0===r.length)return e.UNKNOWN_COST;if(1===r.length)return this.getExpectedCostForRegion(t,r[0]);for(var n=e.TOLL_FREE,i=0;i<r.length;i++){var o=this.getExpectedCostForRegion(t,r[i]);switch(o){case e.PREMIUM_RATE:return e.PREMIUM_RATE;case e.UNKNOWN_COST:n=e.UNKNOWN_COST;break;case e.STANDARD_RATE:n!==e.UNKNOWN_COST&&(n=e.STANDARD_RATE);break;case e.TOLL_FREE:break;default:throw Error("Unrecognized cost for region: "+o)}}return n},i18n.phonenumbers.ShortNumberInfo.prototype.getRegionCodeForShortNumberFromRegionList_=function(t,e){if(0===e.length)return null;if(1===e.length)return e[0];t=this.getNationalSignificantNumber_(t);for(var r=0;r<e.length;r++){var n=e[r],i=this.getMetadataForRegion_(n);if(i&&this.matchesPossibleNumberAndNationalNumber_(t,i.getShortCode()))return n}return null},i18n.phonenumbers.ShortNumberInfo.prototype.getSupportedRegions=function(){return Object.keys(i18n.phonenumbers.shortnumbermetadata.countryToMetadata).filter((function(t){return isNaN(t)}))},i18n.phonenumbers.ShortNumberInfo.prototype.getExampleShortNumber=function(t){return(t=this.getMetadataForRegion_(t))&&(t=t.getShortCode()).hasExampleNumber()&&t.getExampleNumber()||""},i18n.phonenumbers.ShortNumberInfo.prototype.getExampleShortNumberForCost=function(t,e){if(!(t=this.getMetadataForRegion_(t)))return"";
15672var r=i18n.phonenumbers.ShortNumberInfo.ShortNumberCost,n=null;switch(e){case r.TOLL_FREE:n=t.getTollFree();break;case r.STANDARD_RATE:n=t.getStandardRate();break;case r.PREMIUM_RATE:n=t.getPremiumRate()}return n&&n.hasExampleNumber()&&n.getExampleNumber()||""},i18n.phonenumbers.ShortNumberInfo.prototype.connectsToEmergencyNumber=function(t,e){return this.matchesEmergencyNumberHelper_(t,e,!0)},i18n.phonenumbers.ShortNumberInfo.prototype.isEmergencyNumber=function(t,e){return this.matchesEmergencyNumberHelper_(t,e,!1)},i18n.phonenumbers.ShortNumberInfo.prototype.getMetadataForRegion_=function(t){if(!t)return null;t=t.toUpperCase();var e=this.regionToMetadataMap[t];if(null==e){e=new goog.proto2.PbLiteSerializer;var r=i18n.phonenumbers.shortnumbermetadata.countryToMetadata[t];if(null==r)return null;e=e.deserialize(i18n.phonenumbers.PhoneMetadata.getDescriptor(),r),this.regionToMetadataMap[t]=e}return e},i18n.phonenumbers.ShortNumberInfo.prototype.matchesEmergencyNumberHelper_=function(t,e,r){var n=i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber(t);return!i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(n)&&!(null==(t=this.getMetadataForRegion_(e))||!t.hasEmergency())&&(n=i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(n),e=r&&!i18n.phonenumbers.ShortNumberInfo.REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT_.includes(e),r=t.getEmergency().getNationalNumberPatternOrDefault(),i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(r,n)||e&&i18n.phonenumbers.PhoneNumberUtil.matchesPrefix(r,n))},i18n.phonenumbers.ShortNumberInfo.prototype.isCarrierSpecific=function(t){var e=this.getRegionCodesForCountryCode_(t.getCountryCodeOrDefault());return e=this.getRegionCodeForShortNumberFromRegionList_(t,e),t=this.getNationalSignificantNumber_(t),!!(e=this.getMetadataForRegion_(e))&&this.matchesPossibleNumberAndNationalNumber_(t,e.getCarrierSpecific())},i18n.phonenumbers.ShortNumberInfo.prototype.isCarrierSpecificForRegion=function(t,e){return!!this.regionDialingFromMatchesNumber_(t,e)&&(t=this.getNationalSignificantNumber_(t),!!(e=this.getMetadataForRegion_(e))&&this.matchesPossibleNumberAndNationalNumber_(t,e.getCarrierSpecific()))},i18n.phonenumbers.ShortNumberInfo.prototype.isSmsServiceForRegion=function(t,e){return!!this.regionDialingFromMatchesNumber_(t,e)&&(e=this.getMetadataForRegion_(e),t=this.getNationalSignificantNumber_(t),!!e&&this.matchesPossibleNumberAndNationalNumber_(t,e.getSmsServices()))},i18n.phonenumbers.ShortNumberInfo.prototype.getNationalSignificantNumber_=function(t){if(!t.hasNationalNumber())return"";var e=""+t.getNationalNumber();return t.hasItalianLeadingZero()&&t.getItalianLeadingZero()&&0<t.getNumberOfLeadingZerosOrDefault()?Array(t.getNumberOfLeadingZerosOrDefault()+1).join("0")+e:e},i18n.phonenumbers.ShortNumberInfo.prototype.matchesPossibleNumberAndNationalNumber_=function(t,e){return!(0<e.possibleLengthArray().length&&!e.possibleLengthArray().includes(t.length))&&i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(e.getNationalNumberPatternOrDefault(),t.toString())},i18n.phonenumbers.AsYouTypeFormatter=function(t){this.DIGIT_PLACEHOLDER_=" ",this.DIGIT_PATTERN_=new RegExp(this.DIGIT_PLACEHOLDER_),this.currentOutput_="",this.formattingTemplate_=new goog.string.StringBuffer,this.currentFormattingPattern_="",this.accruedInput_=new goog.string.StringBuffer,this.accruedInputWithoutFormatting_=new goog.string.StringBuffer,this.ableToFormat_=!0,this.isExpectingCountryCallingCode_=this.isCompleteNumber_=this.inputHasFormatting_=!1,this.phoneUtil_=i18n.phonenumbers.PhoneNumberUtil.getInstance(),this.positionToRemember_=this.originalPosition_=this.lastMatchPosition_=0,this.prefixBeforeNationalNumber_=new goog.string.StringBuffer,this.shouldAddSpaceAfterNationalPrefix_=!1,this.extractedNationalPrefix_="",this.nationalNumber_=new goog.string.StringBuffer,this.possibleFormats_=[],this.defaultCountry_=t,this.defaultMetadata_=this.currentMetadata_=this.getMetadataForRegion_(this.defaultCountry_)},i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_=" ",i18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_=new i18n.phonenumbers.PhoneMetadata,i18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_.setInternationalPrefix("NA"),i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_=new RegExp("^["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+"]*\\$1["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+"]*(\\$\\d["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+"]*)*$"),i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_=/[- ]/,i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_=3,i18n.phonenumbers.AsYouTypeFormatter.prototype.getMetadataForRegion_=function(t){return t=this.phoneUtil_.getCountryCodeForRegion(t),t=this.phoneUtil_.getRegionCodeForCountryCode(t),null!=(t=this.phoneUtil_.getMetadataForRegion(t))?t:i18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_},i18n.phonenumbers.AsYouTypeFormatter.prototype.maybeCreateNewTemplate_=function(){for(var t=this.possibleFormats_.length,e=0;e<t;++e){var r=this.possibleFormats_[e],n=r.getPatternOrDefault();if(this.currentFormattingPattern_==n)return!1;if(this.createFormattingTemplate_(r))return this.currentFormattingPattern_=n,this.shouldAddSpaceAfterNationalPrefix_=i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_.test(r.getNationalPrefixFormattingRule()),this.lastMatchPosition_=0,!0}return this.ableToFormat_=!1},i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_=function(t){for(var e=this.isCompleteNumber_&&0==this.extractedNationalPrefix_.length&&0<this.currentMetadata_.intlNumberFormatCount()?this.currentMetadata_.intlNumberFormatArray():this.currentMetadata_.numberFormatArray(),r=e.length,n=0;n<r;++n){var i=e[n];0<this.extractedNationalPrefix_.length&&this.phoneUtil_.formattingRuleHasFirstGroupOnly(i.getNationalPrefixFormattingRuleOrDefault())&&!i.getNationalPrefixOptionalWhenFormatting()&&!i.hasDomesticCarrierCodeFormattingRule()||(0!=this.extractedNationalPrefix_.length||this.isCompleteNumber_||this.phoneUtil_.formattingRuleHasFirstGroupOnly(i.getNationalPrefixFormattingRuleOrDefault())||i.getNationalPrefixOptionalWhenFormatting())&&i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_.test(i.getFormatOrDefault())&&this.possibleFormats_.push(i)}this.narrowDownPossibleFormats_(t)},i18n.phonenumbers.AsYouTypeFormatter.prototype.narrowDownPossibleFormats_=function(t){for(var e=[],r=t.length-i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_,n=this.possibleFormats_.length,i=0;i<n;++i){var o=this.possibleFormats_[i];if(0==o.leadingDigitsPatternCount())e.push(this.possibleFormats_[i]);else{var s=Math.min(r,o.leadingDigitsPatternCount()-1);o=o.getLeadingDigitsPattern(s),0==t.search(o)&&e.push(this.possibleFormats_[i])}}this.possibleFormats_=e},i18n.phonenumbers.AsYouTypeFormatter.prototype.createFormattingTemplate_=function(t){var e=t.getPatternOrDefault();return this.formattingTemplate_.clear(),0<(t=this.getFormattingTemplate_(e,t.getFormatOrDefault())).length&&(this.formattingTemplate_.append(t),!0)},i18n.phonenumbers.AsYouTypeFormatter.prototype.getFormattingTemplate_=function(t,e){var r="999999999999999".match(t)[0];return r.length<this.nationalNumber_.getLength()?"":(t=r.replace(new RegExp(t,"g"),e)).replace(/9/g,this.DIGIT_PLACEHOLDER_)},i18n.phonenumbers.AsYouTypeFormatter.prototype.clear=function(){this.currentOutput_="",this.accruedInput_.clear(),this.accruedInputWithoutFormatting_.clear(),this.formattingTemplate_.clear(),this.lastMatchPosition_=0,this.currentFormattingPattern_="",this.prefixBeforeNationalNumber_.clear(),this.extractedNationalPrefix_="",this.nationalNumber_.clear(),this.ableToFormat_=!0,this.inputHasFormatting_=!1,this.originalPosition_=this.positionToRemember_=0,this.isExpectingCountryCallingCode_=this.isCompleteNumber_=!1,this.possibleFormats_=[],this.shouldAddSpaceAfterNationalPrefix_=!1,this.currentMetadata_!=this.defaultMetadata_&&(this.currentMetadata_=this.getMetadataForRegion_(this.defaultCountry_))},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigit=function(t){return this.currentOutput_=this.inputDigitWithOptionToRememberPosition_(t,!1)},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitAndRememberPosition=function(t){return this.currentOutput_=this.inputDigitWithOptionToRememberPosition_(t,!0)},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitWithOptionToRememberPosition_=function(t,e){if(this.accruedInput_.append(t),e&&(this.originalPosition_=this.accruedInput_.getLength()),this.isDigitOrLeadingPlusSign_(t)?t=this.normalizeAndAccrueDigitsAndPlusSign_(t,e):(this.ableToFormat_=!1,this.inputHasFormatting_=!0),!this.ableToFormat_){if(!this.inputHasFormatting_)if(this.attemptToExtractIdd_()){if(this.attemptToExtractCountryCallingCode_())return this.attemptToChoosePatternWithPrefixExtracted_()}else if(this.ableToExtractLongerNdd_())return this.prefixBeforeNationalNumber_.append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_),this.attemptToChoosePatternWithPrefixExtracted_();return this.accruedInput_.toString()}switch(this.accruedInputWithoutFormatting_.getLength()){case 0:case 1:case 2:return this.accruedInput_.toString();case 3:if(!this.attemptToExtractIdd_())return this.extractedNationalPrefix_=this.removeNationalPrefixFromNationalNumber_(),this.attemptToChooseFormattingPattern_();this.isExpectingCountryCallingCode_=!0;default:return this.isExpectingCountryCallingCode_?(this.attemptToExtractCountryCallingCode_()&&(this.isExpectingCountryCallingCode_=!1),this.prefixBeforeNationalNumber_.toString()+this.nationalNumber_.toString()):0<this.possibleFormats_.length?(t=this.inputDigitHelper_(t),0<(e=this.attemptToFormatAccruedDigits_()).length?e:(this.narrowDownPossibleFormats_(this.nationalNumber_.toString()),this.maybeCreateNewTemplate_()?this.inputAccruedNationalNumber_():this.ableToFormat_?this.appendNationalNumber_(t):this.accruedInput_.toString())):this.attemptToChooseFormattingPattern_()}},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToChoosePatternWithPrefixExtracted_=function(){return this.ableToFormat_=!0,this.isExpectingCountryCallingCode_=!1,this.possibleFormats_=[],this.lastMatchPosition_=0,this.formattingTemplate_.clear(),this.currentFormattingPattern_="",this.attemptToChooseFormattingPattern_()},i18n.phonenumbers.AsYouTypeFormatter.prototype.getExtractedNationalPrefix_=function(){return this.extractedNationalPrefix_},i18n.phonenumbers.AsYouTypeFormatter.prototype.ableToExtractLongerNdd_=function(){if(0<this.extractedNationalPrefix_.length){var t=this.nationalNumber_.toString();this.nationalNumber_.clear(),this.nationalNumber_.append(this.extractedNationalPrefix_),this.nationalNumber_.append(t);var e=(t=this.prefixBeforeNationalNumber_.toString()).lastIndexOf(this.extractedNationalPrefix_);this.prefixBeforeNationalNumber_.clear(),this.prefixBeforeNationalNumber_.append(t.substring(0,e))}return this.extractedNationalPrefix_!=this.removeNationalPrefixFromNationalNumber_()},i18n.phonenumbers.AsYouTypeFormatter.prototype.isDigitOrLeadingPlusSign_=function(t){return i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN.test(t)||1==this.accruedInput_.getLength()&&i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN.test(t)},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToFormatAccruedDigits_=function(){for(var t=this.nationalNumber_.toString(),e=this.possibleFormats_.length,r=0;r<e;++r){var n=this.possibleFormats_[r],i=n.getPatternOrDefault();if(new RegExp("^(?:"+i+")$").test(t)&&(this.shouldAddSpaceAfterNationalPrefix_=i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_.test(n.getNationalPrefixFormattingRule()),n=t.replace(new RegExp(i,"g"),n.getFormat()),n=this.appendNationalNumber_(n),i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(n)==this.accruedInputWithoutFormatting_))return n}return""},i18n.phonenumbers.AsYouTypeFormatter.prototype.appendNationalNumber_=function(t){var e=this.prefixBeforeNationalNumber_.getLength();return this.shouldAddSpaceAfterNationalPrefix_&&0<e&&this.prefixBeforeNationalNumber_.toString().charAt(e-1)!=i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_?this.prefixBeforeNationalNumber_+i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_+t:this.prefixBeforeNationalNumber_+t},i18n.phonenumbers.AsYouTypeFormatter.prototype.getRememberedPosition=function(){if(!this.ableToFormat_)return this.originalPosition_;for(var t=0,e=0,r=this.accruedInputWithoutFormatting_.toString(),n=this.currentOutput_.toString();t<this.positionToRemember_&&e<n.length;)r.charAt(t)==n.charAt(e)&&t++,e++;return e},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToChooseFormattingPattern_=function(){var t=this.nationalNumber_.toString();return t.length>=i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_?(this.getAvailableFormats_(t),0<(t=this.attemptToFormatAccruedDigits_()).length?t:this.maybeCreateNewTemplate_()?this.inputAccruedNationalNumber_():this.accruedInput_.toString()):this.appendNationalNumber_(t)}
15672,i18n.phonenumbers.AsYouTypeFormatter.prototype.inputAccruedNationalNumber_=function(){var t=this.nationalNumber_.toString(),e=t.length;if(0<e){for(var r="",n=0;n<e;n++)r=this.inputDigitHelper_(t.charAt(n));return this.ableToFormat_?this.appendNationalNumber_(r):this.accruedInput_.toString()}return this.prefixBeforeNationalNumber_.toString()},i18n.phonenumbers.AsYouTypeFormatter.prototype.isNanpaNumberWithNationalPrefix_=function(){if(1!=this.currentMetadata_.getCountryCode())return!1;var t=this.nationalNumber_.toString();return"1"==t.charAt(0)&&"0"!=t.charAt(1)&&"1"!=t.charAt(1)},i18n.phonenumbers.AsYouTypeFormatter.prototype.removeNationalPrefixFromNationalNumber_=function(){var t=this.nationalNumber_.toString(),e=0;if(this.isNanpaNumberWithNationalPrefix_())e=1,this.prefixBeforeNationalNumber_.append("1").append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_),this.isCompleteNumber_=!0;else if(this.currentMetadata_.hasNationalPrefixForParsing()){var r=new RegExp("^(?:"+this.currentMetadata_.getNationalPrefixForParsing()+")");null!=(r=t.match(r))&&null!=r[0]&&0<r[0].length&&(this.isCompleteNumber_=!0,e=r[0].length,this.prefixBeforeNationalNumber_.append(t.substring(0,e)))}return this.nationalNumber_.clear(),this.nationalNumber_.append(t.substring(e)),t.substring(0,e)},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractIdd_=function(){var t=this.accruedInputWithoutFormatting_.toString(),e=new RegExp("^(?:\\"+i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+"|"+this.currentMetadata_.getInternationalPrefix()+")");return null!=(e=t.match(e))&&null!=e[0]&&0<e[0].length&&(this.isCompleteNumber_=!0,e=e[0].length,this.nationalNumber_.clear(),this.nationalNumber_.append(t.substring(e)),this.prefixBeforeNationalNumber_.clear(),this.prefixBeforeNationalNumber_.append(t.substring(0,e)),t.charAt(0)!=i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN&&this.prefixBeforeNationalNumber_.append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_),!0)},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractCountryCallingCode_=function(){if(0==this.nationalNumber_.getLength())return!1;var t=new goog.string.StringBuffer,e=this.phoneUtil_.extractCountryCode(this.nationalNumber_,t);return 0!=e&&(this.nationalNumber_.clear(),this.nationalNumber_.append(t.toString()),t=this.phoneUtil_.getRegionCodeForCountryCode(e),i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY==t?this.currentMetadata_=this.phoneUtil_.getMetadataForNonGeographicalRegion(e):t!=this.defaultCountry_&&(this.currentMetadata_=this.getMetadataForRegion_(t)),this.prefixBeforeNationalNumber_.append(""+e).append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_),this.extractedNationalPrefix_="",!0)},i18n.phonenumbers.AsYouTypeFormatter.prototype.normalizeAndAccrueDigitsAndPlusSign_=function(t,e){if(t==i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN){var r=t;this.accruedInputWithoutFormatting_.append(t)}else r=i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS[t],this.accruedInputWithoutFormatting_.append(r),this.nationalNumber_.append(r);return e&&(this.positionToRemember_=this.accruedInputWithoutFormatting_.getLength()),r},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitHelper_=function(t){var e=this.formattingTemplate_.toString();if(0<=e.substring(this.lastMatchPosition_).search(this.DIGIT_PATTERN_)){var r=e.search(this.DIGIT_PATTERN_);return t=e.replace(this.DIGIT_PATTERN_,t),this.formattingTemplate_.clear(),this.formattingTemplate_.append(t),this.lastMatchPosition_=r,t.substring(0,this.lastMatchPosition_+1)}return 1==this.possibleFormats_.length&&(this.ableToFormat_=!1),this.currentFormattingPattern_="",this.accruedInput_.toString()},Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=i18n.phonenumbers,module.exports=exports.default}).call(this)}).call(this,void 0!==__webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)},module.exports=f()},4729:(t,e,r)=>{"use strict";var n=r(2861).Buffer,i=r(8310).Transform;function o(t){i.call(this),this._block=n.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(6698)(o,i),o.prototype._transform=function(t,e,r){var n=null;try{this.update(t,e)}catch(t){n=t}r(n)},o.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)};var s="undefined"!=typeof Uint8Array,a="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&ArrayBuffer.isView&&
vendor: 8,082 bytes, line 15672
15672(n.prototype instanceof Uint8Array||n.TYPED_ARRAY_SUPPORT);o.prototype.update=function(t,e){if(this._finalized)throw new Error("Digest already called");t=function(t,e){if(t instanceof n)return t;if("string"==typeof t)return n.from(t,e);if(a&&ArrayBuffer.isView(t)){if(0===t.byteLength)return n.alloc(0);var r=n.from(t.buffer,t.byteOffset,t.byteLength);if(r.byteLength===t.byteLength)return r}if(s&&t instanceof Uint8Array)return n.from(t);if(n.isBuffer(t)&&t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t))return n.from(t);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}(t,e);for(var r=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var o=this._blockOffset;o<this._blockSize;)r[o++]=t[i++];this._update(),this._blockOffset=0}for(;i<t.length;)r[this._blockOffset++]=t[i++];for(var d=0,u=8*t.length;u>0;++d)this._length[d]+=u,(u=this._length[d]/4294967296|0)>0&&(this._length[d]-=4294967296*u);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},o.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=o},7952:(t,e,r)=>{var n=e;n.utils=r(7426),n.common=r(6166),n.sha=r(6229),n.ripemd=r(6784),n.hmac=r(8948),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},6166:(t,e,r)=>{"use strict";var n=r(7426),i=r(3349);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=o,o.prototype.update=function(t,e){if(t=n.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=n.join32(t,0,t.length-r,this.endian);for(var i=0;i<t.length;i+=this._delta32)this._update(t,i,i+this._delta32)}return this},o.prototype.digest=function(t){return this.update(this._pad()),i(null===this.pending),this._digest(t)},o.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,r=e-(t+this.padLength)%e,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(t<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=t>>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n}},8948:(t,e,r)=>{"use strict";var n=r(7426),i=r(3349);function o(t,e,r){if(!(this instanceof o))return new o(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(e,r))}t.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},o.prototype.update=function(t,e){return this.inner.update(t,e),this},o.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)}},6784:(t,e,r)=>{"use strict";var n=r(7426),i=r(6166),o=n.rotl32,s=n.sum32,a=n.sum32_3,d=n.sum32_4,u=i.BlockHash;function h(){if(!(this instanceof h))return new h;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}function f(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function c(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}n.inherits(h,u),e.ripemd160=h,h.blockSize=512,h.outSize=160,h.hmacStrength=192,h.padLength=64,h.prototype._update=function(t,e){for(var r=this.h[0],n=this.h[1],i=this.h[2],u=this.h[3],h=this.h[4],y=r,v=n,_=i,M=u,w=h,$=0;$<80;$++){var S=s(o(d(r,l($,n,i,u),t[g[$]+e],f($)),m[$]),h);r=h,h=u,u=o(i,10),i=n,n=S,S=s(o(d(y,l(79-$,v,_,M),t[p[$]+e],c($)),b[$]),w),y=w,w=M,M=o(_,10),_=v,v=S}S=a(this.h[1],i,M),this.h[1]=a(this.h[2],u,w),this.h[2]=a(this.h[3],h,y),this.h[3]=a(this.h[4],r,v),this.h[4]=a(this.h[0],n,_),this.h[0]=S},h.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h,"little"):n.split32(this.h,"little")};var g=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],p=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],m=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},6229:(t,e,r)=>{"use strict";e.sha1=r(3917),e.sha224=r(7714),e.sha256=r(2287),e.sha384=r(1911),e.sha512=r(7766)},3917:(t,e,r)=>{"use strict";var n=r(7426),i=r(6166),o=r(6225),s=n.rotl32,a=n.sum32,d=n.sum32_5,u=o.ft_1,h=i.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(f,h),t.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=s(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],h=this.h[2],f=this.h[3],c=this.h[4];for(n=0;n<r.length;n++){var g=~~(n/20),p=d(s(i,5),u(g,o,h,f),c,r[n],l[g]);c=f,f=h,h=s(o,30),o=i,i=p}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],o),this.h[2]=a(this.h[2],h),this.h[3]=a(this.h[3],f),this.h[4]=a(this.h[4],c)},f.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},7714:(t,e,r)=>{"use strict";var n=r(7426),i=r(2287);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}n.inherits(o,i),t.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h.slice(0,7),"big"):n.split32(this.h.slice(0,7),"big")}},2287:(t,e,r)=>{"use strict";var n=r(7426),i=r(6166),o=r(6225),s=r(3349),a=n.sum32,d=n.sum32_4,u=n.sum32_5,h=o.ch32,l=o.maj32,f=o.s0_256,c=o.s1_256,g=o.g0_256,p=o.g1_256,m=i.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756
vendor: 3,358 bytes, line 15672
15672734187,3204031479,3329325298];function y(){if(!(this instanceof y))return new y;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}n.inherits(y,m),t.exports=y,y.blockSize=512,y.outSize=256,y.hmacStrength=192,y.padLength=64,y.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=d(p(r[n-2]),r[n-7],g(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],m=this.h[2],b=this.h[3],y=this.h[4],v=this.h[5],_=this.h[6],M=this.h[7];for(s(this.k.length===r.length),n=0;n<r.length;n++){var w=u(M,c(y),h(y,v,_),this.k[n],r[n]),$=a(f(i),l(i,o,m));M=_,_=v,v=y,y=a(b,w),b=m,m=o,o=i,i=a(w,$)}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],o),this.h[2]=a(this.h[2],m),this.h[3]=a(this.h[3],b),this.h[4]=a(this.h[4],y),this.h[5]=a(this.h[5],v),this.h[6]=a(this.h[6],_),this.h[7]=a(this.h[7],M)},y.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},1911:(t,e,r)=>{"use strict";var n=r(7426),i=r(7766);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}n.inherits(o,i),t.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h.slice(0,12),"big"):n.split32(this.h.slice(0,12),"big")}},7766:(t,e,r)=>{"use strict";var n=r(7426),i=r(6166),o=r(3349),s=n.rotr64_hi,a=n.rotr64_lo,d=n.shr64_hi,u=n.shr64_lo,h=n.sum64,l=n.sum64_hi,f=n.sum64_lo,c=n.sum64_4_hi,g=n.sum64_4_lo,p=n.sum64_5_hi,m=n.sum64_5_lo,b=i.BlockHash,y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,
vendor: 5,763 bytes, line 15672
156721126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=y,this.W=new Array(160)}function _(t,e,r,n,i){var o=t&r^~t&i;return o<0&&(o+=4294967296),o}function M(t,e,r,n,i,o){var s=e&n^~e&o;return s<0&&(s+=4294967296),s}function w(t,e,r,n,i){var o=t&r^t&i^r&i;return o<0&&(o+=4294967296),o}function $(t,e,r,n,i,o){var s=e&n^e&o^n&o;return s<0&&(s+=4294967296),s}function S(t,e){var r=s(t,e,28)^s(e,t,2)^s(e,t,7);return r<0&&(r+=4294967296),r}function N(t,e){var r=a(t,e,28)^a(e,t,2)^a(e,t,7);return r<0&&(r+=4294967296),r}function E(t,e){var r=a(t,e,14)^a(t,e,18)^a(e,t,9);return r<0&&(r+=4294967296),r}function T(t,e){var r=s(t,e,1)^s(t,e,8)^d(t,e,7);return r<0&&(r+=4294967296),r}function A(t,e){var r=a(t,e,1)^a(t,e,8)^u(t,e,7);return r<0&&(r+=4294967296),r}function R(t,e){var r=a(t,e,19)^a(e,t,29)^u(t,e,6);return r<0&&(r+=4294967296),r}n.inherits(v,b),t.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(t,e){for(var r=this.W,n=0;n<32;n++)r[n]=t[e+n];for(;n<r.length;n+=2){var i=(m=r[n-4],b=r[n-3],y=void 0,(y=s(m,b,19)^s(b,m,29)^d(m,b,6))<0&&(y+=4294967296),y),o=R(r[n-4],r[n-3]),a=r[n-14],u=r[n-13],h=T(r[n-30],r[n-29]),l=A(r[n-30],r[n-29]),f=r[n-32],p=r[n-31];r[n]=c(i,o,a,u,h,l,f,p),r[n+1]=g(i,o,a,u,h,l,f,p)}var m,b,y},v.prototype._update=function(t,e){this._prepareBlock(t,e);var r,n,i,a=this.W,d=this.h[0],u=this.h[1],c=this.h[2],g=this.h[3],b=this.h[4],y=this.h[5],v=this.h[6],T=this.h[7],A=this.h[8],R=this.h[9],P=this.h[10],O=this.h[11],C=this.h[12],I=this.h[13],L=this.h[14],D=this.h[15];o(this.k.length===a.length);for(var U=0;U<a.length;U+=2){var k=L,x=D,F=(i=void 0,(i=s(r=A,n=R,14)^s(r,n,18)^s(n,r,9))<0&&(i+=4294967296),i),B=E(A,R),V=_(A,0,P,0,C),j=M(0,R,0,O,0,I),H=this.k[U],G=this.k[U+1],W=a[U],Y=a[U+1],z=p(k,x,F,B,V,j,H,G,W,Y),q=m(k,x,F,B,V,j,H,G,W,Y);k=S(d,u),x=N(d,u),F=w(d,0,c,0,b),B=$(0,u,0,g,0,y);var K=l(k,x,F,B),Z=f(k,x,F,B);L=C,D=I,C=P,I=O,P=A,O=R,A=l(v,T,z,q),R=f(T,T,z,q),v=b,T=y,b=c,y=g,c=d,g=u,d=l(z,q,K,Z),u=f(z,q,K,Z)}h(this.h,0,d,u),h(this.h,2,c,g),h(this.h,4,b,y),h(this.h,6,v,T),h(this.h,8,A,R),h(this.h,10,P,O),h(this.h,12,C,I),h(this.h,14,L,D)},v.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},6225:(t,e,r)=>{"use strict";var n=r(7426).rotr32;function i(t,e,r){return t&e^~t&r}function o(t,e,r){return t&e^t&r^e&r}function s(t,e,r){return t^e^r}e.ft_1=function(t,e,r,n){return 0===t?i(e,r,n):1===t||3===t?s(e,r,n):2===t?o(e,r,n):void 0},e.ch32=i,e.maj32=o,e.p32=s,e.s0_256=function(t){return n(t,2)^n(t,13)^n(t,22)},e.s1_256=function(t){return n(t,6)^n(t,11)^n(t,25)},e.g0_256=function(t){return n(t,7)^n(t,18)^t>>>3},e.g1_256=function(t){return n(t,17)^n(t,19)^t>>>10}},7426:(t,e,r)=>{"use strict";var n=r(3349),i=r(6698);function o(t,e){return 55296==(64512&t.charCodeAt(e))&&!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1))}function s(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function a(t){return 1===t.length?"0"+t:t}function d(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=i,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)r.push(parseInt(t[i]+t[i+1],16))}else for(var n=0,i=0;i<t.length;i++){var s=t.charCodeAt(i);s<128?r[n++]=s:s<2048?(r[n++]=s>>6|192,r[n++]=63&s|128):o(t,i)?(s=65536+((1023&s)<<10)+(1023&t.charCodeAt(++i)),r[n++]=s>>18|240,r[n++]=s>>12&63|128,r[n++]=s>>6&63|128,r[n++]=63&s|128):(r[n++]=s>>12|224,r[n++]=s>>6&63|128,r[n++]=63&s|128)}else for(i=0;i<t.length;i++)r[i]=0|t[i];return r},e.toHex=function(t){for(var e="",r=0;r<t.length;r++)e+=a(t[r].toString(16));return e},e.htonl=s,e.toHex32=function(t,e){for(var r="",n=0;n<t.length;n++){var i=t[n];"little"===e&&(i=s(i)),r+=d(i.toString(16))}return r},e.zero2=a,e.zero8=d,e.join32=function(t,e,r,i){var o=r-e;n(o%4==0);for(var s=new Array(o/4),a=0,d=e;a<s.length;a++,d+=4){var u;u="big"===i?t[d]<<24|t[d+1]<<16|t[d+2]<<8|t[d+3]:t[d+3]<<24|t[d+2]<<16|t[d+1]<<8|t[d],s[a]=u>>>0}return s},e.split32=function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n<t.length;n++,i+=4){var o=t[n];"big"===e?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<<e|t>>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,r){return t+e+r>>>0},e.sum32_4=function(t,e,r,n){return t+e+r+n>>>0},e.sum32_5=function(t,e,r,n,i){return t+e+r+n+i>>>0},e.sum64=function(t,e,r,n){var i=t[e],o=n+t[e+1]>>>0,s=(o<n?1:0)+r+i;t[e]=s>>>0,t[e+1]=o},e.sum64_hi=function(t,e,r,n){return(e+n>>>0<e?1:0)+t+r>>>0},e.sum64_lo=function(t,e,r,n){return e+n>>>0},e.sum64_4_hi=function(t,e,r,n,i,o,s,a){var d=0,u=e;return d+=(u=u+n>>>0)<e?1:0,d+=(u=u+o>>>0)<o?1:0,t+r+i+s+(d+=(u=u+a>>>0)<a?1:0)>>>0},e.sum64_4_lo=function(t,e,r,n,i,o,s,a){return e+n+o+a>>>0},e.sum64_5_hi=function(t,e,r,n,i,o,s,a,d,u){var h=0,l=e;return h+=(l=l+n>>>0)<e?1:0,h+=(l=l+o>>>0)<o?1:0,h+=(l=l+a>>>0)<a?1:0,t+r+i+s+d+(h+=(l=l+u>>>0)<u?1:0)>>>0},e.sum64_5_lo=function(t,e,r,n,i,o,s,a,d,u){return e+n+o+a+u>>>0},e.rotr64_hi=function(t,e,r){return(e<<32-r|t>>>r)>>>0},e.rotr64_lo=function(t,e,r){return(t<<32-r|e>>
vendor: 4,831 bytes, line 15672
15672>r)>>>0},e.shr64_hi=function(t,e,r){return t>>>r},e.shr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0}},2723:(t,e,r)=>{"use strict";var n=r(7952),i=r(4367),o=r(3349);function s(t){if(!(this instanceof s))return new s(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=i.toArray(t.entropy,t.entropyEnc||"hex"),r=i.toArray(t.nonce,t.nonceEnc||"hex"),n=i.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}t.exports=s,s.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},s.prototype._hmac=function(){return new n.hmac(this.hash,this.K)},s.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},s.prototype.reseed=function(t,e,r,n){"string"!=typeof e&&(n=r,r=e,e=null),t=i.toArray(t,e),r=i.toArray(r,n),o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},s.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length<t;)this.V=this._hmac().update(this.V).digest(),o=o.concat(this.V);var s=o.slice(0,t);return this._update(r),this._reseed++,i.encode(s,e)}},251:(t,e)=>{e.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,d=(1<<a)-1,u=d>>1,h=-7,l=r?i-1:0,f=r?-1:1,c=t[e+l];for(l+=f,o=c&(1<<-h)-1,c>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-u;else{if(o===d)return s?NaN:1/0*(c?-1:1);s+=Math.pow(2,n),o-=u}return(c?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,d,u=8*o-i-1,h=(1<<u)-1,l=h>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,c=n?0:o-1,g=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(d=Math.pow(2,-s))<1&&(s--,d*=2),(e+=s+l>=1?f/d:f*Math.pow(2,1-l))*d>=2&&(s++,d/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*d-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+c]=255&a,c+=g,a/=256,i-=8);for(s=s<<i|a,u+=i;u>0;t[r+c]=255&s,c+=g,s/=256,u-=8);t[r+c-g]|=128*p}},6698:t=>{"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},4634:t=>{var e={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==e.call(t)}},3065:function(t,e,r){var n,i;!function(){"use strict";n=function(){var t=function(){},e="undefined",r=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function i(t,e){var r=t[e];if("function"==typeof r.bind)return r.bind(t);try{return Function.prototype.bind.call(r,t)}catch(e){return function(){return Function.prototype.apply.apply(r,[t,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function s(e,r){for(var i=0;i<n.length;i++){var o=n[i];this[o]=i<e?t:this.methodFactory(o,e,r)}this.log=this.debug}function a(t,r,n){return function(){typeof console!==e&&(s.call(this,r,n),this[t].apply(this,arguments))}}function d(n,s,d){return function(n){return"debug"===n&&(n="log"),typeof console!==e&&("trace"===n&&r?o:void 0!==console[n]?i(console,n):void 0!==console.log?i(console,"log"):t)}(n)||a.apply(this,arguments)}function u(t,r,i){var o,a=this,u="loglevel";function h(){var t;if(typeof window!==e&&u){try{t=window.localStorage[u]}catch(t){}if(typeof t===e)try{var r=window.document.cookie,n=r.indexOf(encodeURIComponent(u)+"=");-1!==n&&(t=/^([^;]+)/.exec(r.slice(n))[1])}catch(t){}return void 0===a.levels[t]&&(t=void 0),t}}"string"==typeof t?u+=":"+t:"symbol"==typeof t&&(u=void 0),a.name=t,a.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},a.methodFactory=i||d,a.getLevel=function(){return o},a.setLevel=function(r,i){if("string"==typeof r&&void 0!==a.levels[r.toUpperCase()]&&(r=a.levels[r.toUpperCase()]),!("number"==typeof r&&r>
15672=0&&r<=a.levels.SILENT))throw"log.setLevel() called with invalid level: "+r;if(o=r,!1!==i&&function(t){var r=(n[t]||"silent").toUpperCase();if(typeof window!==e&&u){try{return void(window.localStorage[u]=r)}catch(t){}try{window.document.cookie=encodeURIComponent(u)+"="+r+";"}catch(t){}}}(r),s.call(a,r,t),typeof console===e&&r<a.levels.SILENT)return"No console available for logging"},a.setDefaultLevel=function(t){h()||a.setLevel(t,!1)},a.enableAll=function(t){a.setLevel(a.levels.TRACE,t)},a.disableAll=function(t){a.setLevel(a.levels.SILENT,t)};var l=h();null==l&&(l=null==r?"WARN":r),a.setLevel(l,!1)}var h=new u,l={};h.getLogger=function(t){if("symbol"!=typeof t&&"string"!=typeof t||""===t)throw new TypeError("You must supply a name when creating a logger.");var e=l[t];return e||(e=l[t]=new u(t,h.getLevel(),h.methodFactory)),e};var f=typeof window!==e?window.log:void 0;return h.noConflict=function(){return typeof window!==e&&window.log===h&&(window.log=f),h},h.getLoggers=function(){return l},h.default=h,h},void 0===(i=n.call(e,r,e,t))||(t.exports=i)}()},8276:(t,e,r)=>{"use strict";var n=r(6698),i=r(4729),o=r(2861).Buffer,s=new Array(16);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function d(t,e){return t<<e|t>>>32-e}function u(t,e,r,n,i,o,s){return d(t+(e&r|~e&n)+i+o|0,s)+e|0}function h(t,e,r,n,i,o,s){return d(t+(e&n|r&~n)+i+o|0,s)+e|0}function l(t,e,r,n,i,o,s){return d(t+(e^r^n)+i+o|0,s)+e|0}function f(t,e,r,n,i,o,s){return d(t+(r^(e|~n))+i+o|0,s)+e|0}n(a,i),a.prototype._update=function(){for(var t=s,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,o=this._d;r=u(r,n,i,o,t[0],3614090360,7),o=u(o,r,n,i,t[1],3905402710,12),i=u(i,o,r,n,t[2],606105819,17),n=u(n,i,o,r,t[3],3250441966,22),r=u(r,n,i,o,t[4],4118548399,7),o=u(o,r,n,i,t[5],1200080426,12),i=u(i,o,r,n,t[6],2821735955,17),n=u(n,i,o,r,t[7],4249261313,22),r=u(r,n,i,o,t[8],1770035416,7),o=u(o,r,n,i,t[9],2336552879,12),i=u(i,o,r,n,t[10],4294925233,17),n=u(n,i,o,r,t[11],2304563134,22),r=u(r,n,i,o,t[12],1804603682,7),o=u(o,r,n,i,t[13],4254626195,12),i=u(i,o,r,n,t[14],2792965006,17),r=h(r,n=u(n,i,o,r,t[15],1236535329,22),i,o,t[1],4129170786,5),o=h(o,r,n,i,t[6],3225465664,9),i=h(i,o,r,n,t[11],643717713,14),n=h(n,i,o,r,t[0],3921069994,20),r=h(r,n,i,o,t[5],3593408605,5),o=h(o,r,n,i,t[10],38016083,9),i=h(i,o,r,n,t[15],3634488961,14),n=h(n,i,o,r,t[4],3889429448,20),r=h(r,n,i,o,t[9],568446438,5),o=h(o,r,n,i,t[14],3275163606,9),i=h(i,o,r,n,t[3],4107603335,14),n=h(n,i,o,r,t[8],1163531501,20),r=h(r,n,i,o,t[13],2850285829,5),o=h(o,r,n,i,t[2],4243563512,9),i=h(i,o,r,n,t[7],1735328473,14),r=l(r,n=h(n,i,o,r,t[12],2368359562,20),i,o,t[5],4294588738,4),o=l(o,r,n,i,t[8],2272392833,11),i=l(i,o,r,n,t[11],1839030562,16),n=l(n,i,o,r,t[14],4259657740,23),r=l(r,n,i,o,t[1],2763975236,4),o=l(o,r,n,i,t[4],1272893353,11),i=l(i,o,r,n,t[7],4139469664,16),n=l(n,i,o,r,t[10],3200236656,23),r=l(r,n,i,o,t[13],681279174,4),o=l(o,r,n,i,t[0],3936430074,11),i=l(i,o,r,n,t[3],3572445317,16),n=l(n,i,o,r,t[6],76029189,23),r=l(r,n,i,o,t[9],3654602809,4),o=l(o,r,n,i,t[12],3873151461,11),i=l(i,o,r,n,t[15],530742520,16),r=f(r,n=l(n,i,o,r,t[2],3299628645,23),i,o,t[0],4096336452,6),o=f(o,r,n,i,t[7],1126891415,10),i=f(i,o,r,n,t[14],2878612391,15),n=f(n,i,o,r,t[5],4237533241,21),r=f(r,n,i,o,t[12],1700485571,6),o=f(o,r,n,i,t[3],2399980690,10),i=f(i,o,r,n,t[10],4293915773,15),n=f(n,i,o,r,t[1],2240044497,21),r=f(r,n,i,o,t[8],1873313359,6),o=f(o,r,n,i,t[15],4264355552,10),i=f(i,o,r,n,t[6],2734768916,15),n=f(n,i,o,r,t[13],
vendor: 6,442 bytes, line 15672
156721309151649,21),r=f(r,n,i,o,t[4],4149444226,6),o=f(o,r,n,i,t[11],3174756917,10),i=f(i,o,r,n,t[2],718787259,15),n=f(n,i,o,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=a},2244:(t,e,r)=>{var n=r(1158),i=r(5037);function o(t){this.rand=t||new i.Rand}t.exports=o,o.create=function(t){return new o(t)},o.prototype._randbelow=function(t){var e=t.bitLength(),r=Math.ceil(e/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(t)>=0);return i},o.prototype._randrange=function(t,e){var r=e.sub(t);return t.add(this._randbelow(r))},o.prototype.test=function(t,e,r){var i=t.bitLength(),o=n.mont(t),s=new n(1).toRed(o);e||(e=Math.max(1,i/48|0));for(var a=t.subn(1),d=0;!a.testn(d);d++);for(var u=t.shrn(d),h=a.toRed(o);e>0;e--){var l=this._randrange(new n(2),a);r&&r(l);var f=l.toRed(o).redPow(u);if(0!==f.cmp(s)&&0!==f.cmp(h)){for(var c=1;c<d;c++){if(0===(f=f.redSqr()).cmp(s))return!1;if(0===f.cmp(h))break}if(c===d)return!1}}return!0},o.prototype.getDivisor=function(t,e){var r=t.bitLength(),i=n.mont(t),o=new n(1).toRed(i);e||(e=Math.max(1,r/48|0));for(var s=t.subn(1),a=0;!s.testn(a);a++);for(var d=t.shrn(a),u=s.toRed(i);e>0;e--){var h=this._randrange(new n(2),s),l=t.gcd(h);if(0!==l.cmpn(1))return l;var f=h.toRed(i).redPow(d);if(0!==f.cmp(o)&&0!==f.cmp(u)){for(var c=1;c<a;c++){if(0===(f=f.redSqr()).cmp(o))return f.fromRed().subn(1).gcd(t);if(0===f.cmp(u))break}if(c===a)return(f=f.redSqr()).fromRed().subn(1).gcd(t)}}return!1}},1158:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(4688).Buffer}catch(t){}function a(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function d(t,e,r){var n=a(t,r);return r-1>=e&&(n|=a(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s<o;s++){var a=t.charCodeAt(s)-48;i*=n,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===r)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,d=0,h=r;h<a;h+=n)d=u(t,h,h+n,e),this.imuln(i),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d);if(0!==s){var l=1;for(d=u(t,h,t.length,e),h=0;h<s;h++)l*=e;this.imuln(l),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16
vendor: 4,478 bytes, line 15672
15672777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,d=s/67108864|0;r.words[0]=a;for(var u=1;u<n;u++){for(var h=d>>>26,l=67108863&d,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var g=u-c|0;h+=(s=(i=0|t.words[g])*(o=0|e.words[c])+l)/67108864|0,l=67108863&s}r.words[u]=0|l,d=0|h}return 0!==d?r.words[u]=0|d:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],d=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),r=0!==o||s!==this.length-1?h[6-d.length]+d+r:d+r}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=l[t],c=f[t];r="";var g=this.clone();for(g.negative=0;!g.isZero();){var p=g.modn(c).toString(t);r=(g=g.idivn(c)).isZero()?p+r:h[u-p.length]+p+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,d="le"===e,u=new t(o),h=this.clone();if(d){for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[a]=s;for(;a<o;a++)u[a]=0}else{for(a=0;a<o-i;a++)u[a]=0;for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[o-a-1]=s}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return n(!(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return n(!(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return n(!
vendor: 2,330 bytes, line 15672
15672(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},o.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var 
vendor: 7,651 bytes, line 15672
15672g=function(t,e,r){var n,i,o,s=t.words,a=e.words,d=r.words,u=0,h=0|s[0],l=8191&h,f=h>>>13,c=0|s[1],g=8191&c,p=c>>>13,m=0|s[2],b=8191&m,y=m>>>13,v=0|s[3],_=8191&v,M=v>>>13,w=0|s[4],$=8191&w,S=w>>>13,N=0|s[5],E=8191&N,T=N>>>13,A=0|s[6],R=8191&A,P=A>>>13,O=0|s[7],C=8191&O,I=O>>>13,L=0|s[8],D=8191&L,U=L>>>13,k=0|s[9],x=8191&k,F=k>>>13,B=0|a[0],V=8191&B,j=B>>>13,H=0|a[1],G=8191&H,W=H>>>13,Y=0|a[2],z=8191&Y,q=Y>>>13,K=0|a[3],Z=8191&K,X=K>>>13,J=0|a[4],Q=8191&J,tt=J>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],dt=8191&at,ut=at>>>13,ht=0|a[8],lt=8191&ht,ft=ht>>>13,ct=0|a[9],gt=8191&ct,pt=ct>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,j))+Math.imul(f,V)|0))<<13)|0;u=((o=Math.imul(f,j))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(g,V),i=(i=Math.imul(g,j))+Math.imul(p,V)|0,o=Math.imul(p,j);var bt=(u+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(f,G)|0))<<13)|0;u=((o=o+Math.imul(f,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,j))+Math.imul(y,V)|0,o=Math.imul(y,j),n=n+Math.imul(g,G)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(p,G)|0,o=o+Math.imul(p,W)|0;var yt=(u+(n=n+Math.imul(l,z)|0)|0)+((8191&(i=(i=i+Math.imul(l,q)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,q)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,V),i=(i=Math.imul(_,j))+Math.imul(M,V)|0,o=Math.imul(M,j),n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(g,z)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(p,z)|0,o=o+Math.imul(p,q)|0;var vt=(u+(n=n+Math.imul(l,Z)|0)|0)+((8191&(i=(i=i+Math.imul(l,X)|0)+Math.imul(f,Z)|0))<<13)|0;u=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul($,V),i=(i=Math.imul($,j))+Math.imul(S,V)|0,o=Math.imul(S,j),n=n+Math.imul(_,G)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,W)|0,n=n+Math.imul(b,z)|0,i=(i=i+Math.imul(b,q)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,q)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(p,Z)|0,o=o+Math.imul(p,X)|0;var _t=(u+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,V),i=(i=Math.imul(E,j))+Math.imul(T,V)|0,o=Math.imul(T,j),n=n+Math.imul($,G)|0,i=(i=i+Math.imul($,W)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(_,z)|0,i=(i=i+Math.imul(_,q)|0)+Math.imul(M,z)|0,o=o+Math.imul(M,q)|0,n=n+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,X)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(p,Q)|0,o=o+Math.imul(p,tt)|0;var Mt=(u+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(f,rt)|0))<<13)|0;u=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(R,V),i=(i=Math.imul(R,j))+Math.imul(P,V)|0,o=Math.imul(P,j),n=n+Math.imul(E,G)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul($,z)|0,i=(i=i+Math.imul($,q)|0)+Math.imul(S,z)|0,o=o+Math.imul(S,q)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(p,rt)|0,o=o+Math.imul(p,nt)|0;var wt=(u+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,st)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,j))+Math.imul(I,V)|0,o=Math.imul(I,j),n=n+Math.imul(R,G)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(P,G)|0,o=o+Math.imul(P,W)|0,n=n+Math.imul(E,z)|0,i=(i=i+Math.imul(E,q)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,q)|0,n=n+Math.imul($,Z)|0,i=(i=i+Math.imul($,X)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(p,ot)|0,o=o+Math.imul(p,st)|0;var $t=(u+(n=n+Math.imul(l,dt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ut)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,j))+Math.imul(U,V)|0,o=Math.imul(U,j),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(I,G)|0,o=o+Math.imul(I,W)|0,n=n+Math.imul(R,z)|0,i=(i=i+Math.imul(R,q)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,q)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul($,Q)|0,i=(i=i+Math.imul($,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(g,dt)|0,i=(i=i+Math.imul(g,ut)|0)+Math.imul(p,dt)|0,o=o+Math.imul(p,ut)|0;var St=(u+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ft)|0)+Math.imul(f,lt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(x,V),i=(i=Math.imul(x,j))+Math.imul(F,V)|0,o=Math.imul(F,j),n=n+Math.imul(D,G)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(C,z)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(I,z)|0,o=o+Math.imul(I,q)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul($,rt)|0,i=(i=i+Math.imul($,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,n=n+Math.imul(b,dt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(g,lt)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(p,lt)|0,o=o+Math.imul(p,ft)|0;var Nt=(u+(n=n+Math.imul(l,gt)|0)|0)+((8191&(i=(i=i+Math.imul(l,pt)|0)+Math.imul(f,gt)|0))<<13)|0;u=((o=o+Math.imul(f,pt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,W))+Math.imul(F,G)|0,o=Math.imul(F,W),n=n+Math.imul(D,z)|0,i=(i=i+Math.imul(D,q)|0)+Math.imul(U,z)|0,o=o+Math.imul(U,q)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(I,Z)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul($,ot)|0,i=(i=i+Math.imul($,st)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,st)|0,n=n+Math.imul(_,dt)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(M,dt)|0,o=o+Math.imul(M,ut)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ft)|0)+Math.imul(y,lt)|0,o=o+Math.imul(y,ft)|0;var Et=(u+(n=n+Math.imul(g,gt)|0)|0)+((8191&(i=(i=i+Math.imul(g,pt)|0)+Math.imul(p,gt)|0))<<13)|0;u=((o=o+Math.imul(p,pt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,z),i=(i=Math.imul(x,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(D,Z)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,X)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul($,dt)|0,i=(i=i+Math.imul($,ut)|0)+Math.imul(S,dt)|0,o=o+Math.imul(S,ut)|0,n=n+Math.imul(_,lt)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(M,lt)|0,o=o+Math.imul(M,ft)|0;var Tt=(u+(n=n+Math.imul(b,gt)|0)|0)+((8191&(i=(i=i+Math.imul(b,pt)|0)+Math.imul(y,gt)|0))<<13)|0;u=((o=o+Math.imul(y,pt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(x,Z),i=(i=Math.imul(x,X))+Math.imul(F,Z)|0,o=Math.imul(F,X
vendor: 5,428 bytes, line 15672
15672),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(E,dt)|0,i=(i=i+Math.imul(E,ut)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul($,lt)|0,i=(i=i+Math.imul($,ft)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ft)|0;var At=(u+(n=n+Math.imul(_,gt)|0)|0)+((8191&(i=(i=i+Math.imul(_,pt)|0)+Math.imul(M,gt)|0))<<13)|0;u=((o=o+Math.imul(M,pt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(x,Q),i=(i=Math.imul(x,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(U,rt)|0,o=o+Math.imul(U,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(R,dt)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(P,dt)|0,o=o+Math.imul(P,ut)|0,n=n+Math.imul(E,lt)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(T,lt)|0,o=o+Math.imul(T,ft)|0;var Rt=(u+(n=n+Math.imul($,gt)|0)|0)+((8191&(i=(i=i+Math.imul($,pt)|0)+Math.imul(S,gt)|0))<<13)|0;u=((o=o+Math.imul(S,pt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(x,rt),i=(i=Math.imul(x,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(D,ot)|0,i=(i=i+Math.imul(D,st)|0)+Math.imul(U,ot)|0,o=o+Math.imul(U,st)|0,n=n+Math.imul(C,dt)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(I,dt)|0,o=o+Math.imul(I,ut)|0,n=n+Math.imul(R,lt)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(P,lt)|0,o=o+Math.imul(P,ft)|0;var Pt=(u+(n=n+Math.imul(E,gt)|0)|0)+((8191&(i=(i=i+Math.imul(E,pt)|0)+Math.imul(T,gt)|0))<<13)|0;u=((o=o+Math.imul(T,pt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(x,ot),i=(i=Math.imul(x,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(D,dt)|0,i=(i=i+Math.imul(D,ut)|0)+Math.imul(U,dt)|0,o=o+Math.imul(U,ut)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(I,lt)|0,o=o+Math.imul(I,ft)|0;var Ot=(u+(n=n+Math.imul(R,gt)|0)|0)+((8191&(i=(i=i+Math.imul(R,pt)|0)+Math.imul(P,gt)|0))<<13)|0;u=((o=o+Math.imul(P,pt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(x,dt),i=(i=Math.imul(x,ut))+Math.imul(F,dt)|0,o=Math.imul(F,ut),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ft)|0)+Math.imul(U,lt)|0,o=o+Math.imul(U,ft)|0;var Ct=(u+(n=n+Math.imul(C,gt)|0)|0)+((8191&(i=(i=i+Math.imul(C,pt)|0)+Math.imul(I,gt)|0))<<13)|0;u=((o=o+Math.imul(I,pt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(x,lt),i=(i=Math.imul(x,ft))+Math.imul(F,lt)|0,o=Math.imul(F,ft);var It=(u+(n=n+Math.imul(D,gt)|0)|0)+((8191&(i=(i=i+Math.imul(D,pt)|0)+Math.imul(U,gt)|0))<<13)|0;u=((o=o+Math.imul(U,pt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Lt=(u+(n=Math.imul(x,gt))|0)+((8191&(i=(i=Math.imul(x,pt))+Math.imul(F,gt)|0))<<13)|0;return u=((o=Math.imul(F,pt))+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,d[0]=mt,d[1]=bt,d[2]=yt,d[3]=vt,d[4]=_t,d[5]=Mt,d[6]=wt,d[7]=$t,d[8]=St,d[9]=Nt,d[10]=Et,d[11]=Tt,d[12]=At,d[13]=Rt,d[14]=Pt,d[15]=Ot,d[16]=Ct,d[17]=It,d[18]=Lt,0!==u&&(d[19]=u,r.length++),r};function p(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(g=c),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?g(this,t,e):n<63?c(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,d=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=d;u++){var h=o-u,l=(0|t.words[h])*(0|e.words[u]),f=67108863&l;a=67108863&(f=f+a|0),i+=(s=(s=s+(l/67108864|0)|0)+(f>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):p(this,t,e),r},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},m.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s<o;s++)n[s]=e[t[s]],i[s]=r[t[s]]},m.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,d=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),h=0;h<i;h+=a)for(var l=d,f=u,c=0;c<s;c++){var g=r[h+c],p=n[h+c],m=r[h+c+s],b=n[h+c+s],y=l*m-f*b;b=l*b+f*m,m=y,r[h+c]=g+m,n[h+c]=p+b,r[h+c+s]=g-m,n[h+c+s]=p-b,c!==a&&(y=d*l-u*f,f=d*f+u*l,l=y)}},m.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},m.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},m.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},m.prototype.convert13b=function(t,e,r,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],r[2*s]=8191&o,o>>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)r[s]=0;n(0===o),n(!(-8192&o))},m.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},m.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),s=new Array(n),a=new Array(n),d=new Array(n),u=new Array(n),h=new Array(n),l=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,s,n),this.convert13b(e.words,e.length,u,n),this.transform(s,o,a,d,n,i),this.transform(u,o,h,l,n,i);for(var c=0;c<n;
vendor: 16,384 bytes, line 15672
15672c++){var g=a[c]*h[c]-d[c]*l[c];d[c]=a[c]*l[c]+d[c]*h[c],a[c]=g}return this.conjugate(a,d,n),this.transform(a,d,f,o,n,i),this.conjugate(f,o,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),p(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){n("number"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,o=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,d=(0|this.words[e])-a<<r;this.words[e]=d|s,s=a>>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,d=r;if(i-=s,i=Math.max(0,i),d){for(var u=0;u<s;u++)d.words[u]=this.words[u];d.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var h=0;for(u=this.length-1;u>=0&&(0!==h||u>=i);u--){var l=0|this.words[u];this.words[u]=h<<26-o|l>>>o,h=l&a}return d&&0!==h&&(d.words[d.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,r){var i,o,s=t.length+r;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+r])+a;var d=(0|t.words[i])*e;a=((o-=67108863&d)>>26)-(d/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)a=(o=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&o;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,d=n.length-i.length;if("mod"!==e){(a=new o(null)).length=d+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var h=n.clone()._ishlnsubmul(i,1,d);0===h.negative&&(n=h,a&&(a.words[d]=1));for(var l=d-1;l>=0;l--){var f=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(i,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);a&&(a.words[l]=f)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&t.negative?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),d=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var h=r.clone(),l=e.clone();!e.isZero();){for(var f=0,c=1;!(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(h),s.isub(l)),i.iushrn(1),s.iushrn(1);for(var g=0,p=1;!(r.words[0]&p)&&g<26;++g,p<<=1);if(g>0)for(r.iushrn(g);g-- >0;)(a.isOdd()||d.isOdd())&&(a.iadd(h),d.isub(l)),a.iushrn(1),d.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(d)):(r.isub(e),a.isub(i),d.isub(s))}return{a,b:d,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),d=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,h=1;!(e.words[0]&h)&&u<26;++u,h<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(d),s.iushrn(1);for(var l=0,f=1;!(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(d),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,s=r;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new $(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){$.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(v,y),v.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(_,y),i(M,y),i(w,y),w.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return b[t]=e,e},$.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},$.prototype._verify2=function(t,e){n(!(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},$.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},$.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},$.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},$.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},$.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},$.prototype.isqr=function(t){return this.imul(t,t.clone())},$.prototype.sqr=function(t){return th
vendor: 1,235 bytes, line 15672
15672is.mul(t,t)},$.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),d=a.redNeg(),u=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,u).cmp(d);)h.redIAdd(d);for(var l=this.pow(h,i),f=this.pow(t,i.addn(1).iushrn(1)),c=this.pow(t,i),g=s;0!==c.cmp(a);){for(var p=c,m=0;0!==p.cmp(a);m++)p=p.redSqr();n(m<g);var b=this.pow(l,new o(1).iushln(g-m-1));f=f.redMul(b),l=b.redSqr(),c=c.redMul(l),g=m}return f},$.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},$.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],s=0,a=0,d=e.bitLength()%26;for(0===d&&(d=26),n=e.length-1;n>=0;n--){for(var u=e.words[n],h=d-1;h>=0;h--){var l=u>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==s?(s<<=1,s|=l,(4==++a||0===n&&0===h)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}
vendor: 1,975 bytes, line 15672
15672d=26}return i},$.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},$.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new S(t)},i(S,$),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},3349:t=>{function e(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=e,e.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)}},4367:(t,e)=>{"use strict";var r=e;function n(t){return 1===t.length?"0"+t:t}function i(t){for(var e="",r=0;r<t.length;r++)e+=n(t[r].toString(16));return e}r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"!=typeof t){for(var n=0;n<t.length;n++)r[n]=0|t[n];return r}if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),n=0;n<t.length;n+=2)r.push(parseInt(t[n]+t[n+1],16));else for(n=0;n<t.length;n++){var i=t.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(t,e){return"hex"===e?i(t):t}},1137:t=>{function e(t){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}e.keys=()=>
vendor: 4,209 bytes, line 15672
15672[],e.resolve=e,e.id=1137,t.exports=e},5093:function(t,e,r){(t=r.nmd(t)).exports=function(){"use strict";var e,n;function i(){return e.apply(null,arguments)}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function s(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function d(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(a(t,e))return!1;return!0}function u(t){return void 0===t}function h(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function l(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function f(t,e){var r,n=[],i=t.length;for(r=0;r<i;++r)n.push(e(t[r],r));return n}function c(t,e){for(var r in e)a(e,r)&&(t[r]=e[r]);return a(e,"toString")&&(t.toString=e.toString),a(e,"valueOf")&&(t.valueOf=e.valueOf),t}function g(t,e,r,n){return Le(t,e,r,n,!0).utc()}function p(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function m(t){if(null==t._isValid){var e=p(t),r=n.call(e.parsedDateParts,(function(t){return null!=t})),i=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidEra&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&r);if(t._strict&&(i=i&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return i;t._isValid=i}return t._isValid}function b(t){var e=g(NaN);return null!=t?c(p(e),t):p(e).userInvalidated=!0,e}n=Array.prototype.some?Array.prototype.some:function(t){var e,r=Object(this),n=r.length>>>0;for(e=0;e<n;e++)if(e in r&&t.call(this,r[e],e,r))return!0;return!1};var y=i.momentProperties=[],v=!1;function _(t,e){var r,n,i,o=y.length;if(u(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),u(e._i)||(t._i=e._i),u(e._f)||(t._f=e._f),u(e._l)||(t._l=e._l),u(e._strict)||(t._strict=e._strict),u(e._tzm)||(t._tzm=e._tzm),u(e._isUTC)||(t._isUTC=e._isUTC),u(e._offset)||(t._offset=e._offset),u(e._pf)||(t._pf=p(e)),u(e._locale)||(t._locale=e._locale),o>0)for(r=0;r<o;r++)u(i=e[n=y[r]])||(t[n]=i);return t}function M(t){_(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===v&&(v=!0,i.updateOffset(this),v=!1)}function w(t){return t instanceof M||null!=t&&null!=t._isAMomentObject}function $(t){!1===i.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function S(t,e){var r=!0;return c((function(){if(null!=i.deprecationHandler&&i.deprecationHandler(null,t),r){var n,o,s,d=[],u=arguments.length;for(o=0;o<u;o++){if(n="","object"==typeof arguments[o]){for(s in n+="\n["+o+"] ",arguments[0])a(arguments[0],s)&&(n+=s+": "+arguments[0][s]+", ");n=n.slice(0,-2)}else n=arguments[o];d.push(n)}$(t+"\nArguments: "+Array.prototype.slice.call(d).join("")+"\n"+(new Error).stack),r=!1}return e.apply(this,arguments)}),e)}var N,E={};function T(t,e){null!=i.deprecationHandler&&i.deprecationHandler(t,e),E[t]||($(e),E[t]=!0)}function A(t){return"undefined"!=typeof Function&&t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function R(t,e){var r,n=c({},t);for(r in e)a(e,r)&&(s(t[r])&&s(e[r])?(n[r]={},c(n[r],t[r]),c(n[r],e[r])):null!=e[r]?n[r]=e[r]:delete n[r]);for(r in t)a(t,r)&&!a(e,r)&&s(t[r])&&(n[r]=c({},n[r]));return n}function P(t){null!=t&&this.set(t)}i.suppressDeprecationWarnings=!1,i.deprecationHandler=null,N=Object.keys?Object.keys:function(t){var e,r=[];for(e in t)a(t,e)&&r.push(e);return r};function O(t,e,r){var n=""+Math.abs(t),i=e-n.length;return(t>=0?r?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+n}var C=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}
vendor: 5,545 bytes, line 15672
15672|x|X|zz?|ZZ?|.)/g,I=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,L={},D={};function U(t,e,r,n){var i=n;"string"==typeof n&&(i=function(){return this[n]()}),t&&(D[t]=i),e&&(D[e[0]]=function(){return O(i.apply(this,arguments),e[1],e[2])}),r&&(D[r]=function(){return this.localeData().ordinal(i.apply(this,arguments),t)})}function k(t,e){return t.isValid()?(e=x(e,t.localeData()),L[e]=L[e]||function(t){var e,r,n,i=t.match(C);for(e=0,r=i.length;e<r;e++)D[i[e]]?i[e]=D[i[e]]:i[e]=(n=i[e]).match(/\[[\s\S]/)?n.replace(/^\[|\]$/g,""):n.replace(/\\/g,"");return function(e){var n,o="";for(n=0;n<r;n++)o+=A(i[n])?i[n].call(e,t):i[n];return o}}(e),L[e](t)):t.localeData().invalidDate()}function x(t,e){var r=5;function n(t){return e.longDateFormat(t)||t}for(I.lastIndex=0;r>=0&&I.test(t);)t=t.replace(I,n),I.lastIndex=0,r-=1;return t}var F={};function B(t,e){var r=t.toLowerCase();F[r]=F[r+"s"]=F[e]=t}function V(t){return"string"==typeof t?F[t]||F[t.toLowerCase()]:void 0}function j(t){var e,r,n={};for(r in t)a(t,r)&&(e=V(r))&&(n[e]=t[r]);return n}var H={};function G(t,e){H[t]=e}function W(t){return t%4==0&&t%100!=0||t%400==0}function Y(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function z(t){var e=+t,r=0;return 0!==e&&isFinite(e)&&(r=Y(e)),r}function q(t,e){return function(r){return null!=r?(Z(this,t,r),i.updateOffset(this,e),this):K(this,t)}}function K(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Z(t,e,r){t.isValid()&&!isNaN(r)&&("FullYear"===e&&W(t.year())&&1===t.month()&&29===t.date()?(r=z(r),t._d["set"+(t._isUTC?"UTC":"")+e](r,t.month(),Ot(r,t.month()))):t._d["set"+(t._isUTC?"UTC":"")+e](r))}var X,J=/\d/,Q=/\d\d/,tt=/\d{3}/,et=/\d{4}/,rt=/[+-]?\d{6}/,nt=/\d\d?/,it=/\d\d\d\d?/,ot=/\d\d\d\d\d\d?/,st=/\d{1,3}/,at=/\d{1,4}/,dt=/[+-]?\d{1,6}/,ut=/\d+/,ht=/[+-]?\d+/,lt=/Z|[+-]\d\d:?\d\d/gi,ft=/Z|[+-]\d\d(?::?\d\d)?/gi,ct=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function gt(t,e,r){X[t]=A(e)?e:function(t,n){return t&&r?r:e}}function pt(t,e){return a(X,t)?X[t](e._strict,e._locale):new RegExp(mt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,r,n,i){return e||r||n||i}))))}function mt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}X={};var bt={};function yt(t,e){var r,n,i=e;for("string"==typeof t&&(t=[t]),h(e)&&(i=function(t,r){r[e]=z(t)}),n=t.length,r=0;r<n;r++)bt[t[r]]=i}function vt(t,e){yt(t,(function(t,r,n,i){n._w=n._w||{},e(t,n._w,n,i)}))}function _t(t,e,r){null!=e&&a(bt,t)&&bt[t](e,r._a,r,t)}var Mt,wt=0,$t=1,St=2,Nt=3,Et=4,Tt=5,At=6,Rt=7,Pt=8;function Ot(t,e){if(isNaN(t)||isNaN(e))return NaN;var r,n=(e%(r=12)+r)%r;return t+=(e-n)/12,1===n?W(t)?29:28:31-n%7%2}Mt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},U("M",["MM",2],"Mo",(function(){return this.month()+1})),U("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),U("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),B("month","M"),G("month",8),gt("M",nt),gt("MM",nt,Q),gt("MMM",(function(t,e){return e.monthsShortRegex(t)})),gt("MMMM",(function(t,e){return e.monthsRegex(t)})),yt(["M","MM"],(function(t,e){e[$t]=z(t)-1})),yt(["MMM","MMMM"],(function(t,e,r,n){var i=r._locale.monthsParse(t,n,r._strict);null!=i?e[$t]=i:p(r).invalidMonth=t}));var Ct="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),It="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Lt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Dt=ct,Ut=ct;function kt(t,e,r){var n,i,o,s=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],n=0;n<12;++n)o=g([2e3,n]),this._shortMonthsParse[n]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[n]=this.months(o,"").toLocaleLowerCase();return r?"MMM"===e?-1!==(i=Mt.call(this._shortMonthsParse,s))?i:null:-1!==(i=Mt.call(this._longMonthsParse,s))?i:null:"MMM"===e?-1!==(i=Mt.call(this._shortMonthsParse,s))||-1!==(i=Mt.call(this._longMonthsParse,s))?i:null:-1!==(i=Mt.call(this._longMonthsParse,s))||-1!==(i=Mt.call(this._shortMonthsParse,s))?i:null}function xt(t,e){var r;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=z(e);else if(!h(e=t.localeData().monthsParse(e)))return t;return r=Math.min(t.date(),Ot(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,r),t}function Ft(t){return null!=t?(xt(this,t),i.updateOffset(this,!0),this):K(this,"Month")}function Bt(){function t(t,e){return e.length-t.length}var e,r,n=[],i=[],o=[];for(e=0;e<12;e++)r=g([2e3,e]),n.push(this.monthsShort(r,"")),i.push(this.months(r,"")),o.push(this.months(r,"")),o.push(this.monthsShort(r,""));for(n.sort(t),i.sort(t),o.sort(t),e=0;e<12;e++)n[e]=mt(n[e]),i[e]=mt(i[e]);for(e=0;e<24;e++)o[e]=mt(o[e]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")","i")}function Vt(t){return W(t)?366:365}U("Y",0,0,(function(){var t=this.year();return t<=9999?O(t,4):"+"+t})),U(0,["YY",2],0,(function(){return this.year()%100})),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),B("year","y"),G("year",1),gt("Y",ht),gt("YY",nt,Q),gt("YYYY",at,et),gt("YYYYY",dt,rt),gt("YYYYYY",dt,rt),yt(["YYYYY","YYYYYY"],wt),yt("YYYY",(function(t,e){e[wt]=2===t.length?
vendor: 4,335 bytes, line 15672
15672i.parseTwoDigitYear(t):z(t)})),yt("YY",(function(t,e){e[wt]=i.parseTwoDigitYear(t)})),yt("Y",(function(t,e){e[wt]=parseInt(t,10)})),i.parseTwoDigitYear=function(t){return z(t)+(z(t)>68?1900:2e3)};var jt=q("FullYear",!0);function Ht(t,e,r,n,i,o,s){var a;return t<100&&t>=0?(a=new Date(t+400,e,r,n,i,o,s),isFinite(a.getFullYear())&&a.setFullYear(t)):a=new Date(t,e,r,n,i,o,s),a}function Gt(t){var e,r;return t<100&&t>=0?((r=Array.prototype.slice.call(arguments))[0]=t+400,e=new Date(Date.UTC.apply(null,r)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)):e=new Date(Date.UTC.apply(null,arguments)),e}function Wt(t,e,r){var n=7+e-r;return-(7+Gt(t,0,n).getUTCDay()-e)%7+n-1}function Yt(t,e,r,n,i){var o,s,a=1+7*(e-1)+(7+r-n)%7+Wt(t,n,i);return a<=0?s=Vt(o=t-1)+a:a>Vt(t)?(o=t+1,s=a-Vt(t)):(o=t,s=a),{year:o,dayOfYear:s}}function zt(t,e,r){var n,i,o=Wt(t.year(),e,r),s=Math.floor((t.dayOfYear()-o-1)/7)+1;return s<1?n=s+qt(i=t.year()-1,e,r):s>qt(t.year(),e,r)?(n=s-qt(t.year(),e,r),i=t.year()+1):(i=t.year(),n=s),{week:n,year:i}}function qt(t,e,r){var n=Wt(t,e,r),i=Wt(t+1,e,r);return(Vt(t)-n+i)/7}U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),B("week","w"),B("isoWeek","W"),G("week",5),G("isoWeek",5),gt("w",nt),gt("ww",nt,Q),gt("W",nt),gt("WW",nt,Q),vt(["w","ww","W","WW"],(function(t,e,r,n){e[n.substr(0,1)]=z(t)}));function Kt(t,e){return t.slice(e,7).concat(t.slice(0,e))}U("d",0,"do","day"),U("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),U("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),U("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),B("day","d"),B("weekday","e"),B("isoWeekday","E"),G("day",11),G("weekday",11),G("isoWeekday",11),gt("d",nt),gt("e",nt),gt("E",nt),gt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),gt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),gt("dddd",(function(t,e){return e.weekdaysRegex(t)})),vt(["dd","ddd","dddd"],(function(t,e,r,n){var i=r._locale.weekdaysParse(t,n,r._strict);null!=i?e.d=i:p(r).invalidWeekday=t})),vt(["d","e","E"],(function(t,e,r,n){e[n]=z(t)}));var Zt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Xt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Jt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Qt=ct,te=ct,ee=ct;function re(t,e,r){var n,i,o,s=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)o=g([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(o,"").toLocaleLowerCase();return r?"dddd"===e?-1!==(i=Mt.call(this._weekdaysParse,s))?i:null:"ddd"===e?-1!==(i=Mt.call(this._shortWeekdaysParse,s))?i:null:-1!==(i=Mt.call(this._minWeekdaysParse,s))?i:null:"dddd"===e?-1!==(i=Mt.call(this._weekdaysParse,s))||-1!==(i=Mt.call(this._shortWeekdaysParse,s))||-1!==(i=Mt.call(this._minWeekdaysParse,s))?i:null:"ddd"===e?-1!==(i=Mt.call(this._shortWeekdaysParse,s))||-1!==(i=Mt.call(this._weekdaysParse,s))||-1!==(i=Mt.call(this._minWeekdaysParse,s))?i:null:-1!==(i=Mt.call(this._minWeekdaysParse,s))||-1!==(i=Mt.call(this._weekdaysParse,s))||-1!==(i=Mt.call(this._shortWeekdaysParse,s))?i:null}function ne(){function t(t,e){return e.length-t.length}var e,r,n,i,o,s=[],a=[],d=[],u=[];for(e=0;e<7;e++)r=g([2e3,1]).day(e),n=mt(this.weekdaysMin(r,"")),i=mt(this.weekdaysShort(r,"")),o=mt(this.weekdays(r,"")),s.push(n),a.push(i),d.push(o),u.push(n),u.push(i),u.push(o);s.sort(t),a.sort(t),d.sort(t),u.sort(t),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function ie(){return this.hours()%12||12}function oe(t,e){U(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function se(t,e){return e._meridiemParse}U("H",["HH",2],0,"hour"),U("h",["hh",2],0,ie),U("k",["kk",2],0,(function(){return this.hours()||24})),U("hmm",0,0,(function(){return""+ie.apply(this)+O(this.minutes(),2)}
vendor: 9,356 bytes, line 15672
15672)),U("hmmss",0,0,(function(){return""+ie.apply(this)+O(this.minutes(),2)+O(this.seconds(),2)})),U("Hmm",0,0,(function(){return""+this.hours()+O(this.minutes(),2)})),U("Hmmss",0,0,(function(){return""+this.hours()+O(this.minutes(),2)+O(this.seconds(),2)})),oe("a",!0),oe("A",!1),B("hour","h"),G("hour",13),gt("a",se),gt("A",se),gt("H",nt),gt("h",nt),gt("k",nt),gt("HH",nt,Q),gt("hh",nt,Q),gt("kk",nt,Q),gt("hmm",it),gt("hmmss",ot),gt("Hmm",it),gt("Hmmss",ot),yt(["H","HH"],Nt),yt(["k","kk"],(function(t,e,r){var n=z(t);e[Nt]=24===n?0:n})),yt(["a","A"],(function(t,e,r){r._isPm=r._locale.isPM(t),r._meridiem=t})),yt(["h","hh"],(function(t,e,r){e[Nt]=z(t),p(r).bigHour=!0})),yt("hmm",(function(t,e,r){var n=t.length-2;e[Nt]=z(t.substr(0,n)),e[Et]=z(t.substr(n)),p(r).bigHour=!0})),yt("hmmss",(function(t,e,r){var n=t.length-4,i=t.length-2;e[Nt]=z(t.substr(0,n)),e[Et]=z(t.substr(n,2)),e[Tt]=z(t.substr(i)),p(r).bigHour=!0})),yt("Hmm",(function(t,e,r){var n=t.length-2;e[Nt]=z(t.substr(0,n)),e[Et]=z(t.substr(n))})),yt("Hmmss",(function(t,e,r){var n=t.length-4,i=t.length-2;e[Nt]=z(t.substr(0,n)),e[Et]=z(t.substr(n,2)),e[Tt]=z(t.substr(i))}));var ae=q("Hours",!0);var de,ue={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{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"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ct,monthsShort:It,week:{dow:0,doy:6},weekdays:Zt,weekdaysMin:Jt,weekdaysShort:Xt,meridiemParse:/[ap]\.?m?\.?/i},he={},le={};function fe(t,e){var r,n=Math.min(t.length,e.length);for(r=0;r<n;r+=1)if(t[r]!==e[r])return r;return n}function ce(t){return t?t.toLowerCase().replace("_","-"):t}function ge(e){var n=null;if(void 0===he[e]&&t&&t.exports&&function(t){return null!=t.match("^[^/\\\\]*$")}(e))try{n=de._abbr,r(1137)("./"+e),pe(n)}catch(t){he[e]=null}return he[e]}function pe(t,e){var r;return t&&((r=u(e)?be(t):me(t,e))?de=r:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),de._abbr}function me(t,e){if(null!==e){var r,n=ue;if(e.abbr=t,null!=he[t])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=he[t]._config;else if(null!=e.parentLocale)if(null!=he[e.parentLocale])n=he[e.parentLocale]._config;else{if(null==(r=ge(e.parentLocale)))return le[e.parentLocale]||(le[e.parentLocale]=[]),le[e.parentLocale].push({name:t,config:e}),null;n=r._config}return he[t]=new P(R(n,e)),le[t]&&le[t].forEach((function(t){me(t.name,t.config)})),pe(t),he[t]}return delete he[t],null}function be(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return de;if(!o(t)){if(e=ge(t))return e;t=[t]}return function(t){for(var e,r,n,i,o=0;o<t.length;){for(e=(i=ce(t[o]).split("-")).length,r=(r=ce(t[o+1]))?r.split("-"):null;e>0;){if(n=ge(i.slice(0,e).join("-")))return n;if(r&&r.length>=e&&fe(i,r)>=e-1)break;e--}o++}return de}(t)}function ye(t){var e,r=t._a;return r&&-2===p(t).overflow&&(e=r[$t]<0||r[$t]>11?$t:r[St]<1||r[St]>Ot(r[wt],r[$t])?St:r[Nt]<0||r[Nt]>24||24===r[Nt]&&(0!==r[Et]||0!==r[Tt]||0!==r[At])?Nt:r[Et]<0||r[Et]>59?Et:r[Tt]<0||r[Tt]>59?Tt:r[At]<0||r[At]>999?At:-1,p(t)._overflowDayOfYear&&(e<wt||e>St)&&(e=St),p(t)._overflowWeeks&&-1===e&&(e=Rt),p(t)._overflowWeekday&&-1===e&&(e=Pt),p(t).overflow=e),t}var ve=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Me=/Z|[+-]\d\d(?::?\d\d)?/,we=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],$e=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Se=/^\/?Date\((-?\d+)/i,Ne=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Ee={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Te(t){var e,r,n,i,o,s,a=t._i,d=ve.exec(a)||_e.exec(a),u=we.length,h=$e.length;if(d){for(p(t).iso=!0,e=0,r=u;e<r;e++)if(we[e][1].exec(d[1])){i=we[e][0],n=!1!==we[e][2];break}if(null==i)return void(t._isValid=!1);if(d[3]){for(e=0,r=h;e<r;e++)if($e[e][1].exec(d[3])){o=(d[2]||" ")+$e[e][0];break}if(null==o)return void(t._isValid=!1)}if(!n&&null!=o)return void(t._isValid=!1);if(d[4]){if(!Me.exec(d[4]))return void(t._isValid=!1);s="Z"}t._f=i+(o||"")+(s||""),Ce(t)}else t._isValid=!1}function Ae(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}function Re(t){var e,r,n,i,o,s,a,d,u=Ne.exec(t._i.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(u){if(r=u[4],n=u[3],i=u[2],o=u[5],s=u[6],a=u[7],d=[Ae(r),It.indexOf(n),parseInt(i,10),parseInt(o,10),parseInt(s,10)],a&&d.push(parseInt(a,10)),e=d,!function(t,e,r){return!t||Xt.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(p(r).weekdayMismatch=!0,r._isValid=!1,!1)}(u[1],e,t))return;t._a=e,t._tzm=function(t,e,r){if(t)return Ee[t];if(e)return 0;var n=parseInt(r,10),i=n%100;return(n-i)/100*60+i}(u[8],u[9],u[10]),t._d=Gt.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),p(t).rfc2822=!0}else t._isValid=!1}function Pe(t,e,r){return null!=t?t:null!=e?e:r}function Oe(t){var e,r,n,o,s,a=[];if(!t._d){for(n=function(t){var e=new Date(i.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[St]&&null==t._a[$t]&&function(t){var e,r,n,i,o,s,a,d,u;null!=(e=t._w).GG||null!=e.W||null!=e.E?(o=1,s=4,r=Pe(e.GG,t._a[wt],zt(De(),1,4).year),n=Pe(e.W,1),((i=Pe(e.E,1))<1||i>7)&&(d=!0)):(o=t._locale._week.dow,s=t._locale._week.doy,u=zt(De(),o,s),r=Pe(e.gg,t._a[wt],u.year),n=Pe(e.w,u.week),null!=e.d?((i=e.d)<0||i>6)&&(d=!0):null!=e.e?(i=e.e+o,(e.e<0||e.e>6)&&(d=!0)):i=o),n<1||n>qt(r,o,s)?p(t)._overflowWeeks=!0:null!=d?p(t)._overflowWeekday=!0:(a=Yt(r,n,i,o,s),t._a[wt]=a.year,t._dayOfYear=a.dayOfYear)}(t),null!=t._dayOfYear&&(s=Pe(t._a[wt],n[wt]),(t._dayOfYear>Vt(s)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),r=Gt(s,0,t._dayOfYear),t._a[$t]=r.getUTCMonth(),t._a[St]=r.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=a[e]=n[e];for(;e<7;e++)t._a[e]=a[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Nt]&&0===t._a[Et]&&0===t._a[Tt]&&0===t._a[At]&&(t._nextDay=!0,t._a[Nt]=0),t._d=(t._useUTC?Gt:Ht).apply(null,a),o=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Nt]=24),t._w&&void 0!==t._w.d&&t._w.d!==o&&(p(t).weekdayMismatch=!0)}}function Ce(t){if(t._f!==i.ISO_8601)if(t._f!==i.RFC_2822){t._a=[],p(t).empty=!0;var e,r,n,o,s,a,d,u=""+t._i,h=u.length,l=0;for(d=(n=x(t._f,t._locale).match(C)||[]).length,e=0;e<d;e++)o=n[e],(r=(u.match(pt(o,t))||[])[0])&&((s=u.substr(0,u.indexOf(r))).length>0&&p(t).unusedInput.push(s),u=u.slice(u.indexOf(r)+r.length),l+=r.length),D[o]?(r?p(t).empty=!1:p(t).unusedTokens.push(o),_t(o,r,t)):t._strict&&!r&&p(t).unusedTokens.push(o);p(t).charsLeftOver=h-l,u.length>0&&p(t).unusedInput.push(u),t._a[Nt]<=12&&!0===p(t).bigHour&&t._a[Nt]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[Nt]=function(t,e,r){var n;return null==r?e:null!=t.meridiemHour?t.meridiemHour(e,r):null!=t.isPM?((n=t.isPM(r))&&e<12&&(e+=12),n||12!==e||(e=0),e):e}(t._locale,t._a[Nt],t._meridiem),null!==(a=p(t).era)&&(t._a[wt]=t._locale.erasConvertYear(a,t._a[wt])),Oe(t),ye(t)}else Re(t);else Te(t)}function Ie(t){var e=t._i,r=t._f;return t._locale=t._locale||be(t._l),null===e||void 0===r&&""===e?b({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),w(e)?new M(ye(e)):(l(e)?t._d=e:o(r)?function(t){var e,r,n,i,o,s,a=!1,d=t._f.length;if(0===d)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(i=0;i<d;i++)o=0,s=!1,e=_({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[i],Ce(e),m(e)&&(s=!0),o+=p(e).charsLeftOver,o+=10*p(e).unusedTokens.length,p(e).score=o,a?o<n&&(n=o,r=e):(null==n||o<n||s)&&(n=o,r=e,s&&(a=!0));c(t,r||e)}(t):r?Ce(t):function(t){var e=t._i;u(e)?t._d=new Date(i.now()):l(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=Se.exec(t._i);
vendor: 6,538 bytes, line 15672
15672null===e?(Te(t),!1===t._isValid&&(delete t._isValid,Re(t),!1===t._isValid&&(delete t._isValid,t._strict?t._isValid=!1:i.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):o(e)?(t._a=f(e.slice(0),(function(t){return parseInt(t,10)})),Oe(t)):s(e)?function(t){if(!t._d){var e=j(t._i),r=void 0===e.day?e.date:e.day;t._a=f([e.year,e.month,r,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),Oe(t)}}(t):h(e)?t._d=new Date(e):i.createFromInputFallback(t)}(t),m(t)||(t._d=null),t))}function Le(t,e,r,n,i){var a,u={};return!0!==e&&!1!==e||(n=e,e=void 0),!0!==r&&!1!==r||(n=r,r=void 0),(s(t)&&d(t)||o(t)&&0===t.length)&&(t=void 0),u._isAMomentObject=!0,u._useUTC=u._isUTC=i,u._l=r,u._i=t,u._f=e,u._strict=n,(a=new M(ye(Ie(u))))._nextDay&&(a.add(1,"d"),a._nextDay=void 0),a}function De(t,e,r,n){return Le(t,e,r,n,!1)}i.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),i.ISO_8601=function(){},i.RFC_2822=function(){};var Ue=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=De.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:b()})),ke=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=De.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:b()}));function xe(t,e){var r,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return De();for(r=e[0],n=1;n<e.length;++n)e[n].isValid()&&!e[n][t](r)||(r=e[n]);return r}var Fe=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Be(t){var e=j(t),r=e.year||0,n=e.quarter||0,i=e.month||0,o=e.week||e.isoWeek||0,s=e.day||0,d=e.hour||0,u=e.minute||0,h=e.second||0,l=e.millisecond||0;this._isValid=function(t){var e,r,n=!1,i=Fe.length;for(e in t)if(a(t,e)&&(-1===Mt.call(Fe,e)||null!=t[e]&&isNaN(t[e])))return!1;for(r=0;r<i;++r)if(t[Fe[r]]){if(n)return!1;parseFloat(t[Fe[r]])!==z(t[Fe[r]])&&(n=!0)}return!0}(e),this._milliseconds=+l+1e3*h+6e4*u+1e3*d*60*60,this._days=+s+7*o,this._months=+i+3*n+12*r,this._data={},this._locale=be(),this._bubble()}function Ve(t){return t instanceof Be}function je(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function He(t,e){U(t,0,0,(function(){var t=this.utcOffset(),r="+";return t<0&&(t=-t,r="-"),r+O(~~(t/60),2)+e+O(~~t%60,2)}))}He("Z",":"),He("ZZ",""),gt("Z",ft),gt("ZZ",ft),yt(["Z","ZZ"],(function(t,e,r){r._useUTC=!0,r._tzm=We(ft,t)}));var Ge=/([\+\-]|\d\d)/gi;function We(t,e){var r,n,i=(e||"").match(t);return null===i?null:0===(n=60*(r=((i[i.length-1]||[])+"").match(Ge)||["-",0,0])[1]+z(r[2]))?0:"+"===r[0]?n:-n}function Ye(t,e){var r,n;return e._isUTC?(r=e.clone(),n=(w(t)||l(t)?t.valueOf():De(t).valueOf())-r.valueOf(),r._d.setTime(r._d.valueOf()+n),i.updateOffset(r,!1),r):De(t).local()}function ze(t){return-Math.round(t._d.getTimezoneOffset())}function qe(){return!!this.isValid()&&this._isUTC&&0===this._offset}i.updateOffset=function(){};var Ke=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Ze=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Xe(t,e){var r,n,i,o,s,d,u=t,l=null;return Ve(t)?u={ms:t._milliseconds,d:t._days,M:t._months}:h(t)||!isNaN(+t)?(u={},e?u[e]=+t:u.milliseconds=+t):(l=Ke.exec(t))?(r="-"===l[1]?-1:1,u={y:0,d:z(l[St])*r,h:z(l[Nt])*r,m:z(l[Et])*r,s:z(l[Tt])*r,ms:z(je(1e3*l[At]))*r}):(l=Ze.exec(t))?(r="-"===l[1]?-1:1,u={y:Je(l[2],r),M:Je(l[3],r),w:Je(l[4],r),d:Je(l[5],r),h:Je(l[6],r),m:Je(l[7],r),s:Je(l[8],r)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(o=De(u.from),s=De(u.to),i=o.isValid()&&s.isValid()?(s=Ye(s,o),o.isBefore(s)?d=Qe(o,s):((d=Qe(s,o)).milliseconds=-d.milliseconds,d.months=-d.months),d):{milliseconds:0,months:0},(u={}).ms=i.milliseconds,u.M=i.months),n=new Be(u),Ve(t)&&a(t,"_locale")&&(n._locale=t._locale),Ve(t)&&a(t,"_isValid")&&(n._isValid=t._isValid),n}function Je(t,e){var r=t&&parseFloat(t.replace(",","."));return(isNaN(r)?0:r)*e}function Qe(t,e){var r={};return r.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(r.months,"M").isAfter(e)&&--r.months,r.milliseconds=+e-+t.clone().add(r.months,"M"),r}function tr(t,e){return function(r,n){var i;return null===n||isNaN(+n)||(T(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=r,r=n,n=i),er(this,Xe(r,n),t),this}}function er(t,e,r,n){var o=e._milliseconds,s=je(e._days),a=je(e._months);t.isValid()&&(n=null==n||n,a&&xt(t,K(t,"Month")+a*r),s&&Z(t,"Date",K(t,"Date")+s*r),o&&t._d.setTime(t._d.valueOf()+o*r),n&&i.updateOffset(t,s||a))}Xe.fn=Be.prototype,Xe.invalid=function(){return Xe(NaN)};var rr=tr(1,"add"),nr=tr(-1,"subtract");function ir(t){return"string"==typeof t||t instanceof String}function or(t){return w(t)||l(t)||ir(t)||h(t)||function(t){var e=o(t),r=!1;return e&&(r=0===t.filter((function(e){return!h(e)&&ir(t)})).length),e&&r}(t)||function(t){var e,r,n=s(t)&&!d(t),i=!1,o=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],u=o.length;for(e=0;e<u;e+=1)r=o[e],i=i||a(t,r);return n&&i}(t)||null==t}function sr(t,e){if(t.date()<e.date())return-sr(e,t);var r=12*(e.year()-t.year())+(e.month()-t.month()),n=t.clone().add(r,"months");return-(r+(e-n<0?(e-n)/(n-t.clone().add(r-1,"months")):(e-n)/(t.clone().add(r+1,"months")-n)))||0}function ar(t){var e;return void 0===t?this._locale._abbr:(null!=(e=be(t))&&(this._locale=e),this)}i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",i.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var dr=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function ur(){return this._locale}var hr=1e3,lr=6e4,fr=36e5,cr=126227808e5;function gr(t,e){return(t%e+e)%e}function pr(t,e,r){return t<100&&t>=0?new Date(t+400,e,r)-cr:new Date(t,e,r).valueOf()}function mr(t,e,r){return t<100&&t>
vendor: 4,695 bytes, line 15672
15672=0?Date.UTC(t+400,e,r)-cr:Date.UTC(t,e,r)}function br(t,e){return e.erasAbbrRegex(t)}function yr(){var t,e,r=[],n=[],i=[],o=[],s=this.eras();for(t=0,e=s.length;t<e;++t)n.push(mt(s[t].name)),r.push(mt(s[t].abbr)),i.push(mt(s[t].narrow)),o.push(mt(s[t].name)),o.push(mt(s[t].abbr)),o.push(mt(s[t].narrow));this._erasRegex=new RegExp("^("+o.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+n.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+r.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+i.join("|")+")","i")}function vr(t,e){U(0,[t,t.length],0,e)}function _r(t,e,r,n,i){var o;return null==t?zt(this,n,i).year:(e>(o=qt(t,n,i))&&(e=o),Mr.call(this,t,e,r,n,i))}function Mr(t,e,r,n,i){var o=Yt(t,e,r,n,i),s=Gt(o.year,0,o.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}U("N",0,0,"eraAbbr"),U("NN",0,0,"eraAbbr"),U("NNN",0,0,"eraAbbr"),U("NNNN",0,0,"eraName"),U("NNNNN",0,0,"eraNarrow"),U("y",["y",1],"yo","eraYear"),U("y",["yy",2],0,"eraYear"),U("y",["yyy",3],0,"eraYear"),U("y",["yyyy",4],0,"eraYear"),gt("N",br),gt("NN",br),gt("NNN",br),gt("NNNN",(function(t,e){return e.erasNameRegex(t)})),gt("NNNNN",(function(t,e){return e.erasNarrowRegex(t)})),yt(["N","NN","NNN","NNNN","NNNNN"],(function(t,e,r,n){var i=r._locale.erasParse(t,n,r._strict);i?p(r).era=i:p(r).invalidEra=t})),gt("y",ut),gt("yy",ut),gt("yyy",ut),gt("yyyy",ut),gt("yo",(function(t,e){return e._eraYearOrdinalRegex||ut})),yt(["y","yy","yyy","yyyy"],wt),yt(["yo"],(function(t,e,r,n){var i;r._locale._eraYearOrdinalRegex&&(i=t.match(r._locale._eraYearOrdinalRegex)),r._locale.eraYearOrdinalParse?e[wt]=r._locale.eraYearOrdinalParse(t,i):e[wt]=parseInt(t,10)})),U(0,["gg",2],0,(function(){return this.weekYear()%100})),U(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),vr("gggg","weekYear"),vr("ggggg","weekYear"),vr("GGGG","isoWeekYear"),vr("GGGGG","isoWeekYear"),B("weekYear","gg"),B("isoWeekYear","GG"),G("weekYear",1),G("isoWeekYear",1),gt("G",ht),gt("g",ht),gt("GG",nt,Q),gt("gg",nt,Q),gt("GGGG",at,et),gt("gggg",at,et),gt("GGGGG",dt,rt),gt("ggggg",dt,rt),vt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,r,n){e[n.substr(0,2)]=z(t)})),vt(["gg","GG"],(function(t,e,r,n){e[n]=i.parseTwoDigitYear(t)})),U("Q",0,"Qo","quarter"),B("quarter","Q"),G("quarter",7),gt("Q",J),yt("Q",(function(t,e){e[$t]=3*(z(t)-1)})),U("D",["DD",2],"Do","date"),B("date","D"),G("date",9),gt("D",nt),gt("DD",nt,Q),gt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),yt(["D","DD"],St),yt("Do",(function(t,e){e[St]=z(t.match(nt)[0])}));var wr=q("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),B("dayOfYear","DDD"),G("dayOfYear",4),gt("DDD",st),gt("DDDD",tt),yt(["DDD","DDDD"],(function(t,e,r){r._dayOfYear=z(t)})),U("m",["mm",2],0,"minute"),B("minute","m"),G("minute",14),gt("m",nt),gt("mm",nt,Q),yt(["m","mm"],Et);var $r=q("Minutes",!1);U("s",["ss",2],0,"second"),B("second","s"),G("second",15),gt("s",nt),gt("ss",nt,Q),yt(["s","ss"],Tt);var Sr,Nr,Er=q("Seconds",!1);for(U("S",0,0,(function(){return~~(this.millisecond()/100)})),U(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),U(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),U(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),U(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),U(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),U(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),B("millisecond","ms"),G("millisecond",16),gt("S",st,J),gt("SS",st,Q),gt("SSS",st,tt),Sr="SSSS";Sr.length<=9;Sr+="S")gt(Sr,ut);function Tr(t,e){e[At]=z(1e3*("0."+t))}for(Sr="S";Sr.length<=9;Sr+="S")yt(Sr,Tr);Nr=q("Milliseconds",!1),U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var Ar=M.prototype;function Rr(t){return t}Ar.add=rr,Ar.calendar=function(t,e){1===arguments.length&&(arguments[0]?or(arguments[0])?(t=arguments[0],e=void 0):function(t){var e,r=s(t)&&!d(t),n=!1,i=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(e=0;e<i.length;e+=1)n=n||a(t,i[e]);return r&&n}(arguments[0])&&(e=arguments[0],t=void 0):(t=void 0,e=void 0));var r=t||De(),n=Ye(r,this).startOf("day"),o=i.calendarFormat(this,n)||"sameElse",u=e&&(A(e[o])?e[o].call(this,r):e[o]);return this.format(u||this.localeData().calendar(o,this,De(r)))},Ar.clone=function(){return new M(this)},Ar.diff=function(t,e,r){var n,i,o;if(!this.isValid())return NaN;if(!(n=Ye(t,this)).isValid())return NaN;switch(i=6e4*(n.utcOffset()-this.utcOffset()),e=V(e)){case"year":o=sr(this,n)/12;break;case"month":o=sr(this,n);break;
vendor: 21,096 bytes, line 15672
15672case"quarter":o=sr(this,n)/3;break;case"second":o=(this-n)/1e3;break;case"minute":o=(this-n)/6e4;break;case"hour":o=(this-n)/36e5;break;case"day":o=(this-n-i)/864e5;break;case"week":o=(this-n-i)/6048e5;break;default:o=this-n}return r?o:Y(o)},Ar.endOf=function(t){var e,r;if(void 0===(t=V(t))||"millisecond"===t||!this.isValid())return this;switch(r=this._isUTC?mr:pr,t){case"year":e=r(this.year()+1,0,1)-1;break;case"quarter":e=r(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=r(this.year(),this.month()+1,1)-1;break;case"week":e=r(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=r(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=fr-gr(e+(this._isUTC?0:this.utcOffset()*lr),fr)-1;break;case"minute":e=this._d.valueOf(),e+=lr-gr(e,lr)-1;break;case"second":e=this._d.valueOf(),e+=hr-gr(e,hr)-1}return this._d.setTime(e),i.updateOffset(this,!0),this},Ar.format=function(t){t||(t=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var e=k(this,t);return this.localeData().postformat(e)},Ar.from=function(t,e){return this.isValid()&&(w(t)&&t.isValid()||De(t).isValid())?Xe({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},Ar.fromNow=function(t){return this.from(De(),t)},Ar.to=function(t,e){return this.isValid()&&(w(t)&&t.isValid()||De(t).isValid())?Xe({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},Ar.toNow=function(t){return this.to(De(),t)},Ar.get=function(t){return A(this[t=V(t)])?this[t]():this},Ar.invalidAt=function(){return p(this).overflow},Ar.isAfter=function(t,e){var r=w(t)?t:De(t);return!(!this.isValid()||!r.isValid())&&("millisecond"===(e=V(e)||"millisecond")?this.valueOf()>r.valueOf():r.valueOf()<this.clone().startOf(e).valueOf())},Ar.isBefore=function(t,e){var r=w(t)?t:De(t);return!(!this.isValid()||!r.isValid())&&("millisecond"===(e=V(e)||"millisecond")?this.valueOf()<r.valueOf():this.clone().endOf(e).valueOf()<r.valueOf())},Ar.isBetween=function(t,e,r,n){var i=w(t)?t:De(t),o=w(e)?e:De(e);return!!(this.isValid()&&i.isValid()&&o.isValid())&&("("===(n=n||"()")[0]?this.isAfter(i,r):!this.isBefore(i,r))&&(")"===n[1]?this.isBefore(o,r):!this.isAfter(o,r))},Ar.isSame=function(t,e){var r,n=w(t)?t:De(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=V(e)||"millisecond")?this.valueOf()===n.valueOf():(r=n.valueOf(),this.clone().startOf(e).valueOf()<=r&&r<=this.clone().endOf(e).valueOf()))},Ar.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},Ar.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},Ar.isValid=function(){return m(this)},Ar.lang=dr,Ar.locale=ar,Ar.localeData=ur,Ar.max=ke,Ar.min=Ue,Ar.parsingFlags=function(){return c({},p(this))},Ar.set=function(t,e){if("object"==typeof t){var r,n=function(t){var e,r=[];for(e in t)a(t,e)&&r.push({unit:e,priority:H[e]});return r.sort((function(t,e){return t.priority-e.priority})),r}(t=j(t)),i=n.length;for(r=0;r<i;r++)this[n[r].unit](t[n[r].unit])}else if(A(this[t=V(t)]))return this[t](e);return this},Ar.startOf=function(t){var e,r;if(void 0===(t=V(t))||"millisecond"===t||!this.isValid())return this;switch(r=this._isUTC?mr:pr,t){case"year":e=r(this.year(),0,1);break;case"quarter":e=r(this.year(),this.month()-this.month()%3,1);break;case"month":e=r(this.year(),this.month(),1);break;case"week":e=r(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=r(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=gr(e+(this._isUTC?0:this.utcOffset()*lr),fr);break;case"minute":e=this._d.valueOf(),e-=gr(e,lr);break;case"second":e=this._d.valueOf(),e-=gr(e,hr)}return this._d.setTime(e),i.updateOffset(this,!0),this},Ar.subtract=nr,Ar.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},Ar.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},Ar.toDate=function(){return new Date(this.valueOf())},Ar.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,r=e?this.clone().utc():this;return r.year()<0||r.year()>9999?k(r,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):A(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",k(r,"Z")):k(r,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Ar.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t,e,r,n="moment",i="";return this.isLocal()||(n=0===this.utcOffset()?"moment.utc":"moment.parseZone",i="Z"),t="["+n+'("]',e=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r=i+'[")]',this.format(t+e+"-MM-DD[T]HH:mm:ss.SSS"+r)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(Ar[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),Ar.toJSON=function(){return this.isValid()?this.toISOString():null},Ar.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Ar.unix=function(){return Math.floor(this.valueOf()/1e3)},Ar.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Ar.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Ar.eraName=function(){var t,e,r,n=this.localeData().eras();for(t=0,e=n.length;t<e;++t){if(r=this.clone().startOf("day").valueOf(),n[t].since<=r&&r<=n[t].until)return n[t].name;if(n[t].until<=r&&r<=n[t].since)return n[t].name}return""},Ar.eraNarrow=function(){var t,e,r,n=this.localeData().eras();for(t=0,e=n.length;t<e;++t){if(r=this.clone().startOf("day").valueOf(),n[t].since<=r&&r<=n[t].until)return n[t].narrow;if(n[t].until<=r&&r<=n[t].since)return n[t].narrow}return""},Ar.eraAbbr=function(){var t,e,r,n=this.localeData().eras();for(t=0,e=n.length;t<e;++t){if(r=this.clone().startOf("day").valueOf(),n[t].since<=r&&r<=n[t].until)return n[t].abbr;if(n[t].until<=r&&r<=n[t].since)return n[t].abbr}return""},Ar.eraYear=function(){var t,e,r,n,o=this.localeData().eras();for(t=0,e=o.length;t<e;++t)if(r=o[t].since<=o[t].until?1:-1,n=this.clone().startOf("day").valueOf(),o[t].since<=n&&n<=o[t].until||o[t].until<=n&&n<=o[t].since)return(this.year()-i(o[t].since).year())*r+o[t].offset;return this.year()},Ar.year=jt,Ar.isLeapYear=function(){return W(this.year())},Ar.weekYear=function(t){return _r.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Ar.isoWeekYear=function(t){return _r.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},Ar.quarter=Ar.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},Ar.month=Ft,Ar.daysInMonth=function(){return Ot(this.year(),this.month())},Ar.week=Ar.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},Ar.isoWeek=Ar.isoWeeks=function(t){var e=zt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},Ar.weeksInYear=function(){var t=this.localeData()._week;return qt(this.year(),t.dow,t.doy)},Ar.weeksInWeekYear=function(){var t=this.localeData()._week;return qt(this.weekYear(),t.dow,t.doy)},Ar.isoWeeksInYear=function(){return qt(this.year(),1,4)},Ar.isoWeeksInISOWeekYear=function(){return qt(this.isoWeekYear(),1,4)},Ar.date=wr,Ar.day=Ar.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},Ar.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},Ar.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},Ar.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},Ar.hour=Ar.hours=ae,Ar.minute=Ar.minutes=$r,Ar.second=Ar.seconds=Er,Ar.millisecond=Ar.milliseconds=Nr,Ar.utcOffset=function(t,e,r){var n,o=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=We(ft,t)))return this}else Math.abs(t)<16&&!r&&(t*=60);return!this._isUTC&&e&&(n=ze(this)),this._offset=t,this._isUTC=!0,null!=n&&this.add(n,"m"),o!==t&&(!e||this._changeInProgress?er(this,Xe(t-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,i.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?o:ze(this)},Ar.utc=function(t){return this.utcOffset(0,t)},Ar.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(ze(this),"m")),this},Ar.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=We(lt,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},Ar.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?De(t).utcOffset():0,(this.utcOffset()-t)%60==0)},Ar.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Ar.isLocal=function(){return!!this.isValid()&&!this._isUTC},Ar.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Ar.isUtc=qe,Ar.isUTC=qe,Ar.zoneAbbr=function(){return this._isUTC?"UTC":""},Ar.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Ar.dates=S("dates accessor is deprecated. Use date instead.",wr),Ar.months=S("months accessor is deprecated. Use month instead",Ft),Ar.years=S("years accessor is deprecated. Use year instead",jt),Ar.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),Ar.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!u(this._isDSTShifted))return this._isDSTShifted;var t,e={};return _(e,this),(e=Ie(e))._a?(t=e._isUTC?g(e._a):De(e._a),this._isDSTShifted=this.isValid()&&function(t,e,r){var n,i=Math.min(t.length,e.length),o=Math.abs(t.length-e.length),s=0;for(n=0;n<i;n++)(r&&t[n]!==e[n]||!r&&z(t[n])!==z(e[n]))&&s++;return s+o}(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}));var Pr=P.prototype;function Or(t,e,r,n){var i=be(),o=g().set(n,e);return i[r](o,t)}function Cr(t,e,r){if(h(t)&&(e=t,t=void 0),t=t||"",null!=e)return Or(t,e,r,"month");var n,i=[];for(n=0;n<12;n++)i[n]=Or(t,n,r,"month");return i}function Ir(t,e,r,n){"boolean"==typeof t?(h(e)&&(r=e,e=void 0),e=e||""):(r=e=t,t=!1,h(e)&&(r=e,e=void 0),e=e||"");var i,o=be(),s=t?o._week.dow:0,a=[];if(null!=r)return Or(e,(r+s)%7,n,"day");for(i=0;i<7;i++)a[i]=Or(e,(i+s)%7,n,"day");return a}Pr.calendar=function(t,e,r){var n=this._calendar[t]||this._calendar.sameElse;return A(n)?n.call(e,r):n},Pr.longDateFormat=function(t){var e=this._longDateFormat[t],r=this._longDateFormat[t.toUpperCase()];return e||!r?e:(this._longDateFormat[t]=r.match(C).map((function(t){return"MMMM"===t||"MM"===t||"DD"===t||"dddd"===t?t.slice(1):t})).join(""),this._longDateFormat[t])},Pr.invalidDate=function(){return this._invalidDate},Pr.ordinal=function(t){return this._ordinal.replace("%d",t)},Pr.preparse=Rr,Pr.postformat=Rr,Pr.relativeTime=function(t,e,r,n){var i=this._relativeTime[r];return A(i)?i(t,e,r,n):i.replace(/%d/i,t)},Pr.pastFuture=function(t,e){var r=this._relativeTime[t>0?"future":"past"];return A(r)?r(e):r.replace(/%s/i,e)},Pr.set=function(t){var e,r;for(r in t)a(t,r)&&(A(e=t[r])?this[r]=e:this["_"+r]=e);this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Pr.eras=function(t,e){var r,n,o,s=this._eras||be("en")._eras;for(r=0,n=s.length;r<n;++r)switch("string"==typeof s[r].since&&(o=i(s[r].since).startOf("day"),s[r].since=o.valueOf()),typeof s[r].until){case"undefined":s[r].until=1/0;break;case"string":o=i(s[r].until).startOf("day").valueOf(),s[r].until=o.valueOf()}return s},Pr.erasParse=function(t,e,r){var n,i,o,s,a,d=this.eras();for(t=t.toUpperCase(),n=0,i=d.length;n<i;++n)if(o=d[n].name.toUpperCase(),s=d[n].abbr.toUpperCase(),a=d[n].narrow.toUpperCase(),r)switch(e){case"N":case"NN":case"NNN":if(s===t)return d[n];break;case"NNNN":if(o===t)return d[n];break;case"NNNNN":if(a===t)return d[n]}else if([o,s,a].indexOf(t)>=0)return d[n]},Pr.erasConvertYear=function(t,e){var r=t.since<=t.until?1:-1;return void 0===e?i(t.since).year():i(t.since).year()+(e-t.offset)*r},Pr.erasAbbrRegex=function(t){return a(this,"_erasAbbrRegex")||yr.call(this),t?this._erasAbbrRegex:this._erasRegex},Pr.erasNameRegex=function(t){return a(this,"_erasNameRegex")||yr.call(this),t?this._erasNameRegex:this._erasRegex},Pr.erasNarrowRegex=function(t){return a(this,"_erasNarrowRegex")||yr.call(this),t?this._erasNarrowRegex:this._erasRegex},Pr.months=function(t,e){return t?o(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Lt).test(e)?"format":"standalone"][t.month()]:o(this._months)?this._months:this._months.standalone},Pr.monthsShort=function(t,e){return t?o(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Lt.test(e)?"format":"standalone"][t.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Pr.monthsParse=function(t,e,r){var n,i,o;if(this._monthsParseExact)return kt.call(this,t,e,r);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),n=0;n<12;n++){if(i=g([2e3,n]),r&&!this._longMonthsParse[n]&&(this._longMonthsParse[n]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[n]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),r||this._monthsParse[n]||(o="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[n]=new RegExp(o.replace(".",""),"i")),r&&"MMMM"===e&&this._longMonthsParse[n].test(t))return n;if(r&&"MMM"===e&&this._shortMonthsParse[n].test(t))return n;if(!r&&this._monthsParse[n].test(t))return n}},Pr.monthsRegex=function(t){return this._monthsParseExact?(a(this,"_monthsRegex")||Bt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(a(this,"_monthsRegex")||(this._monthsRegex=Ut),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},Pr.monthsShortRegex=function(t){return this._monthsParseExact?(a(this,"_monthsRegex")||Bt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(a(this,"_monthsShortRegex")||(this._monthsShortRegex=Dt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},Pr.week=function(t){return zt(t,this._week.dow,this._week.doy).week},Pr.firstDayOfYear=function(){return this._week.doy},Pr.firstDayOfWeek=function(){return this._week.dow},Pr.weekdays=function(t,e){var r=o(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Kt(r,this._week.dow):t?r[t.day()]:r},Pr.weekdaysMin=function(t){return!0===t?Kt(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},Pr.weekdaysShort=function(t){return!0===t?Kt(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},Pr.weekdaysParse=function(t,e,r){var n,i,o;if(this._weekdaysParseExact)return re.call(this,t,e,r);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(i=g([2e3,1]).day(n),r&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[n]||(o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[n]=new RegExp(o.replace(".",""),"i")),r&&"dddd"===e&&this._fullWeekdaysParse[n].test(t))return n;if(r&&"ddd"===e&&this._shortWeekdaysParse[n].test(t))return n;if(r&&"dd"===e&&this._minWeekdaysParse[n].test(t))return n;if(!r&&this._weekdaysParse[n].test(t))return n}},Pr.weekdaysRegex=function(t){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||ne.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(a(this,"_weekdaysRegex")||(this._weekdaysRegex=Qt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},Pr.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||ne.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(a(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=te),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Pr.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||ne.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(a(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=ee),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Pr.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},Pr.meridiem=function(t,e,r){return t>11?r?"pm":"PM":r?"am":"AM"},pe("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===z(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),i.lang=S("moment.lang is deprecated. Use moment.locale instead.",pe),i.langData=S("moment.langData is deprecated. Use moment.localeData instead.",be);var Lr=Math.abs;function Dr(t,e,r,n){var i=Xe(e,r);return t._milliseconds+=n*i._milliseconds,t._days+=n*i._days,t._months+=n*i._months,t._bubble()}function Ur(t){return t<0?Math.floor(t):Math.ceil(t)}function kr(t){return 4800*t/146097}function xr(t){return 146097*t/4800}function Fr(t){return function(){return this.as(t)}}var Br=Fr("ms"),Vr=Fr("s"),jr=Fr("m"),Hr=Fr("h"),Gr=Fr("d"),Wr=Fr("w"),Yr=Fr("M"),zr=Fr("Q"),qr=Fr("y");function Kr(t){return function(){return this.isValid()?this._data[t]:NaN}}var Zr=Kr("milliseconds"),Xr=Kr("seconds"),Jr=Kr("minutes"),Qr=Kr("hours"),tn=Kr("days"),en=Kr("months"),rn=Kr("years");var nn=Math.round,on={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function sn(t,e,r,n,i){return i.relativeTime(e||1,!!r,t,n)}var an=Math.abs;function dn(t){return(t>0)-(t<0)||+t}function un(){if(!this.isValid())return this.localeData().invalidDate();var t,e,r,n,i,o,s,a,d=an(this._milliseconds)/1e3,u=an(this._days),h=an(this._months),l=this.asSeconds();return l?(t=Y(d/60),e=Y(t/60),d%=60,t%=60,r=Y(h/12),h%=12,n=d?d.toFixed(3).replace(/\.?0+$/,""):"",i=l<0?"-":"",o=dn(this._months)!==dn(l)?"-":"",s=dn(this._days)!==dn(l)?"-":"",a=dn(this._milliseconds)!==dn(l)?"-":"",i+"P"+(r?o+r+"Y":"")+(h?o+h+"M":"")+(u?s+u+"D":"")+(e||t||d?"T":"")+(e?a+e+"H":"")+(t?a+t+"M":"")+(d?a+n+"S":"")):"P0D"}var hn=Be.prototype;return hn.isValid=function(){return this._isValid},hn.abs=function(){var t=this._data;return this._milliseconds=Lr(this._milliseconds),this._days=Lr(this._days),this._months=Lr(this._months),t.milliseconds=Lr(t.milliseconds),t.seconds=Lr(t.seconds),t.minutes=Lr(t.minutes),t.hours=Lr(t.hours),t.months=Lr(t.months),t.years=Lr(t.years),this},hn.add=function(t,e){return Dr(this,t,e,1)},hn.subtract=function(t,e){return Dr(this,t,e,-1)},hn.as=function(t){if(!this.isValid())return NaN;var e,r,n=this._milliseconds;if("month"===(t=V(t))||"quarter"===t||"year"===t)switch(e=this._days+n/864e5,r=this._months+kr(e),t){case"month":return r;case"quarter":return r/3;case"year":return r/12}else switch(e=this._days+Math.round(xr(this._months)),t){case"week":return e/7+n/6048e5;case"day":return e+n/864e5;case"hour":return 24*e+n/36e5;case"minute":return 1440*e+n/6e4;case"second":return 86400*e+n/1e3;case"millisecond":return Math.floor(864e5*e)+n;default:throw new Error("Unknown unit "+t)}},hn.asMilliseconds=Br,hn.asSeconds=Vr,hn.asMinutes=jr,hn.asHours=Hr,hn.asDays=Gr,hn.asWeeks=Wr,hn.asMonths=Yr,hn.asQuarters=zr,hn.asYears=qr,hn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*z(this._months/12):NaN},hn._bubble=function(){var t,e,r,n,i,o=this._milliseconds,s=this._days,a=this._months,d=this._data;return o>=0&&s>=0&&a>=0||o<=0&&s<=0&&a<=0||(o+=864e5*Ur(xr(a)+s),s=0,a=0),d.milliseconds=o%1e3,t=Y(o/1e3),d.seconds=t%60,e=Y(t/60),d.mi
vendor: 6,223 bytes, line 15672
15672nutes=e%60,r=Y(e/60),d.hours=r%24,s+=Y(r/24),a+=i=Y(kr(s)),s-=Ur(xr(i)),n=Y(a/12),a%=12,d.days=s,d.months=a,d.years=n,this},hn.clone=function(){return Xe(this)},hn.get=function(t){return t=V(t),this.isValid()?this[t+"s"]():NaN},hn.milliseconds=Zr,hn.seconds=Xr,hn.minutes=Jr,hn.hours=Qr,hn.days=tn,hn.weeks=function(){return Y(this.days()/7)},hn.months=en,hn.years=rn,hn.humanize=function(t,e){if(!this.isValid())return this.localeData().invalidDate();var r,n,i=!1,o=on;return"object"==typeof t&&(e=t,t=!1),"boolean"==typeof t&&(i=t),"object"==typeof e&&(o=Object.assign({},on,e),null!=e.s&&null==e.ss&&(o.ss=e.s-1)),n=function(t,e,r,n){var i=Xe(t).abs(),o=nn(i.as("s")),s=nn(i.as("m")),a=nn(i.as("h")),d=nn(i.as("d")),u=nn(i.as("M")),h=nn(i.as("w")),l=nn(i.as("y")),f=o<=r.ss&&["s",o]||o<r.s&&["ss",o]||s<=1&&["m"]||s<r.m&&["mm",s]||a<=1&&["h"]||a<r.h&&["hh",a]||d<=1&&["d"]||d<r.d&&["dd",d];return null!=r.w&&(f=f||h<=1&&["w"]||h<r.w&&["ww",h]),(f=f||u<=1&&["M"]||u<r.M&&["MM",u]||l<=1&&["y"]||["yy",l])[2]=e,f[3]=+t>0,f[4]=n,sn.apply(null,f)}(this,!i,o,r=this.localeData()),i&&(n=r.pastFuture(+this,n)),r.postformat(n)},hn.toISOString=un,hn.toString=un,hn.toJSON=un,hn.locale=ar,hn.localeData=ur,hn.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",un),hn.lang=dr,U("X",0,0,"unix"),U("x",0,0,"valueOf"),gt("x",ht),gt("X",/[+-]?\d+(\.\d{1,3})?/),yt("X",(function(t,e,r){r._d=new Date(1e3*parseFloat(t))})),yt("x",(function(t,e,r){r._d=new Date(z(t))})),i.version="2.29.4",e=De,i.fn=Ar,i.min=function(){return xe("isBefore",[].slice.call(arguments,0))},i.max=function(){return xe("isAfter",[].slice.call(arguments,0))},i.now=function(){return Date.now?Date.now():+new Date},i.utc=g,i.unix=function(t){return De(1e3*t)},i.months=function(t,e){return Cr(t,e,"months")},i.isDate=l,i.locale=pe,i.invalid=b,i.duration=Xe,i.isMoment=w,i.weekdays=function(t,e,r){return Ir(t,e,r,"weekdays")},i.parseZone=function(){return De.apply(null,arguments).parseZone()},i.localeData=be,i.isDuration=Ve,i.monthsShort=function(t,e){return Cr(t,e,"monthsShort")},i.weekdaysMin=function(t,e,r){return Ir(t,e,r,"weekdaysMin")},i.defineLocale=me,i.updateLocale=function(t,e){if(null!=e){var r,n,i=ue;null!=he[t]&&null!=he[t].parentLocale?he[t].set(R(he[t]._config,e)):(null!=(n=ge(t))&&(i=n._config),e=R(i,e),null==n&&(e.abbr=t),(r=new P(e)).parentLocale=he[t],he[t]=r),pe(t)}else null!=he[t]&&(null!=he[t].parentLocale?(he[t]=he[t].parentLocale,t===pe()&&pe(t)):null!=he[t]&&delete he[t]);return he[t]},i.locales=function(){return N(he)},i.weekdaysShort=function(t,e,r){return Ir(t,e,r,"weekdaysShort")},i.normalizeUnits=V,i.relativeTimeRounding=function(t){return void 0===t?nn:"function"==typeof t&&(nn=t,!0)},i.relativeTimeThreshold=function(t,e){return void 0!==on[t]&&(void 0===e?on[t]:(on[t]=e,"s"===t&&(on.ss=e-1),!0))},i.calendarFormat=function(t,e){var r=t.diff(e,"days",!0);return r<-6?"sameElse":r<-1?"lastWeek":r<0?"lastDay":r<1?"sameDay":r<2?"nextDay":r<7?"nextWeek":"sameElse"},i.prototype=Ar,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},i}()},3518:(t,e,r)=>{"use strict";var n=r(7568);e.certificate=r(6413);var i=n.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));e.RSAPrivateKey=i;var o=n.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));e.RSAPublicKey=o;var s=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),a=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));e.PublicKey=a;var d=n.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));e.PrivateKey=d;var u=n.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));e.EncryptedPrivateKey=u;var h=n.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));e.DSAPrivateKey=h,e.DSAparam=n.define("DSAparam",(function(){this.int()}));var l=n.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})})),f=n.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(l),this.key("publicKey").optional().explicit(1).bitstr())}));e.ECPrivateKey=f,e.signature=n.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},6413:(t,e,r)=>{"use strict";var n=r(7568),i=n.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),o=n.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),s=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),a=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())})),d=n.define("RelativeDistinguishedName",(function(){this.setof(o)})),u=n.define("RDNSequence",(function(){this.seqof(d)}
vendor: 5,691 bytes, line 15672
15672)),h=n.define("Name",(function(){this.choice({rdnSequence:this.use(u)})})),l=n.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))})),f=n.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),c=n.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(s),this.key("issuer").use(h),this.key("validity").use(l),this.key("subject").use(h),this.key("subjectPublicKeyInfo").use(a),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(f).optional())})),g=n.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(c),this.key("signatureAlgorithm").use(s),this.key("signatureValue").bitstr())}));t.exports=g},4101:(t,e,r)=>{"use strict";var n=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,s=r(8078),a=r(1241),d=r(2861).Buffer;t.exports=function(t,e){var r,u=t.toString(),h=u.match(n);if(h){var l="aes"+h[1],f=d.from(h[2],"hex"),c=d.from(h[3].replace(/[\r\n]/g,""),"base64"),g=s(e,f.slice(0,8),parseInt(h[1],10)).key,p=[],m=a.createDecipheriv(l,g,f);p.push(m.update(c)),p.push(m.final()),r=d.concat(p)}else{var b=u.match(o);r=d.from(b[2].replace(/[\r\n]/g,""),"base64")}return{tag:u.match(i)[1],data:r}}},8170:(t,e,r)=>{"use strict";var n=r(3518),i=r(5579),o=r(4101),s=r(1241),a=r(8396),d=r(2861).Buffer;function u(t){var e;"object"!=typeof t||d.isBuffer(t)||(e=t.passphrase,t=t.key),"string"==typeof t&&(t=d.from(t));var r,u,h=o(t,e),l=h.tag,f=h.data;switch(l){case"CERTIFICATE":u=n.certificate.decode(f,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(u||(u=n.PublicKey.decode(f,"der")),r=u.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(u.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return u.subjectPrivateKey=u.subjectPublicKey,{type:"ec",data:u};case"1.2.840.10040.4.1":return u.algorithm.params.pub_key=n.DSAparam.decode(u.subjectPublicKey.data,"der"),{type:"dsa",data:u.algorithm.params};default:throw new Error("unknown key id "+r)}case"ENCRYPTED PRIVATE KEY":f=function(t,e){var r=t.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),o=i[t.algorithm.decrypt.cipher.algo.join(".")],u=t.algorithm.decrypt.cipher.iv,h=t.subjectPrivateKey,l=parseInt(o.split("-")[1],10)/8,f=a.pbkdf2Sync(e,r,n,l,"sha1"),c=s.createDecipheriv(o,f,u),g=[];return g.push(c.update(h)),g.push(c.final()),d.concat(g)}(f=n.EncryptedPrivateKey.decode(f,"der"),e);case"PRIVATE KEY":switch(r=(u=n.PrivateKey.decode(f,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(u.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:u.algorithm.curve,privateKey:n.ECPrivateKey.decode(u.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return u.algorithm.params.priv_key=n.DSAparam.decode(u.subjectPrivateKey,"der"),{type:"dsa",params:u.algorithm.params};default:throw new Error("unknown key id "+r)}case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(f,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(f,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(f,"der")};case"EC PRIVATE KEY":return{curve:(f=n.ECPrivateKey.decode(f,"der")).parameters.value,privateKey:f.privateKey};default:throw new Error("unknown key type "+l)}}u.signature=n.signature,t.exports=u},8396:(t,e,r)=>{e.pbkdf2=r(3832),e.pbkdf2Sync=r(1352)},3832:(t,e,r)=>{var n,i,o=r(2861).Buffer,s=r(4196),a=r(2455),d=r(1352),u=r(3382),h=r.g.crypto&&r.g.crypto.subtle,l={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},f=[];function c(){return i||(i=r.g.process&&r.g.process.nextTick?r.g.process.nextTick:r.g.queueMicrotask?r.g.queueMicrotask:r.g.setImmediate?r.g.setImmediate:r.g.setTimeout)}function g(t,e,r,n,i){return h.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((function(t){return h.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:i}},t,n<<3)})).then((function(t){return o.from(t)}))}t.exports=function(t,e,i,p,m,b){"function"==typeof m&&(b=m,m=void 0);var y=l[(m=m||"sha1").toLowerCase()];if(y&&"function"==typeof r.g.Promise){if(s(i,p),t=u(t,a,"Password"),e=u(e,a,"Salt"),"function"!=typeof b)throw new Error("No callback provided to pbkdf2");!function(t,e){t.then((function(t){c()((function(){e(null,t)}))}),(function(t){c()((function(){e(t)}))}))}(function(t){if(r.g.process&&!r.g.process.browser)return Promise.resolve(!1);if(!h||!h.importKey||!h.deriveBits)return Promise.resolve(!1);if(void 0!==f[t])return f[t];var e=g(n=n||o.alloc(8),n,10,128,t).then((function(){return!0})).catch((function(){return!1}));return f[t]=e,e}(y).then((function(r){return r?g(t,e,i,p,y):d(t,e,i,p,m)})),b)}else c()((function(){var r;try{r=d(t,e,i,p,m)}catch(t){return b(t)}b(null,r)}))}},2455:(t,e,r)=>{var n,i=r(5606);n=r.g.process&&r.g.process.browser?"utf-8":r.g.process&&r.g.process.version?parseInt(i.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary":"utf-8",t.exports=n},4196:t=>{var e=Math.pow(2,30)-1;t.exports=function(t,r){if("number"!=typeof t)throw new TypeError("Iterations not a number");if(t<0)throw new TypeError("Bad iterations");
vendor: 4,770 bytes, line 15672
15672if("number"!=typeof r)throw new TypeError("Key length not a number");if(r<0||r>e||r!=r)throw new TypeError("Bad key length")}},1352:(t,e,r)=>{var n=r(320),i=r(6011),o=r(2802),s=r(2861).Buffer,a=r(4196),d=r(2455),u=r(3382),h=s.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function f(t,e,r){var a=function(t){return"rmd160"===t||"ripemd160"===t?function(t){return(new i).update(t).digest()}:"md5"===t?n:function(e){return o(t).update(e).digest()}}(t),d="sha512"===t||"sha384"===t?128:64;e.length>d?e=a(e):e.length<d&&(e=s.concat([e,h],d));for(var u=s.allocUnsafe(d+l[t]),f=s.allocUnsafe(d+l[t]),c=0;c<d;c++)u[c]=54^e[c],f[c]=92^e[c];var g=s.allocUnsafe(d+r+4);u.copy(g,0,0,d),this.ipad1=g,this.ipad2=u,this.opad=f,this.alg=t,this.blocksize=d,this.hash=a,this.size=l[t]}f.prototype.run=function(t,e){return t.copy(e,this.blocksize),this.hash(e).copy(this.opad,this.blocksize),this.hash(this.opad)},t.exports=function(t,e,r,n,i){a(r,n);var o=new f(i=i||"sha1",t=u(t,d,"Password"),(e=u(e,d,"Salt")).length),h=s.allocUnsafe(n),c=s.allocUnsafe(e.length+4);e.copy(c,0,0,e.length);for(var g=0,p=l[i],m=Math.ceil(n/p),b=1;b<=m;b++){c.writeUInt32BE(b,e.length);for(var y=o.run(c,o.ipad1),v=y,_=1;_<r;_++){v=o.run(v,o.ipad2);for(var M=0;M<p;M++)y[M]^=v[M]}y.copy(h,g),g+=p}return h}},3382:(t,e,r)=>{var n=r(2861).Buffer;t.exports=function(t,e,r){if(n.isBuffer(t))return t;if("string"==typeof t)return n.from(t,e);if(ArrayBuffer.isView(t))return n.from(t.buffer);throw new TypeError(r+" must be a string, a Buffer, a typed array or a DataView")}},3225:(t,e,r)=>{"use strict";var n=r(5606);void 0===n||!n.version||0===n.version.indexOf("v0.")||0===n.version.indexOf("v1.")&&0!==n.version.indexOf("v1.8.")?t.exports={nextTick:function(t,e,r,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return n.nextTick(t);case 2:return n.nextTick((function(){t.call(null,e)}));case 3:return n.nextTick((function(){t.call(null,e,r)}));case 4:return n.nextTick((function(){t.call(null,e,r,i)}));default:for(o=new Array(a-1),s=0;s<o.length;)o[s++]=arguments[s];return n.nextTick((function(){t.apply(null,o)}))}}}:t.exports=n},5606:t=>{var e,r,n=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(t){if(e===setTimeout)return setTimeout(t,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(r){try{return e.call(null,t,0)}catch(r){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:i}catch(t){e=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(t){r=o}}();var a,d=[],u=!1,h=-1;function l(){u&&a&&(u=!1,a.length?d=a.concat(d):h=-1,d.length&&f())}function f(){if(!u){var t=s(l);u=!0;for(var e=d.length;e;){for(a=d,d=[];++h<e;)a&&a[h].run();h=-1,e=d.length}a=null,u=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{return r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function c(t,e){this.fun=t,this.array=e}function g(){}n.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];d.push(new c(t,e)),1!==d.length||u||s(f)},c.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=g,n.addListener=g,n.once=g,n.off=g,n.removeListener=g,n.removeAllListeners=g,n.emit=g,n.prependListener=g,n.prependOnceListener=g,n.listeners=function(t){return[]},n.binding=function(t){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(t){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},7168:(t,e,r)=>{e.publicEncrypt=r(8902),e.privateDecrypt=r(7362),e.privateEncrypt=function(t,r){return e.publicEncrypt(t,r,!0)},e.publicDecrypt=function(t,r){return e.privateDecrypt(t,r,!0)}},8206:(t,e,r)=>{var n=r(7108),i=r(2861).Buffer;function o(t){var e=i.allocUnsafe(4);return e.writeUInt32BE(t,0),e}t.exports=function(t,e){for(var r,s=i.alloc(0),a=0;s.length<e;)r=o(a++),s=i.concat([s,n("sha1").update(t).update(r).digest()]);return s.slice(0,e)}},2509:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;
vendor: 8,569 bytes, line 15672
15672"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(1069).Buffer}catch(t){}function a(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function d(t,e,r){var n=a(t,r);return r-1>=e&&(n|=a(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),s=e;s<o;s++){var a=t.charCodeAt(s)-48;i*=n,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===r)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=d(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,d=0,h=r;h<a;h+=n)d=u(t,h,h+n,e),this.imuln(i),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d);if(0!==s){var l=1;for(d=u(t,h,t.length,e),h=0;h<s;h++)l*=e;this.imuln(l),this.words[0]+d<67108864?this.words[0]+=d:this._iaddn(d)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,d=s/67108864|0;r.words[0]=a;for(var u=1;u<n;u++){for(var h=d>>>26,l=67108863&d,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var g=u-c|0;h+=(s=(i=0|t.words[g])*(o=0|e.words[c])+l)/67108864|0,l=67108863&s}r.words[u]=0|l,d=0|h}return 0!==d?r.words[u]=0|d:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],d=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),r=0!==o||s!==this.length-1?h[6-d.length]+d+r:d+r}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=l[t],c=f[t];r="";var g=this.clone();for(g.negative=0;!g.isZero();){var p=g.modn(c).toString(t);r=(g=g.idivn(c)).isZero()?p+r:h[u-p.length]+p+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var s,a,d="le"===e,u=new t(o),h=this.clone();if(d){for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[a]=s;for(;a<o;a++)u[a]=0}else{for(a=0;a<o-i;a++)u[a]=0;for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),u[o-a-1]=s}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return n(!(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return n(!(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return n(!
vendor: 2,330 bytes, line 15672
15672(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},o.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var 
vendor: 7,651 bytes, line 15672
15672g=function(t,e,r){var n,i,o,s=t.words,a=e.words,d=r.words,u=0,h=0|s[0],l=8191&h,f=h>>>13,c=0|s[1],g=8191&c,p=c>>>13,m=0|s[2],b=8191&m,y=m>>>13,v=0|s[3],_=8191&v,M=v>>>13,w=0|s[4],$=8191&w,S=w>>>13,N=0|s[5],E=8191&N,T=N>>>13,A=0|s[6],R=8191&A,P=A>>>13,O=0|s[7],C=8191&O,I=O>>>13,L=0|s[8],D=8191&L,U=L>>>13,k=0|s[9],x=8191&k,F=k>>>13,B=0|a[0],V=8191&B,j=B>>>13,H=0|a[1],G=8191&H,W=H>>>13,Y=0|a[2],z=8191&Y,q=Y>>>13,K=0|a[3],Z=8191&K,X=K>>>13,J=0|a[4],Q=8191&J,tt=J>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],dt=8191&at,ut=at>>>13,ht=0|a[8],lt=8191&ht,ft=ht>>>13,ct=0|a[9],gt=8191&ct,pt=ct>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(u+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,j))+Math.imul(f,V)|0))<<13)|0;u=((o=Math.imul(f,j))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(g,V),i=(i=Math.imul(g,j))+Math.imul(p,V)|0,o=Math.imul(p,j);var bt=(u+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(f,G)|0))<<13)|0;u=((o=o+Math.imul(f,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,j))+Math.imul(y,V)|0,o=Math.imul(y,j),n=n+Math.imul(g,G)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(p,G)|0,o=o+Math.imul(p,W)|0;var yt=(u+(n=n+Math.imul(l,z)|0)|0)+((8191&(i=(i=i+Math.imul(l,q)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,q)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(_,V),i=(i=Math.imul(_,j))+Math.imul(M,V)|0,o=Math.imul(M,j),n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(g,z)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(p,z)|0,o=o+Math.imul(p,q)|0;var vt=(u+(n=n+Math.imul(l,Z)|0)|0)+((8191&(i=(i=i+Math.imul(l,X)|0)+Math.imul(f,Z)|0))<<13)|0;u=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul($,V),i=(i=Math.imul($,j))+Math.imul(S,V)|0,o=Math.imul(S,j),n=n+Math.imul(_,G)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,W)|0,n=n+Math.imul(b,z)|0,i=(i=i+Math.imul(b,q)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,q)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(p,Z)|0,o=o+Math.imul(p,X)|0;var _t=(u+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,V),i=(i=Math.imul(E,j))+Math.imul(T,V)|0,o=Math.imul(T,j),n=n+Math.imul($,G)|0,i=(i=i+Math.imul($,W)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(_,z)|0,i=(i=i+Math.imul(_,q)|0)+Math.imul(M,z)|0,o=o+Math.imul(M,q)|0,n=n+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,X)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(p,Q)|0,o=o+Math.imul(p,tt)|0;var Mt=(u+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(f,rt)|0))<<13)|0;u=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(R,V),i=(i=Math.imul(R,j))+Math.imul(P,V)|0,o=Math.imul(P,j),n=n+Math.imul(E,G)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul($,z)|0,i=(i=i+Math.imul($,q)|0)+Math.imul(S,z)|0,o=o+Math.imul(S,q)|0,n=n+Math.imul(_,Z)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(p,rt)|0,o=o+Math.imul(p,nt)|0;var wt=(u+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,st)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,j))+Math.imul(I,V)|0,o=Math.imul(I,j),n=n+Math.imul(R,G)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(P,G)|0,o=o+Math.imul(P,W)|0,n=n+Math.imul(E,z)|0,i=(i=i+Math.imul(E,q)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,q)|0,n=n+Math.imul($,Z)|0,i=(i=i+Math.imul($,X)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(y,rt)|0,o=o+Math.imul(y,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(p,ot)|0,o=o+Math.imul(p,st)|0;var $t=(u+(n=n+Math.imul(l,dt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ut)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,V),i=(i=Math.imul(D,j))+Math.imul(U,V)|0,o=Math.imul(U,j),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(I,G)|0,o=o+Math.imul(I,W)|0,n=n+Math.imul(R,z)|0,i=(i=i+Math.imul(R,q)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,q)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul($,Q)|0,i=(i=i+Math.imul($,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,st)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,st)|0,n=n+Math.imul(g,dt)|0,i=(i=i+Math.imul(g,ut)|0)+Math.imul(p,dt)|0,o=o+Math.imul(p,ut)|0;var St=(u+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ft)|0)+Math.imul(f,lt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(x,V),i=(i=Math.imul(x,j))+Math.imul(F,V)|0,o=Math.imul(F,j),n=n+Math.imul(D,G)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(C,z)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(I,z)|0,o=o+Math.imul(I,q)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul($,rt)|0,i=(i=i+Math.imul($,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(M,ot)|0,o=o+Math.imul(M,st)|0,n=n+Math.imul(b,dt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ut)|0,n=n+Math.imul(g,lt)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(p,lt)|0,o=o+Math.imul(p,ft)|0;var Nt=(u+(n=n+Math.imul(l,gt)|0)|0)+((8191&(i=(i=i+Math.imul(l,pt)|0)+Math.imul(f,gt)|0))<<13)|0;u=((o=o+Math.imul(f,pt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(x,G),i=(i=Math.imul(x,W))+Math.imul(F,G)|0,o=Math.imul(F,W),n=n+Math.imul(D,z)|0,i=(i=i+Math.imul(D,q)|0)+Math.imul(U,z)|0,o=o+Math.imul(U,q)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(I,Z)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul($,ot)|0,i=(i=i+Math.imul($,st)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,st)|0,n=n+Math.imul(_,dt)|0,i=(i=i+Math.imul(_,ut)|0)+Math.imul(M,dt)|0,o=o+Math.imul(M,ut)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ft)|0)+Math.imul(y,lt)|0,o=o+Math.imul(y,ft)|0;var Et=(u+(n=n+Math.imul(g,gt)|0)|0)+((8191&(i=(i=i+Math.imul(g,pt)|0)+Math.imul(p,gt)|0))<<13)|0;u=((o=o+Math.imul(p,pt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(x,z),i=(i=Math.imul(x,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(D,Z)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,X)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(R,rt)|0,i=(i=i+Math.imul(R,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,st)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,st)|0,n=n+Math.imul($,dt)|0,i=(i=i+Math.imul($,ut)|0)+Math.imul(S,dt)|0,o=o+Math.imul(S,ut)|0,n=n+Math.imul(_,lt)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(M,lt)|0,o=o+Math.imul(M,ft)|0;var Tt=(u+(n=n+Math.imul(b,gt)|0)|0)+((8191&(i=(i=i+Math.imul(b,pt)|0)+Math.imul(y,gt)|0))<<13)|0;u=((o=o+Math.imul(y,pt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(x,Z),i=(i=Math.imul(x,X))+Math.imul(F,Z)|0,o=Math.imul(F,X
vendor: 5,428 bytes, line 15672
15672),n=n+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,n=n+Math.imul(E,dt)|0,i=(i=i+Math.imul(E,ut)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ut)|0,n=n+Math.imul($,lt)|0,i=(i=i+Math.imul($,ft)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ft)|0;var At=(u+(n=n+Math.imul(_,gt)|0)|0)+((8191&(i=(i=i+Math.imul(_,pt)|0)+Math.imul(M,gt)|0))<<13)|0;u=((o=o+Math.imul(M,pt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(x,Q),i=(i=Math.imul(x,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(U,rt)|0,o=o+Math.imul(U,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(R,dt)|0,i=(i=i+Math.imul(R,ut)|0)+Math.imul(P,dt)|0,o=o+Math.imul(P,ut)|0,n=n+Math.imul(E,lt)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(T,lt)|0,o=o+Math.imul(T,ft)|0;var Rt=(u+(n=n+Math.imul($,gt)|0)|0)+((8191&(i=(i=i+Math.imul($,pt)|0)+Math.imul(S,gt)|0))<<13)|0;u=((o=o+Math.imul(S,pt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(x,rt),i=(i=Math.imul(x,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(D,ot)|0,i=(i=i+Math.imul(D,st)|0)+Math.imul(U,ot)|0,o=o+Math.imul(U,st)|0,n=n+Math.imul(C,dt)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(I,dt)|0,o=o+Math.imul(I,ut)|0,n=n+Math.imul(R,lt)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(P,lt)|0,o=o+Math.imul(P,ft)|0;var Pt=(u+(n=n+Math.imul(E,gt)|0)|0)+((8191&(i=(i=i+Math.imul(E,pt)|0)+Math.imul(T,gt)|0))<<13)|0;u=((o=o+Math.imul(T,pt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(x,ot),i=(i=Math.imul(x,st))+Math.imul(F,ot)|0,o=Math.imul(F,st),n=n+Math.imul(D,dt)|0,i=(i=i+Math.imul(D,ut)|0)+Math.imul(U,dt)|0,o=o+Math.imul(U,ut)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(I,lt)|0,o=o+Math.imul(I,ft)|0;var Ot=(u+(n=n+Math.imul(R,gt)|0)|0)+((8191&(i=(i=i+Math.imul(R,pt)|0)+Math.imul(P,gt)|0))<<13)|0;u=((o=o+Math.imul(P,pt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(x,dt),i=(i=Math.imul(x,ut))+Math.imul(F,dt)|0,o=Math.imul(F,ut),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ft)|0)+Math.imul(U,lt)|0,o=o+Math.imul(U,ft)|0;var Ct=(u+(n=n+Math.imul(C,gt)|0)|0)+((8191&(i=(i=i+Math.imul(C,pt)|0)+Math.imul(I,gt)|0))<<13)|0;u=((o=o+Math.imul(I,pt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(x,lt),i=(i=Math.imul(x,ft))+Math.imul(F,lt)|0,o=Math.imul(F,ft);var It=(u+(n=n+Math.imul(D,gt)|0)|0)+((8191&(i=(i=i+Math.imul(D,pt)|0)+Math.imul(U,gt)|0))<<13)|0;u=((o=o+Math.imul(U,pt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Lt=(u+(n=Math.imul(x,gt))|0)+((8191&(i=(i=Math.imul(x,pt))+Math.imul(F,gt)|0))<<13)|0;return u=((o=Math.imul(F,pt))+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,d[0]=mt,d[1]=bt,d[2]=yt,d[3]=vt,d[4]=_t,d[5]=Mt,d[6]=wt,d[7]=$t,d[8]=St,d[9]=Nt,d[10]=Et,d[11]=Tt,d[12]=At,d[13]=Rt,d[14]=Pt,d[15]=Ot,d[16]=Ct,d[17]=It,d[18]=Lt,0!==u&&(d[19]=u,r.length++),r};function p(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(g=c),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?g(this,t,e):n<63?c(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,d=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=d;u++){var h=o-u,l=(0|t.words[h])*(0|e.words[u]),f=67108863&l;a=67108863&(f=f+a|0),i+=(s=(s=s+(l/67108864|0)|0)+(f>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):p(this,t,e),r},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},m.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var s=0;s<o;s++)n[s]=e[t[s]],i[s]=r[t[s]]},m.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,d=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),h=0;h<i;h+=a)for(var l=d,f=u,c=0;c<s;c++){var g=r[h+c],p=n[h+c],m=r[h+c+s],b=n[h+c+s],y=l*m-f*b;b=l*b+f*m,m=y,r[h+c]=g+m,n[h+c]=p+b,r[h+c+s]=g-m,n[h+c+s]=p-b,c!==a&&(y=d*l-u*f,f=d*f+u*l,l=y)}},m.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},m.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},m.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},m.prototype.convert13b=function(t,e,r,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],r[2*s]=8191&o,o>>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)r[s]=0;n(0===o),n(!(-8192&o))},m.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},m.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),s=new Array(n),a=new Array(n),d=new Array(n),u=new Array(n),h=new Array(n),l=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,s,n),this.convert13b(e.words,e.length,u,n),this.transform(s,o,a,d,n,i),this.transform(u,o,h,l,n,i);for(var c=0;c<n;
vendor: 16,384 bytes, line 15672
15672c++){var g=a[c]*h[c]-d[c]*l[c];d[c]=a[c]*l[c]+d[c]*h[c],a[c]=g}return this.conjugate(a,d,n),this.transform(a,d,f,o,n,i),this.conjugate(f,o,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),p(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){n("number"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,o=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new o(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,d=(0|this.words[e])-a<<r;this.words[e]=d|s,s=a>>>26-r}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,d=r;if(i-=s,i=Math.max(0,i),d){for(var u=0;u<s;u++)d.words[u]=this.words[u];d.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var h=0;for(u=this.length-1;u>=0&&(0!==h||u>=i);u--){var l=0|this.words[u];this.words[u]=h<<26-o|l>>>o,h=l&a}return d&&0!==h&&(d.words[d.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,r){var i,o,s=t.length+r;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+r])+a;var d=(0|t.words[i])*e;a=((o-=67108863&d)>>26)-(d/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)a=(o=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&o;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,d=n.length-i.length;if("mod"!==e){(a=new o(null)).length=d+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var h=n.clone()._ishlnsubmul(i,1,d);0===h.negative&&(n=h,a&&(a.words[d]=1));for(var l=d-1;l>=0;l--){var f=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(i,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);a&&(a.words[l]=f)}return a&&a.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&t.negative?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),d=new o(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var h=r.clone(),l=e.clone();!e.isZero();){for(var f=0,c=1;!(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(h),s.isub(l)),i.iushrn(1),s.iushrn(1);for(var g=0,p=1;!(r.words[0]&p)&&g<26;++g,p<<=1);if(g>0)for(r.iushrn(g);g-- >0;)(a.isOdd()||d.isOdd())&&(a.iadd(h),d.isub(l)),a.iushrn(1),d.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(a),s.isub(d)):(r.isub(e),a.isub(i),d.isub(s))}return{a,b:d,gcd:r.iushln(u)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),d=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,h=1;!(e.words[0]&h)&&u<26;++u,h<<=1);if(u>0)for(e.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(d),s.iushrn(1);for(var l=0,f=1;!(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(d),a.iushrn(1);e.cmp(r)>=0?(e.isub(r),s.isub(a)):(r.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,s=r;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new $(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){$.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(v,y),v.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(_,y),i(M,y),i(w,y),w.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return b[t]=e,e},$.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},$.prototype._verify2=function(t,e){n(!(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},$.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},$.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},$.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},$.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},$.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},$.prototype.isqr=function(t){return this.imul(t,t.clone())},$.prototype.sqr=function(t){return th
vendor: 1,235 bytes, line 15672
15672is.mul(t,t)},$.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),d=a.redNeg(),u=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,u).cmp(d);)h.redIAdd(d);for(var l=this.pow(h,i),f=this.pow(t,i.addn(1).iushrn(1)),c=this.pow(t,i),g=s;0!==c.cmp(a);){for(var p=c,m=0;0!==p.cmp(a);m++)p=p.redSqr();n(m<g);var b=this.pow(l,new o(1).iushln(g-m-1));f=f.redMul(b),l=b.redSqr(),c=c.redMul(l),g=m}return f},$.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},$.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],s=0,a=0,d=e.bitLength()%26;for(0===d&&(d=26),n=e.length-1;n>=0;n--){for(var u=e.words[n],h=d-1;h>=0;h--){var l=u>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==s?(s<<=1,s|=l,(4==++a||0===n&&0===h)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}
vendor: 6,453 bytes, line 15672
15672d=26}return i},$.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},$.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new S(t)},i(S,$),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},7362:(t,e,r)=>{var n=r(8170),i=r(8206),o=r(2061),s=r(2509),a=r(7332),d=r(7108),u=r(9247),h=r(2861).Buffer;t.exports=function(t,e,r){var l;l=t.padding?t.padding:r?1:4;var f,c=n(t),g=c.modulus.byteLength();if(e.length>g||new s(e).cmp(c.modulus)>=0)throw new Error("decryption error");f=r?u(new s(e),c):a(e,c);var p=h.alloc(g-f.length);if(f=h.concat([p,f],g),4===l)return function(t,e){var r=t.modulus.byteLength(),n=d("sha1").update(h.alloc(0)).digest(),s=n.length;if(0!==e[0])throw new Error("decryption error");var a=e.slice(1,s+1),u=e.slice(s+1),l=o(a,i(u,s)),f=o(u,i(l,r-s-1));if(function(t,e){t=h.from(t),e=h.from(e);var r=0,n=t.length;t.length!==e.length&&(r++,n=Math.min(t.length,e.length));for(var i=-1;++i<n;)r+=t[i]^e[i];return r}(n,f.slice(0,s)))throw new Error("decryption error");for(var c=s;0===f[c];)c++;if(1!==f[c++])throw new Error("decryption error");return f.slice(c)}(c,f);if(1===l)return function(t,e,r){for(var n=e.slice(0,2),i=2,o=0;0!==e[i++];)if(i>=e.length){o++;break}var s=e.slice(2,i-1);if(("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++,s.length<8&&o++,o)throw new Error("decryption error");return e.slice(i)}(0,f,r);if(3===l)return f;throw new Error("unknown padding")}},8902:(t,e,r)=>{var n=r(8170),i=r(3209),o=r(7108),s=r(8206),a=r(2061),d=r(2509),u=r(9247),h=r(7332),l=r(2861).Buffer;t.exports=function(t,e,r){var f;f=t.padding?t.padding:r?1:4;var c,g=n(t);if(4===f)c=function(t,e){var r=t.modulus.byteLength(),n=e.length,u=o("sha1").update(l.alloc(0)).digest(),h=u.length,f=2*h;if(n>r-f-2)throw new Error("message too long");var c=l.alloc(r-n-f-2),g=r-h-1,p=i(h),m=a(l.concat([u,c,l.alloc(1,1),e],g),s(p,g)),b=a(p,s(m,h));return new d(l.concat([l.alloc(1),b,m],r))}(g,e);else if(1===f)c=function(t,e,r){var n,o=e.length,s=t.modulus.byteLength();if(o>s-11)throw new Error("message too long");return n=r?l.alloc(s-o-3,255):function(t){for(var e,r=l.allocUnsafe(t),n=0,o=i(2*t),s=0;n<t;)s===o.length&&(o=i(2*t),s=0),(e=o[s++])&&(r[n++]=e);return r}(s-o-3),new d(l.concat([l.from([0,r?1:2]),n,l.alloc(1),e],s))}(g,e,r);else{if(3!==f)throw new Error("unknown padding");if((c=new d(e)).cmp(g.modulus)>=0)throw new Error("data too long for modulus")}return r?h(c,g):u(c,g)}},9247:(t,e,r)=>{var n=r(2509),i=r(2861).Buffer;t.exports=function(t,e){return i.from(t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed().toArray())}},2061:t=>{t.exports=function(t,e){for(var r=t.length,n=-1;++n<r;)t[n]^=e[n];return t}},3209:(t,e,r)=>{"use strict";var n=r(5606),i=65536,o=r(2861).Buffer,s=r.g.crypto||r.g.msCrypto;s&&s.getRandomValues?t.exports=function(t,e){if(t>4294967295)throw new RangeError("requested too many random bytes");var r=o.allocUnsafe(t);if(t>0)if(t>i)for(var a=0;a<t;a+=i)s.getRandomValues(r.slice(a,a+i));else s.getRandomValues(r);return"function"==typeof e?n.nextTick((function(){e(null,r)})):r}:t.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}},6983:(t,e,r)=>{"use strict";var n=r(5606);function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=r(2861),s=r(3209),a=o.Buffer,d=o.kMaxLength,u=r.g.crypto||r.g.msCrypto,h=Math.pow(2,32)-1;function l(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>h||t<0)throw new TypeError("offset must be a uint32");if(t>d||t>e)throw new RangeError("offset out of range")}function f(t,e,r){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>h||t<0)throw new TypeError("size must be a uint32");if(t+e>r||t>d)throw new RangeError("buffer too small")}function c(t,e,r,i){if(n.browser){var o=t.buffer,a=new Uint8Array(o,e,r);return u.getRandomValues(a),i?void n.nextTick((function(){i(null,t)})):t}if(!i)return s(r).copy(t,e),t;s(r,(function(r,n){if(r)return i(r);n.copy(t,e),i(null,t)}))}u&&u.getRandomValues||!n.browser?(e.randomFill=function(t,e,n,i){if(!(a.isBuffer(t)||t instanceof r.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof e)i=e,e=0,n=t.length;else if("function"==typeof n)i=n,n=t.length-e;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return l(e,t.length),f(n,e,t.length),c(t,e,n,i)},e.randomFillSync=function(t,e,n){if(void 0===e&&(e=0),!(a.isBuffer(t)||t instanceof r.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return l(e,t.length),void 0===n&&(n=t.length-e),f(n,e,t.length),c(t,e,n)}):(e.randomFill=i,e.randomFillSync=i)},6048:t=>{"use strict";var e={};function r(t,r,n){n||(n=Error);var i=function(t){var e,n;function i(e,n,i){return t.call(this,function(t,e,n){return"string"==typeof r?r:r(t,e,n)}(e,n,i))||this}return n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,i}(n);i.prototype.name=n.name,i.prototype.code=t,e[t]=i}function n(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}r("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invali
15672d for option "'+t+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(t,e,r){var i,o,s,a,d;if("string"==typeof e&&(o="not ",e.substr(0,4)===o)?(i="must not be",e=e.replace(/^not /,"")):i="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))s="The ".concat(t," ").concat(i," ").concat(n(e,"type"));else{var u=("number"!=typeof d&&(d=0),d+1>(a=t).length||-1===a.indexOf(".",d)?"argument":"property");s='The "'.concat(t,'" ').concat(u," ").concat(i," ").concat(n(e,"type"))}return s+". Received type ".concat(typeof r)}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.F=e},5382:(t,e,r)=>{"use strict";var n=r(5606),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var o=r(5412),s=r(6708);r(6698)(h,o);for(var a=i(s.prototype),d=0;d<a.length;d++){var u=a[d];h.prototype[u]||(h.prototype[u]=s.prototype[u])}function h(t){if(!(this instanceof h))return new h(t);o.call(this,t),s.call(this,t),this.allowHalfOpen=!0,t&&(!1===t.readable&&(this.readable=!1),!1===t.writable&&(this.writable=!1),!1===t.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",l)))}function l(){this._writableState.ended||n.nextTick(f,this)}function f(t){t.end()}Object.defineProperty(h.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(h.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(h.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(h.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}})},3600:(t,e,r)=>{"use strict";t.exports=i;var n=r(4610);function i(t){if(!(this instanceof i))return new i(t);n.call(this,t)}r(6698)(i,n),i.prototype._transform=function(t,e,r){r(null,t)}},5412:(t,e,r)=>{"use strict";var n,i=r(5606);t.exports=N,N.ReadableState=S,r(7007).EventEmitter;var o,s=function(t,e){return t.listeners(e).length},a=r(345),d=r(8287).Buffer,u=r.g.Uint8Array||function(){},h=r(9838);o=h&&h.debuglog?h.debuglog("stream"):function(){};var l,f,c,g=r(2726),p=r(5896),m=r(5291).getHighWaterMark,b=r(6048).F,y=b.ERR_INVALID_ARG_TYPE,v=b.ERR_STREAM_PUSH_AFTER_EOF,_=b.ERR_METHOD_NOT_IMPLEMENTED,M=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(6698)(N,a);var w=p.errorOrDestroy,$=["error","close","destroy","pause","resume"];function S(t,e,i){n=n||r(5382),t=t||{},"boolean"!=typeof i&&(i=e instanceof n),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=m(this,t,"readableHighWaterMark",i),this.buffer=new g,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(l||(l=r(3141).I),this.decoder=new l(t.encoding),this.encoding=t.encoding)}function N(t){if(n=n||r(5382),!(this instanceof N))return new N(t);var e=this instanceof n;this._readableState=new S(t,this,e),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function E(t,e,r,n,i){o("readableAddChunk",e);var s,a=t._readableState;if(null===e)a.reading=!1,function(t,e){if(o("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?P(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,O(t)))}}(t,a);else if(i||(s=function(t,e){var r,n;return n=e,d.isBuffer(n)||n instanceof u||"string"==typeof e||void 0===e||t.objectMode||(r=new y("chunk",["string","Buffer","Uint8Array"],e)),r}(a,e)),s)w(t,s);else if(a.objectMode||e&&e.length>0)if("string"==typeof e||a.objectMode||Object.getPrototypeOf(e)===d.prototype||(e=function(t){return d.from(t)}(e)),n)a.endEmitted?w(t,new M):T(t,a,e,!0);else if(a.ended)w(t,new v);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?T(t,a,e,!1):C(t,a)):T(t,a,e,!1)}else n||(a.reading=!1,C(t,a));return!a.ended&&(a.length<a.highWaterMark||0===a.length)}function T(t,e,r,n){e.flowing&&0===e.length&&!e.sync?(e.awaitDrain=0,t.emit("data",r)):(e.length+=e.objectMode?1:r.length,n?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&P(t)),C(t,e)}Object.defineProperty(N.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),N.prototype.destroy=p.destroy,N.prototype._undestroy=p.undestroy,N.prototype._destroy=function(t,e){e(t)},N.prototype.push=function(t,e){var r,n=this._readableState;return n.objectMode?r=!0:"string"==typeof t&&((e=e||n.defaultEncoding)!==n.encoding&&(t=d.from(t,e),e=""),r=!0),E(this,t,e,!1,r)},N.prototype.unshift=function(t){return E(this,t,null,!0,!1)},N.prototype.isPaused=function(){return!1===this._readableState.flowing},N.prototype.setEncoding=function(t){l||(l=r(3141).I);var e=new l(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;
vendor: 5,668 bytes, line 15672
15672for(var n=this._readableState.buffer.head,i="";null!==n;)i+=e.write(n.data),n=n.next;return this._readableState.buffer.clear(),""!==i&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var A=1073741824;function R(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=A?t=A:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function P(t){var e=t._readableState;o("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(o("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(O,t))}function O(t){var e=t._readableState;o("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,k(t)}function C(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&0===e.length);){var r=e.length;if(o("maybeReadMore read 0"),t.read(0),r===e.length)break}e.readingMore=!1}function L(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function D(t){o("readable nexttick read 0"),t.read(0)}function U(t,e){o("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),k(t),e.flowing&&!e.reading&&t.read(0)}function k(t){var e=t._readableState;for(o("flow",e.flowing);e.flowing&&null!==t.read(););}function x(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function F(t){var e=t._readableState;o("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(B,e,t))}function B(t,e){if(o("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function V(t,e){for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1}N.prototype.read=function(t){o("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&((0!==e.highWaterMark?e.length>=e.highWaterMark:e.length>0)||e.ended))return o("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?F(this):P(this),null;if(0===(t=R(t,e))&&e.ended)return 0===e.length&&F(this),null;var n,i=e.needReadable;return o("need readable",i),(0===e.length||e.length-t<e.highWaterMark)&&o("length less than watermark",i=!0),e.ended||e.reading?o("reading or ended",i=!1):i&&(o("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=R(r,e))),null===(n=t>0?x(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&F(this)),null!==n&&this.emit("data",n),n},N.prototype._read=function(t){w(this,new _("_read()"))},N.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,o("pipe count=%d opts=%j",n.pipesCount,e);var a=e&&!1===e.end||t===i.stdout||t===i.stderr?p:d;function d(){o("onend"),t.end()}n.endEmitted?i.nextTick(a):r.once("end",a),t.on("unpipe",(function e(i,s){o("onunpipe"),i===r&&s&&!1===s.hasUnpiped&&(s.hasUnpiped=!0,o("cleanup"),t.removeListener("close",c),t.removeListener("finish",g),t.removeListener("drain",u),t.removeListener("error",f),t.removeListener("unpipe",e),r.removeListener("end",d),r.removeListener("end",p),r.removeListener("data",l),h=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||u())}));var u=function(t){return function(){var e=t._readableState;o("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&s(t,"data")&&(e.flowing=!0,k(t))}}(r);t.on("drain",u);var h=!1;function l(e){o("ondata");var i=t.write(e);o("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==V(n.pipes,t))&&!h&&(o("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function f(e){o("onerror",e),p(),t.removeListener("error",f),0===s(t,"error")&&w(t,e)}function c(){t.removeListener("finish",g),p()}function g(){o("onfinish"),t.removeListener("close",c),p()}function p(){o("unpipe"),r.unpipe(t)}return r.on("data",l),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",f),t.once("close",c),t.once("finish",g),t.emit("pipe",r),n.flowing||(o("pipe resume"),r.resume()),t},N.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o<i;o++)n[o].emit("unpipe",this,{hasUnpiped:!1});return this}var s=V(e.pipes,t);return-1===s||(e.pipes.splice(s,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,r)),this},N.prototype.on=function(t,e){var r=a.prototype.on.call(this,t,e),n=this._readableState;return"data"===t?(n.readableListening=this.listenerCount("readable")>
vendor: 4,852 bytes, line 15672
156720,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,o("on readable",n.length,n.reading),n.length?P(this):n.reading||i.nextTick(D,this))),r},N.prototype.addListener=N.prototype.on,N.prototype.removeListener=function(t,e){var r=a.prototype.removeListener.call(this,t,e);return"readable"===t&&i.nextTick(L,this),r},N.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||i.nextTick(L,this),e},N.prototype.resume=function(){var t=this._readableState;return t.flowing||(o("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(U,t,e))}(this,t)),t.paused=!1,this},N.prototype.pause=function(){return o("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(o("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},N.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(o("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){o("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i||(r.objectMode||i&&i.length)&&(e.push(i)||(n=!0,t.pause()))})),t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var s=0;s<$.length;s++)t.on($[s],this.emit.bind(this,$[s]));return this._read=function(e){o("wrapped _read",e),n&&(n=!1,t.resume())},this},"function"==typeof Symbol&&(N.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=r(2955)),f(this)}),Object.defineProperty(N.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(N.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(N.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}}),N._fromList=x,Object.defineProperty(N.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(N.from=function(t,e){return void 0===c&&(c=r(5157)),c(N,t,e)})},4610:(t,e,r)=>{"use strict";t.exports=h;var n=r(6048).F,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,s=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=n.ERR_TRANSFORM_WITH_LENGTH_0,d=r(5382);function u(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function h(t){if(!(this instanceof h))return new h(t);d.call(this,t),this._transformState={afterTransform:u.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.on("prefinish",l)}function l(){var t=this;"function"!=typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush((function(e,r){f(t,e,r)}))}function f(t,e,r){if(e)return t.emit("error",e);if(null!=r&&t.push(r),t._writableState.length)throw new a;if(t._transformState.transforming)throw new s;return t.push(null)}r(6698)(h,d),h.prototype.push=function(t,e){return this._transformState.needTransform=!1,d.prototype.push.call(this,t,e)},h.prototype._transform=function(t,e,r){r(new i("_transform()"))},h.prototype._write=function(t,e,r){var n=this._transformState;if(n.writecb=r,n.writechunk=t,n.writeencoding=e,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},h.prototype._read=function(t){var e=this._transformState;null===e.writechunk||e.transforming?e.needTransform=!0:(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform))},h.prototype._destroy=function(t,e){d.prototype._destroy.call(this,t,(function(t){e(t)}))}},6708:(t,e,r)=>{"use strict";var n,i=r(5606);function o(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e){var r=t.entry;for(t.entry=null;r;){var n=r.callback;e.pendingcb--,n(undefined),r=r.next}e.corkedRequestsFree.next=t}(e,t)}}t.exports=N,N.WritableState=S;var s,a={deprecate:r(4643)},d=r(345),u=r(8287).Buffer,h=r.g.Uint8Array||function(){},l=r(5896),f=r(5291).getHighWaterMark,c=r(6048).F,g=c.ERR_INVALID_ARG_TYPE,p=c.ERR_METHOD_NOT_IMPLEMENT
vendor: 4,848 bytes, line 15672
15672ED,m=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,v=c.ERR_STREAM_NULL_VALUES,_=c.ERR_STREAM_WRITE_AFTER_END,M=c.ERR_UNKNOWN_ENCODING,w=l.errorOrDestroy;function $(){}function S(t,e,s){n=n||r(5382),t=t||{},"boolean"!=typeof s&&(s=e instanceof n),this.objectMode=!!t.objectMode,s&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=f(this,t,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,o=r.writecb;if("function"!=typeof o)throw new m;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,o){--e.pendingcb,r?(i.nextTick(o,n),i.nextTick(O,t,e),t._writableState.errorEmitted=!0,w(t,n)):(o(n),t._writableState.errorEmitted=!0,w(t,n),O(t,e))}(t,r,n,e,o);else{var s=R(r)||t.destroyed;s||r.corked||r.bufferProcessing||!r.bufferedRequest||A(t,r),n?i.nextTick(T,t,r,s,o):T(t,r,s,o)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function N(t){var e=this instanceof(n=n||r(5382));if(!e&&!s.call(N,this))return new N(t);this._writableState=new S(t,this,e),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),d.call(this)}function E(t,e,r,n,i,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new y("write")):r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function T(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),O(t,e)}function A(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),s=e.corkedRequestsFree;s.entry=r;for(var a=0,d=!0;r;)i[a]=r,r.isBuf||(d=!1),r=r.next,a+=1;i.allBuffers=d,E(t,e,!0,e.length,i,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new o(e),e.bufferedRequestCount=0}else{for(;r;){var u=r.chunk,h=r.encoding,l=r.callback;if(E(t,e,!1,e.objectMode?1:u.length,u,h,l),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function R(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function P(t,e){t._final((function(r){e.pendingcb--,r&&w(t,r),e.prefinished=!0,t.emit("prefinish"),O(t,e)}))}function O(t,e){var r=R(e);if(r&&(function(t,e){e.prefinished||e.finalCalled||("function"!=typeof t._final||e.destroyed?(e.prefinished=!0,t.emit("prefinish")):(e.pendingcb++,e.finalCalled=!0,i.nextTick(P,t,e)))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var n=t._readableState;(!n||n.autoDestroy&&n.endEmitted)&&t.destroy()}return r}r(6698)(N,d),S.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(S.prototype,"buffer",{get:a.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(s=Function.prototype[Symbol.hasInstance],Object.defineProperty(N,Symbol.hasInstance,{value:function(t){return!!s.call(this,t)||this===N&&t&&t._writableState instanceof S}})):s=function(t){return t instanceof this},N.prototype.pipe=function(){w(this,new b)},N.prototype.write=function(t,e,r){var n,o=this._writableState,s=!1,a=!o.objectMode&&(n=t,u.isBuffer(n)||n instanceof h);return a&&!u.isBuffer(t)&&(t=function(t){return u.from(t)}(t)),"function"==typeof e&&(r=e,e=null),a?e="buffer":e||(e=o.defaultEncoding),"function"!=typeof r&&(r=$),o.ending?function(t,e){var r=new _;w(t,r),i.nextTick(e,r)}(this,r):(a||function(t,e,r,n){var o;return null===r?o=new v:"string"==typeof r||e.objectMode||(o=new g("chunk",["string","Buffer"],r)),!o||(w(t,o),i.nextTick(n,o),!1)}(this,o,t,r))&&(o.pendingcb++,s=function(t,e,r,n,i,o){if(!r){var s=function(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=u.from(e,r)),e}(e,n,i);n!==s&&(r=!0,i="buffer",n=s)}var a=e.objectMode?1:n.length;e.length+=a;var d=e.length<e.highWaterMark;
vendor: 31,547 bytes, line 15672
15672if(d||(e.needDrain=!0),e.writing||e.corked){var h=e.lastBufferedRequest;e.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:o,next:null},h?h.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else E(t,e,!1,a,n,i,o);return d}(this,o,a,t,e,r)),s},N.prototype.cork=function(){this._writableState.corked++},N.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.bufferProcessing||!t.bufferedRequest||A(this,t))},N.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new M(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(N.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(N.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),N.prototype._write=function(t,e,r){r(new p("_write()"))},N.prototype._writev=null,N.prototype.end=function(t,e,r){var n=this._writableState;return"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,O(t,e),r&&(e.finished?i.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r),this},Object.defineProperty(N.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(N.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),N.prototype.destroy=l.destroy,N.prototype._undestroy=l.undestroy,N.prototype._destroy=function(t,e){e(t)}},2955:(t,e,r)=>{"use strict";var n,i=r(5606);function o(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var s=r(6238),a=Symbol("lastResolve"),d=Symbol("lastReject"),u=Symbol("error"),h=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),c=Symbol("stream");function g(t,e){return{value:t,done:e}}function p(t){var e=t[a];if(null!==e){var r=t[c].read();null!==r&&(t[l]=null,t[a]=null,t[d]=null,e(g(r,!1)))}}function m(t){i.nextTick(p,t)}var b=Object.getPrototypeOf((function(){})),y=Object.setPrototypeOf((o(n={get stream(){return this[c]},next:function(){var t=this,e=this[u];if(null!==e)return Promise.reject(e);if(this[h])return Promise.resolve(g(void 0,!0));if(this[c].destroyed)return new Promise((function(e,r){i.nextTick((function(){t[u]?r(t[u]):e(g(void 0,!0))}))}));var r,n=this[l];if(n)r=new Promise(function(t,e){return function(r,n){t.then((function(){e[h]?r(g(void 0,!0)):e[f](r,n)}),n)}}(n,this));else{var o=this[c].read();if(null!==o)return Promise.resolve(g(o,!1));r=new Promise(this[f])}return this[l]=r,r}},Symbol.asyncIterator,(function(){return this})),o(n,"return",(function(){var t=this;return new Promise((function(e,r){t[c].destroy(null,(function(t){t?r(t):e(g(void 0,!0))}))}))})),n),b);t.exports=function(t){var e,r=Object.create(y,(o(e={},c,{value:t,writable:!0}),o(e,a,{value:null,writable:!0}),o(e,d,{value:null,writable:!0}),o(e,u,{value:null,writable:!0}),o(e,h,{value:t._readableState.endEmitted,writable:!0}),o(e,f,{value:function(t,e){var n=r[c].read();n?(r[l]=null,r[a]=null,r[d]=null,t(g(n,!1))):(r[a]=t,r[d]=e)},writable:!0}),e));return r[l]=null,s(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[d];return null!==e&&(r[l]=null,r[a]=null,r[d]=null,e(t)),void(r[u]=t)}var n=r[a];null!==n&&(r[l]=null,r[a]=null,r[d]=null,n(g(void 0,!0))),r[h]=!0})),t.on("readable",m.bind(null,r)),r}},2726:(t,e,r)=>{"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var s=r(8287).Buffer,a=r(5340).inspect,d=a&&a.custom||"inspect";t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}var e,r;return e=t,r=[{key:"push",value:function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return s.alloc(0);for(var e,r,n,i=s.allocUnsafe(t>>>0),o=this.head,a=0;o;)e=o.data,r=i,n=a,s.prototype.copy.call(e,r,n),a+=o.data.length,o=o.next;return i}},{key:"consume",value:function(t,e){var r;return t<this.head.data.length?(r=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):r=t===this.head.data.length?this.shift():e?this._getString(t):this._getBuffer(t),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var e=this.head,r=1,n=e.data;for(t-=n.length;e=e.next;){var i=e.data,o=t>i.length?i.length:t;if(o===i.length?n+=i:n+=i.slice(0,t),0==(t-=o)){o===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=s.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var i=r.data,o=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,o),0==(t-=o)){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,e}},{key:d,value:function(t,e){return a(this,function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},e,{depth:0,customInspect:!1}))}}],r&&o(e.prototype,r),t}()},5896:(t,e,r)=>{"use strict";var n=r(5606);function i(t,e){s(t,e),o(t)}function o(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function s(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var r=this,a=this._readableState&&this._readableState.destroyed,d=this._writableState&&this._writableState.destroyed;return a||d?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(s,this,t)):n.nextTick(s,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?r._writableState?r._writableState.errorEmitted?n.nextTick(o,r):(r._writableState.errorEmitted=!0,n.nextTick(i,r,t)):n.nextTick(i,r,t):e?(n.nextTick(o,r),e(t)):n.nextTick(o,r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}}},6238:(t,e,r)=>{"use strict";var n=r(6048).F.ERR_STREAM_PREMATURE_CLOSE;function i(){}t.exports=function t(e,r,o){if("function"==typeof r)return t(e,null,r);r||(r={}),o=function(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];t.apply(this,n)}}}(o||i);var s=r.readable||!1!==r.readable&&e.readable,a=r.writable||!1!==r.writable&&e.writable,d=function(){e.writable||h()},u=e._writableState&&e._writableState.finished,h=function(){a=!1,u=!0,s||o.call(e)},l=e._readableState&&e._readableState.endEmitted,f=function(){s=!1,l=!0,a||o.call(e)},c=function(t){o.call(e,t)},g=function(){var t;return s&&!l?(e._readableState&&e._readableState.ended||(t=new n),o.call(e,t)):a&&!u?(e._writableState&&e._writableState.ended||(t=new n),o.call(e,t)):void 0},p=function(){e.req.on("finish",h)};return function(t){return t.setHeader&&"function"==typeof t.abort}(e)?(e.on("complete",h),e.on("abort",g),e.req?p():e.on("request",p)):a&&!e._writableState&&(e.on("end",d),e.on("close",d)),e.on("end",f),e.on("finish",h),!1!==r.error&&e.on("error",c),e.on("close",g),function(){e.removeListener("complete",h),e.removeListener("abort",g),e.removeListener("request",p),e.req&&e.req.removeListener("finish",h),e.removeListener("end",d),e.removeListener("close",d),e.removeListener("finish",h),e.removeListener("end",f),e.removeListener("error",c),e.removeListener("close",g)}}},5157:t=>{t.exports=function(){throw new Error("Readable.from is not available in the browser")}},7758:(t,e,r)=>{"use strict";var n,i=r(6048).F,o=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function a(t){if(t)throw t}function d(t){t()}function u(t,e){return t.pipe(e)}t.exports=function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];var h,l=function(t){return t.length?"function"!=typeof t[t.length-1]?a:t.pop():a}(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new o("streams");var f=e.map((function(t,i){var o=i<e.length-1;return function(t,e,i,o){o=function(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}(o);var a=!1;t.on("close",(function(){a=!0})),void 0===n&&(n=r(6238)),n(t,{readable:e,writable:i},(function(t){if(t)return o(t);a=!0,o()}));var d=!1;return function(e){if(!a&&!d)return d=!0,function(t){return t.setHeader&&"function"==typeof t.abort}(t)?t.abort():"function"==typeof t.destroy?t.destroy():void o(e||new s("pipe"))}}(t,o,i>0,(function(t){h||(h=t),t&&f.forEach(d),o||(f.forEach(d),l(h))}))}));return e.reduce(u)}},5291:(t,e,r)=>{"use strict";var n=r(6048).F.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,r,i){var o=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,i,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new n(i?r:"highWaterMark",o);return Math.floor(o)}return t.objectMode?16:16384}}},345:(t,e,r)=>{t.exports=r(7007).EventEmitter},6011:(t,e,r)=>{"use strict";var n=r(8287).Buffer,i=r(6698),o=r(4729),s=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],d=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],u=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],h=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],l=[0,1518500249,1859775393,2400959708,2840853838],f=[1352829926,1548603684,1836072691,2053994217,0];function c(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function g(t,e){return t<<e|t>>>32-e}function p(t,e,r,n,i,o,s,a){return g(t+(e^r^n)+o+s|0,a)+i|0}function m(t,e,r,n,i,o,s,a){return g(t+(e&r|~e&n)+o+s|0,a)+i|0}function b(t,e,r,n,i,o,s,a){return g(t+((e|~r)^n)+o+s|0,a)+i|0}function y(t,e,r,n,i,o,s,a){return g(t+(e&n|r&~n)+o+s|0,a)+i|0}function v(t,e,r,n,i,o,s,a){return g(t+(e^(r|~n))+o+s|0,a)+i|0}i(c,o),c.prototype._update=function(){for(var t=s,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,c=0|this._e,_=0|this._a,M=0|this._b,w=0|this._c,$=0|this._d,S=0|this._e,N=0;N<80;N+=1){var E,T;N<16?(E=p(r,n,i,o,c,t[a[N]],l[0],u[N]),T=v(_,M,w,$,S,t[d[N]],f[0],h[N])):N<32?(E=m(r,n,i,o,c,t[a[N]],l[1],u[N]),T=y(_,M,w,$,S,t[d[N]],f[1],h[N])):N<48?(E=b(r,n,i,o,c,t[a[N]],l[2],u[N]),T=b(_,M,w,$,S,t[d[N]],f[2],h[N])):N<64?(E=y(r,n,i,o,c,t[a[N]],l[3],u[N]),T=m(_,M,w,$,S,t[d[N]],f[3],h[N])):(E=v(r,n,i,o,c,t[a[N]],l[4],u[N]),T=p(_,M,w,$,S,t[d[N]],f[4],h[N])),r=c,c=o,o=g(i,10),i=n,n=E,_=S,S=$,$=g(w,10),w=M,M=T}var A=this._b+i+$|0;this._b=this._c+o+S|0,this._c=this._d+c+_|0,this._d=this._e+r+M|0,this._e=this._a+n+w|0,this._a=A},c.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=n.alloc?n.alloc(20):new n(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=c},2861:(t,e,r)=>{var n=r(8287),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function s(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},s.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},s.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},s.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},392:(t,e,r)=>{var n=r(2861).Buffer;function i(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){"string"==typeof t&&(e=e||"utf8",t=n.from(t,e));for(var r=this._block,i=this._blockSize,o=t.length,s=this._len,a=0;a<o;){for(var d=s%i,u=Math.min(o-a,i-d),h=0;h<u;h++)r[d+h]=t[a+h];a+=u,(s+=u)%i==0&&this._update(r)}return this._len+=o,this},i.prototype.digest=function(t){var e=this._len%this._blockSize;this._block[e]=128,this._block.fill(0,e+1),e>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=i},2802:(t,e,r)=>{var n=t.exports=function(t){t=t.toLowerCase();var e=n[t];if(!e)throw new Error(t+" is not supported (we accept pull requests)");return new e};n.sha=r(7816),n.sha1=r(3737),n.sha224=r(6710),n.sha256=r(4107),n.sha384=r(2827),n.sha512=r(2890)},7816:(t,e,r)=>{var n=r(6698),i=r(392),o=r(2861).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function d(){this.init(),this._w=a,i.call(this,64,56)}function u(t){return t<<30|t>>>2}function h(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(d,i),d.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},d.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,d=0|this._e,l=0;l<16;++l)r[l]=t.readInt32BE(4*l);for(;l<80;++l)r[l]=r[l-3]^r[l-8]^r[l-14]^r[l-16];for(var f=0;f<80;++f){var c=~~(f/20),g=0|((e=n)<<5|e>>>27)+h(c,i,o,a)+d+r[f]+s[c];d=a,a=o,o=u(i),i=n,n=g}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=d+this._e|0},d.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=d},3737:(t,e,r)=>{var n=r(6698),i=r(392),o=r(2861).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function d(){this.init(),this._w=a,i.call(this,64,56)}function u(t){return t<<5|t>>>27}function h(t){return t<<30|t>>>2}function l(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(d,i),d.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},d.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,d=0|this._e,f=0;f<16;++f)r[f]=t.readInt32BE(4*f);for(;f<80;++f)r[f]=(e=r[f-3]^r[f-8]^r[f-14]^r[f-16])<<1|e>>>31;for(var c=0;c<80;++c){var g=~~(c/20),p=u(n)+l(g,i,o,a)+d+r[c]+s[g]|0;d=a,a=o,o=h(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=d+this._e|0},d.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=d},6710:(t,e,r)=>{var n=r(6698),i=r(4107),o=r(392),s=r(2861).Buffer,a=new Array(64);function d(){this.init(),this._w=a,o.call(this,64,56)}n(d,i),d.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},d.prototype._hash=function(){var t=s.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=d},4107:(t,e,r)=>{var n=r(6698),i=r(392),o=r(2861).Buffer,s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function d(){this.init(),this._w=a,i.call(this,64,56)}function u(t,e,r){return r^t&(e^r)}function h(t,e,r){return t&e|r&(t|e)}function l(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function f(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function c(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}n(d,i),d.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},d.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,d=0|this._e,g=0|this._f,p=0|this._g,m=0|this._h,b=0;b<16;++b)r[b]=t.readInt32BE(4*b);for(;b<64;++b)r[b]=0|(((e=r[b-2])>>>17|e<<15)^(e>>>19|e<<13)^e>>>10)+r[b-7]+c(r[b-15])+r[b-16];for(var y=0;y<64;++y){var v=m+f(d)+u(d,g,p)+s[y]+r[y]|0,_=l(n)+h(n,i,o)|0;m=p,p=g,g=d,d=a+v|0,a=o,o=i,i=n,n=v+_|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=d+this._e|0,this._f=g+this._f|0,this._g=p+this._g|0,this._h=m+this._h|0},d.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=d},2827:(t,e,r)=>{var n=r(6698),i=r(2890),o=r(392),s=r(2861).Buffer,a=new Array(160);function d(){this.init(),this._w=a,o.call(this,128,112)}n(d,i),d.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},d.prototype._hash=function(){var t=s.allocUnsafe(48);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=d},2890:(t,e,r)=>{var n=r(6698),i=r(392),o=r(2861).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function d(){this.init(),this._w=a,i.call(this,128,112)}function u(t,e,r){return r^t&(e^r)}function h(t,e,r){return t&e|r&(t|e)}function l(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function f(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function c(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function g(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function p(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function b(t,e){return t>>>0<e>>>0?1:0}n(d,i),d.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},d.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,a=0|this._eh,d=0|this._fh,y=0|this._gh,v=0|this._hh,_=0|this._al,M=0|this._bl,w=0|this._cl,$=0|this._dl,S=0|this._el,N=0|this._fl,E=0|this._gl,T=0|this._hl,A=0;A<32;A+=2)e[A]=t.readInt32BE(4*A),e[A+1]=t.readInt32BE(4*A+4);for(;A<160;A+=2){var R=e[A-30],P=e[A-30+1],O=c(R,P),C=g(P,R),I=p(R=e[A-4],P=e[A-4+1]),L=m(P,R),D=e[A-14],U=e[A-14+1],k=e[A-32],x=e[A-32+1],F=C+U|0,B=O+D+b(F,C)|0;B=(B=B+I+b(F=F+L|0,L)|0)+k+b(F=F+x|0,x)|0,e[A]=B,e[A+1]=F}for(var V=0;V<160;V+=2){B=e[V],F=e[V+1];var j=h(r,n,i),H=h(_,M,w),G=l(r,_),W=l(_,r),Y=f(a,S),z=f(S,a),q=s[V],K=s[V+1],Z=u(a,d,y),X=u(S,N,E),J=T+z|0,Q=v+Y+b(J,T)|0;Q=(Q=(Q=Q+Z+b(J=J+X|0,X)|0)+q+b(J=J+K|0,K)|0)+B+b(J=J+F|0,F)|0;var tt=W+H|0,et=G+j+b(tt,W)|0;v=y,T=E,y=d,E=N,d=a,N=S,a=o+Q+b(S=$+J|0,$)|0,o=i,$=w,i=n,w=M,n=r,M=_,r=Q+et+b(_=J+tt|0,J)|0}this._al=this._al+_|0,this._bl=this._bl+M|0,this._cl=this._cl+w|0,this._dl=this._dl+$|0,this._el=this._el+S|0,this._fl=this._fl+N|0,this._gl=this._gl+E|0,this._hl=this._hl+T|0,this._ah=this._ah+r+b(this._al,_)|0,this._bh=this._bh+n+b(this._bl,M)|0,this._ch=this._ch+i+b(this._cl,w)|0,this._dh=this._dh+o+b(this._dl,$)|0,this._eh=this._eh+a+b(this._el,S)|0,this._fh=this._fh+d+b(this._fl,N)|0,this._gh=this._gh+y+b(this._gl,E)|0,this._hh=this._hh+v+b(this._hl,T)|0},d.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=d},8310:(t,e,r)=>{t.exports=i;var n=r(7007).EventEmitter;function i(){n.call(this)}r(6698)(i,n),i.Readable=r(5412),i.Writable=r(6708),i.Duplex=r(5382),i.Transform=r(4610),i.PassThrough=r(3600),i.finished=r(6238),i.pipeline=r(7758),i.Stream=i,i.prototype.pipe=function(t,e){var r=this;function i(e){t.writable&&!1===t.write(e)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",i),t.on("drain",o),t._isStdio||e&&!1===e.end||(r.on("end",a),r.on("close",d));var s=!1;function a(){s||(s=!0,t.end())}function d(){s||(s=!0,"function"==typeof t.destroy&&t.destroy())}function u(t){if(h(),0===n.listenerCount(this,"error"))throw t}function h(){r.removeListener("data",i),t.removeListener("drain",o),r.removeListener("end",a),r.removeListener("close",d),r.removeListener("error",u),t.removeListener("error",u),r.removeListener("end",h),r.removeListener("close",h),t.removeListener("close",h)}return r.on("error",u),t.on("error",u),r.on("end",h),r.on("close",h),t.on("close",h),t.emit("pipe",r),t}},3141:(t,e,r)=>{"use strict";var n=r(2861).Buffer,i=n.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=d,this.end=u,e=4;break;case"utf8":this.fillLast=a,e=4;break;case"base64":this.text=h,this.end=l,e=3;break;default:return this.write=f,void(this.end=c)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function s(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function d(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function u(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function h(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function l(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f(t){return t.toString(this.encoding)}function c(t){return t&&t.length?this.write(t):""}e.I=o,o.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||""},o.prototype.end=function(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e},o.prototype.text=function(t,e){var r=function(t,e,r){var n=e.length-1;if(n<r)return 0;var i=s(e[n]);return i>=0?(i>0&&(t.lastNeed=i-1),i):--n<r||-2===i?0:(i=s(e[n]))>=0?(i>0&&(t.lastNeed=i-2),i):--n<r||-2===i?0:(i=s(e[n]))>=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},4643:(t,e,r)=>{function n(t){try{if(!r.g.localStorage)return!1}catch(t){return!1}var e=r.g.localStorage[t];return null!=e&&"true"===String(e).toLowerCase()}t.exports=function(t,e){if(n("noDeprecation"))return t;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(e);n("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}}},8982:()=>{},7790:()=>{},3776:()=>{},1638:()=>{},2668:()=>{},7965:()=>{},6089:()=>{},9368:()=>{},4688:()=>{},1069:()=>{},5340:()=>{},9838:()=>{},3219:t=>{"use strict";t.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"}
15672,"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},2951:t=>{"use strict";t.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},4589:t=>{"use strict";t.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},3241:t=>{"use strict";t.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd4
1567207b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},1636:t=>{"use strict";t.exports={rE:"6.6.1"}},5579:t=>{"use strict";t.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')}},__webpack_module_cache__={};function __webpack_require__(t){var e=__webpack_module_cache__[t];if(void 0!==e)return e.exports;var r=__webpack_module_cache__[t]={id:t,loaded:!1,exports:{}};return __webpack_modules__[t].call(r.exports,r,r.exports,__webpack_require__),r.loaded=!0,r.exports}__webpack_require__.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return __webpack_require__.d(e,{a:e}),e},__webpack_require__.d=(t,e)=>{for(var r in e)__webpack_require__.o(e,r)&&!__webpack_require__.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),__webpack_require__.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),__webpack_require__.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var __webpack_exports__={};(()=>{"use strict";__webpack_require__.d(__webpack_exports__,{default:()=>Sn});var t=__webpack_require__(3065),e=__webpack_require__.n(t);function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function n(t,e,n){return(e=function(t){var e=function(t){if("object"!=r(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var i=__webpack_require__(2505),o=__webpack_require__.n(i);const s=JSON.parse('{"UU":"@netsapiens/netsapiens-js","$W":{"Sw":"*/ns-api/","OQ":"*/portal/","bG":{"allowAssistedTransfer":{"name":"PORTAL_ALLOW_ASSISTED_TRANSFER","default":"yes"},"allowVideo":{"name":"PORTAL_VIDEO","default":"yes"},"allowWebphone":{"name":"PORTAL_ALLOW_WEB_PHONE","default":true},"callRecording":{"name":"PORTAL_CALL_RECORDING","default":"no"},"callQueueGranularLogin":{"name":"PORTAL_CALL_QUEUE_GRANULAR_LOGIN","default":"yes"},"callQueueAgentStats":{"name":"PORTAL_CALL_QUEUE_AGENT_MY_STATS","default":"yes"},"callQueueAgentStatGraphs":{"name":"PORTAL_CALL_QUEUE_AGENT_MY_STATS_GRAPHS","default":"yes"},"codecsAudio":{"name":"PORTAL_WEBRTC_CODEC_LIST_AUDIO","default":null},"codecsVideo":{"name":"PORTAL_WEBRTC_CODEC_LIST_VIDEO","default":null},"countryCode":{"name":"PORTAL_COUNTRY_CODE","default":null},"iceCheckingTimeout":{"name":"PORTAL_VIDEO_ICECHECKING_TIMEOUT","default":"1000"},"maxActiveCalls":{"name":"PORTAL_MAX_ACTIVE_CALLS","default":2},"nsSocketHostName":{"name":"PORTAL_SOCKET_HOSTNAME","default":null},"portalAllowExtInPass":{"name":"PORTAL_USER_PASSWORD_ALLOW_EXT_IN_PASSWORD","default":"no"},"portalChatSMS":{"name":"PORTAL_CHAT_SMS","default":"yes"},"portalCallPopupShowNotes":{"name":"PORTAL_CALL_POPUP_SHOW_NOTES","default":"yes"},"portalCallPopupAllowComplete":{"name":"PORTAL_CALL_POPUP_ALLOW_COMPLETE","default":"no"},"portalCallPopupShowDispNotes":{"name":"PORTAL_CALL_POPUP_SHOW_DISP_NOTES","default":"yes"},"portalShowAddressBook":{"name":"PORTAL_SHOW_ADDRESS_BOOK","default":"no"},"portalForceNum":{"name":"PORTAL_USERS_FORCE_NUMERIC","default":"no"},"portalLocalizationDateFormat":{"name":"PORTAL_LOCALIZATION_DATE_FORMAT","default":"MDY"},"portalLocalizationTimeFormat":{"name":"PORTAL_LOCALIZATION_TIME_12_HOUR_FORMAT","default":"yes"},"portalLegacyBehavior":{"name":"PORTAL_LEGACY_WINDOW_BEHAVIOR","default":null},"portalLocalizationMaster":{"name":"PORTAL_LOCALIZATION_LANGUAGE_MASTER","default":"yes"},"portalLoginGoogleSsoEnabled":{"name":"PORTAL_LOGIN_GOOGLE_SSO_ENABLED","default":"no"},"portalLoginGoogleSsoClientId":{"name":"PORTAL_LOGIN_GOOGLE_SSO_CLIENT_ID","default":null},"portalLoginOfficeSsoEnabled":{"name":"PORTAL_LOGIN_OFFICE_SSO_ENABLED","default":"no"},"portalLoginOfficeSsoClientId":{"name":"PORTAL_LOGIN_OFFICE_SSO_CLIENT_ID","default":null},"portalMinPassLength":{"name":"PORTAL_USERS_MIN_PASSWORD_LENGTH","default":4},"portalMenuShowCallCenterAgent":{"name":"PORTAL_MENU_SHOW_CALL_CENTER_AGENT","default":"no"},"portalMenuShowCallCenterAgentSupervisor":{"name":"PORTAL_MENU_SHOW_CALL_CENTER_AGENT_SUPERVISOR","default":"no"},"portalPassStrong":{"name":"PORTAL_USERS_PASSWORD_STRONG","default":"no"},"portalTranscriptionShow":{"name":"PORTAL_USERS_VMAIL_TRANSCRIPTION_SHOW","default":"yes"},"portalTransferPrefixPark":{"name":"PORTAL_TRANSFER_PREFIX_PARK","default":"park_"},"portalWebPhoneAutoAnswerMicMuted":{"name":"PORTAL_WEB_PHONE_AUTO_ANSWER_MIC_MUTE","default":"no"},"portalWebPhoneRingAnswerMicMuted":{"name":"PORTAL_WEB_PHONE_RING_ANSWER_MIC_MUTE","default":"no"},"portalWebPhoneRingAnswerDelay":{"name":"PORTAL_WEB_PHONE_RING_ANSWER_DELAY","default":"1"}
15672,"poweredBy":{"name":"PORTAL_LOGGED_IN_POWERED_BY","default":""},"screenShareLink":{"name":"PORTAL_VIDEO_SCREENSHARE_LINK","default":"https://chrome.google.com/webstore/detail/gdidcoecoldmadgciedbopokefoeamhe"},"securePassAllowExtPass":{"name":"PORTAL_USER_SECURE_PASSWORD_ALLOW_EXT_IN_PASSWORD","default":"no"},"securePassExtForbidList":{"name":"PORTAL_USER_SECURE_PASSWORD_EXTENSION_FORBID_LIST","default":null},"securePassForceNum":{"name":"PORTAL_USERS_SECURE_PASSWORD_FORCE_NUMERIC","default":"no"},"securePassMinCapCnt":{"name":"PORTAL_USERS_SECURE_PASSWORD_MIN_CAPITAL_LETTER_COUNT","default":1},"securePassMinLength":{"name":"PORTAL_USERS_SECURE_PASSWORD_MIN_LENGTH","default":8},"securePassMinNumCnt":{"name":"PORTAL_USERS_SECURE_PASSWORD_MIN_NUMBER_COUNT","default":1},"securePassMinSpecialCharCnt":{"name":"PORTAL_USERS_SECURE_PASSWORD_MIN_SPECIAL_CHAR_COUNT","default":0},"securePassStrong":{"name":"PORTAL_USERS_SECURE_PASSWORD_STRONG","default":"no"},"simringNotice":{"name":"PORTAL_WEB_PHONE_SIMRING_NOTICE","default":"This phone may not be configured to receive all incoming calls. Please contact your phone administrator for more information."},"stunServers":{"name":"PORTAL_WEB_PHONE_STUN_SERVERS","default":null},"themeAccent":{"name":"PORTAL_THEME_ACCENT","default":"#ff5722"},"themePrimary":{"name":"PORTAL_THEME_PRIMARY","default":"#0072bc"},"ucLicenseNotice":{"name":"PORTAL_UC_LICENSE_EXPIRATION_NOTICE","default":"Your UC license has expired or is invalid. Please contact your administrator for more information."},"videoAllowSpeechDetection":{"name":"PORTAL_VIDEO_ALLOW_SPEECH_DETECTION","default":"yes"},"videoAllowChat":{"name":"PORTAL_VIDEO_ALLOW_CHAT","default":"yes"},"videoAllowPresentation":{"name":"PORTAL_VIDEO_ALLOW_PRESENTATION","default":"yes"},"videoAllowRecording":{"name":"PORTAL_VIDEO_ALLOW_RECORDING","default":"no"},"videoAllowStatsOverlay":{"name":"PORTAL_VIDEO_ALLOW_STAT_OVERLAY","default":"no"},"videoAllowQAndA":{"name":"PORTAL_VIDEO_ALLOW_Q_AND_A","default":"no"},"videoMaxMeetings":{"name":"PORTAL_VIDEO_MAX_MEETINGS","default":null},"videoConferenceMaxAttendees":{"name":"PORTAL_VIDEO_CONFERENCE_MAX_ATTENDEES","default":"25"},"videoPresentationMaxAttendees":{"name":"PORTAL_VIDEO_PRESENTATION_MAX_ATTENDEES","default":"200"},"videoAllowSpeechSocketActions":{"name":"PORTAL_VIDEO_ALLOW_SPEECH_SOCKET_ACTIONS","default":"no"},"videoSpeechDetectInterval":{"name":"PORTAL_VIDEO_SPEECH_DETECT_INTERVAL","default":2},"videoAudioBridge":{"name":"PORTAL_VIDEO_AUDIO_BRIDGE","default":"yes"},"videoAudioSetting":{"name":"PORTAL_VIDEO_AUDIO_SETTING","default":null},"videoChromeSupport":{"name":"PORTAL_VIDEO_ALLOW_CHROME_VERSION","default":null},"videoEdgeSupport":{"name":"PORTAL_VIDEO_ALLOW_EDGE_VERSION","default":null},"videoFirefoxSupport":{"name":"PORTAL_VIDEO_ALLOW_FIREFOX_VERSION","default":null},"videoGuestUser":{"name":"PORTAL_VIDEO_GUEST_USER","default":"guest"},"videoIESupport":{"name":"PORTAL_VIDEO_ALLOW_IE_VERSION","default":null},"videoName":{"name":"PORTAL_VIDEO_NAME","default":"Video Meeting"},"videoPhoneNumber":{"name":"PORTAL_VIDEO_PHONENUMBER","default":null},"videoSafariSupport":{"name":"PORTAL_VIDEO_ALLOW_SAFARI_VERSION","default":null},"videoShowBandwidth":{"name":"PORTAL_VIDEO_SHOW_BANDWIDTH","default":"no"},"videoShowScreenShare":{"name":"PORTAL_VIDEO_SHOW_SCREENSHARE","default":"no"},"videoShowSettings":{"name":"PORTAL_VIDEO_SHOW_SETTINGS","default":"yes"},"videoWSHost":{"name":"PORTAL_VIDEO_WS_HOST","default":null},"videoWSPort":{"name":"PORTAL_VIDEO_WS_PORT","default":"9002"},"videoWSSecure":{"name":"PORTAL_VIDEO_WS_SECURE","default":"wss"},"wpName":{"name":"PORTAL_WEBPHONE_NAME","default":"SNAPmobile Web"},"wpPassRecoverFail":{"name":"PORTAL_LOGIN_ERROR_MESSAGE_RECOVER","default":"There was a problem retrieving your account. Please contact your administrator."},"wpPassResetFailed":{"name":"PORTAL_LOGIN_ERROR_MESSAGE_RESET_FAILED","default":"Your credentials could not be saved. Please retry to reset your password."},"wpPassResetMsg":{"name":"PORTAL_LOGIN_ERROR_MESSAGE_RESET_TRIGGERED","default":"Your password security is being upgraded. Please follow the password update directions that have been sent to your email address."},"wsSockets":{"name":"WS_SERVERS","default":null}}}}');function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function d(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};
15672e%2?a(Object(r),!0).forEach((function(e){n(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}const u="sdk/config",h=e().getLogger(u),l=__webpack_require__.g.location?__webpack_require__.g.location.hostname:"https://localhost",f={appName:s.UU,apiURL:s.$W.Sw.replace("*",l),portalURL:s.$W.OQ.replace("*",l)};let c=d({},f);h.info(`${u} - config`,c);const g={NO_SDK_CONFIG:"NO_SDK_CONFIG",configure:t=>{h.info(`${u} - configure called`,t);const e=d(d({},f),t);return e.appName&&e.apiURL&&e.portalURL||e.test?(c=e,!0):((t=>{h.info(`${u} - logConfigError called`,t),t.appName||console.error("configure - appName required"),t.apiURL||console.error("configure - apiURL required"),t.portalURL||console.error("configure - portalURL required")})(e),!1)},getConfiguration:()=>(h.debug(`${u} - getConfiguration called`),c),hasValidConfig:()=>(h.debug(`${u} - hasValidConfig called`),!!(c&&c.appName&&c.apiURL&&c.portalURL))};function p(t){this.message=t}p.prototype=new Error,p.prototype.name="InvalidCharacterError";var m="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new p("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,i=0,o=0,s="";n=e.charAt(o++);~n&&(r=i%4?64*r+n:n,i++%4)?s+=String.fromCharCode(255&r>>(-2*i&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return s};function b(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(m(t).replace(/(.)/g,(function(t,e){var r=e.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(e)}catch(t){return m(e)}}function y(t){this.message=t}y.prototype=new Error,y.prototype.name="InvalidTokenError";var v=__webpack_require__(5093),M=__webpack_require__.n(v);const w="ns_t",S="ns_t_refresh",N="ns_t_hash",E="sdk/token/utils/token",T=e().getLogger(E),A=t=>{if(T.info(`${E} - decode called`,t),t){const e=function(t,e){if("string"!=typeof t)throw new y("Invalid token specified");var r=!0===(e=e||{}).header?0:1;try{return JSON.parse(b(t.split(".")[r]))}catch(t){throw new y("Invalid token specified: "+t.message)}}(t);return T.debug(`${E} - decode res`,e),e}return T.debug(`${E} - decode res`,null),null},R=t=>{if(!t)return!0;const e=A(t);if(e&&!1===e.exp)return!1;if(!e||!e.exp)return!0;const r=M()().unix();return e.exp<r},P=()=>{T.info(`${E} - get called`);const t=localStorage.getItem(w);return T.debug(`${E} - get res`,t),t},O=()=>{T.info(`${E} - getRefresh called`);const t=localStorage.getItem(S);return T.debug(`${E} - getRefresh res`,t),t},C=t=>{T.info(`${E} - isValid called`,t);const e=t||P();if(T.debug(`${E} - isValid normalized token`,e),!e)return T.debug(`${E} - isValid res`,!1),!1;const r=(t=>{if(T.debug(`${E} - validate called`,t),!t)return T.debug(`${E} - validate res`,!1),!1;const e=A(t);return T.debug(`${E} - validate decoded`,e),!(!e||(M()().unix()>=e.exp?(T.debug(`${E} - validate expired`),1):e.aud?e.domain?e.iat?e.iss?e.sub?e.user?(T.debug(`${E} - validate res`,!0),0):(T.debug(`${E} - validate missing user`),1):(T.debug(`${E} - validate missing sub`),1):(T.debug(`${E} - validate missing iss`),1):(T.debug(`${E} - validate missing iat`),1):(T.debug(`${E} - validate missing domain`),1):(T.debug(`${E} - validate missing aud`),1)))})(e);return T.debug(`${E} - isValid res`,r),r},I=()=>(T.info(`${E} - remove called`),localStorage.removeItem(w),localStorage.removeItem(S),!0),L=t=>(T.info(`${E} - set called`,{token:t}),C(t)?(localStorage.setItem(w,t),T.debug(`${E} - set res`,!0),!0):(console.error(`${E} - set invalid token`),!1)),D=t=>(T.info(`${E} - setRefresh called`,{token:t}),localStorage.setItem(S,t),T.debug(`${E} - set setRefresh`,!0),!0),U=t=>(T.info(`${E} - setHash called`,{token:t}),localStorage.setItem(N,t),T.debug(`${E} - set setHash`,!0),!0);function k(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function x(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};
15672e%2?k(Object(r),!0).forEach((function(e){n(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):k(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}const F="sdk/api/services/api",B=e().getLogger(F),V="MISSING_PARAMS",j=t=>(B.debug(`${F} - hasParams called`,t),!!(t&&t.object&&t.action)),H=t=>{B.info(`${F} - baseUrl`,t);const e=t?.replace("https://","").replace("https:","").replace("https","");return B.info(`${F} - baseUrl result`,`https://${e}`),`https://${e}`},G=(t,e)=>{if(B.info(`${F} - refreshToken called`,t),!g.hasValidConfig())return console.error("nsSDK not configured"),Promise.reject(!1);const{apiURL:r}=g.getConfiguration(),n=t||O();return o()({method:"post",url:`${H(r)}oauth2/netsapiensJs/`,data:{grant_type:"refresh_token",refresh_token:n},withCredentials:!0,headers:{Authorization:`Basic ${e}`}}).then((t=>(L(t.data.token),D(t.data.refresh),{token:t.data.token,refreshToken:t.data.refresh})))},W=async()=>{const t=(()=>{T.info(`${E} - getHash called`);const t=localStorage.getItem(N);return T.debug(`${E} - getHash res`,t),t})(),e=P(),r=O();if(!R(e))return e;if(!R(r)){const{token:e}=await G(r,t);return e}return null},Y={get:async t=>{if(B.info(`${F} - get called`,t),!g.hasValidConfig())return console.error("nsSDK not configured"),Promise.reject(!1);if(!j(t))return console.error(`${F} - get missing params`),Promise.reject(V);const{apiURL:e}=g.getConfiguration(),r=await W(),n={method:"get",url:H(e),params:t};return r&&(n.headers={Authorization:`Bearer ${r}`},n.withCredentials=!0),o()(n).then((t=>(B.debug(`${F} - get res`,t),t.data)))},getToken:W,getLogo:t=>{if(B.info(`${F} - getLogo called`,t),!g.hasValidConfig())return console.error("nsSDK not configured"),Promise.reject(!1);const{apiURL:e}=g.getConfiguration();return new Promise(((r,n)=>{o()({method:"get",url:H(e),params:t,responseType:"blob"}).then((t=>{const e=new FileReader;e.onloadend=function(){r(this.result)},e.readAsDataURL(t.data)})).catch((()=>{n()}))}))},post:async(t,e)=>{if(B.info(`${F} - post called`,{params:t,payload:e}),!g.hasValidConfig())return console.error("nsSDK not configured"),Promise.reject(!1);if(!j(t)&&!e)return console.error(`${F} - post missing params`),Promise.reject(V);const{apiURL:r}=g.getConfiguration(),n=await W(),i={method:"post",url:H(r),params:t,data:e};return B.info(`${F} - post url`,i),n&&(i.headers={Authorization:`Bearer ${n}`},i.withCredentials=!0),o()(i).then((t=>(B.debug(`${F} - post res`,t),t.data)))},v2:async(t,e)=>{if(B.info(`${F} - v2 called`,{params:t,payload:e}),!g.hasValidConfig())return console.error("nsSDK not configured"),Promise.reject(!1);if(!j(t)&&!e)return console.error(`${F} - v2 missing params`),Promise.reject(V);const{apiURL:r}=g.getConfiguration(),n=await W(),i={method:t.action,url:`${H(r)}v2/${e}`,headers:{Accept:"application/json"}};return B.info(`${F} - v2 url`,i),n&&(i.headers=x(x({},i.headers),{},{Authorization:`Bearer ${n}`}),i.withCredentials=!0),t.data&&"object"==typeof t.data&&(i.data=t.data),o()(i).then((t=>(B.debug(`${F} - v2 res`,t),t.data)))},refreshToken:G},z="sdk/api/services/authentication",q=e().getLogger(z),K="API_TOKEN_REFRESH_FAIL",Z="API_HASH_REQUIRED",X="CONF_ID_REQUIRED",J="INVALID_TOKEN",Q="INVALID_REFRESH_TOKEN",tt="MFA_REQUIRED",et="LOGIN_FAIL",rt="NO_CONF",nt="NO_STORED_TOKEN",it="NO_STORED_REFRESH_TOKEN",ot=t=>{if(q.debug(`${z} - processToken res`,t),!t)return q.debug(`${z} - processToken tokenStr null`,et),et;if(!C(t))return q.debug(`${z} - processToken token.isValid reject`,J),J;const e=A(t);return q.debug(`${z} - processToken decodedToken`,e),L(t),"mfa_required"!==e.user_scope||(q.debug(`${z} - processToken mfa_required reject`,tt),{reason:tt,mfa_type:e.mfa_type,mfa_vendor:e.mfa_vendor})},st={API_TOKEN_REFRESH_FAIL:K,CONF_ID_REQUIRED:X,INVALID_TOKEN:J,MFA_REQUIRED:tt,NO_CONF:rt,[g.NO_SDK_CONFIG]:g.NO_SDK_CONFIG,NO_STORED_TOKEN:nt,authenticate:t=>{let{username:e,password:r,apiHash:n,authCode:i,scope:s="netsapiens"}=t;return q.info(`${z} - authenticate called`,{username:e,password:r,apiHash:n,authCode:i,scope:s}),new Promise(((t,a)=>
15672{g.hasValidConfig()||(console.error("netsapiens sdk not configured"),a(g.NO_SDK_CONFIG)),n||(q.error(`${z} - authentication apiHash prop missing`),console.error("authentication apiHash prop missing"),a(Z));let d="password";i&&(d="authorization_code");const{apiURL:u}=g.getConfiguration();o()({method:"post",withCredentials:!0,url:`${u}oauth2/netsapiensJs`,headers:{Authorization:`Basic ${n}`},data:{grant_type:d,[i?"code":null]:i,username:e,password:r,scope:s}}).then((e=>{R(e.data.token)&&a(J),R(e.data.refresh)&&a(Q);const r=ot(e.data.token);!0===r?(U(n),D(e.data.refresh),t(!0)):a(r)})).catch((t=>{q.debug(`${z} - authenticate err`,t),a(t)}))}))},ssoLogin:t=>{let{idtoken:e,vendor:r,username:n,apiHash:i,scope:s="netsapiens"}=t;return q.info(`${z} - ssoLogin called`,{idtoken:e,vendor:r,username:n,apiHash:i,scope:s}),new Promise(((t,a)=>{g.hasValidConfig()||(console.error("netsapiens sdk not configured"),a(g.NO_SDK_CONFIG)),i||(q.error(`${z} - ssoLogin apiHash prop missing`),console.error("ssoLogin apiHash prop missing"),a(Z));const{apiURL:d}=g.getConfiguration();o()({method:"post",withCredentials:!0,url:`${d}oauth2/netsapiensJs`,headers:{Authorization:`Basic ${i}`},data:{grant_type:r,idtoken:e,username:n,vendor:r,scope:s}}).then((e=>{if("no_subscriber"===e.data.scope)a("NO_SUBSCRIBER");else if("select_subscriber"===e.data.scope)a({reason:"SELECT_SUBSCRIBER",subscriber_list:e.data.subscribers});else{const r=ot(e.data.token);!0===r?(U(i),D(e.data.refresh),t(!0)):a(r)}})).catch((t=>{q.debug(`${z} - ssoLogin err`,t),a(t)}))}))},ssoEnroll:t=>{let{username:e,password:r,idtoken:n,vendor:i,apiHash:s,scope:a="netsapiens"}=t;return q.info(`${z} - ssoEnroll called`,{username:e,password:r,idtoken:n,vendor:i,apiHash:s,scope:a}),new Promise(((t,d)=>{g.hasValidConfig()||(console.error("netsapiens sdk not configured"),d(g.NO_SDK_CONFIG)),s||(q.error(`${z} - ssoEnroll apiHash prop missing`),console.error("ssoEnroll apiHash prop missing"),d(Z));const{apiURL:u}=g.getConfiguration();o()({method:"post",url:`${u}oauth2/ssoEnroll`,headers:{Authorization:`Basic ${s}`},data:{username:e,password:r,idtoken:n,vendor:i,scope:a}}).then((e=>{e.status&&e.status<400?t(!0):d(e)})).catch((t=>{q.debug(`${z} - ssoEnroll err`,t),d(t)}))}))},mfaAuth:t=>{let{username:e,passcode:r,mfa_type:n,mfa_vendor:i,apiHash:s,scope:a="netsapiens"}=t;return q.info(`${z} - mfaAuth called`,{username:e,passcode:r,mfa_type:n,mfa_vendor:i,apiHash:s,scope:a}),new Promise(((t,a)=>{g.hasValidConfig()||(console.error("netsapiens sdk not configured"),a(g.NO_SDK_CONFIG));const d=P(),{apiURL:u}=g.getConfiguration();o()({method:"post",withCredentials:!0,url:`${u}oauth2/netsapiensJs`,headers:{Authorization:`Basic ${s}`},data:{grant_type:"mfa",username:e,passcode:r,ns_id_type:"subscriber",mfa_type:n,mfa_vendor:i,access_token:d}}).then((e=>{const r=ot(e.data.token);!0===r?(U(s),D(e.data.refresh),t(!0)):a(r)})).catch((t=>{q.debug(`${z} - mfaAuth err`,t),a(t)}))}))},proxyAuthentication:t=>(q.info(`${z} - proxyAuthentication called`),new Promise(((e,r)=>{q.debug(`${z} - proxyAuthentication invoke tokenLogin`),t||(console.error("proxyAuthentication apiHash param missing"),r(Z)),(t=>(q.info(`${z} - tokenLogin called`),new Promise(((e,r)=>{const n=P(),i=O();return n?C(n)?i?R(i)?(q.debug(`${z} - tokenLogin reject`,Q),r(Q),!1):void Y.refreshToken(i,t).then((t=>{let{token:r,refreshToken:n}=t;q.debug(`${z} - tokenLogin api.refreshToken token`,r,n),e(!0)})).catch((t=>(q.debug(`${z} - tokenLogin api.refreshToken err`,K,t),r(K),!1))):(q.debug(`${z} - tokenLogin reject`,it),r(it),!1):(q.debug(`${z} - tokenLogin reject`,J),r(J),!1):(q.debug(`${z} - tokenLogin reject`,nt),r(nt),!1)}))))(t).then((t=>{q.debug(`${z} - proxyAuthentication tokenLogin res`,t),e(t)})).catch((t=>{q.debug(`${z} - proxyAuthentication tokenLogin err`,t),r(t)}))}))),videoGuestLogin:t=>{let{apiHash:e,confId:r,guest:n,guestEmail:i,scope:s="netsapiens"}=t;return q.info(`${z} - guestLogin called`,{guest:n,guestEmail:i,scope:s,apiHash:e}),new Promise(((t,a)=>{g.hasValidConfig()||(console.error("netsapiens sdk not configured"),a(g.NO_SDK_CONFIG)),e||(console.error("videoGuestLogin apiHash param missing"),a(Z)),r||(console.error("videoGuestLogin confId param missing"),a(X));const{apiURL:d}=g.getConfiguration();o()({method:"post",withCredentials:!0,url:`${d}oauth2/netsapiensJs`,headers:{Authorization:`Basic ${e}`},data:{grant_type:"guest",conf_id:r,guest:n,scope:s,guestEmail:i}}).then((r=>{if(204===r.status)return void a(rt);const n=r.data.token;if(q.debug(`${z} - videoGuestLogin res`,n),!n)return q.debug(`${z} - videoGuestLogin tokenStr null`,et),a(et),!1;if(!C(n))return q.debug(`${z}
15672 - videoGuestLogin token.isValid reject`,J),a(J),!1;const i=A(n);q.debug(`${z} - videoGuestLogin decodedToken`,i),L(n),U(e),D(r.data.refresh),t(!0)})).catch((t=>{q.error(`${z} - videoGuestLogin err`,t),a(et)}))}))},logout:t=>(q.info(`${z} - logout called`,{apiHash:t}),new Promise(((e,r)=>{g.hasValidConfig()||(console.error("netsapiens sdk not configured"),r(g.NO_SDK_CONFIG)),t||(q.error(`${z} - logout apiHash prop missing`),console.error("logout apiHash prop missing"),r(Z));const n=P(),i=O(),{apiURL:s}=g.getConfiguration();I(),i?o()({method:"delete",withCredentials:!0,url:`${s}v2/jwt/${A(i).jti}`,headers:{Authorization:`Basic ${t}`}}).then((i=>{n?o()({method:"delete",withCredentials:!0,url:`${s}v2/jwt/${A(n).jti}`,headers:{Authorization:`Basic ${t}`}}).then((t=>{q.debug(`${z} - logout success`,t),e(t)})).catch((t=>{q.debug(`${z} - logout err`,t),r(t)})):(q.debug(`${z} - logout success`,i),e(i))})).catch((t=>{q.debug(`${z} - logout err`,t),r(t)})):o()({method:"delete",withCredentials:!0,url:`${s}v2/jwt/${A(n).jti}`,headers:{Authorization:`Basic ${t}`}}).then((t=>{q.debug(`${z} - logout success`,t),e(t)})).catch((t=>{q.debug(`${z} - logout err`,t),r(t)}))})))},at={API_TOKEN_REFRESH_FAIL:st.API_TOKEN_REFRESH_FAIL,CONF_ID_REQUIRED:st.CONF_ID_REQUIRED,INVALID_TOKEN:st.INVALID_TOKEN,NO_CONF:st.NO_CONF,NO_SDK_CONFIG:st.NO_SDK_CONFIG,NO_STORED_TOKEN:st.NO_STORED_TOKEN,authenticate:st.authenticate,ssoLogin:st.ssoLogin,ssoEnroll:st.ssoEnroll,mfaAuth:st.mfaAuth,logout:st.logout,get:Y.get,getToken:Y.getToken,getLogo:Y.getLogo,post:Y.post,v2:Y.v2,proxyAuthentication:st.proxyAuthentication,refreshToken:Y.refreshToken,videoGuestLogin:st.videoGuestLogin},dt=t=>{let e=t,r=!1;return $(".hiddenconflist").each((function(){$(this).attr("id")===e&&(r=!0,e=$(this).val())})),r?e:("string"!=typeof e&&(e=`${e}`),window.PORTAL_PHONENUMBER_REMOVE_POUND_PREFIXES&&(e=e.replace("%23","#"),e=e.substring(e.indexOf("#")+1)),"Call-To-Talk"===e?_("Click to Call"):(e=(t=>{let e=t;if(void 0===e||null==e)return"";"string"!=typeof e&&(e=e.toString()),e=e.replace("sip",""),e=e.replace(":",""),window.PORTAL_PHONENUMBER_REMOVE_PLUS_ON_CALL&&(e=e.replace("+","")),e=e.replace("(",""),e=e.replace(")",""),e=e.replace("-",""),e=e.replace(/\./g,""),e=e.replace(/:/g,""),e=e.replace(/ /g,""),window.PORTAL_PHONENUMBER_REMOVE_PLUS_ON_CALL&&(e=e.replace(/\+/g,"")),e=e.replace(/\(/g,""),e=e.replace(/\)/g,""),e=e.replace(/-/g,""),e=e.replace(/^\s+|\s+$/g,""),e=e.replace("wp",""),e=e.replace('"',""),e=e.replace("]",""),e=e.replace("[","");let r=e.split("@");return[e]=r,e=e.replace("%40","@"),r=e.split("@"),[e]=r,e})(e),e.includes("video.bridge")&&(e=_("Video Bridge")),/^\d+$/.test(e)?11===e.length&&"1"===e[0]?window.PORTAL_PHONENUMBER_HIDE_DOMESTIC_ONE?`(${e.substring(1,4)}) ${e.substring(4,7)}-${e.substring(7,11)}`:`1 (${e.substring(1,4)}) ${e.substring(4,7)}-${e.substring(7,11)}`:10===e.length&&"0"!==e[0]&&"1"!==e[0]?`(${e.substring(0,3)}) ${e.substring(3,6)}-${e.substring(6,10)}`:7===e.length?`${e.substring(0,3)}-${e.substring(3,7)}`:e:e))};let ut,ht={},lt={};const ft=t=>Object.keys(ht).includes(t),ct=t=>{const e=`#${t}`;$(e).hasClass("ui-autocomplete-input")&&$(e).autocomplete("destroy")},gt=t=>{const e=t.map((t=>{let{user:e,first_name:r,last_name:n}=t;return`${e} (${r} ${n})`}));$(".app-details-loading").remove(),$(`#${ut}`).autocomplete({minLength:0,source:e}),ut=""},pt=t=>{const e=t.map((t=>{let{domain:e,description:r}=t;return`${e} (${r})`}));$(".app-details-loading").remove(),$(`#${ut}`).autocomplete({minLength:0,source:e}),ut=""},mt=t=>{const e=t.map((t=>{let{user:e,first_name:r,last_name:n}=t;return`${e} (${r} ${n})`}));$(".app-details-loading").remove(),$(`#${ut}`).autocomplete({minLength:0,source:e}),ut=""},bt=t=>{$("#available_bridges").find("option").remove().end();const e=t.map((t=>{let{name:e,aor:r}=t,n=`${e}`,i="";try{[i]=r.split("@")[0].replace("sip:","").split(".")}catch(t){console.log(t)}""!==i&&(n=`${e} (${i})`);const o=`${r}`;return $("#available_bridges").append(`<option value="${n}">${o}</option>`),n}));$(".app-details-loading").remove(),$(`#${ut}`).autocomplete({minLength:0,source:e}),ut=""},yt=t=>{const e=t.map((t=>{let{queue_name:e,description:r}=t;return`${e} (${r})`}));$(".app-details-loading").remove(),$(`#${ut}`).autocomplete({minLength:0,source:e})},vt=t=>{$("#available_attendants").find("option").remove().end();const e=[],r=t.map((t=>{let{mainname:r,user:n,starting:i}=t;const o=`${r} (${n})`,s=`${n}@${i}`;return e.includes(o)?"":(e.push(o),$("#available_attendants").append(`<option value="${o}">${s}</option>`),o)})).filter((t=>""!==t));$(".app-details-loading").remove(),$(`#${ut}`).autocomplete({minLength:0,source:r}),ut=""},_t={checkDomain:ft,checkReseller:t=>Object.keys(lt).includes(t),resellerList:lt,setResellerList:t=>{lt=t},devices:(t,e)=>{const r=document.getElementById(t),n=document.getElementById(e);let i="";const o=t=>{[i]=r.value.split(" ");const e=t.map((t=>{let{aor:e,sub_fullname:r}=t;return`${dt(e)} (${r})`}));$(".app-details-loading").remove(),$(`#${n.id}`).autocomplete({minLength:0,source:e})},s=()=>{const t=r.value.split(" ")[0];if(t===i)return;const e=ft(t);if(""!==t&&!0===e){const e={object:"device",action:"read",owner_domain:t};$("").insertAfter(`#${n.id}`),at.post(e).then(o)}else ct(n.id)};if(!r||!n)throw new ReferenceError("invalid domain or device field","netsapiens.js",170);
15672r.addEventListener("input",s),$(r).on("autocompleteclose",s)},domainList:ht,loadingHtml:"",setDomainList:t=>{ht=t},extensions:(t,e,r)=>{const n=!!r,i=document.getElementById(t);if(!i||!e)throw new ReferenceError("invalid domain or extension field","netsapiens.js",170);const o=t=>{const r=Object.keys(t).map((e=>{let r=t[e].user;return t[e].first_name&&t[e].last_name&&(r+=` (${t[e].first_name} ${t[e].last_name})`),r}));$(".app-details-loading").remove(),$(`#${e}`).autocomplete({minLength:0,source:r})},s=()=>{const t=i.value.split(" ")[0],r=ft(t);if(""!==t&&!0===r){const r={object:"subscriber",action:"read",domain:t,fields:"user"};!0===n&&(r.fields="user,first_name,last_name"),$("").insertAfter(`#${e}`),at.post(r).then(o)}else ct(e)};i.addEventListener("input",s),$(i).on("autocompleteclose",s)},remove:ct,updateTreatment:(t,e)=>{const r=document.getElementById(e),n=document.getElementById(e);let i=t.target.value;const o=r.value.split(" ")[0],s={object:"subscriber",action:"read",domain:o,fields:"user,first_name,last_name",filter_users:"departments,system,domain",format:"json"},a={object:"domain",action:"read",territory:n.value.split(" ")[0],fields:"domain",format:"json"},d={object:"conference",action:"read",owner_domain:o,fields:"name,aor",filter_bridges:"video",format:"json"},u={object:"callqueue",action:"read",domain:o,fields:"queue_name,description",format:"json"},h={object:"attendant",action:"read",domain:o,fields:"*",format:"json"};let l,f;switch(i){case"available":case"trunk":return;case"user":case"fax":l=s,f=gt;break;case"domain":l=a,f=pt;break;case"conference":l=d,f=bt;break;case"callqueue":l=u,f=yt;break;case"voicemail":l=s,i="vmail",f=mt;break;case"attendant":l=h,f=vt}ut=`${i}-choices`,0===$(".app-details-loading").length&&$("").insertAfter(`#${ut}`),at.post(l).then(f)}};var Mt=__webpack_require__(7515),wt=__webpack_require__.n(Mt);const $t="sdk/browser/utils/query",St=e().getLogger($t),Nt=t=>{St.info(`${$t} - getQuery called`,{name:t,location:window.location});const e=t.replace(/[[]/,"\\[").replace(/[\]]/,"\\]"),r=new RegExp(`[\\?&]${e}=([^&#]*)`).exec(window.location.search),n=null===r?"":decodeURIComponent(r[1].replace(/\+/g," "));return St.debug(`${$t} - getQuery param`,n),n},Et="sdk/browser/utils/support",Tt=e().getLogger(Et),At={fullVersion:wt().browser.fullVersion,getQuery:Nt,isSupported:t=>{if(Tt.info(`${Et} - isSupported called`,wt().browser,t),!t||!Array.isArray(t))return console.error(`${Et} - isSupported missing supportedBrowsers`),!1;for(let e=0;e<t.length;e+=1)if(t[e].name===wt().browser.name){if(wt().browser.version<t[e].lowestVersion)continue;for(let r=0;r<t[e].excludedVersions.length;r+=1)wt().browser.version,t[e].excludedVersions[r];if(wt().isWebRTCSupported&&wt().isGetUserMediaSupported)return Tt.debug(`${Et} - isSupported res`,!0),!0}return Tt.debug(`${Et} - isSupported res`,!1),!1},name:wt().browser.name,isFirefox:wt().browser.isFirefox||wt().browser.name.toLowerCase().includes("firefox"),setQuery:t=>{St.info(`${$t} - setQuery called`,{params:t,location:window.location});let e="";window.location.search?e+="&":e+="?",e+=`${t.name}=${t.value}`,window.history.pushState({path:window.location+e},"",window.location+e)},removeQuery:t=>{St.info(`${$t} - removeQuery called`,{name:t,location:window.location});const e=Nt(t);if(e){let{search:r}=window.location;r=r.replace(`&${t}=${e}`,""),r=r.replace(`${t}=${e}&`,""),r&&(r=r.replace(`?${t}=${e}`,"")),window.history.pushState({path:window.location.origin+window.location.pathname+r},"",window.location.origin+window.location.pathname+r)}},version:wt().browser.version},Rt="sdk/device/services/device",Pt=e().getLogger(Rt),Ot=t=>{let{device:e,domain:r,userId:n,callProcess:i=""}=t;if(Pt.info(`${Rt} - create called`,{device:e,domain:r,userId:n}),!e||!r||!n)return console.error(`${Rt} - create device missing required params`),Promise.reject();if(!g.hasValidConfig())return console.error("nsSDK not configured"),Promise.reject(!1);const o={object:"device",action:"create",device:e,domain:r,user:n||g.getConfiguration().userId,call_processing_rule:i};return Y.post(o,{}).then((()=>!0)).catch((()=>!1))},Ct=t=>{let{device:e,domain:r,userId:n,callProcess:i=""}=t;return Pt.info(`${Rt} - update called`,{device:e,domain:r,userId:n,callProcess:i}),new Promise(((t,o)=>{e&&r&&n||(console.error(`${Rt} - update device missing required params`),o(!1)),g.hasValidConfig()||(console.error("nsSDK not configured"),o(!1));const s={object:"device",action:"update",user:n||g.getConfiguration().userId,domain:r};e&&(s.device=e),i&&(s.call_processing_rule=i),Y.post(s,{}).then((()=>!0)).catch((()=>!1))}))},It={create:Ot,get:t=>{let{device:e,domain:r,userId:n,callProcess:i="",createDevice:o=!1}=t;return Pt.info(`${Rt} - get called`,{device:e,domain:r,userId:n,callProcess:i,createDevice:o}),new Promise(((t,s)=>{e&&r&&n||(console.error(`${Rt} - get device missing required params`),s(!1)),g.hasValidConfig()||(console.error("nsSDK not configured"),s(!1)),Y.get({object:"device",action:"read",device:e,user:n||g.getConfiguration().userId,domain:r,format:"json",noNDP:!0}).then((a=>{a&&a.length?a[0].call_processing_rule===i||(a[0].call_processing_rule||"").includes("Record")||(a[0].call_processing_rule||"").includes("Push")?(a[0].call_processing_rule||"").includes("Record")||(a[0].call_processing_rule||"").includes("Push")?(a[0].call_processing_rule=i,t(a[0])):t(a[0]):Ct({device:e,domain:r,userId:n,callProcess:i}).then((e=>{e[0].call_processing_rule=i,t(e[0])})):o?Ot({device:e,domain:r,userId:n,callProcess:i}).then((i=>{if(i){const i=setInterval((()=>{Y.get({object:"device",action:"read",device:e,user:n||g.getConfiguration().userId,domain:r,format:"json",noNDP:!0}).then((e=>{e&&(clearInterval(i),t(e[0]))}))}),500)}else s(!1)})).catch((()=>{s(!1)})):s(!1)})).catch((t=>{s(t)}))}))},update:Ct},Lt={create:It.create,get:It.get,update:It.update};
15672var Dt=__webpack_require__(1565);const Ut={getGravitar:{getGravitar:function t(e,r){return new Promise((n=>{const i=Dt.createHash("md5").update(e[0]).digest("hex");o()({method:"get",url:`https://www.gravatar.com/avatar/${i}?s=${r}&d=blank`,responseType:"blob"}).then((i=>{let{data:o}=i;if(o.size<250)e.length>1?(e.shift(),n(t(e,r))):n(null);else{const t=new FileReader;t.onloadend=function(){n(this.result)},t.readAsDataURL(o)}})).catch((()=>{e.length>1?(e.shift(),n(t(e,r))):n(null)}))}))}}.getGravitar},kt="sdk/media/services/userMedia",xt=e().getLogger(kt),Ft="NO_MEDIA_PERMISSIONS",Bt={NO_MEDIA_PERMISSIONS:Ft,getUserMedia:t=>(xt.info(`${kt} - getUserMedia called`,t),new Promise(((e,r)=>{navigator.mediaDevices.getUserMedia(t).then((t=>{xt.debug(`${kt} - getUserMedia stream`,t),e(t)})).catch((t=>{xt.debug(`${kt} - getUserMedia error`,t),r(Ft)}))})))},Vt={NO_MEDIA_PERMISSIONS:Bt.NO_MEDIA_PERMISSIONS,getUserMedia:Bt.getUserMedia},jt=Symbol("capabilities"),Ht=Symbol("displayName"),Gt=Symbol("id"),Wt=Symbol("meta"),Yt=Symbol("type"),zt=Symbol("order"),qt=Symbol("type"),Kt=Symbol("audioTrack"),Zt=Symbol("contact"),Xt=Symbol("direction"),Jt=Symbol("id"),Qt=Symbol("isMuted"),te=Symbol("isOnHold"),ee=Symbol("onAccept"),re=Symbol("onBye"),ne=Symbol("onClose"),ie=Symbol("onConnect"),oe=Symbol("onFailed"),se=Symbol("onPause"),ae=Symbol("onProgress"),de=Symbol("onReinvite"),ue=Symbol("onRejected"),he=Symbol("onResume"),le=Symbol("onTerminated"),fe=Symbol("session"),ce=Symbol("status"),ge=Symbol("stream"),pe=Symbol("streamURL"),me=Symbol("type"),be=Symbol("userId"),ye=Symbol("videoTrack"),ve=Symbol("capabilities"),_e=Symbol("content"),Me=Symbol("displayName"),we=Symbol("gravatar"),$e=Symbol("initials"),Se=Symbol("formattedTime"),Ne=Symbol("id"),Ee=Symbol("isSelf"),Te=Symbol("ts"),Ae=Symbol("type");class Re{constructor(t){let{capabilities:e={},content:r=null,displayName:n=null,gravatar:i=null,initials:o="",formattedTime:s=null,id:a=null,isSelf:d=!1,ts:u=0,type:h="message"}=t;this.capabilities=e,this.content=r,this.displayName=n,this.gravatar=i,this.initials=o,this.formattedTime=s,this.isSelf=d,this.id=a,this.ts=u,this.type=h}get capabilities(){return this[ve]}set capabilities(t){return this[ve]=t}get content(){return this[_e]}set content(t){return this[_e]=t}get displayName(){return this[Me]}set displayName(t){return this[Me]=t}get gravatar(){return this[we]}set gravatar(t){return this[we]=t}get initials(){return this[$e]}set initials(t){return this[$e]=t}get id(){return this[Ne]}set id(t){return this[Ne]=t}get isSelf(){return this[Ee]}set isSelf(t){return this[Ee]=t}get formattedTime(){return this[Se]}set formattedTime(t){return this[Se]=t}get ts(){return this[Te]}set ts(t){let e=new Date(t);return e=e.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}),this.formattedTime=e,this[Te]=t}get type(){return this[Ae]}set type(t){return this[Ae]=t}getCapability(t){return this[ve][t]||null}setCapability(t){return this[ve][t.type]=t}toJSON(){return{capabilities:this[ve],content:this[_e],displayName:this[Me],gravatar:this[we],initials:this[$e],formattedTime:this[Se],id:this[Ne],ts:this[Te],type:this[Ae]}}}const Pe=Symbol("type"),Oe=Symbol("attendeeId"),Ce=Symbol("capabilities"),Ie=Symbol("dataDevice"),Le=Symbol("dialPlan"),De=Symbol("displayName"),Ue=Symbol("domain"),ke=Symbol("email"),xe=Symbol("firstName"),Fe=Symbol("gravatar"),Be=Symbol("initials"),Ve=Symbol("isActive"),je=Symbol("isSelf"),He=Symbol("isFirstLogin"),Ge=Symbol("joinTS"),We=Symbol("language"),Ye=Symbol("lastName"),ze=Symbol("scope"),qe=Symbol("screenShareDevice"),Ke=Symbol("sms"),Ze=Symbol("subscriberLogin"),Xe=Symbol("subscriberPin"),Je=Symbol("uid"),Qe=Symbol("userId"),tr=Symbol("timeZone"),er=Symbol("videoDevice"),rr=Symbol("vmailEnabled"),nr=Symbol("vmailGreeting"),ir=Symbol("type"),or=Symbol("capabilities"),sr=Symbol("id"),ar=Symbol("isAudioMuted"),dr=Symbol("isFullscreen"),ur=Symbol("isVideoMuted"),hr=Symbol("session"),lr=Symbol("type"),fr=Symbol("user");class cr{constructor(t){let{capabilities:e={},id:r=null,isAudioMuted:n=!1,isFullscreen:i=!1,isVideoMuted:o=!1,session:s=null,type:a="",user:d=null}=t;this[or]=e,this[sr]=r,this[ar]=n,this[dr]=i,this[ur]=o,this[hr]=s,this[lr]=a,this[fr]=d}get capabilities(){return this[or]}set capabilities(t){return this[or]=t}get id(){return this[sr]}set id(t){return this[sr]=t}get isAudioMuted(){return this[ar]}set isAudioMuted(t){this[ar]=t}get isFullscreen(){return this[dr]}set isFullscreen(t){this[dr]=t}get isVideoMuted(){return this[ur]}set isVideoMuted(t){this[ur]=t}get session(){return this[hr]}set session(t){this[hr]=t}get type(){return this[lr]}set type(t){return this[lr]=t}get user(){return this[fr]}set user(t){this[fr]=t}getCapability(t){return this[or][t]||null}setCapability(t){return this[or][t.type]=t}toJSON(){return{capabilities:this[or],id:this[sr],isAudioMuted:this[ar],isFullscreen:this[dr],isVideoMuted:this[ur],session:this[hr],type:this[lr],user:this[fr]}}}const gr={card:{capabilityTypes:{DISMISSIBLE:"DISMISSIBLE",SORTABLE:"SORTABLE"},Capability:class{constructor(t){this[qt]=t.type||null}get type(){return this[qt]}set type(t){this[qt]=t}toJSON(){return{type:this[qt]}}},Card:class{constructor(t){let{capabilities:e={},displayName:r=null,id:n=null,meta:i=null,type:o="",order:s=null}=t;this[jt]=e,this[Ht]=r,this[Gt]=n,this[Wt]=i,this[Yt]=o,this[zt]=s}get capabilities(){return this[jt]}set capabilities(t){this[jt]=t}get displayName(){return this[Ht]}set displayName(t){this[Ht]=t}get id(){return this[Gt]}set id(t){this[Gt]=t}get meta(){return this[Wt]}set meta(t){this[Wt]=t}get type(){return this[Yt]}set type(t){this[Yt]=t}get order(){return this[zt]}set order(t){this[zt]=t}toJSON(){return{capabilities:this[jt],displayName:this[Ht],id:this[Gt],meta:this[Wt],type:this[Yt],order:this[zt]}}}},sip:{Session:class{constructor(t){let{audioTrack:e=null,contact:r=null,direction:n="local",id:i=null,isMuted:o=!1,isOnHold:s=!1,session:a=null,status:d="trying",stream:u=null,type:h="session",userId:l=null,videoTrack:f=null}=t;this.audioTrack=e,this.contact=r,this[Xt]=n,this[Jt]=i,this.isMuted=o,this.isOnHold=s,this.status=d,this.session=a,this[me]=h,this[be]=l,this.videoTrack=f,u&&(this.stream=u),o&&this.mute()}get audioTrack(){return this[Kt]}set audioTrack(t){this[Kt]=t}get contact(){return this[Zt]}set contact(t){this[Zt]=t}get direction(){return this[Xt]}get id(){return this[Jt]}get isMuted(){return this[Qt]}set isMuted(t){this[Qt]=t}get isOnHold(){return this[te]}set isOnHold(t){this[te]=t}set onAccept(t){this[ee]=t,this[fe]&&this[fe].on("accepted",t)}set onBye(t){this[re]=t,this[fe]&&this[fe].on("bye",t)}set onClose(t){this[ne]=t,this[fe]&&this[fe].on("close",t)}set onConnect(t){this[ie]=t,this[fe]&&this[fe].on("connected",t)}set onFailed(t){this[oe]=t,this[fe]&&this[fe].on("failed",t)}set onPause(t){this[se]=t,this[fe]&&this[fe].on("pause",t)}set onProgress(t){this[ae]=t,this[fe]&&this[fe].on("progress",t)}set onReinvite(t){this[de]=t,this[fe]&&this[fe].on("reinvite",t)}set onRejected(t){this[ue]=t,this[fe]&&this[fe].on("rejected",t)}set onResume(t){this[he]=t,this[fe]&&this[fe].on("resume",t)}set onTerminated(t){this[le]=t,this[fe]&&this[fe].on("terminated",t)}get session(){return this[fe]}set session(t){this[fe]=t}get status(){return this[ce]}set status(t){this[ce]=t}get stream(){return this[ge]}set stream(t){this[ge]=t,this.streamURL=window.URL.createObjectURL(t)}get streamURL(){return this[pe]}set streamURL(t){this[pe]=t}get type(){return this[me]}get userId(){return this[be]}get videoTrack(){return this[ye]}set videoTrack(t){this[ye]=t}hold(){this[te]=!0,this[fe].hold()}unhold(){this[te]=!1,this[fe].unhold()}mute(){this.isMuted=!0,this[fe]&&this[fe].mute()}unmute(){this.isMuted=!1,this[fe]&&this[fe].unmute()}toJSON(){return{contact:this.contact,direction:this.direction,id:this.id,isMuted:this.isMuted,isOnHold:this.isOnHold,status:this.status,session:this.session,type:this.t
15672ype,userId:this.userId}}}},ucInbox:{Item:Re,MessageItem:class extends Re{constructor(t){t.type="message",super(t)}}},user:{capabilityTypes:{AUDIO:"AUDIO",CHAT:"CHAT",DATA:"DATA",SCREEN:"SCREEN",VIDEO:"VIDEO"},Capability:class{constructor(t){this[Pe]=t.type||null}get type(){return this[Pe]}set type(t){return this[Pe]=t}toJSON(){return{type:this[Pe]}}},User:class{constructor(t){let{attendeeId:e=null,capabilities:r={},dataDevice:n=null,dialPlan:i=null,displayName:o="",domain:s=null,email:a=null,firstName:d=null,gravatar:u=null,initials:h="",isActive:l=!0,isSelf:f=!1,isFirstLogin:c=null,joinTS:g=null,language:p=null,lastName:m=null,scope:b=null,screenDevice:y=null,sms:v=null,subscriberLogin:_=null,subscriberPin:M=null,uid:w=null,userId:$=null,timeZone:S=null,videoDevice:N=null,vmailEnabled:E=null,vmailGreeting:T=null}=t;this[Oe]=e,this[Ce]=r,this[Ie]=n,this[Le]=i,this[De]=o,this[Ue]=s,this[ke]=a,this[xe]=d,this[Fe]=u,this[Be]=h,this[Ve]=l,this[je]=f,this[He]=c,this[Ge]=g,this[We]=p,this[Ye]=m,this[ze]=b,this[qe]=y,this[Ke]=v,this[Ze]=_,this[Xe]=M,this[Je]=w,this[Qe]=$,this[tr]=S,this[er]=N,this[rr]=E,this[nr]=T}get attendeeId(){return this[Oe]}set attendeeId(t){this[Oe]=t}get capabilities(){return this[Ce]}set capabilities(t){this[Ce]=t}get dataDevice(){return this[Ie]}set dataDevice(t){this[Ie]=t}get dialPlan(){return this[Le]}set dialPlan(t){this[Le]=t}get displayName(){return this[De]}set displayName(t){this[De]=t}get domain(){return this[Ue]}set domain(t){this[Ue]=t}get email(){return this[ke]}set email(t){this[ke]=t}get firstName(){return this[xe]}set firstName(t){this[xe]=t}get gravatar(){return this[Fe]}set gravatar(t){this[Fe]=t}get initials(){return this[Be]}set initials(t){this[Be]=t}get isActive(){return this[Ve]}set isActive(t){this[Ve]=t}get isSelf(){return this[je]}set isSelf(t){this[je]=t}get isFirstLogin(){return this[He]}set isFirstLogin(t){this[He]=t}get joinTS(){return this[Ge]}set joinTS(t){this[Ge]=t}get language(){return this[We]}set language(t){this[We]=t}get lastName(){return this[Ye]}set lastName(t){this[Ye]=t}get scope(){return this[ze]}set scope(t){this[ze]=t}get screenDevice(){return this[qe]}set screenDevice(t){this[qe]=t}get sms(){return this[Ke]}set sms(t){this[Ke]=t}get subscriberLogin(){return this[Ze]}set subscriberLogin(t){this[Ze]=t}get uid(){return this[Je]}set uid(t){this[Je]=t}get userId(){return this[Qe]}set userId(t){this[Qe]=t}get timeZone(){return this[tr]}set timeZone(t){this[tr]=t}get videoDevice(){return this[er]}set videoDevice(t){this[er]=t}getCapability(t){return this[Ce][t]||null}hasCapability(t){return!!this[Ce][t]}setCapability(t){this[Ce][t.type]=t}get vmailEnabled(){return this[rr]}get vmailGreeting(){return this[nr]}set vmailEnabled(t){this[rr]=t}set vmailGreeting(t){this[nr]=t}get subscriberPin(){return this[Xe]}set subscriberPin(t){this[Xe]=t}toJSON(){return{attendeeId:this[Oe],capabilities:this[Ce],dataDevice:this[Ie],displayName:this[De],domain:this[Ue],email:this[ke],firstName:this[xe],gravatar:this[Fe],initials:this[Be],joinTS:this[Ge],isFirstLogin:this[He],language:this[We],lastName:this[Ye],scope:this[ze],screenDevice:this[qe],sms:this[Ke],subscriberLogin:this[Ze],subscriberPin:this[Xe],uid:this[Je],userId:this[Qe],timeZone:this[tr],videoDevice:this[er],vmailEnabled:this[rr],vmailGreeting:this[nr]}}}},video:{capabilityTypes:{},Capability:class{constructor(t){this[ir]=t.type||null}get type(){return this[ir]}set type(t){return this[ir]=t}toJSON(){return{type:this[ir]}}},Item:cr,ScreenShareItem:class extends cr{constructor(t){t.type="screenShare",super(t)}},VideoItem:class extends cr{constructor(t){t.type="video",super(t)}}}},pr="sdk/portal/services/portal",mr=e().getLogger(pr),br={getTranslation:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"netsapiens";mr.info(`${pr} - getTranslation called`,{lang:t,scope:e});const{portalURL:r}=g.getConfiguration();return mr.debug(`${pr} - getTranslation config`,{portalURL:r}),o().post(`${r}webroot/locale/wp/${t}.json`).then((t=>(mr.debug(`${pr} - getTranslation res`,!0),t.data))).catch((t=>(console.error(t),!1)))},removeToken:()=>{mr.info(`${pr} - removeToken called`);const{portalURL:t}=g.getConfiguration();return mr.debug(`${pr} - getToken config`,{portalURL:t}),o().post(`${t}login/removejwt`).then((()=>(mr.debug(`${pr} - removeToken _setJwt res`,!0),!0))).catch((t=>(console.error(t),!1)))},ucCheck:()=>
15672{if(mr.info(`${pr} - ucCheck called`),!g.hasValidConfig())return console.error("nsSDK not configured"),Promise.reject(!1);const{portalURL:t}=g.getConfiguration();return mr.debug(`${pr} - ucCheck config`,{portalURL:t}),new Promise(((e,r)=>{o().get(`${t}login/uccheck`).then((t=>{mr.debug(`${pr} - ucCheck res`,t),e(t.data)})).catch((t=>{mr.debug(`${pr} - ucCheck err`,t),t&&t.response&&t.response.data?r(t.response.data):r(!1)}))}))},updateSessionToken:t=>(mr.info(`${pr} - updateSessionToken called`,{token:t}),g.hasValidConfig()?new Promise(((e,r)=>{(t=>{mr.info(`${pr} - setJwt called`,{token:t});const{portalURL:e}=g.getConfiguration();return mr.debug(`${pr} - getToken config`,{portalURL:e}),o().post(`${e}login/setjwt`,{token:t}).then((()=>(mr.debug(`${pr} - setJwt res`,!0),!0))).catch((t=>(console.error(t),!1)))})(t).then((t=>{mr.debug(`${pr} - updateSessionToken setJwt res`,t),t?e(t):r("SET_JWT_PORTAL_FAIL")})).catch((t=>{console.error(t),r(t)}))})):(console.error("nsSDK not configured"),Promise.reject(!1)))},yr={getToken:br.getToken,getTranslation:br.getTranslation,removeJwt:br.removeToken,ucCheck:br.ucCheck};let vr=[];function _r(t,e,r,n,i){if(n===i){const t=e.join("");return void vr.push(t)}const o=i+1;for(let i=0;i<t.length;i+=1)r[i]||(r[i]=!0,e.push(t[i]),_r(t,e,r,n,o),r[i]=!1,e.pop())}const Mr={getPermutations:(t,e)=>{vr=[];const r=t.split("");return _r(r,[],new Array(r.length),e,0),vr}},wr={decode:A,getDecoded:()=>{T.info(`${E} - getDecoded called`);const t=P();if(T.debug(`${E} - getDecoded token`,t),t){const e=A(t);return T.debug(`${E} - getDecoded res`,e),A(t)}return T.debug(`${E} - getDecoded res`,null),null},get:P,hasToken:()=>{T.info(`${E} - hasToken called`);const t=P();return T.debug(`${E} - hasToken res`,!!t),!!t},isValid:C,remove:I,set:L},$r=function(t,e){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const n={entities:{},ids:[]};return r&&Array.isArray(r)&&r.forEach((t=>{n[t.name]={}})),n.toArray=function(){const t=[];for(let e=0;e<this.ids.length;e+=1)t.push(this.entities[this.ids[e]]);return t},t&&e&&e.length?(e.forEach((e=>{n.ids.push(e[t]),n.entities[e[t]]=e,r&&Array.isArray(r)&&r.forEach((r=>{const i=r.path.split(".");switch(i.length){case 1:e[i[0]]&&(n[r.name][r.toLower?e[i[0]].toLowerCase():e[i[0]]]=e[t]);break;case 2:e[i[0]][i[1]]&&(n[r.name][r.toLower?e[i[0]][i[1]].toLowerCase():e[i[0]][i[1]]]=e[t]);break;case 3:[i[0]][i[1]][i[2]]&&(n[r.name][r.toLower?e[i[0]][i[1]][i[2]].toLowerCase():e[i[0]][i[1]][i[2]]]=e[t]);break;case 4:[i[0]][i[1]][i[2]][i[3]]&&(n[r.name][r.toLower?e[i[0]][i[1]][i[2]][i[3]].toLowerCase():e[i[0]][i[1]][i[2]][i[3]]]=e[t]);break;case 5:e[i[0]][i[1]][i[2]][i[3]][i[4]]&&(n[r.name][r.toLower?e[i[0]][i[1]][i[2]][i[3]][i[4]].toLowerCase():e[i[0]][i[1]][i[2]][i[3]][i[4]]]=e[t])}}))})),n):n},Sr="sdk/ui-config/services/uiConfig",Nr=e().getLogger(Sr),Er={configMapping:s.$W.bG,get:t=>{Nr.info(`${Sr} - get called`,t);const e={object:"uiconfig",action:"read",config_name:"*",format:"json"};return t.configName&&(e.config_name=t.configName),t.domain&&(e.domain=t.domain),t.user&&(e.user=t.user),t.hostname&&(e.hostname=t.hostname),t.role&&(e.role=t.role),t.reseller&&(e.reseller=t.reseller),Nr.debug(`${Sr} - get params`,e),Y.get(e).then((e=>{if(!e.length)return t.normalize?$r("config_name",[]):null;let r=e;if(t.returnFirst)return e[0];if(t.filter&&Array.isArray(t.filter)){const n=[];let i=!1;t.filter.forEach((t=>{const r=s.$W.bG[t]?s.$W.bG[t].name:null;if(r){let o=s.$W.bG[t].default,a="",d="";const u=e.find((t=>t.config_name===r));void 0!==u&&void 0!==u.config_value&&u.config_value&&u.config_value.trim()&&(i=!0,o=u.config_value,a=u.domain,d=u.description),n.push({config_name:t,config_value:o,domain:i?a:null,description:i?d:null})}else console.error("config mapping not found",t)})),r=n}if(t.normalize)return $r("config_name",r);r.forEach((t=>{const e=t.config_name.split("_"),n=e.pop(),i=new RegExp(/^(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)$/).test(n);if(i&&n!==window.location.hostname)return;const o=i?e.join("_"):t.config_name;let a;for(const[t,e]of Object.entries(s.$W.bG))o===e.name&&(a=e,a.id=t);if(a&&a.id){let e=a.default;t.config_value&&t.config_value.trim()&&(e=t.config_value),r.push({config_name:a.id,config_value:e,domain:t.domain||null,description:t.description||null})}else r.push({config_name:o,config_value:t.config_value,domain:t.domain,description:t.description})}));for(const[t,e]of Object.entries(s.$W.bG))r.find((r=>{const n=r.config_name===e.name,i=r.config_name===t;return n||i}))||r.push({config_name:t,config_value:e.default,domain:e.domain||null,description:e.description||null});return r}))}}
15672,Tr="sdk/uc-license/services/ucLicense",Ar=e().getLogger(Tr),Rr="UC_LICENSE_EXPIRED",Pr={UC_LICENSE_EXPIRED:Rr,hasAccess:()=>(Ar.info(`${Tr} - hasAccess called`),new Promise(((t,e)=>{br.ucCheck().then((()=>{t(!0)})).catch((t=>{e(!1!==t?t:Rr)}))}))),ucLicenseNotice:()=>{Ar.info(`${Tr} - ucLicenseNotice called`);const t=s.$W.bG.ucLicenseNotice.default;return Er.get({configName:s.$W.bG.ucLicenseNotice.name,returnFirst:!0}).then((e=>e?e.config_value:t))}},Or={UC_LICENSE_EXPIRED:Pr.UC_LICENSE_EXPIRED,hasAccess:Pr.hasAccess,ucLicenseNotice:Pr.ucLicenseNotice},Cr={configMapping:Er.configMapping,get:Er.get},Ir="function"==typeof atob,Lr="function"==typeof btoa,Dr="function"==typeof Buffer,Ur="function"==typeof TextDecoder?new TextDecoder:void 0,kr="function"==typeof TextEncoder?new TextEncoder:void 0,xr=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),Fr=(t=>{let e={};return t.forEach(((t,r)=>e[t]=r)),e})(xr),Br=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,Vr=String.fromCharCode.bind(String),jr="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(t,e=t=>t)=>new Uint8Array(Array.prototype.slice.call(t,0).map(e)),Hr=t=>t.replace(/[^A-Za-z0-9\+\/]/g,""),Gr=Lr?t=>btoa(t):Dr?t=>Buffer.from(t,"binary").toString("base64"):t=>{let e,r,n,i,o="";const s=t.length%3;for(let s=0;s<t.length;){if((r=t.charCodeAt(s++))>255||(n=t.charCodeAt(s++))>255||(i=t.charCodeAt(s++))>255)throw new TypeError("invalid character found");e=r<<16|n<<8|i,o+=xr[e>>18&63]+xr[e>>12&63]+xr[e>>6&63]+xr[63&e]}return s?o.slice(0,s-3)+"===".substring(s):o},Wr=Dr?t=>Buffer.from(t).toString("base64"):t=>{let e=[];for(let r=0,n=t.length;r<n;r+=4096)e.push(Vr.apply(null,t.subarray(r,r+4096)));return Gr(e.join(""))},Yr=t=>{if(t.length<2)return(e=t.charCodeAt(0))<128?t:e<2048?Vr(192|e>>>6)+Vr(128|63&e):Vr(224|e>>>12&15)+Vr(128|e>>>6&63)+Vr(128|63&e);var e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return Vr(240|e>>>18&7)+Vr(128|e>>>12&63)+Vr(128|e>>>6&63)+Vr(128|63&e)},zr=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,qr=Dr?t=>Buffer.from(t,"utf8").toString("base64"):kr?t=>Wr(kr.encode(t)):t=>Gr(t.replace(zr,Yr)),Kr=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,Zr=t=>{switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return Vr(55296+(e>>>10))+Vr(56320+(1023&e));case 3:return Vr((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return Vr((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},Xr=Ir?t=>atob(Hr(t)):Dr?t=>Buffer.from(t,"base64").toString("binary"):t=>{if(t=t.replace(/\s+/g,""),!Br.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));let e,r,n,i="";for(let o=0;o<t.length;)e=Fr[t.charAt(o++)]<<18|Fr[t.charAt(o++)]<<12|(r=Fr[t.charAt(o++)])<<6|(n=Fr[t.charAt(o++)]),i+=64===r?Vr(e>>16&255):64===n?Vr(e>>16&255,e>>8&255):Vr(e>>16&255,e>>8&255,255&e);return i},Jr=Dr?t=>jr(Buffer.from(t,"base64")):t=>jr(Xr(t),(t=>t.charCodeAt(0))),Qr=Dr?t=>Buffer.from(t,"base64").toString("utf8"):Ur?t=>Ur.decode(Jr(t)):t=>Xr(t).replace(Kr,Zr),tn=(t,e=!1)=>e?(t=>t.replace(/=/g,"").replace(/[+\/]/g,(t=>"+"==t?"-":"_")))(qr(t)):qr(t),en=t=>Qr(Hr(t.replace(/[-_]/g,(t=>"-"==t?"+":"/"))));var rn=__webpack_require__(7e3),nn=__webpack_require__.n(rn);const{NATIONAL:on,INTERNATIONAL:sn}=nn().PhoneNumberFormat,an=nn().PhoneNumberUtil.getInstance(),dn="sdk/utils/formatPhoneNumber",un=e().getLogger(dn);function hn(t){let e=t;return"string"!=typeof e&&(e=e.toString()),e=e.replace("+",""),10===e.length&&(e=`1${e}`),e}const ln=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,fn=nn().PhoneNumberUtil.getInstance(),cn="sdk/utils/isPhoneNumber",gn=e().getLogger(cn),pn=Math.ceil(1),mn=Math.floor(1e11),bn={cleanPhoneNumber:t=>t||null,encoding:{base64Decode:t=>en(t),base64Encode:t=>tn(t)},formatPhoneNumber:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const r=["US","CA"];let n;window&&window.navigator&&window.navigator.language&&(n=window.navigator.language.split("-")[1]);const i=e||n||"US";if(un.info(`${dn} - formatPhoneNumber called`,t,i),!t)return"";if(7===t.trim().replace(/\D/g,"").length)return`${t.slice(0,3)}-${t.slice(3)}`;try{const n=an.parseAndKeepRawInput(t,i);return an.isPossibleNumber(n)&&an.isValidNumber(n)&&an.isValidNumberForRegion(n,i)?an.format(n,on):an.isPossibleNumber(n)&&an.isValidNumber(n)?r.includes(e)&&r.includes(an.getRegionCodeForNumber(n))?an.format(n,on):an.format(n,sn):t}catch(e){return un.debug(`${dn} - formatPhoneNumber err`,e),t}},generateChatId:t=>{let{dialed:e=null,domain:r=null,fromNum:n=null,fromUID:i=null,termNum:o=null,termUID:s=null}=t;const a=[];r&&a.push(r),n&&a.push(hn(n)),i&&a.push(i),s&&a.push(s),o&&a.push(hn(o)),e&&a.push(hn(e)),a.sort();const d=a.join("");return Dt.createHash("md5").update(d).digest("hex")},generateContactId:t=>{let{firstName:e=null,lastName:r=null,user:n=null}=t;const i=[];e&&(e=e.toLowerCase(),i.push(e)),r&&(r=r.toLowerCase(),i.push(r)),n&&i.push(n);const o=i.join("");return Dt.createHash("md5").update(o).digest("hex")},isEmailValid:t=>ln.test(t),isPhoneNumber:function(t){const e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"US")||"US";gn.info(`${cn} - isPhoneNumber called`,t,e);try{const r=fn.parse(t,e);return fn.isPossibleNumber(r)&&fn.isValidNumber(r)}catch(t){return gn.debug(`${cn} - isPhoneNumber err`,t),!1}},normalizeList:$r,randomId:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:pn,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:mn;return Math.floor(Math.random()*(e-t))+t}},yn=wt().audioInputDevices,vn={},_n=wt().audioOutputDevices,Mn={},wn={};for(let t=0;t<yn.length;t+=1)wn[yn[t].label]||(wn[yn[t].label]=[]),vn[yn[t].deviceId]=t;for(let t=0;t<_n.length;t+=1)wn[_n[t].label]||(wn[_n[t].label]=[]),Mn[_n[t].deviceId]=t;const $n={hasWebcam:wt().hasWebcam,hasMicrophone:wt().hasMicrophone,hasSpeakers:wt().hasSpeakers,isSetSinkIdSupported:wt().isSetSinkIdSupported,isScreenCapturingSupported:wt().isScreenCapturingSupported,isSctpDataChannelsSupported:wt().isSctpDataChannelsSupported,isAudioContextSupported:wt().isAudioContextSupported,isWebRTCSupported:wt().isWebRTCSupported,isDesktopCapturingSupported:wt().isDesktopCapturingSupported,isMobileDevice:wt().isMobileDevice,isWebSocketsSupported:wt().isWebSocketsSupported,isWebSocketsBlocked:wt().isWebSocketsBlocked,isWebsiteHasWebcamPermissions:wt().isWebsiteHasWebcamPermissions,isWebsiteHasMicrophonePermissions:wt().isWebsiteHasMicrophonePermissions,audioInputDevices:wt().audioInputDevices,audioInputSourcesMap:vn,audioLabelMap:wn,audioOutputDevices:wt().audioOutputDevices,audioOutputSourcesMap:Mn,videoInputDevices:wt().videoInputDevices,osName:wt().osName,osVersion:wt().osVersion,isCanvasSupportsStreamCapturing:wt().isCanvasSupportsStreamCapturing,isVideoSupportsStreamCapturing:wt().isVideoSupportsStreamCapturing};__webpack_require__.g.window&&!__webpack_require__.g.window.logger&&(__webpack_require__.g.window.logger=e());const Sn={NO_SDK_CONFIG:g.NO_SDK_CONFIG,api:at,autocomplete:_t,browser:At,configure:g.configure,device:Lt,getConfiguration:g.getConfiguration,gravatar:Ut,hasValidConfig:g.hasValidConfig,media:Vt,models:gr,portal:yr,permutate:Mr,token:wr,ucLicense:Or,uiConfig:Cr,updateUserId:g.updateUserId,utils:bn,webRTC:$n}})(),netsapiens=__webpack_exports__.default})();
15673//# sourceMappingURL=netsapiens.js.map
15674�/*! For license information please see netsapiens-voice.js.LICENSE.txt */
15675var NetsapiensVoice;(()=>{var e={79:(e,t,r)=>
vendor: 9,038 bytes, line 15675
15675{var n=r(3702),o=r(80),s=r(4739),i=r(8655),a=r(1175);function c(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=o,c.prototype.get=s,c.prototype.has=i,c.prototype.set=a,e.exports=c},80:(e,t,r)=>{var n=r(6025),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0||(r==t.length-1?t.pop():o.call(t,r,1),--this.size,0))}},104:(e,t,r)=>{var n=r(3661);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],s=r.cache;if(s.has(o))return s.get(o);var i=e.apply(this,n);return r.cache=s.set(o,i)||s,i};return r.cache=new(o.Cache||n),r}o.Cache=n,e.exports=o},289:(e,t,r)=>{var n=r(2651);e.exports=function(e){return n(this,e).get(e)}},346:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},392:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},659:(e,t,r)=>{var n=r(1873),o=Object.prototype,s=o.hasOwnProperty,i=o.toString,a=n?n.toStringTag:void 0;e.exports=function(e){var t=s.call(e,a),r=e[a];try{e[a]=void 0;var n=!0}catch(e){}var o=i.call(e);return n&&(t?e[a]=r:delete e[a]),o}},1042:(e,t,r)=>{var n=r(6110)(Object,"create");e.exports=n},1175:(e,t,r)=>{var n=r(6025);e.exports=function(e,t){var r=this.__data__,o=n(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}},1270:function(e,t,r){var n;e=r.nmd(e),function(){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof r.g&&r.g;o.global!==o&&o.window!==o&&o.self;var s,i=2147483647,a=36,c=/^xn--/,u=/[^\x20-\x7E]/,l=/[\x2E\u3002\uFF0E\uFF61]/g,h={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=Math.floor,p=String.fromCharCode;function d(e){throw RangeError(h[e])}function m(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function g(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+m((e=e.replace(l,".")).split("."),t).join(".")}function y(e){for(var t,r,n=[],o=0,s=e.length;o<s;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<s?56320==(64512&(r=e.charCodeAt(o++)))?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),o--):n.push(t);return n}function b(e){return m(e,(function(e){var t="";return e>65535&&(t+=p((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+p(e)})).join("")}function w(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function v(e,t,r){var n=0;for(e=r?f(e/700):e>>1,e+=f(e/t);e>455;n+=a)e=f(e/35);return f(n+36*e/(e+38))}function E(e){var t,r,n,o,s,c,u,l,h,p,m,g=[],y=e.length,w=0,E=128,O=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n<r;++n)e.charCodeAt(n)>=128&&d("not-basic"),g.push(e.charCodeAt(n));for(o=r>0?r+1:0;o<y;){for(s=w,c=1,u=a;o>=y&&d("invalid-input"),((l=(m=e.charCodeAt(o++))-48<10?m-22:m-65<26?m-65:m-97<26?m-97:a)>=a||l>f((i-w)/c))&&d("overflow"),w+=l*c,!(l<(h=u<=O?1:u>=O+26?26:u-O));u+=a)c>f(i/(p=a-h))&&d("overflow"),c*=p;O=v(w-s,t=g.length+1,0==s),f(w/t)>i-E&&d("overflow"),E+=f(w/t),w%=t,g.splice(w++,0,E)}return b(g)}function O(e){var t,r,n,o,s,c,u,l,h,m,g,b,E,O,x,S=[];for(b=(e=y(e)).length,t=128,r=0,s=72,c=0;c<b;++c)(g=e[c])<128&&S.push(p(g));for(n=o=S.length,o&&S.push("-");n<b;){for(u=i,c=0;c<b;++c)(g=e[c])>=t&&g<u&&(u=g);for(u-t>f((i-r)/(E=n+1))&&d("overflow"),r+=(u-t)*E,t=u,c=0;c<b;++c)if((g=e[c])<t&&++r>i&&d("overflow"),g==t){for(l=r,h=a;!(l<(m=h<=s?1:h>=s+26?26:h-s));h+=a)x=l-m,O=a-m,S.push(p(w(m+x%O,0))),l=f(x/O);S.push(p(w(l,0))),s=v(r,E,n==o),r=0,++n}++r,++t}return S.join("")}s={version:"1.3.2",ucs2:{decode:y,encode:b},decode:E,encode:O,toASCII:function(e){return g(e,(function(e){return u.test(e)?"xn--"+O(e):e}))},toUnicode:function(e){return g(e,(function(e){return c.test(e)?E(e.slice(4).toLowerCase()):e}))}},void 0===(n=function(){return s}.call(t,r,t,e))||(e.exports=n)}()},1549:(e,t,r)=>{var n=r(2032),o=r(3862),s=r(6721),i=r(2749),a=r(5749);function c(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=o,c.prototype.get=s,c.prototype.has=i,c.prototype.set=a,e.exports=c},1630:e=>{"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,r,n,o){r=r||"&",n=n||"=";var s={};if("string"!=typeof e||0===e.length)return s;var i=/\+/g;e=e.split(r);var a=1e3;o&&"number"==typeof o.maxKeys&&(a=o.maxKeys);var c=e.length;a>0&&c>a&&(c=a);for(var u=0;u<c;++u){var l,h,f,p,d=e[u].replace(i,"%20"),m=d.indexOf(n);m>=0?(l=d.substr(0,m),h=d.substr(m+1)):(l=d,h=""),f=decodeURIComponent(l),p=decodeURIComponent(h),t(s,f)?Array.isArray(s[f])?s[f].push(p):s[f]=[s[f],p]:s[f]=p}return s}},1769:(e,t,r)=>{var n=r(6449),o=r(8586),s=r(1802),i=r(3222);e.exports=function(e,t){return n(e)?e:o(e,t)?[e]:s(i(e))}},1802:(e,t,r)=>{var n=r(2224),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,i=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,r,n,o){t.push(n?o.replace(s,"$1"):r||e)})),t}));e.exports=i},1873:(e,t,r)=>{var n=r(9325).Symbol;e.exports=n},1882:(e,t,r)=>{var n=r(2552),o=r(3805);e.exports=function(e){if(!o(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},2032:(e,t,r)=>{var n=r(1042);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},2224:(e,t,r)=>{var n=r(104);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},2268:e=>{"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},2552:(e,t,r)=>{var n=r(1873),o=r(659),s=r(9350),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):s(e)}},2651:(e,t,r)=>{var n=r(4218);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},2749:(e,t,r)=>{var n=r(1042),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:o.call(t,e)}},2949:(e,t,r)=>{var n=r(2651);e.exports=function(e,t){var r=n(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}},3040:(e,t,r)=>{var n=r(1549),o=r(79),s=r(8223);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(s||o),string:new n}}},3222:(e,t,r)=>{var n=r(7556);e.exports=function(e){return null==e?"":n(e)}},3661:(e,t,r)=>{var n=r(3040),o=r(7670),s=r(289),i=r(4509),a=r(2949);function c(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=o,c.prototype.get=s,c.prototype.has=i,c.prototype.set=a,e.exports=c},3702:e=>{e.exports=function(){this.__data__=[],this.size=0}},3805:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},3862:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},4218:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},4394:(e,t,r)=>{var n=r(2552),o=r(346);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==n(e)}},4509:(e,t,r)=>{var n=r(2651);e.exports=function(e){return n(this,e).has(e)}},4739:(e,t,r)=>{var n=r(6025);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},4840:(e,t,r)=>{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;e.exports=n},4932:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}},5083:(e,t,r)=>{var n=r(1882),o=r(7296),s=r(3805),i=r(7473),a=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,h=u.hasOwnProperty,f=RegExp("^"+l.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!s(e)||o(e))&&(n(e)?f:a).test(i(e))}},5288:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},5481:(e,t,r)=>{var n=r(9325)["__core-js_shared__"];e.exports=n},5749:(e,t,r)=>{var n=r(1042);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},6025:(e,t,r)=>{var n=r(5288);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},6110:(e,t,r)=>{var n=r(5083),o=r(392);e.exports=function(e,t){var r=o(e,t);return n(r)?r:void 0}},6449:e=>{var t=Array.isArray;e.exports=t},6721:(e,t,r)=>{var n=r(1042),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return o.call(t,e)?t[e]:void 0}},7186:(e,t,r)=>{"use strict";t.decode=t.parse=r(1630),t.encode=t.stringify=r(9106)},7296:(e,t,r)=>{var n,o=r(5481),s=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(sr
15675c)_1."+n:"";e.exports=function(e){return!!s&&s in e}},7422:(e,t,r)=>{var n=r(1769),o=r(7797);e.exports=function(e,t){for(var r=0,s=(t=n(t,e)).length;null!=e&&r<s;)e=e[o(t[r++])];return r&&r==s?e:void 0}},7473:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},7556:(e,t,r)=>{var n=r(1873),o=r(4932),s=r(6449),i=r(4394),a=n?n.prototype:void 0,c=a?a.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(s(t))return o(t,e)+"";if(i(t))return c?c.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},7670:(e,t,r)=>{var n=r(2651);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},7797:(e,t,r)=>{var n=r(4394);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},8156:(e,t,r)=>{var n=r(7422);e.exports=function(e,t,r){var o=null==e?void 0:n(e,t);return void 0===o?r:o}},8223:(e,t,r)=>{var n=r(6110)(r(9325),"Map");e.exports=n},8586:(e,t,r)=>{var n=r(6449),o=r(4394),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!o(e))||i.test(e)||!s.test(e)||null!=t&&e in Object(t)}},8655:(e,t,r)=>{var n=r(6025);e.exports=function(e){return n(this.__data__,e)>-1}},8835:(e,t,r)=>{"use strict";var n=r(1270),o=r(2268);function s(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=w,t.resolve=function(e,t){return w(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?w(e,!1,!0).resolveObject(t):t},t.format=function(e){return o.isString(e)&&(e=w(e)),e instanceof s?e.format():s.prototype.format.call(e)},t.Url=s;var i=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,u=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(u),h=["%","/","?",";","#"].concat(l),f=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=r(7186);function w(e,t,r){if(e&&o.isObject(e)&&e instanceof s)return e;var n=new s;return n.parse(e,t,r),n}s.prototype.parse=function(e,t,r){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var s=e.indexOf("?"),a=-1!==s&&s<e.indexOf("#")?"?":"#",u=e.split(a);u[0]=u[0].replace(/\\/g,"/");var w=e=u.join(a);if(w=w.trim(),!r&&1===e.split("#").length){var v=c.exec(w);if(v)return this.path=w,this.href=w,this.pathname=v[1],v[2]?(this.search=v[2],this.query=t?b.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var E=i.exec(w);if(E){var O=(E=E[0]).toLowerCase();this.protocol=O,w=w.substr(E.length)}if(r||E||w.match(/^\/\/[^@\/]+@[^@\/]+/)){var x="//"===w.substr(0,2);!x||E&&g[E]||(w=w.substr(2),this.slashes=!0)}if(!g[E]&&(x||E&&!y[E])){for(var S,j,R=-1,_=0;_<f.length;_++)-1!==(A=w.indexOf(f[_]))&&(-1===R||A<R)&&(R=A);for(-1!==(j=-1===R?w.lastIndexOf("@"):w.lastIndexOf("@",R))&&(S=w.slice(0,j),w=w.slice(j+1),this.auth=decodeURIComponent(S)),R=-1,_=0;_<h.length;_++){var A;-1!==(A=w.indexOf(h[_]))&&(-1===R||A<R)&&(R=A)}-1===R&&(R=w.length),this.host=w.slice(0,R),w=w.slice(R),this.parseHost(),this.hostname=this.hostname||"";var T="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!T)for(var C=this.hostname.split(/\./),P=(_=0,C.length);_<P;_++){var q=C[_];if(q&&!q.match(p)){for(var F="",U=0,k=q.length;U<k;U++)q.charCodeAt(U)>127?F+="x":F+=q[U];if(!F.match(p)){var N=C.slice(0,_),D=C.slice(_+1),B=q.match(d);B&&(N.push(B[1]),D.unshift(B[2])),D.length&&(w="/"+D.join(".")+w),this.hostname=N.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),T||(this.hostname=n.toASCII(this.hostname));var I=this.port?":"+this.port:"",L=this.hostname||"";this.host=L+I,this.href+=this.host,T&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==w[0]&&(w="/"+w))}if(!m[O])for(_=0,P=l.length;_<P;_++){var $=l[_];if(-1!==w.indexOf($)){var M=encodeURIComponent($);M===$&&(M=escape($)),w=w.split($).join(M)}}var z=w.indexOf("#");-1!==z&&(this.hash=w.substr(z),w=w.slice(0,z));var H=w.indexOf("?");if(-1!==H?(this.search=w.substr(H),this.query=w.substr(H+1),t&&(this.query=b.parse(this.query)),w=w.slice(0,H)):t&&(this.search="",this.query={}),w&&(this.pathname=w),y[O]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){I=this.pathname||"";var J=this.search||"";this.path=I+J}return this.href=this.format(),this},s.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",n=this.hash||"",s=!1,i="";this.host?s=e+this.host:this.hostname&&(s=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(s+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(i=b.stringify(this.query));var a=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||y[t])&&!1!==s?(s="//"+(s||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):s||(s=""),n&&"#"!==n.charAt(0)&&(n="#"+n),a&&"?"!==a.charAt(0)&&(a="?"+a),t+s+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(a=a.replace("#","%23"))+n},s.prototype.resolve=function(e){return this.resolveObject(w(e,!1,!0)).format()},s.prototype.resolveObject=function(e){if(o.isString(e)){var t=new s;t.parse(e,!1,!0),e=t}for(var r=new s,n=Object.keys(this),i=0;i<n.length;i++){var a=n[i];r[a]=this[a]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var c=Object.keys(e),u=0;u<c.length;u++){var l=c[u];"protocol"!==l&&(r[l]=e[l])}return y[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!y[e.protocol]){for(var h=Object.keys(e),f=0;f<h.length;f++){var p=h[f];r[p]=e[p]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||g[e.protocol])r.pathname=e.pathname;else{for(var d=(e.pathname||"").split("/");d.length&&!(e.host=d.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==d[0]&&d.unshift(""),d.length<2&&d.unshift(""),r.pathname=d.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var m=r.pathname||"",b=r.search||"";r.path=m+b}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var w=r.pathname&&"/"===r.pathname.charAt(0),v=e.host||e.pathname&&"/"===e.pathname.charAt(0),E=v||w||r.host&&e.pathname,O=E,x=r.pathname&&r.pathname.split("/")||[],S=(d=e.pathname&&e.pathname.split("/")||[],r.protocol&&!y[r.protocol]);if(S&&(r.hostname="",r.port=null,r.host&&(""===x[0]?x[0]=r.host:x.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===d[0]?d[0]=e.host:d.unshift(e.host)),e.host=null),E=E&&(""===d[0]||""===x[0])),v)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,x=d;else if(d.length)x||(x=[]),x.pop(),x=x.concat(d),r.search=e.search,r.query=e.query;else if(!o.isNullOrUndefined(e.search))return S&&(r.hostname=r.host=x.shift(),(T=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=T.shift(),r.host=r.hostname=T.shift())),r.search=e.search,r.query=e.query,o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!x.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var j=x.slice(-1)[0],R=(r.host||e.host||x.length>1)&&("."===j||".."===j)||""===j,_=0,A=x.length;A>=0;A--)"."===(j=x[A])?x.splice(A,1):".."===j?(x.splice(A,1),_++):_&&(x.splice(A,1),_--);if(!E&&!O)for(;_--;_)x.unshift("..");!E||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),R&&"/"!==x.join("/").substr(-1)&&x.push("");var T,C=""===x[0]||x[0]&&"/"===x[0].charAt(0);return S&&(r.hostname=r.host=C?"":x.length?x.shift():"",(T=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=T.shift(),r.host=r.hostname=T.shift())),(E=E||r.host&&x.length)&&!C&&x.unshift(""),x.length?r.pathname=x.join("/"):(r.pathname=null,r.path=null),o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},s.prototype.parseHost=function(){var e=this.host,t=a.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},9106:e=>{"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,r,n,o){return r=r||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(o){var s=encodeURIComponent(t(o))+n;return Array.isArray(e[o])?e[o].map((function(e){return s+encodeURIComponent(t(e))})).join(r):s+encodeURIComponent(t(e[o]))})).join(r):o?encodeURIComponent(t(o))+n+encodeURIComponent(t(e)):""}},9325:(e,t,r)=>{var n=r(4840),o="object"==typeof self&&self&&self.Object===Object&&self,s=n||o||Function("return this")();e.exports=s},9350:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(s.exports,s,s.exports,r),s.loaded=!0,s.exports}r.n=e=>
vendor: 4,910 bytes, line 15675
15675{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var n={};(()=>{"use strict";r.d(n,{default:()=>Ut});var e={};function t(e,t){return function(){return e.apply(t,arguments)}}r.r(e),r.d(e,{hasBrowserEnv:()=>le,hasStandardBrowserEnv:()=>fe,hasStandardBrowserWebWorkerEnv:()=>pe,navigator:()=>he,origin:()=>de});const{toString:o}=Object.prototype,{getPrototypeOf:s}=Object,{iterator:i,toStringTag:a}=Symbol,c=(e=>t=>{const r=o.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),u=e=>(e=e.toLowerCase(),t=>c(t)===e),l=e=>t=>typeof t===e,{isArray:h}=Array,f=l("undefined"),p=u("ArrayBuffer"),d=l("string"),m=l("function"),g=l("number"),y=e=>null!==e&&"object"==typeof e,b=e=>{if("object"!==c(e))return!1;const t=s(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||a in e||i in e)},w=u("Date"),v=u("File"),E=u("Blob"),O=u("FileList"),x=u("URLSearchParams"),[S,j,R,_]=["ReadableStream","Request","Response","Headers"].map(u);function A(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let n,o;if("object"!=typeof e&&(e=[e]),h(e))for(n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else{const o=r?Object.getOwnPropertyNames(e):Object.keys(e),s=o.length;let i;for(n=0;n<s;n++)i=o[n],t.call(null,e[i],i,e)}}function T(e,t){t=t.toLowerCase();const r=Object.keys(e);let n,o=r.length;for(;o-- >0;)if(n=r[o],t===n.toLowerCase())return n;return null}const C="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,P=e=>!f(e)&&e!==C,q=(F="undefined"!=typeof Uint8Array&&s(Uint8Array),e=>F&&e instanceof F);var F;const U=u("HTMLFormElement"),k=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),N=u("RegExp"),D=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};A(r,((r,o)=>{let s;!1!==(s=t(r,o,e))&&(n[o]=s||r)})),Object.defineProperties(e,n)},B=u("AsyncFunction"),I=(L="function"==typeof setImmediate,$=m(C.postMessage),L?setImmediate:$?(M=`axios@${Math.random()}`,z=[],C.addEventListener("message",(({source:e,data:t})=>{e===C&&t===M&&z.length&&z.shift()()}),!1),e=>{z.push(e),C.postMessage(M,"*")}):e=>setTimeout(e));var L,$,M,z;const H="undefined"!=typeof queueMicrotask?queueMicrotask.bind(C):"undefined"!=typeof process&&process.nextTick||I,J={isArray:h,isArrayBuffer:p,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&m(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||m(e.append)&&("formdata"===(t=c(e))||"object"===t&&m(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t},isString:d,isNumber:g,isBoolean:e=>!0===e||!1===e,isObject:y,isPlainObject:b,isReadableStream:S,isRequest:j,isResponse:R,isHeaders:_,isUndefined:f,isDate:w,isFile:v,isBlob:E,isRegExp:N,isFunction:m,isStream:e=>y(e)&&m(e.pipe),isURLSearchParams:x,isTypedArray:q,isFileList:O,forEach:A,merge:function e(){const{caseless:t}=P(this)&&this||{},r={},n=(n,o)=>{const s=t&&T(r,o)||o;b(r[s])&&b(n)?r[s]=e(r[s],n):b(n)?r[s]=e({},n):h(n)?r[s]=n.slice():r[s]=n};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&A(arguments[e],n);return r},extend:(e,r,n,{allOwnKeys:o}={})=>(A(r,((r,o)=>{n&&m(r)?e[o]=t(r,n):e[o]=r}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,n)=>{let o,i,a;const c={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],n&&!n(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==r&&s(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:c,kindOfTest:u,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},toArray:e=>{if(!e)return null;if(h(e))return e;let t=e.length;if(!g(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{const r=(e&&e[i]).call(e);let n;for(;(n=r.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},matchAll:(e,t)=>
vendor: 16,444 bytes, line 15675
15675{let r;const n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:U,hasOwnProperty:k,hasOwnProp:k,reduceDescriptors:D,freezeMethods:e=>{D(e,((t,r)=>{if(m(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];m(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return h(e)?n(e):n(String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:T,global:C,isContextDefined:P,isSpecCompliantForm:function(e){return!!(e&&m(e.append)&&"FormData"===e[a]&&e[i])},toJSONObject:e=>{const t=new Array(10),r=(e,n)=>{if(y(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const o=h(e)?[]:{};return A(e,((e,t)=>{const s=r(e,n+1);!f(s)&&(o[t]=s)})),t[n]=void 0,o}}return e};return r(e,0)},isAsyncFn:B,isThenable:e=>e&&(y(e)||m(e))&&m(e.then)&&m(e.catch),setImmediate:I,asap:H,isIterable:e=>null!=e&&m(e[i])};function V(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}J.inherits(V,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:J.toJSONObject(this.config),code:this.code,status:this.status}}});const K=V.prototype,W={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{W[e]={value:e}})),Object.defineProperties(V,W),Object.defineProperty(K,"isAxiosError",{value:!0}),V.from=(e,t,r,n,o,s)=>{const i=Object.create(K);return J.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),V.call(i,e.message,t,r,n,o),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};const X=V;function G(e){return J.isPlainObject(e)||J.isArray(e)}function Z(e){return J.endsWith(e,"[]")?e.slice(0,-2):e}function Q(e,t,r){return e?e.concat(t).map((function(e,t){return e=Z(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}const Y=J.toFlatObject(J,{},null,(function(e){return/^is[A-Z]/.test(e)})),ee=function(e,t,r){if(!J.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(r=J.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!J.isUndefined(t[e])}))).metaTokens,o=r.visitor||u,s=r.dots,i=r.indexes,a=(r.Blob||"undefined"!=typeof Blob&&Blob)&&J.isSpecCompliantForm(t);if(!J.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(J.isDate(e))return e.toISOString();if(!a&&J.isBlob(e))throw new X("Blob is not supported. Use a Buffer instead.");return J.isArrayBuffer(e)||J.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,r,o){let a=e;if(e&&!o&&"object"==typeof e)if(J.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(J.isArray(e)&&function(e){return J.isArray(e)&&!e.some(G)}(e)||(J.isFileList(e)||J.endsWith(r,"[]"))&&(a=J.toArray(e)))return r=Z(r),a.forEach((function(e,n){!J.isUndefined(e)&&null!==e&&t.append(!0===i?Q([r],n,s):null===i?r:r+"[]",c(e))})),!1;return!!G(e)||(t.append(Q(o,r,s),c(e)),!1)}const l=[],h=Object.assign(Y,{defaultVisitor:u,convertValue:c,isVisitable:G});if(!J.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!J.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),J.forEach(r,(function(r,s){!0===(!(J.isUndefined(r)||null===r)&&o.call(t,r,J.isString(s)?s.trim():s,n,h))&&e(r,n?n.concat(s):[s])})),l.pop()}}(e),t};function te(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function re(e,t){this._pairs=[],e&&ee(e,this,t)}const ne=re.prototype;ne.append=function(e,t){this._pairs.push([e,t])},ne.toString=function(e){const t=e?function(t){return e.call(this,t,te)}:te;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const oe=re;function se(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ie(e,t,r){if(!t)return e;const n=r&&r.encode||se;J.isFunction(r)&&(r={serialize:r});const o=r&&r.serialize;let s;if(s=o?o(t,r):J.isURLSearchParams(t)?t.toString():new oe(t,r).toString(n),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}const ae=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){J.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},ce={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ue={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:oe,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},le="undefined"!=typeof window&&"undefined"!=typeof document,he="object"==typeof navigator&&navigator||void 0,fe=le&&(!he||["ReactNative","NativeScript","NS"].indexOf(he.product)<0),pe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,de=le&&window.location.href||"http://localhost",me={...e,...ue},ge=function(e){function t(e,r,n,o){let s=e[o++];if("__proto__"===s)return!0;const i=Number.isFinite(+s),a=o>=e.length;return s=!s&&J.isArray(n)?n.length:s,a?(J.hasOwnProp(n,s)?n[s]=[n[s],r]:n[s]=r,!i):(n[s]&&J.isObject(n[s])||(n[s]=[]),t(e,r,n[s],o)&&J.isArray(n[s])&&(n[s]=function(e){const t={},r=Object.keys(e);let n;const o=r.length;let s;for(n=0;n<o;n++)s=r[n],t[s]=e[s];return t}(n[s])),!i)}if(J.isFormData(e)&&J.isFunction(e.entries)){const r={};return J.forEachEntry(e,((e,n)=>{t(function(e){return J.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,r,0)})),r}return null},ye={transitional:ce,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,o=J.isObject(e);if(o&&J.isHTMLForm(e)&&(e=new FormData(e)),J.isFormData(e))return n?JSON.stringify(ge(e)):e;if(J.isArrayBuffer(e)||J.isBuffer(e)||J.isStream(e)||J.isFile(e)||J.isBlob(e)||J.isReadableStream(e))return e;if(J.isArrayBufferView(e))return e.buffer;if(J.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return ee(e,new me.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return me.isNode&&J.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((s=J.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return ee(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||n?(t.setContentType("application/json",!1),function(e){if(J.isString(e))try{return(0,JSON.parse)(e),J.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ye.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(J.isResponse(e)||J.isReadableStream(e))return e;if(e&&J.isString(e)&&(r&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(r){if("SyntaxError"===e.name)throw X.from(e,X.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:me.classes.FormData,Blob:me.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};J.forEach(["delete","get","head","post","put","patch"],(e=>{ye.headers[e]={}}));const be=ye,we=J.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ve=Symbol("internals");function Ee(e){return e&&String(e).trim().toLowerCase()}function Oe(e){return!1===e||null==e?e:J.isArray(e)?e.map(Oe):String(e)}function xe(e,t,r,n,o){return J.isFunction(n)?n.call(this,t,r):(o&&(t=r),J.isString(t)?J.isString(n)?-1!==t.indexOf(n):J.isRegExp(n)?n.test(t):void 0:void 0)}class Se{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function o(e,t,r){const o=Ee(t);if(!o)throw new Error("header name must be a non-empty string");const s=J.findKey(n,o);(!s||void 0===n[s]||!0===r||void 0===r&&!1!==n[s])&&(n[s||t]=Oe(e))}const s=(e,t)=>J.forEach(e,((e,r)=>o(e,r,t)));if(J.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(J.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const t={};let r,n,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),r=e.substring(0,o).trim().toLowerCase(),n=e.substring(o+1).trim(),!r||t[r]&&we[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t})(e),t);else if(J.isObject(e)&&J.isIterable(e)){let r,n,o={};for(const t of e){if(!J.isArray(t))throw TypeError("Object iterator must return a key-value pair");o[n=t[0]]=(r=o[n])?J.isArray(r)?[...r,t[1]]:[r,t[1]]:t[1]}s(o,t)}else null!=e&&o(t,e,r);return this}get(e,t){if(e=Ee(e)){const r=J.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}(e);if(J.isFunction(t))return t.call(this,e,r);if(J.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ee(e)){const r=J.findKey(this,e);return!(!r||void 0===this[r]||t&&!xe(0,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function o(e){if(e=Ee(e)){const o=J.findKey(r,e);!o||t&&!xe(0,r[o],o,t)||(delete r[o],n=!0)}}return J.isArray(e)?e.forEach(o):o(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const o=t[r];e&&!xe(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}normalize(e){const t=this,r={};return J.forEach(this,((n,o)=>{const s=J.findKey(r,o);if(s)return t[s]=Oe(n),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}(o):String(o).trim();i!==o&&delete t[o],t[i]=Oe(n),r[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return J.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&J.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=(this[ve]=this[ve]={accessors:{}}).accessors,r=this.prototype;function n(e){const n=Ee(e);t[n]||(function(e,t){const r=J.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})}))}(r,e),t[n]=!0)}return J.isArray(e)?e.forEach(n):n(e),this}}Se.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),J.reduceDescriptors(Se.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),J.freezeMethods(Se);const je=Se;function Re(e,t){const r=this||be,n=t||r,o=je.from(n.headers);let s=n.data;return J.forEach(e,(function(e){s=e.call(r,s,o.normalize(),t?t.status:void 0)})),o.normalize(),s}function _e(e){return!(!e||!e.__CANCEL__)}function Ae(e,t,r){X.call(this,null==e?"canceled":e,X.ERR_CANCELED,t,r),this.name="CanceledError"}J.inherits(Ae,X,{__CANCEL__:!0});const Te=Ae;function Ce(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new X("Request failed with status code "+r.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}const Pe=(e,t,r=3)=>{let n=0;const o=function(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o,s=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),u=n[i];o||(o=c),r[s]=a,n[s]=c;let l=i,h=0;for(;l!==s;)h+=r[l++],l%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o<t)return;const f=u&&c-u;return f?Math.round(1e3*h/f):void 0}}(50,250);return function(e,t){let r,n,o=0,s=1e3/t;const i=(t,s=Date.now())=>{o=s,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),a=t-o;a>=s?i(e,t):(r=e,n||(n=setTimeout((()=>{n=null,i(r)}),s-a)))},()=>r&&i(r)]}((r=>{const s=r.loaded,i=r.lengthComputable?r.total:void 0,a=s-n,c=o(a);n=s,e({loaded:s,total:i,progress:i?s/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&s<=i?(i-s)/c:void 0,event:r,lengthComputable:null!=i,[t?"download":"upload"]:!0})}),r)},qe=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},Fe=e=>(...t)=>J.asap((()=>e(...t))),Ue=me.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,me.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(me.origin),me.navigator&&/(msie|trident)/i.test(me.navigator.userAgent)):()=>!0,ke=me.hasStandardBrowserEnv?{write(e,t,r,n,o,s){const i=[e+"="+encodeURIComponent(t)];J.isNumber(r)&&i.push("expires="+new Date(r).toGMTString()),J.isString(n)&&i.push("path="+n),J.isString(o)&&i.push("domain="+o),!0===s&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Ne(e,t,r){let n=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&(n||0==r)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const De=e=>e instanceof je?{...e}:e;function Be(e,t){t=t||{};const r={};function n(e,t,r,n){return J.isPlainObject(e)&&J.isPlainObject(t)?J.merge.call({caseless:n},e,t):J.isPlainObject(t)?J.merge({},t):J.isArray(t)?t.slice():t}function o(e,t,r,o){return J.isUndefined(t)?J.isUndefined(e)?void 0:n(void 0,e,0,o):n(e,t,0,o)}function s(e,t){if(!J.isUndefined(t))return n(void 0,t)}function i(e,t){return J.isUndefined(t)?J.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function a(r,o,s){return s in t?n(r,o):s in e?n(void 0,r):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t,r)=>o(De(e),De(t),0,!0)};return J.forEach(Object.keys(Object.assign({},e,t)),(function(n){const s=c[n]||o,i=s(e[n],t[n],n);J.isUndefined(i)&&s!==a||(r[n]=i)})),r}const Ie=e=>{const t=Be({},e);let r,{data:n,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:c}=t;if(t.headers=a=je.from(a),t.url=ie(Ne(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),J.isFormData(n))if(me.hasStandardBrowserEnv||me.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(r=a.getContentType())){const[e,...t]=r?r.split(";").map((e=>
vendor: 2,780 bytes, line 15675
15675e.trim())).filter(Boolean):[];a.setContentType([e||"multipart/form-data",...t].join("; "))}if(me.hasStandardBrowserEnv&&(o&&J.isFunction(o)&&(o=o(t)),o||!1!==o&&Ue(t.url))){const e=s&&i&&ke.read(i);e&&a.set(s,e)}return t},Le="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){const n=Ie(e);let o=n.data;const s=je.from(n.headers).normalize();let i,a,c,u,l,{responseType:h,onUploadProgress:f,onDownloadProgress:p}=n;function d(){u&&u(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(i),n.signal&&n.signal.removeEventListener("abort",i)}let m=new XMLHttpRequest;function g(){if(!m)return;const n=je.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Ce((function(e){t(e),d()}),(function(e){r(e),d()}),{data:h&&"text"!==h&&"json"!==h?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:n,config:e,request:m}),m=null}m.open(n.method.toUpperCase(),n.url,!0),m.timeout=n.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(r(new X("Request aborted",X.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new X("Network Error",X.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const o=n.transitional||ce;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new X(t,o.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,m)),m=null},void 0===o&&s.setContentType(null),"setRequestHeader"in m&&J.forEach(s.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),J.isUndefined(n.withCredentials)||(m.withCredentials=!!n.withCredentials),h&&"json"!==h&&(m.responseType=n.responseType),p&&([c,l]=Pe(p,!0),m.addEventListener("progress",c)),f&&m.upload&&([a,u]=Pe(f),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",u)),(n.cancelToken||n.signal)&&(i=t=>{m&&(r(!t||t.type?new Te(null,e,m):t),m.abort(),m=null)},n.cancelToken&&n.cancelToken.subscribe(i),n.signal&&(n.signal.aborted?i():n.signal.addEventListener("abort",i)));const y=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(n.url);y&&-1===me.protocols.indexOf(y)?r(new X("Unsupported protocol "+y+":",X.ERR_BAD_REQUEST,e)):m.send(o||null)}))},$e=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const o=function(e){if(!r){r=!0,i();const t=e instanceof Error?e:this.reason;n.abort(t instanceof X?t:new Te(t instanceof Error?t.message:t))}};let s=t&&setTimeout((()=>{s=null,o(new X(`timeout ${t} of ms exceeded`,X.ETIMEDOUT))}),t);const i=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)})),e=null)};e.forEach((e=>
vendor: 8,951 bytes, line 15675
15675e.addEventListener("abort",o)));const{signal:a}=n;return a.unsubscribe=()=>J.asap(i),a}},Me=function*(e,t){let r=e.byteLength;if(!t||r<t)return void(yield e);let n,o=0;for(;o<r;)n=o+t,yield e.slice(o,n),o=n},ze=(e,t,r,n)=>{const o=async function*(e,t){for await(const r of async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:r}=await t.read();if(e)break;yield r}}finally{await t.cancel()}}(e))yield*Me(r,t)}(e,t);let s,i=0,a=e=>{s||(s=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await o.next();if(t)return a(),void e.close();let s=n.byteLength;if(r){let e=i+=s;r(e)}e.enqueue(new Uint8Array(n))}catch(e){throw a(e),e}},cancel:e=>(a(e),o.return())},{highWaterMark:2})},He="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Je=He&&"function"==typeof ReadableStream,Ve=He&&("function"==typeof TextEncoder?(Ke=new TextEncoder,e=>Ke.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ke;const We=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Xe=Je&&We((()=>{let e=!1;const t=new Request(me.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Ge=Je&&We((()=>J.isReadableStream(new Response("").body))),Ze={stream:Ge&&(e=>e.body)};var Qe;He&&(Qe=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Ze[e]&&(Ze[e]=J.isFunction(Qe[e])?t=>t[e]():(t,r)=>{throw new X(`Response type '${e}' is not supported`,X.ERR_NOT_SUPPORT,r)})})));const Ye={http:null,xhr:Le,fetch:He&&(async e=>{let{url:t,method:r,data:n,signal:o,cancelToken:s,timeout:i,onDownloadProgress:a,onUploadProgress:c,responseType:u,headers:l,withCredentials:h="same-origin",fetchOptions:f}=Ie(e);u=u?(u+"").toLowerCase():"text";let p,d=$e([o,s&&s.toAbortSignal()],i);const m=d&&d.unsubscribe&&(()=>{d.unsubscribe()});let g;try{if(c&&Xe&&"get"!==r&&"head"!==r&&0!==(g=await(async(e,t)=>{const r=J.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(J.isBlob(e))return e.size;if(J.isSpecCompliantForm(e)){const t=new Request(me.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return J.isArrayBufferView(e)||J.isArrayBuffer(e)?e.byteLength:(J.isURLSearchParams(e)&&(e+=""),J.isString(e)?(await Ve(e)).byteLength:void 0)})(t):r})(l,n))){let e,r=new Request(t,{method:"POST",body:n,duplex:"half"});if(J.isFormData(n)&&(e=r.headers.get("content-type"))&&l.setContentType(e),r.body){const[e,t]=qe(g,Pe(Fe(c)));n=ze(r.body,65536,e,t)}}J.isString(h)||(h=h?"include":"omit");const o="credentials"in Request.prototype;p=new Request(t,{...f,signal:d,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:o?h:void 0});let s=await fetch(p);const i=Ge&&("stream"===u||"response"===u);if(Ge&&(a||i&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=s[t]}));const t=J.toFiniteNumber(s.headers.get("content-length")),[r,n]=a&&qe(t,Pe(Fe(a),!0))||[];s=new Response(ze(s.body,65536,r,(()=>{n&&n(),m&&m()})),e)}u=u||"text";let y=await Ze[J.findKey(Ze,u)||"text"](s,e);return!i&&m&&m(),await new Promise(((t,r)=>{Ce(t,r,{data:y,headers:je.from(s.headers),status:s.status,statusText:s.statusText,config:e,request:p})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new X("Network Error",X.ERR_NETWORK,e,p),{cause:t.cause||t});throw X.from(t,t&&t.code,e,p)}})};J.forEach(Ye,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const et=e=>`- ${e}`,tt=e=>J.isFunction(e)||null===e||!1===e,rt=e=>{e=J.isArray(e)?e:[e];const{length:t}=e;let r,n;const o={};for(let s=0;s<t;s++){let t;if(r=e[s],n=r,!tt(r)&&(n=Ye[(t=String(r)).toLowerCase()],void 0===n))throw new X(`Unknown adapter '${t}'`);if(n)break;o[t||"#"+s]=n}if(!n){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let r=t?e.length>1?"since :\n"+e.map(et).join("\n"):" "+et(e[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+r,"ERR_NOT_SUPPORT")}return n};function nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Te(null,e)}function ot(e){return nt(e),e.headers=je.from(e.headers),e.data=Re.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),rt(e.adapter||be.adapter)(e).then((function(t){return nt(e),t.data=Re.call(e,e.transformResponse,t),t.headers=je.from(t.headers),t}),(function(t){return _e(t)||(nt(e),t&&t.response&&(t.response.data=Re.call(e,e.transformResponse,t.response),t.response.headers=je.from(t.response.headers))),Promise.reject(t)}))}const st={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{st[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const it={};st.transitional=function(e,t,r){function n(e,t){return"[Axios v1.9.0] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,o,s)=>{if(!1===e)throw new X(n(o," has been removed"+(t?" in "+t:"")),X.ERR_DEPRECATED);return t&&!it[o]&&(it[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,s)}},st.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};const at={assertOptions:function(e,t,r){if("object"!=typeof e)throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const s=n[o],i=t[s];if(i){const t=e[s],r=void 0===t||i(t,s,e);if(!0!==r)throw new X("option "+s+" must be "+r,X.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new X("Unknown option "+s,X.ERR_BAD_OPTION)}},validators:st},ct=at.validators;class ut{constructor(e){this.defaults=e||{},this.interceptors={request:new ae,response:new ae}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const r=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?r&&!String(e.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+r):e.stack=r}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Be(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:o}=t;void 0!==r&&at.assertOptions(r,{silentJSONParsing:ct.transitional(ct.boolean),forcedJSONParsing:ct.transitional(ct.boolean),clarifyTimeoutError:ct.transitional(ct.boolean)},!1),null!=n&&(J.isFunction(n)?t.paramsSerializer={serialize:n}:at.assertOptions(n,{encode:ct.function,serialize:ct.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),at.assertOptions(t,{baseUrl:ct.spelling("baseURL"),withXsrfToken:ct.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&J.merge(o.common,o[t.method]);o&&J.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=je.concat(s,o);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,h=0;if(!a){const e=[ot.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);h<l;)u=u.then(e[h++],e[h++]);return u}l=i.length;let f=t;for(h=0;h<l;){const e=i[h++],t=i[h++];try{f=e(f)}catch(e){t.call(this,e);break}}try{u=ot.call(this,f)}catch(e){return Promise.reject(e)}for(h=0,l=c.length;h<l;)u=u.then(c[h++],c[h++]);return u}getUri(e){return ie(Ne((e=Be(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}}J.forEach(["delete","get","head","options"],(function(e){ut.prototype[e]=function(t,r){return this.request(Be(r||{},{method:e,url:t,data:(r||{}).data}))}})),J.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,o){return this.request(Be(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}ut.prototype[e]=t(),ut.prototype[e+"Form"]=t(!0)}));const lt=ut;class ht{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const r=this;this.promise.then((e=>{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,o){r.reason||(r.reason=new Te(e,n,o),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}
15675subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new ht((function(t){e=t})),cancel:e}}}const ft=ht,pt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(pt).forEach((([e,t])=>{pt[t]=e}));const dt=pt,mt=function e(r){const n=new lt(r),o=t(lt.prototype.request,n);return J.extend(o,lt.prototype,n,{allOwnKeys:!0}),J.extend(o,n,null,{allOwnKeys:!0}),o.create=function(t){return e(Be(r,t))},o}(be);mt.Axios=lt,mt.CanceledError=Te,mt.CancelToken=ft,mt.isCancel=_e,mt.VERSION="1.9.0",mt.toFormData=ee,mt.AxiosError=X,mt.Cancel=mt.CanceledError,mt.all=function(e){return Promise.all(e)},mt.spread=function(e){return function(t){return e.apply(null,t)}},mt.isAxiosError=function(e){return J.isObject(e)&&!0===e.isAxiosError},mt.mergeConfig=Be,mt.AxiosHeaders=je,mt.formToJSON=e=>ge(J.isHTMLForm(e)?new FormData(e):e),mt.getAdapter=rt,mt.HttpStatusCode=dt,mt.default=mt;const gt=mt;var yt=r(8835);let bt;const wt=()=>bt;function vt(e){this.message=e}vt.prototype=new Error,vt.prototype.name="InvalidCharacterError";var Et="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new vt("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,o=0,s=0,i="";n=t.charAt(s++);~n&&(r=o%4?64*r+n:n,o++%4)?i+=String.fromCharCode(255&r>>(-2*o&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return i};function Ot(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(Et(e).replace(/(.)/g,(function(e,t){var r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(t)}catch(e){return Et(t)}}function xt(e){this.message=e}xt.prototype=new Error,xt.prototype.name="InvalidTokenError";const St=()=>r.g.localStorage.getItem("ns_v_t"),jt=()=>{const e=St();return e?function(e,t){if("string"!=typeof e)throw new xt("Invalid token specified");var r=!0===(t=t||{}).header?0:1;try{return JSON.parse(Ot(e.split(".")[r]))}catch(e){throw new xt("Invalid token specified: "+e.message)}}(e):null};var Rt=r(8156),_t=r.n(Rt);const At=e=>{let t;if(-1!==e.indexOf("_"))t=e.split("_");else{if(-1===e.indexOf("-"))return e;t=e.split("-")}return`${t[0].toLowerCase()}-${t[1].toUpperCase()}`};function Tt(e){return Tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tt(e)}function Ct(e,t,r){return(t=function(e){var t=function(e){if("object"!=Tt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Tt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Tt(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Pt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function qt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
15675t%2?Pt(Object(r),!0).forEach((function(t){Ct(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}let Ft={};const Ut={authenticate:async(e,t)=>{const n=r.g.localStorage.getItem("ns_t");if(!n)throw Error("authenticate function requires a netsapiens local storage user token");if(!e)throw Error('Missing function param "user"');if(!t)throw Error('Missing function param "domain"');const{protocol:o,hostname:s}=yt.parse(r.g.location.href),{data:i}=await gt.request({method:"post",withCredentials:!0,url:`${o}//${s}/ns-api/voice/token`,headers:{Authorization:`Bearer ${n}`,AsDomain:t},params:{domain:t,user:e}});if(!i||!i.token)throw Error("error getting voice token");var a,c;return a=i.serviceBaseUriProxied||i.serviceBaseUri,bt=a,c=i.token,r.g.localStorage.setItem("ns_v_t",c),i.token},deleteAudio:async({index:e,owner:t,ownerDomain:n,type:o})=>{const s=r.g.localStorage.getItem("ns_t");if(!s)throw Error("authenticate function requires a netsapiens local storage user token");const{protocol:i,hostname:a}=yt.parse(r.g.location.href);await gt.request({method:"delete",withCredentials:!0,url:`${i}//${a}/ns-api/`,headers:{Authorization:`Bearer ${s}`},params:{object:"audio",action:"delete",index:e,intArray:!0,owner:t,owner_domain:n,type:o}})},getDialPlan:async(e,t)=>{const n=r.g.localStorage.getItem("ns_t");if(!n)throw Error("getDialPlan function requires a netsapiens access_token from browser local storage");if(!e)throw Error('Missing function param 1 "user"');if(!t)throw Error('Missing function param 2 "domain"');const{protocol:o,hostname:s}=yt.parse(r.g.location.href),{data:i}=await gt.request({method:"get",withCredentials:!0,url:`${o}//${s}/ns-api/`,headers:{Authorization:`Bearer ${n}`},params:{object:"subscriber",action:"read",user:e,domain:t,fields:"dial_plan",includeDomain:"yes"}});return _t()(i,["0","dial_plan"])},getDialRule:async({domain:e,dialPlan:t,responder:n,toUser:o,user:s})=>{const i=r.g.localStorage.getItem("ns_t");if(!i)throw Error("getDialRule function requires a netsapiens access_token from browser local storage");if(!e)throw Error('Function param "domain" required');if(!t)throw Error('Function param "dialPlan" required');if(!n)throw Error('Function param "responder" required');if(!o)throw Error('Function param "toUser" required');if(!s)throw Error('Function param "user" required');const{protocol:a,hostname:c}=yt.parse(r.g.location.href),{data:u}=await gt.request({method:"get",withCredentials:!0,url:`${a}//${c}/ns-api/`,headers:{Authorization:`Bearer ${i}`},params:{object:"dialrule",action:"read",user:s,domain:e,dialplan:t,responder:n,to_user:o,format:"json"}});return _t()(u,["0"])},getLanguages:async(e="en-US")=>{const t=jt();if(!t)throw Error("Must call authenticate first to get voice token");if(Math.floor(Date.now()/1e3)>=t.exp)throw Error("Voice token expired");const{data:r}=await gt.request({method:"get",url:`${wt()}/languages`,headers:{Authorization:`Bearer ${St()}`},params:{languages:e}});return r.languages},getVoices:async(e="en-US")=>{const t=jt();if(!t)throw Error("Must call authenticate first to get voice token");if(Math.floor(Date.now()/1e3)>=t.exp)throw Error("Voice token expired");const{data:r}=await gt.request({method:"get",url:`${wt()}/voices`,headers:{Authorization:`Bearer ${St()}`},params:{language:e}});return r.voices},normalizeLanguageCode:At,normalizeLanguageCodes:e=>{const t=e.split(","),r=[];for(let e=0;e<t.length;e+=1)r.push(At(t[e]));return r.join(",")},postAnswerRule:async({dialPlan:e,dndEnable:t,domain:n,extension:o,forEnable:s,forNumbers:i,id:a,priority:c,timeFrame:u})=>{const l=r.g.localStorage.getItem("ns_t");if(!l)throw Error("getDialRule function requires a netsapiens access_token from browser local storage");if(!e)throw Error('Function param "dialPlan" required');if(!t)throw Error('Function param "dndEnable" required');if(!n)throw Error('Function param "domain" required');if(!o)throw Error('Function param "extension" required');if(!s)throw Error('Function param "forEnable" required');if(!i)throw Error('Function param "forNumbers" required');if(!a)throw Error('Function param "id" required');if(!c)throw Error('Function param "priority" required');if(!u)throw Error('Function param "timeFrame" required');const{protocol:h,hostname:f}=yt.parse(r.g.location.href);return await gt.request({method:"post",withCredentials:!0,url:`${h}//${f}/ns-api/`,headers:{Authorization:`Bearer ${l}`},params:{object:"answerrule",action:"create",dnd_enable:t,domain:n,extension:o,for_enable:s,for_numbers:i,id:a,priority:c,time_frame:u,format:"json"}}),{success:!0}},postDialRule:async({dialPlan:e,domain:t,id:n,matchRule:o,parameter:s,planDescription:i,responder:a,toHost:c,toUser:u})=>{const l=r.g.localStorage.getItem("ns_t");if(!l)throw Error("getDialRule function requires a netsapiens access_token from browser local storage");if(!e)throw Error('Function param "dialPlan" required');if(!t)throw Error('Function param "domain" required');if(!n)throw Error('Function param "id" required');if(!o)throw Error('Function param "matchRule" required');if(!i)throw Error('Function param "planDescription" required');if(!a)throw Error('Function param "responder" required');if(!c)throw Error('Function param "toHost" required');if(!u)throw Error('Function param "toUser" required');const{protocol:h,hostname:f}=yt.parse(r.g.location.href);return await gt.request({method:"post",withCredentials:!0,url:`${h}//${f}/ns-api/`,headers:{Authorization:`Bearer ${l}`},params:qt(qt({object:"dialrule",action:"create",dialplan:e,domain:t,id:n,matchrule:o},s?{parameter:s}
15675:{}),{},{plan_description:i,responder:a,to_host:c,to_user:u,format:"json"})}),{success:!0}},getTranscriptionIntelligence:async({jobId:e,recordingDate:t,user:n,domain:o})=>{const s=r.g.localStorage.getItem("ns_t");if(!s)throw Error("authenticate function requires a netsapiens local storage user token");if(!e)throw Error('Missing function param "jobId"');if(!t)throw Error('Missing function param "recordingDate"');if(!n)throw Error('Missing function param "user"');if(!o)throw Error('Missing function param "domain"');const{protocol:i,hostname:a}=yt.parse(r.g.location.href),{data:c}=await gt.request({method:"get",withCredentials:!0,url:`${i}//${a}/ns-api/`,headers:{Authorization:`Bearer ${s}`},params:{object:"voice",action:"getTranscriptionIntelligence",jobId:e,recordingDate:t,domain:o,user:n,format:"json"}});return c},getTranscriptionJob:async({jobId:e,callId:t,recordingDate:n,user:o,domain:s})=>{const i=r.g.localStorage.getItem("ns_t");if(!i)throw Error("authenticate function requires a netsapiens local storage user token");if(!e&&!t)throw Error('Missing function param "jobId" or "callId"');if(!n)throw Error('Missing function param "recordingDate"');if(!o)throw Error('Missing function param "user"');if(!s)throw Error('Missing function param "domain"');const{protocol:a,hostname:c}=yt.parse(r.g.location.href),{data:u}=await gt.request({method:"get",withCredentials:!0,url:`${a}//${c}/ns-api/`,headers:{Authorization:`Bearer ${i}`},params:{object:"voice",action:"getTranscriptionJob",jobid:e,callid:t,recordingDate:n,domain:s,user:o,format:"json"}});return u},getTranscriptions:async({jobId:e,recordingDate:t,user:n,domain:o})=>{const s=r.g.localStorage.getItem("ns_t");if(!s)throw Error("authenticate function requires a netsapiens local storage user token");if(!e)throw Error('Missing function param "jobId"');if(!t)throw Error('Missing function param "recordingDate"');if(!n)throw Error('Missing function param "user"');if(!o)throw Error('Missing function param "domain"');const{protocol:i,hostname:a}=yt.parse(r.g.location.href),{data:c}=await gt.request({method:"get",withCredentials:!0,url:`${i}//${a}/ns-api/`,headers:{Authorization:`Bearer ${s}`},params:{object:"voice",action:"getTranscriptions",jobId:e,recordingDate:t,domain:o,user:n,format:"json"}});return c},saveAudio:async({audioBlob:e,domain:t,format:n,greetingName:o,id:s,index:i,name:a,owner:c,ownerDomain:u,sourceType:l,script:h,type:f,user:p,voiceId:d,voiceLanguage:m})=>{const g=r.g.localStorage.getItem("ns_t");if(!g)throw Error("authenticate function requires a netsapiens local storage user token");const{protocol:y,hostname:b}=yt.parse(r.g.location.href);let w=`${y}//${b}/ns-api/`;w+="?object=audio",w+="&action=upload",w+="&convert=yes",w+=`&format=${n}`,w+=`&index=${i}`,w+=`&script=${h}`,w+=`&moh_script=${h}`,w+=`&type=${f}`,t&&(w+=`&domain=${t}`),o&&(w+=`&greeting_name=${o}`),s&&(w+=`&id=${s}`),c&&(w+=`&owner=${c}`),u&&(w+=`&owner_domain=${u}`),a&&(w+=`&name=${a}`),p&&(w+=`&user=${p}`),l&&(w+=`&source_type=${l}`),d&&(w+=`&voice_id=${d}`),m&&(w+=`&voice_language=${m}`),await new Promise(((t,r)=>{const o=new XMLHttpRequest;o.open("POST",w),o.setRequestHeader("Authorization",`Bearer ${g}`),o.onreadystatechange=()=>{4!==o.readyState||200!==o.status&&202!==o.status?4===o.readyState&&r(new Error(o.statusText)):t()};const s=new FormData;s.append("file",e),s.append("format",n),o.send(s)}))},synthesize:async(e,t)=>{if(!e)throw Error("Voice param required");if(!t||!t.trim())throw Error("Text param required");const r=((e,t)=>{const r=Ft[e];return r&&r[t]||null})(e.id,t.trim());if(r)return{error:null,data:r};const n=jt();if(!n)throw Error("Must call authenticate first to get voice token");if(Math.floor(Date.now()/1e3)>=n.exp)throw Error("Voice token expired");const o=await gt.request({method:"post",url:`${wt()}/tts`,headers:{Authorization:`Bearer ${St()}`},data:{voice:e,text:t.trim()},validateStatus:e=>e<501});return 400===o.status?{errorMessage:o.data.message||o.statusText,line:o.data.line,col:o.data.col,data:null}:500===o.status?{errorMessage:o.statusText,line:0,col:0,data:null}:(((e,t,r)=>{Ft[e]||(Ft[e]={}),Ft[e][t]=r})(e.id,t.trim(),o.data),{error:null,data:o.data})}}})(),NetsapiensVoice=n.default})();
15676//# sourceMappingURL=netsapiens-voice.js.map
15677�/** NSChatNotifications module
15678 *
15679 * Triggers browser notifcation, updates browser title, and highlights chat window
15680 *
15681 * @requires jquery library
15682 * @requires push.js notifications library
15683 * @requires howler.js sound playback library
15684 **/
15685var NSChatNotifications = (function(){
15686    //chatNotifcation settings
15687    var s = {
15688        titleInterval: false,
15689        titlesArray: [{ id: "default", title: document.title}],
15690        titleIndex: 0,
15691        notificationSound: new Howl({src: ['/portal/audio/chat_notification.mp3','/portal/audio/chat_notification.wav']}),
15692        soundCooldown: false
15693    };
15694
15695    /** Start a new notification. Notification can flash the chat container, flash the title and play a sound
15696     *
15697     * @param {object} options contains all of the options for the notification
15698     **/
15699    var newNotification = function(options) {
15700
15701
15702        var messageBox = document.getElementById("uc-message-box-" + options.session_id);
15703
15704        //TODO: pretty format options.title (phone number)
15705
15706        //if tab not focused, fire browser notification and play sound
15707        if (!document.hasFocus()) {
15708            _addBrowserNotification(options);
15709
15710            //only play sound if no cooldown exists
15711            if(!s.soundCooldown)
15712                _playSound();
15713
15714            //make text bold in recents
15715            var recentRow = document.getElementById("recent-" + options.session_id);
15716            if (recentRow != null) {
15717                recentRow.style.fontWeight="bold";
15718                getRecentCount();
15719            }
15720        }
15721        //check if chat is in focus, if not update flash browser title and add highlight
15722        if(!$(messageBox).find('.message-to-send').is(':focus')) {
15723            var newTitle = options.title + ' ' + _('says...');
15724
15725            // add title for notification to array
15726            s.titlesArray.push({id : options.session_id, title: newTitle});
15727
15728            if(s.titleInterval == false){
15729                //loop through titlesArray and flash the title at the set interval, including the original title
15730                s.titleInterval = window.setInterval(_changeTitle, 2000);
15731            }
15732
15733            //new-message class controls dock-head color
15734            $(messageBox).addClass("new-message");
15735        }
15736    },
15737
15738    /** remove all notification indicators for a session or message
15739     *
15740     * @param {string} sessionId is the ID for a session
15741     * @param {string} messageId is the ID for a message within a session
15742     **/
15743    removeNotification = function(sessionId, messageId){
15744
15745        var messageBox = document.getElementById("uc-message-box-" + sessionId);
15746
15747        //new-message class controls dock-head color
15748        $(messageBox).removeClass("new-message");
15749
15750        //remove bold from recent row
15751        var recentRow = document.getElementById("recent-" + sessionId);
15752        if (recentRow != null) recentRow.style.fontWeight="";
15753
15754        _removeTitle(sessionId);
15755
15756        if(messageId)
15757            Push.close(messageId);
15758    },
15759
15760    /** Show a browser notification
15761     *
15762     * @param {object} options contains all of the options for the notification
15763     **/
15764    _addBrowserNotification = function(options){
15765
15766        var title = options.title + ' ' + _('says...');
15767
15768        if (Push.Permission.has()) {
15769            Push.create(title, {
15770                body: options.body,
15771                tag: options.message_id,
15772                icon: faviconUrl, //this is a global variable found in the layout file (e.g. portal.ctp)
15773                timeout: 6000,
15774                onClick: function(){
15775                    _focusChat(options);
15776                    removeNotification(options.session_id, options.message_id);
15777                }
15778            });
15779        } else {
15780            console.warn('Caught (in chat-notifications.js) PushError: permission request declined');
15781        }
15782    },
15783
15784    /** change the title to whatever is next in the titlesArray object
15785     *
15786     **/
15787    _changeTitle = function(){
15788
15789        // increment up to the length of the array, then start back at beginning
15790        s.titleIndex = (s.titleIndex + 1) % s.titlesArray.length;
15791
15792        var newTitle = s.titlesArray[s.titleIndex].title;
15793
15794        document.title = newTitle;
15795    },
15796
15797    /** remove a session's title from the titlesArray
15798     * clear the interval if there are no more notification titles
15799     *
15800     * @param {string} sessionId is the ID for a session
15801     **/
15802    _removeTitle = function(sessionId){
15803
15804
15805        //loops through titlesArray and removes the title for the corresponding notification
15806        for(var i=0; i<s.titlesArray.length; i++){
15807            if(s.titlesArray[i].id == sessionId){
15808                s.titlesArray.splice(i, 1);  //removes 1 element at position i
15809                break;
15810            }
15811        }
15812
15813        //when there are no more new notification titles in the array
15814        //remove the interval and reset the title to default page title
15815        if (s.titlesArray.length == 1) {
15816            clearInterval(s.titleInterval);
15817            s.titleInterval = false;
15818            document.title = s.titlesArray[0].title;
15819        }
15820
15821    },
15822
15823    /** focus the chat box
15824     *
15825     * @param {object} options contains all of the options for the notification
15826     **/
15827    _focusChat = function(options){
15828
15829
15830        var id = "uc-message-box-" + options.session_id;
15831        var box = '#' + id;
15832        var $chatMessages = $(box+ ' .chat-messages');
15833
15834        window.focus();
15835        $('.dock-popup-overlay').prepend($(box)); //resets all elements to default scroll position
15836        $chatMessages.scrollTop($chatMessages[0].scrollHeight);
15837        document.getElementById(id).querySelector(".message-to-send").focus();
15838    },
15839
15840
15841    /** play a notification sound and set a 5 second sound cooldown
15842     *
15843     *
15844     **/
15845    _playSound = function(){
15846        s.notificationSound.play();
15847        s.soundCooldown = true;
15848
15849        setTimeout(function(){
15850            s.soundCooldown = false;
15851        },5000);
15852    };
15853
15854
15855    return {
15856        notify: newNotification,
15857        remove: removeNotification,
15858    }
15859
15860})();
15861
15862�/***************************************************************************
15863 ***************************************************************************
15864 *
15865 * NETSAPIENS OMP MODULES
15866 *
15867 ***************************************************************************
15868 ***************************************************************************
15869 *
15870 * Name each module by capitalizing the first letter (e.g. NewModule).
15871 *
15872 * Settings are assigned to {s} to provide access to commonly used settings
15873 * throughout the module.
15874 *
15875 * All require jquery.js, bootstrap.js, and scripts.js
15876 *
15877 ***************************************************************************/
15878
15879var NSModal = (function() {
15880
15881    /* checks if modal is currently visible */
15882    var isModalVisible = function() {
15883        if ($('.modal').hasClass('in'))
15884            return true;
15885        else
15886            return false;
15887    };
15888
15889    /**
15890     * LOAD MODAL
15891     * This module loads a modal via ajax. It loads the content and shows the modal.
15892     * Currently does not work well.
15893     *
15894     * @requires bootstrap.js
15895     * @returns {object} public entries to init and update methods.
15896     **/
15897
15898    var LoadModal = (function() {
15899
15900        /**
15901         * local settings variables accessible across module methods
15902         */
15903        var s = {
15904        };
15905
15906        var init = function(modalId, path) {
15907            log(path);
15908
15909            $('.helpsy').tooltip('hide');
15910
15911            var $modal = $(modalId);
15912            var initCallback = function() {
15913                $modal.modal();
15914            };
15915
15916            // create the backdrop and wait for next modal to be triggered
15917            $('body').modalmanager('loading');
15918
15919            setTimeout(function(){
15920                loadPath($modal, path, initCallback);
15921            }, 1000);
15922
15923        },
15924
15925        update = function(modalId, path) {
15926            var $modal  = $(modalId);
15927            var updateCallback = function() {
15928                $modal
15929                    .modal('loading')
15930                    .find('.modal-body')
15931                    .prepend('<div class="alert alert-info fade in">' +
15932                        'Updated!<button type="button" class="close" data-dismiss="alert">&times;</button>' +
15933                        '</div>');
15934            };
15935
15936            $modal.modal('loading');
15937
15938            setTimeout(function(){
15939                loadPath($modal, path, updateCallback);
15940            }, 1000);
15941        },
15942
15943        loadPath = function($modal, path, callback) {
15944
15945            $.ajax({
15946                url: path,
15947                cache: false
15948            }).done(function(html) {
15949                addModalHtml($modal, html);
15950
15951                if(callback) callback();
15952
15953            }).fail(function(textStatus){
15954                $modal.modal('loading');
15955                $modal.addClass('load-failed');
15956                var html = '<div class="modal-header">'
15957                                + '<button type="button" class="close cancel" data-dismiss="modal" onclick="hideModal(\''+ $modal[0] +'\');">&times;</button>'
15958                                + '<h4>'+textStatus.statusText+'</h4>'
15959                            + '</div>'
15960                            + '<div class="modal-body">'
15961                                + '<div class="load-failed">'
15962                                    + '<h4>The modal contents failed to load.</h4><h4>Please try again.</h4>'
15963                                + '</div>'
15964                            + '</div>'
15965                            + '<div class="modal-footer">'
15966                                + '<button type="btn" class="cancel btn" data-dismiss="modal" onclick="hideModal(\''+ $modal[0] +'\');">Close</button>'
15967                            + '</div>'
15968                $modal.html(html);
15969            });
15970        },
15971
15972        addModalHtml = function($modal, html) {
15973            $modal.contents(':not(.loading-mask)').remove();
15974            $modal.prepend(html);
15975        };
15976
15977        /**
15978         * public methods
15979         */
15980        return {
15981            init: init,
15982            update: update
15983        };
15984    })();
15985
15986    return {
15987        isModalVisible: isModalVisible,
15988        LoadModal: LoadModal
15989    }
15990
15991})();
15992
15993
15994
15995
15996/**
15997 * FORWARD VOICEMAIL
15998 * This module forwards voicemail to another on-net user. Used in either
15999 * the user homepage or messages index.
16000 *
16001 * @returns {object} public entry to init method.
16002 **/
16003
16004var FwdVmail = (function() {
16005
16006    /**
16007     * local settings variables accessible across module methods
16008     */
16009    var s = {
16010        allFwdBtn: null,    //assigned on init
16011        fwdMsgBtn: null,    //assigned after popover creation
16012        fwdMsgFld: null,    //assigned after popover creation
16013        fwdBtn: null,       //assigned in bindUIActions
16014        filename: null,     //assigned in bindUIActions
16015        folder: null,       //assigned in bindUIActions
16016        fwdPopover: '<div class="input-append"><input id="forward-msg-field" type="text" placeholder="' + _('Enter a user or extension') + '"><button id="forward-msg-btn" class="btn forward-vmail-send" type="button" title="' + _('Forward') + '"><i class="icon-arrow-right"></i></button></div>',
16017        fwdTemplate: '<div class="popover forward-popover"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>'
16018    };
16019
16020    var init = function() {
16021        //log(s);
16022        s.allFwdBtn = $('.forward');
16023
16024        buildPopover();
16025        bindUIActions();
16026    },
16027
16028    /**
16029     * builds the forward popover
16030     * TODO: make generic buildPopover widget
16031     */
16032    buildPopover = function() {
16033        s.allFwdBtn.popover({
16034            html: true,
16035            placement: 'left',
16036            template: s.fwdTemplate,
16037            content: s.fwdPopover
16038        });
16039    },
16040
16041    /**
16042     * binds initial ui interactions
16043     */
16044    bindUIActions = function() {
16045        s.allFwdBtn.on('click', function(){
16046
16047            s.fwdMsgBtn = $('#forward-msg-btn');
16048            s.fwdMsgFld = $('#forward-msg-field');
16049            s.fwdBtn = $(this);
16050            s.filename = $(this).parent().parent().attr('filename');
16051            s.folder = $(this).parent().parent().attr('folder');
16052
16053            s.fwdBtn.css('visibility', 'visible');
16054
16055            s.fwdMsgFld.focus();
16056
16057            //vmailForward defined by autocomplete helper
16058            if (typeof vmailForward != 'undefined')
16059                vmailForward();
16060
16061            bindFwdActions();
16062        });
16063
16064        $('body').on('click.closeVmFwd', function(e) {
16065            //did not click a popover toggle, or icon in popover toggle, or popover
16066            if ($(e.target).data('toggle') !== 'popover' && $(e.target).parents('.popover.in').length === 0) {
16067                s.allFwdBtn.popover('hide');
16068                s.allFwdBtn.attr('style', '');
16069            }
16070        });
16071    },
16072
16073    /**
16074     * bind forward actions - binds the post forward action to the popover forward button
16075     *
16076     **/
16077    bindFwdActions = function() {
16078        //log('fwd actions bound');
16079        //log(s.fwdMsgBtn);
16080
16081        s.fwdMsgBtn.off('click');
16082        s.fwdMsgBtn.on('click', function(){
16083
16084            var forward = s.fwdMsgFld.val();
16085
16086            if(forward === '') {
16087                jsFlash(_('Voicemail was not forwarded!'), "danger");
16088            }
16089            else {
16090                s.fwdMsgBtn.prop('disabled',true);
16091
16092                $.post("/portal/voicemails/forward/"+sub_user+"@"+sub_domain+"/"+encodeURI(s.folder)+'/'+s.filename+"/"+forward)
16093                    .done(function(data) {
16094                        //log("sent");
16095                        jsFlash(_("Voicemail has been forwarded to ") + forward, "success");
16096                        s.allFwdBtn.popover('hide');
16097                        s.fwdBtn.attr('style', '');
16098                    })
16099                    .fail(function(jqXHR, textStatus, errorThrown) {
16100                        if (jqXHR.status === 507) {
16101                            jsFlash(_('Voicemail was not forwarded! Recipient user has insufficient storage.'), "danger");
16102                        } else if (jqXHR.status === 409) {
16103                            jsFlash(_('Voicemail was not forwarded! Recipient user does not have voicemail enabled.'), "danger");
16104                        } else {
16105                            jsFlash(_('Voicemail was not forwarded!'), "danger");
16106                        }
16107                        s.fwdMsgBtn.prop('disabled',false);
16108                    });
16109            }
16110        });
16111
16112        s.fwdMsgFld.on("keyup", function(e) {
16113            log(e.which);
16114            if(e.which == 13)
16115                s.fwdMsgBtn.trigger("click");
16116        });
16117    };
16118
16119    /**
16120     * public methods
16121     */
16122    return {
16123        init: init
16124    };
16125
16126
16127})();
16128
16129
16130
16131/**
16132 * Create duplicate endpoint in a another domain
16133 *
16134 * @returns {object} public entry to init method.
16135 **/
16136
16137var CopyEndpoint = (function() {
16138
16139    /**
16140     * local settings variables accessible across module methods
16141     */
16142    var s = {
16143        allFwdBtn: null,    //assigned on init
16144        fwdMsgBtn: null,    //assigned after popover creation
16145        fwdMsgFld: null,    //assigned after popover creation
16146        fwdBtn: null,       //assigned in bindUIActions
16147        filename: null,     //assigned in bindUIActions
16148        folder: null,       //assigned in bindUIActions
16149        fwdPopover: '<div class="input-append"><input id="copy-endpoint-field" type="text" placeholder="' + _('Enter a Domain') + '"><button id="copy-endpoint-btn" class="btn copy-endpoint-send" type="button" title="' + _('Copy To') + '"><i class="icon-arrow-right"></i></button></div>',
16150        fwdTemplate: '<div class="popover forward-popover"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>'
16151    };
16152
16153    var init = function() {
16154        //log(s);
16155        s.allFwdBtn = $('.endpoint-copy');
16156
16157        buildPopover();
16158        bindUIActions();
16159    },
16160
16161    /**
16162     * builds the forward popover
16163     * TODO: make generic buildPopover widget
16164     */
16165    buildPopover = function() {
16166        s.allFwdBtn.popover({
16167            html: true,
16168            placement: 'left',
16169            template: s.fwdTemplate,
16170            content: s.fwdPopover
16171        });
16172    },
16173
16174    /**
16175     * binds initial ui interactions
16176     */
16177    bindUIActions = function() {
16178        s.allFwdBtn.on('click', function(){
16179
16180            s.fwdMsgBtn = $('#copy-endpoint-btn');
16181            s.fwdMsgFld = $('#copy-endpoint-field');
16182            s.fwdBtn = $(this);
16183            s.address_id = $(this).parent().parent()[0].getElementsByTagName("td")[0].getAttribute('address_id');
16184            s.original_domain = $(this).parent().parent()[0].getElementsByTagName("td")[1].getAttribute('domain');
16185
16186            s.fwdBtn.css('visibility', 'visible');
16187
16188            s.fwdMsgFld.focus();
16189
16190            //vmailForward defined by autocomplete helper
16191            if (typeof endpointCopy != 'undefined')
16192                endpointCopy();
16193
16194            bindFwdActions();
16195        });
16196
16197        $('body').on('click.closeVmFwd', function(e) {
16198            //did not click a popover toggle, or icon in popover toggle, or popover
16199            if ($(e.target).data('toggle') !== 'popover' && $(e.target).parents('.popover.in').length === 0) {
16200                s.allFwdBtn.popover('hide');
16201                s.allFwdBtn.attr('style', '');
16202            }
16203        });
16204    },
16205
16206    /**
16207     * bind forward actions - binds the post forward action to the popover forward button
16208     *
16209     **/
16210    bindFwdActions = function() {
16211        //log('fwd actions bound');
16212        //log(s.fwdMsgBtn);
16213
16214        s.fwdMsgBtn.off('click');
16215        s.fwdMsgBtn.on('click', function(){
16216
16217            var forward = s.fwdMsgFld.val();
16218
16219            if(forward === '') {
16220                jsFlash("Endpoint was not copied!", "danger");
16221            }
16222            else {
16223                s.fwdMsgBtn.prop('disabled',true);
16224
16225                $.post("/portal/inventory/copyEndpoint/"+s.address_id+"/"+s.original_domain+'/'+forward,function(data) {})
16226                    .done(function(data) {
16227                        //log("sent");
16228                        jsFlash("Endpoint was copied to "+forward, "success");
16229                        s.allFwdBtn.popover('hide');
16230                        s.fwdBtn.attr('style', '');
16231                        location.reload(true); //reload the page to show the new endpoint
16232                    })
16233                    .fail(function(data) {
16234                        if (data.status == 503) {
16235                            jsFlash("Endpoint was copied to "+forward, "success");
16236                            s.allFwdBtn.popover('hide');
16237                            s.fwdBtn.attr('style', '');
16238                            location.reload(true); //reload the page to show the new endpoint                                
16239                        } else {
16240                            jsFlash("Endpoint was not copied!", "danger");
16241                            s.fwdMsgBtn.prop('disabled',false);    
16242                        }
16243                    });
16244            }
16245        });
16246
16247        s.fwdMsgFld.on("keyup", function(e) {
16248            log(e.which);
16249            if(e.which == 13)
16250                s.fwdMsgBtn.trigger("click");
16251        });
16252    };
16253
16254    /**
16255     * public methods
16256     */
16257    return {
16258        init: init
16259    };
16260
16261
16262})();
16263
16264
16265
16266/**
16267 * STATS GRID SETTINGS
16268 * This module loads, saves and builds the call center stat grid settings in the call center
16269 * homepage
16270 *
16271 * @requires bootstrap.js
16272 * @requires bootstrap-switch.js
16273 * @requires jquery.storageapi.js
16274 * @returns {object} public entry to init method.
16275 **/
16276
16277var StatsGridSettings = (function() {
16278
16279    /**
16280     * local settings variables accessible across module methods
16281     */
16282    var s = {
16283        settings: null,
16284        storage: null
16285    };
16286
16287    /**
16288     * initializes the stats grid settings. assigns local storage and starts building html
16289     */
16290    var init = function() {
16291        s.storage = $.localStorage;
16292
16293        buildHtml();
16294    },
16295
16296    /**
16297     * appends stats grid settings html to the form
16298     *
16299     * @param {string} html is the stats grid settings html
16300     */
16301    appendHtml = function (html) {
16302        $('#stats-grid-form').append(html);
16303
16304        bindUIActions();
16305    },
16306
16307    /**
16308     * binds events to stats grid setting buttons. initializes popovers and switches
16309     */
16310    bindUIActions = function() {
16311        //edit json on changes to fields, switches
16312        $('#stats-grid-form .label-popover').popover({
16313            trigger: 'hover',
16314            template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
16315            container: 'body',
16316            html: true,
16317            delay: { show: 200, hide: 0 }
16318        });
16319
16320        $("#stats-grid-form .checkbox-switch").bootstrapSwitch({
16321            onColor: 'success',
16322            onSwitchChange: function(e, state){
16323                log('switch changed to: '+state);
16324
16325                var target = $(e.target).data('target');
16326
16327                $(target).collapse('toggle');
16328            }
16329        });
16330
16331        $('#reset-grid-settings').on('click', function(){
16332            resetSettings();
16333        });
16334    },
16335
16336    /**
16337     * reset settings to default and rebuild stats grid settings html
16338     */
16339    resetSettings = function() {
16340        log('Stats Grid Settings: Resetting stats grid settings.');
16341
16342        s.storage.remove('statsGridSettings');
16343
16344        rebuildHtml();
16345        StatsGrid.rebuild();
16346    },
16347
16348    /**
16349     * remove settings html and build new html.
16350     */
16351    rebuildHtml = function(){
16352        $('#stats-grid-form').empty();
16353
16354        buildHtml();
16355    },
16356
16357    /**
16358     * build form fields html with settings
16359     */
16360    buildHtml = function() {
16361        s.settings = loadLocalSettings();
16362
16363        var html = '<div class="accordion" id="stats-grid-accordion">';
16364        var propUndefined = false;
16365
16366        $.each(s.settings, function(i, setting) {
16367            //log(setting);
16368
16369            // test object properties to see if they exist in settings
16370            $.each(['id', 'title', 'settingTitle', 'description', 'abbr', 'show', 'values'], function (i, prop) {
16371                // log(prop);
16372                // log(setting[prop]);
16373
16374                if (typeof setting[prop] == 'undefined') {
16375                    log('Stats Grid Settings: Found an undefined property in stats grid settings!');
16376
16377                    propUndefined = true;
16378                    return false;
16379                }
16380            });
16381
16382
16383            if (!propUndefined) {
16384                var checked = '';
16385                var collapse = '';
16386
16387                if (setting.show) {
16388                    checked = 'checked';
16389                    collapse = 'in';
16390                }
16391
16392                if (setting.id == "serviceLevel")
16393                {
16394                	html += '<div class="accordion-group stats-grid-setting" data-grid-stat-id="'+setting.id+'" data-grid-stat-title="'+setting.title+'" data-grid-stat-setting-title="'+setting.settingTitle+'" data-grid-stat-abbr="'+setting.abbr+'">' +
16395                    '<div class="accordion-heading">'+
16396                        '<span class="accordion-no-toggle stats-grid-toggle">'+
16397                            '<span class="label-popover" data-content="'+setting.description+'">'+setting.settingTitle+' <i class="icon-info-sign"></i></span>'+
16398                            '<input type="checkbox" name="'+setting.id+'-checkbox" data-toggle="collapse" data-target="#'+setting.id+'" class="checkbox-switch" '+checked+'> '+
16399                        '</span>'+
16400                    '</div>' +
16401                    '<div id="'+setting.id+'" class="collapse accordion-body '+collapse+'">'+
16402
16403                        '<div class="row">'+
16404                            '<div class="span3">'+
16405                                '<div class="control-group">'+
16406
16407                                '</div>' +
16408                            '</div>' +
16409                            '<div class="span3">'+
16410                                '<div class="control-group">'+
16411                                    '<label class="control-label label-popover" data-content="' + _('When the stat turns completely red. Higher number on this stat is better, so this is a lower limit.') + '">' + _('Threshold') + ' <i class="icon-info-sign"></i></label>'+
16412                                    '<div class="controls">'+
16413                                        '<input type="text" name="'+setting.id +'-upper" class="micro" placeholder="" value="'+setting.values.upper+'"> '+
16414                                        '<span class="help-inline muted"></span>'+
16415                                    '</div>' +
16416                                '</div>' +
16417                            '</div>' +
16418                        '</div>' +
16419
16420                    '</div>' +
16421                '</div>';
16422                }
16423                else
16424                	html += '<div class="accordion-group stats-grid-setting" data-grid-stat-id="'+setting.id+'" data-grid-stat-title="'+setting.title+'" data-grid-stat-setting-title="'+setting.settingTitle+'" data-grid-stat-abbr="'+setting.abbr+'">' +
16425                                '<div class="accordion-heading">'+
16426                                    '<span class="accordion-no-toggle stats-grid-toggle">'+
16427                                        '<span class="label-popover" data-content="'+setting.description+'">'+setting.settingTitle+' <i class="icon-info-sign"></i></span>'+
16428                                        '<input type="checkbox" name="'+setting.id+'-checkbox" data-toggle="collapse" data-target="#'+setting.id+'" class="checkbox-switch" '+checked+'> '+
16429                                    '</span>'+
16430                                '</div>' +
16431                                '<div id="'+setting.id+'" class="collapse accordion-body '+collapse+'">'+
16432
16433                                    '<div class="row">'+
16434                                        '<div class="span3">'+
16435                                            '<div class="control-group">'+
16436                                                '<label class="control-label label-popover" data-content="' + _('When the stat turns completely yellow. Should be less than the Upper Threshold. If left blank, color will turn yellow at 70% of Upper Threshold.') + '">' + _('Lower Threshold') + ' <i class="icon-info-sign"></i></label>'+
16437                                                '<div class="controls">'+
16438                                                    '<input type="text" name="'+setting.id +'-lower" class="micro" placeholder="" value="'+setting.values.lower+'"> '+
16439                                                    '<span class="help-inline muted"></span>'+
16440                                                '</div>' +
16441                                            '</div>' +
16442                                        '</div>' +
16443                                        '<div class="span3">'+
16444                                            '<div class="control-group">'+
16445                                                '<label class="control-label label-popover" data-content="' + _('When the stat turns completely red. Should be more than the Lower Threshold.') + '">' + _('Upper Threshold') + ' <i class="icon-info-sign"></i></label>'+
16446                                                '<div class="controls">'+
16447                                                    '<input type="text" name="'+setting.id +'-upper" class="micro" placeholder="" value="'+setting.values.upper+'"> '+
16448                                                    '<span class="help-inline muted"></span>'+
16449                                                '</div>' +
16450                                            '</div>' +
16451                                        '</div>' +
16452                                    '</div>' +
16453
16454                                '</div>' +
16455                            '</div>';
16456
16457            } else
16458                return false;
16459
16460        });
16461
16462
16463        if(!propUndefined) {
16464            html += '</div>';
16465
16466            appendHtml(html);
16467        } else {
16468            resetSettings();
16469        }
16470
16471    },
16472
16473    /**
16474     * collect and save settings to local
16475     *
16476     */
16477    saveNewSettings = function() {
16478        var newSettings = collectSettings();
16479
16480        saveLocalSettings(newSettings);
16481    },
16482
16483    /**
16484     * update settings with settings form field values
16485     *
16486     * @returns {object} settings is an object with all the stats grid settings
16487     */
16488    collectSettings = function() {
16489        log('Stats Grid Settings: collecting settings from fields.');
16490
16491        var settings = loadLocalSettings();
16492
16493        $('.stats-grid-setting').each(function(){
16494            var id = $(this).data('grid-stat-id');
16495            var show = $("[name='"+id+"-checkbox']").prop("checked");
16496            var upper = $("[name='"+id+"-upper']").val();
16497            var lower = $("[name='"+id+"-lower']").val();
16498            if (lower == null)
16499            	lower = upper;
16500            //remove everything but digits and decimals
16501            if (upper !== '')
16502                upper = parseFloat(upper.replace(/[^0-9.]/g, ''));
16503            if (lower !== '')
16504                lower = parseFloat(lower.replace(/[^0-9.]/g, ''));
16505            if(lower === null)
16506                lower = '';
16507            if(upper === null)
16508                upper = '';
16509            if (lower > upper)
16510                upper = lower;
16511
16512            $.each(settings, function(i){
16513
16514                if(settings[i].id == id ) {
16515                    settings[i].show = show;
16516                    settings[i].values.upper = upper;
16517                    settings[i].values.lower = lower;
16518
16519                    return false;
16520                }
16521            });
16522
16523        });
16524
16525        //log(settings);
16526
16527        return settings;
16528    },
16529
16530    /**
16531     * save settings to local storage
16532     *
16533     * @param {object} settings is an object with all the stats grid settings
16534     */
16535    saveLocalSettings = function(settings) {
16536        log('Stats Grid Settings: saving settings to local storage.');
16537
16538        s.settings = settings;
16539
16540        var json = JSON.stringify(settings);
16541
16542        s.storage.set('statsGridSettings', json);
16543    },
16544
16545    /**
16546     * get settings from local storage, returns json
16547     *
16548     * @returns {object} localSettings is settings from local storage or the default settings object
16549     */
16550    loadLocalSettings = function() {
16551        var localSettings;
16552
16553        if(s && s.storage && s.storage.isSet('statsGridSettings'))
16554            localSettings = s.storage.get('statsGridSettings'); //.get() converts json to js object
16555        else
16556            localSettings = defaultSettings();
16557
16558        return localSettings;
16559    },
16560
16561    /**
16562     * default settings if nothing exists
16563     *
16564     * @returns {object} settings is an object with all the default stats grid settings
16565     */
16566    defaultSettings = function() {
16567        var settings = [
16568            {
16569                "id": "callersWaiting",
16570                "title": _("Callers Waiting"),
16571                "settingTitle": _("Callers Waiting"),
16572                "description": _("The amount of callers waiting in the queue."),
16573                "abbr": "CW",
16574                "show": true,
16575                "values": {
16576                    "upper": 5,
16577                    "lower": ''
16578                }
16579            },
16580            {
16581                "id": "averageWait",
16582                "title": _("Average Wait Time"),
16583                "settingTitle": _("Average Wait Time (sec)"),
16584                "description": _("The average time a caller waits in the queue before the call is either answered or they hang up."),
16585                "abbr": "AWT",
16586                "show": true,
16587                "values": {
16588                    "upper": 60,
16589                    "lower": ''
16590                }
16591            },
16592            {
16593                "id": "averageHandling",
16594                "title":  _("Average Handling Time"),
16595                "settingTitle": _("Average Handling Time")+" ("+_("sec") +")",
16596                "description": _("The average of talk time, hold time and disposition time combined."),
16597                "abbr": "AHT",
16598                "show": true,
16599                "values": {
16600                    "upper": 240,
16601                    "lower": ''
16602                }
16603            },
16604            {
16605                "id": "serviceLevel",
16606                "title": _("Service Level"),
16607                "settingTitle": _("Service Level")+"(%)",
16608                "description": _("The ratio of calls meeting the configurable service level agreement."),
16609                "abbr": "SL",
16610                "invert": "yes",
16611                "show": false,
16612                "values": {
16613                    "upper": 75,
16614                    "lower": ''
16615                }
16616            },
16617            {
16618                "id": "abandonRate",
16619                "title": _("Abandon Rate"),
16620                "settingTitle": _("Abandon Rate")+"(%)",
16621                "description": _("The ratio of abandoned calls to calls offered."),
16622                "abbr": "ABN",
16623                "show": true,
16624                "values": {
16625                    "upper": 15.0,
16626                    "lower": ''
16627                }
16628            },
16629            {
16630                "id": "callsAnswered",
16631                "title": _("Calls Answered"),
16632                "settingTitle": _("Calls Answered"),
16633                "description": _("Total calls answered."),
16634                "abbr": "CA",
16635                "show": true,
16636                "values": {
16637                    "upper": '',
16638                    "lower": ''
16639                }
16640            },
16641            {
16642                "id": "callVolume",
16643                "title": _("Call Volume"),
16644                "settingTitle": _("Call Volume"),
16645                "description": _("Overall calls, including calls that never made it all the way through a auto attendant."),
16646                "abbr": "CV",
16647                "show": true,
16648                "values": {
16649                    "upper": '',
16650                    "lower": ''
16651                }
16652            },
16653            {
16654                "id": "abandonedCalls",
16655                "title": _("Abandoned Calls"),
16656                "settingTitle": _("Abandoned Calls"),
16657                "description": _("Calls that abandoned the queue before being dispatched to an agent."),
16658                "abbr": "AC",
16659                "show": false,
16660                "values": {
16661                    "upper": 10,
16662                    "lower": ''
16663                }
16664            }
16665        ];
16666
16667        return settings;
16668    };
16669
16670    /**
16671     * public methods
16672     */
16673    return {
16674        init: init,
16675        rebuild: rebuildHtml,
16676        load: loadLocalSettings,
16677        save: saveNewSettings
16678    };
16679
16680
16681})();
16682
16683/**
16684 * STATS GRID
16685 * This module builds a call center stats grid using settings from StatsGridSettings.
16686 * By default, stats are refreshed in an interval of 60 seconds, except for the callers waiting
16687 *
16688 * @requres StatsGridSettings
16689 * @returns public entry to init method.
16690 **/
16691
16692var StatsGrid = (function() {
16693
16694    /**
16695     * local settings variables accessible across module methods
16696     */
16697    var s = {
16698        settings: null,
16699        queue: null
16700    };
16701
16702    /**
16703     * initializes the stats grid. to load stats and build the grid
16704     *
16705     * @param {integer} interval - a number in ms for the refresh interval.
16706     **/
16707    var init = function(interval) {
16708        StatsGridSettings.init();
16709
16710        s.queue = $.localStorage.get('statsGridQueue');
16711
16712        if (typeof s.queue == 'undefined' || s.queue == 'null')
16713            s.queue = null;
16714
16715        if (typeof interval == 'undefined' || isNaN(interval))
16716            interval = 60000;
16717
16718        // s.settings = StatsGridSettings.load();
16719
16720        loadStats();
16721
16722        setInterval(loadStats, interval);
16723    },
16724
16725    /**
16726     * grabs current stats grid settings, shows the loading animation and rebuilds the stats grid.
16727     **/
16728    reBuildGrid = function() {
16729
16730        $('#dash-stats-body').html('<div class="loading-container relative" style="top:0px;padding: 50px 0;">' +
16731			'<div class="loading-spinner la-ball-spin-clockwise">' +
16732				'<div></div>' +
16733				'<div></div>' +
16734				'<div></div>' +
16735				'<div></div>' +
16736				'<div></div>' +
16737				'<div></div>' +
16738				'<div></div>' +
16739				'<div></div>' +
16740			'</div>' +
16741		'</div>');
16742
16743        loadStats();
16744    },
16745
16746    /**
16747     * loads the current stats and then updates or builds the stats grid to 
16747show them
16748     **/
16749    loadStats = function() {
16750        //make sure settings are the latest
16751        s.settings = StatsGridSettings.load();
16752
16753        /*if ($.localStorage.get('statsGridDomain') ==  sub_domain)
16754            s.queue = $.localStorage.get('statsGridQueue');
16755        else
16756            s.queue = null;*/
16757        s.queue = null;
16758
16759        var multiple = false;
16760        var queueSelectCount =0;
16761        $("#manager_queues .graph-checkbox").each(function() {
16762            if($(this).is(':checked')) {
16763                queueSelectCount++;
16764                if (s.queue == null)
16765                    s.queue = $(this).data('graphname');
16766                else
16767                {
16768                    multiple = true;
16769                    s.queue = s.queue+","+$(this).data('graphname');
16770                }
16771
16772
16773            }
16774
16775        });
16776
16777
16778        var url = '/portal/callqueues/statsummary?';
16779        var sla =  $.localStorage.get('reports_sla_time');
16780
16781        $.localStorage.set('statsGridQueueChecked',null);
16782
16783
16784        if (multiple)
16785        {
16786            url += "queue_list="+s.queue+"&";
16787        }
16788        else if (typeof s.queue !== 'undefined' && s.queue != null && s.queue != '')
16789        {
16790            url += "queue="+s.queue+"&";
16791            $.localStorage.set('statsGridQueueChecked',"|"+s.queue);
16792        }
16793
16794        $.localStorage.set('statsGridQueueCheckedCount',queueSelectCount);
16795
16796
16797        if (typeof sla == 'undefined' || sla == null || sla == '')
16798            sla =60;
16799
16800        url += "sla="+sla;
16801
16802        $.getJSON(url, function(data) {
16803            log('Stats Grid: loading stats data from ' + url);
16804            log(data);
16805            if($('.dash-stats-grid-table').length)
16806                updateGrid(data);
16807            else
16808                buildGrid(data);
16809        })
16810        .fail(function() {
16811            log( "Stats Grid: statsummary fail" );
16812        })
16813        .always(function() {
16814            log( "Stats Grid: statsummary complete" );
16815        });
16816    },
16817
16818    /**
16819     * builds the stats grid table structure and then updates the grid with stat data.
16820     *
16821     * @param {object} data is the stats data object retrieved from loadStats
16822     **/
16823    buildGrid = function(data) {
16824        log('StatsGrid: buildGrid');
16825        //grab stats
16826        var statsBody = $('#dash-stats-body');
16827        var statShown = false;
16828
16829        statsBody.empty();
16830
16831        $.each(s.settings, function(i, stat) {
16832            if(stat.show) {
16833                var html = statHtml(stat);
16834
16835                statsBody.append(html);
16836
16837                statShown = true;
16838            }
16839        });
16840
16841        if(!statShown)
16842            $('#dash-stats-body').html('<p class="muted text-center">Please select a stat to show in "settings".</p>');
16843        else
16844        {
16845          updateGrid(data);
16846          if(typeof $(document).popover == 'function')
16847        	{
16848        			var opts = {
16849        					trigger: 'hover',
16850        					placement: 'top',
16851        					template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>',
16852        					container: 'body',
16853        					html: true,
16854        					delay: { show: 200, hide: 0 }
16855        			};
16856        			$('#dash-stats-body .label-popover.popover-stats').popover(opts);
16857        	}
16858        }
16859
16860    },
16861
16862    /**
16863     * updates the stats grid with stat data. colors each stat accordingly
16864     *
16865     * @param {object} data is the stats data object retrieved from loadStats
16866     **/
16867    updateGrid = function(data) {
16868        log('StatsGrid: updateGrid');
16869
16870        $('.dash-stats-data-row td').each(function(){
16871            var gridStat = $(this).data('grid-stat');
16872            var statId = $(this).attr('id');
16873            var error = false;
16874            var val;
16875
16876            try {
16877                if (gridStat == "CW") {
16878                    cwSum();
16879                    return true;
16880                } else {
16881                    if($.localStorage.isSet('statsGridQueueChecked') && $.localStorage.get('statsGridQueueChecked')!=null)
16882                        val = parseFloat(data[$.trim($.localStorage.get('statsGridQueueChecked')).replace(/^\|+|\|+$/g, '')][gridStat]);
16883                    else
16884                        val = parseFloat(data['*'][gridStat]);
16885                }
16886            } catch (e) {
16887                log('Stats Grid: ERROR parsing data');
16888                log(e);
16889                error = true;
16890            }
16891
16892            if(!error) {
16893
16894                changeStatColor(statId, val);
16895
16896                if (gridStat == "ABN" ||gridStat == "SL" )
16897                {
16898                    val = val + "%";
16899                }
16900                else if (gridStat == "AHT" || gridStat == "AWT") {
16901                    var m = Math.floor(val/60);
16902                    var s;
16903
16904                    if (val < 60)
16905                        s = val;
16906                    else
16907                        s = val%60;
16908
16909                    val = m+":"+(s < 10 ? '0'+s : s);
16910                }
16911            } else {
16912                val = "<span title='No data'>&ndash;</span>";
16913            }
16914
16915            //set the value in the corresponding grid cell
16916            $(this).html(val);
16917
16918        });
16919        //alert($.trim($.localStorage.get('statsGridQueueChecked')).replace(/^\|+|\|+$/g, ''));
16920        if($.localStorage.isSet('statsGridQueueCheckedCount') && $.localStorage.get('statsGridQueueCheckedCount')==0)
16921            $('#stats-grid-queue-label').text(_('All Queues'));
16922        else if($.localStorage.isSet('statsGridQueueChecked') && $.localStorage.get('statsGridQueueChecked')!=null)
16923            $('#stats-grid-queue-label').text($.trim($.localStorage.get('statsGridQueueChecked')).replace(/^\|+|\|+$/g, ''));
16924        else if($.localStorage.isSet('statsGridQueueCheckedCount') && $.localStorage.get('statsGridQueueCheckedCount')>0)
16925        {
16926            $('#stats-grid-queue-label').text($.localStorage.get('statsGridQueueCheckedCount')+' '+_('Queues'));
16927        }
16928    },
16929
16930    /**
16931     * shows an alert at the top of the stats grid
16932     *
16933     * @param {string} msg is the message text to show in the alert
16934     **/
16935    gridAlert = function(msg) {
16936        var statsBody = $('#dash-stats-body');
16937        var html = '<div class="alert">'+
16938                        '<button type="button" class="close" data-dismiss="alert">&times;</button>'+
16939                        msg +
16940                    '</div>';
16941
16942        statsBody.prepend(html);
16943    },
16944
16945    /**
16946     * totals the number of callers waiting and updates the stat in the stats grid
16947     **/
16948    cwSum = function() {
16949        log('Stats Grid: calculating callers waiting');
16950
16951        var statId = "dash-stats-grid-cw";
16952        var value;
16953        var sum = 0;
16954        // iterate through each td based on class and add the values
16955
16956        if($.localStorage.get('statsGridQueueCheckedCount')>1 || ($.localStorage.isSet('statsGridQueueChecked') && $.localStorage.get('statsGridQueueChecked')!=null) )
16957        {
16958          $("#manager_queues .graph-checkbox").each(function() {
16959              if ($(this).is(':checked'))
16960              {
16961                value = $(this).parent().parent().find(".queuelength").text();
16962                // add only if the value is number
16963                if (!isNaN(value) && value.length !== 0) {
16964                  sum += parseFloat(value);
16965
16966                  }
16967              }
16968          });
16969        }
16970        else
16971        {
16972          $(".queuelength").each(function() {
16973
16974            value = $(this).text();
16975            // add only if the value is number
16976            if (!isNaN(value) && value.length !== 0) {
16977                sum += parseFloat(value);
16978              }});
16979        }
16980
16981        log("CW : "+ sum);
16982        changeStatColor(statId, sum);
16983
16984        $('#' + statId).text(sum);
16985    },
16986
16987    /**
16988     * totals the number of callers waiting and updates the stat in the stats grid
16989     *
16990     * @param {string} stat is the object for an individual stat
16991     * @returns {string} html is the table html for an individual stat in the stats grid
16992     **/
16993    statHtml = function(stat) {
16994        log(stat);
16995        var desc = '';
16996        var subDesc = '';
16997
16998        if (typeof stat.invert == 'undefined')
16999            stat.invert="no";
17000            var help='';
17001        if (typeof(titles_supervisor[stat.abbr]) != 'undefined' && typeof(descriptions_supervisor[stat.abbr][0]) != 'undefined')
17002        {
17003            desc = descriptions_supervisor[stat.abbr][0];
17004
17005            if (typeof(descriptions_supervisor[stat.abbr][1]) != 'undefined')
17006                subDesc = descriptions_supervisor[stat.abbr][1];
17007
17008            help = '<span class="label-popover popover-stats" data-title="'+titles_supervisor[stat.abbr]+'"  data-content="'+desc+'<p>'+subDesc+'</p>"><i class="icon-info-sign"></i></span>';
17009        }
17010        var html = '<table class="dash-stats-grid-table">' +
17011                    '<tbody>'+
17012                        '<tr class="dash-stats-label-row">'+
17013                            '<td title="'+stat.title+'">'+stat.abbr+help+ '</td>'+
17014                        '</tr>'+
17015                        '<tr class="dash-stats-data-row">'+
17016                            '<td id="dash-stats-grid-'+stat.abbr.toLowerCase()+'" data-grid-invert="'+stat.invert+'" data-grid-stat="'+stat.abbr+'" data-grid-stat-upper-limit="'+stat.values.upper+'" data-grid-stat-lower-limit="'+stat.values.lower+'"></td>'+
17017                        '</tr>'+
17018                    '</tbody>'+
17019                '</table>';
17020
17021        return html;
17022    },
17023
17024    /**
17025     * changes the stat color background based on the current value and its ratio to the thresholds
17026     *
17027     * @param {string} statId is the object for an individual stat
17028     * @param {number} val is the object for an individual stat
17029     **/
17030    changeStatColor = function(statId, val) {
17031        var pct = 0;
17032        var upperLimit = $('#' + statId).data('grid-stat-upper-limit');
17033        var lowerLimit = $('#' + statId).data('grid-stat-lower-limit');
17034        var lowerLimitPct;
17035        var invert = false;
17036
17037        if ("yes"==$('#' + statId).data('grid-invert'))
17038            invert=true;
17039
17040        if(!upperLimit && !lowerLimit) {
17041            $('#' + statId).css({
17042                'border': '1px solid #eee',
17043                'box-sizing':'border-box',
17044                '-moz-box-sizing':'border-box',
17045                '-webkit-box-sizing':'border-box'
17046            });
17047        } else {
17048
17049
17050            val = parseFloat(val);
17051            lowerLimitPct = lowerLimit/upperLimit;
17052
17053            if (invert)
17054            {
17055
17056            	if (upperLimit && 100-val !== 0)
17057                    pct = (100-val)/(100 -upperLimit);
17058                else
17059                    pct = 0;
17060            }
17061            else
17062        	{
17063            	 //if there is no upper limit, use lowerlimit for percent
17064                if (upperLimit && val !== 0)
17065                    pct = val/upperLimit;
17066                else if (lowerLimit)
17067                    pct = val/lowerLimit;
17068                else
17069                    pct = 0;
17070        	}
17071
17072
17073
17074
17075
17076            if (invert)
17077                log(statId+ pct);
17078            // log(Stats Grid: " + statId + " pct: " +pct);
17079            // log(Stats Grid: " + statId + " lowerLimitPct: " +lowerLimitPct);
17080
17081            var pctColors = setColorObj(lowerLimitPct);
17082
17083            var color = getPctColor(pct, pctColors);
17084            // log("color: "+color);
17085            $('#' + statId).animate({
17086                backgroundColor: color
17087            }, 200);
17088        }
17089    },
17090
17091    /**
17092     * calulates the stat color based on percent of threshold
17093     *
17094     * @param {number} pct is the percent of the stat value versus the threshold
17095     * @param {object} pctColors is an object of colors with associated percents
17096     **/
17097    getPctColor = function(pct, pctColors) {
17098        var arrayLength = pctColors.length;
17099        var lastColors;
17100
17101        if (pct > pctColors[arrayLength-1].pct) {
17102                lastColors = pctColors[arrayLength-1];
17103
17104                return 'rgb(' + [lastColors.color.r, lastColors.color.g, lastColors.color.b].join(',') + ', 0.6)';
17105        }
17106        else if (pct === 0) {
17107                lastColors = pctColors[0];
17108
17109                return 'rgb(' + [lastColors.color.r, lastColors.color.g, lastColors.color.b].join(',') + ', 0.6)';
17110        }
17111        else
17112            for (var i = 0; i < arrayLength; i++) {
17113                    if (pct <= pctColors[i].pct) {
17114                            var lower = pctColors[i - 1];
17115                            var upper = pctColors[i];
17116                            var range = upper.pct - lower.pct;
17117                            var rangePct = (pct - lower.pct) / range;
17118                            var pctLower = 1 - rangePct;
17119                            var pctUpper = rangePct;
17120                            var color = {
17121                                    r: Math.floor(lower.color.r * pctLower + upper.color.r * pctUpper),
17122                                    g: Math.floor(lower.color.g * pctLower + upper.color.g * pctUpper),
17123                                    b: Math.floor(lower.color.b * pctLower + upper.color.b * pctUpper)
17124                            };
17125                            return 'rgb(' + [color.r, color.g, color.b].join(',') + ', 0.6)';
17126                            // or output as hex if preferred
17127                    }
17128            }
17129    },
17130
17131    /**
17132     * creates the colors object that matches color to a percent value.
17133     *
17134     * @param {number} lowerLimitPct is the percent calculated from the lower threshold and upper threshold
17135     * @returns {object} pctColors is an object of colors with associated percents
17136     **/
17137    setColorObj = function(lowerLimitPct) {
17138        var pctColors;
17139
17140        if (typeof lowerLimitPct == 'undefined' || !lowerLimitPct || lowerLimitPct >= 1.0)
17141            lowerLimitPct = 0.7;
17142
17143        pctColors = [
17144            { pct: 0.0, color: { r: 0x00, g: 0xff, b: 0 } },
17145            { pct: lowerLimitPct, color: { r: 0xff, g: 0xff, b: 0 } },
17146            { pct: 1.0, color: { r: 0xff, g: 0x00, b: 0 } }
17147        ];
17148
17149        return pctColors;
17150    };
17151
17152    /**
17153     * public methods
17154     */
17155    return {
17156        init: init,
17157        load: loadStats,
17158        rebuild: reBuildGrid,
17159        cw: cwSum,
17160        alert: gridAlert
17161    };
17162
17163
17164})();
17165
17166/**
17167 * AUDIO PLAYER
17168 * This module builds HTML5 audio player
17169 *
17170 * @returns public entry to buildPlayer,playButton, downloadButton, and bindUIActions
17171 **/
17172
17173var AudioPlayer = (function() {
17174
17175    /**
17176     * binds events to audio player and play button.
17177     *
17178     * @param {number} i helps identify the audio player
17179     */
17180    var bindUIActions = function(i) {
17181        var $audio = $('#audio-player-' + i );
17182        var $playtoggle = $('#playtoggle-' + i );
17183        var title = 'Play';
17184
17185        $audio.on('play',function() {
17186            $playtoggle.tooltip('hide');
17187            $playtoggle.addClass('waiting');
17188            $playtoggle.attr('title', '');
17189            $playtoggle.attr('data-original-title', _('Loading'));
17190        }).on('playing', function() {
17191            $playtoggle.tooltip('hide');
17192            $playtoggle.removeClass('waiting');
17193            $playtoggle.addClass('playing');
17194            $playtoggle.attr('title', '');
17195            $playtoggle.attr('data-original-title', _('Stop'));
17196        }).on('pause ended', function() {
17197            $playtoggle.tooltip('hide');
17198            $playtoggle.removeClass('playing');
17199            $playtoggle.removeClass('waiting');
17200            $playtoggle.attr('data-original-title', title);
17201            $audio[0].load();
17202        });
17203
17204        $playtoggle.click(function() {
17205            if ($audio[0].paused) {
17206                $audio[0].play();
17207            }
17208            else {
17209                $audio[0].pause();
17210            }
17211        });
17212    },
17213
17214    /**
17215     * builds the HTML5 audio element with source paths. combines with the playbutton.
17216     *
17217     * @param {string} path is the URL used for the source of the audio file
17218     * @param {integer} i is the integer to help identify the audio player
17219     * @param {string} extraClass is an HTML class that is passed on to the play button HTML
17220     * @returns {string} playerHtml is the combined audio elements and play button
17221     */
17222    buildPlayer = function(path, i, extraClass){
17223        path = cleanPath(path);
17224
17225        var ogg = path + "&convert=ogg",
17226            aac = path + "&convert=aac",
17227            wav = path + "&convert=signed";
17228
17229        var playerHtml = '<audio id="audio-player-' + i + '"" preload="none">' +
17230
17231                '<source id="audio-player-' + i +'-wav-1" src="' + wav + '" type="audio/x-wav" >' +
17232                '<source id="audio-player-' + i +'-wav-2" src="' + ogg + '" type="audio/ogg; codecs=vorbis">' +
17233                '<source id="audio-player-' + i +'-wav-3" src="' + aac + '" type="audio/mp4" >' +
17234                '<source id="audio-player-' + i +'-aac-1" src="' + aac + '" type="audio/aac" >' +
17235
17236        '</audio>';
17237
17238        var playHtml = playButton(path, i, extraClass);
17239
17240        playerHtml += playHtml;
17241
17242        return playerHtml;
17243    },
17244
17245    /**
17246     * builds the HTML5 audio element with source paths. combines with the playbutton.
17247     *
17248     * @param {string} path is the URL used for the source of the audio file
17249     * @param {integer} i is the integer to help identify the audio player
17250     * @param {string} extraClass is an HTML class that is passed on to the play button HTML
17251     * @returns {string} playHtml is the combined the play button
17252     */
17253    playButton = function(path, i, extraclass){
17254        var playHtml = '<span id="playtoggle-' + i +'" class="play helpsy '+extraclass+'" title="Play"></span>';
17255
17256        return playHtml;
17257    },
17258
17259    /**
17260     * build the download button
17261     *
17262     * @param {string} path is the URL used for the source of the audio file
17263     * @returns {string} buttonHtml is the download button html
17264     */
17265    downloadButton = function(path){
17266        path = cleanPath(path);
17267
17268        path += "&convert=signed";
17269
17270        var buttonHtml = "<a class='download-audio helpsy' title='Download' target='_blank' href='"+path+"'></a>";
17271
17272        return buttonHtml;
17273    },
17274
17275    /**
17276     * removes html characters from path and changes replaces localhost with server name
17277     *
17278     * @returns {string} path is the URL used for the source of the audio file
17279     */
17280    cleanPath = function(path){
17281        var server = checkServer();
17282
17283        path = path.replace(/\b&amp;\b/g, '&');
17284        path = path.replace('localhost', server);
17285
17286        return path;
17287    },
17288
17289    /**
17290     * determines server name and replaces localhost with corp (for development purposes)
17291     */
17292    checkServer = function() {
17293        var server = window.location.hostname;
17294
17295        if (server =="localhost")
17296            server = "corp.netsapiens.com";
17297
17298        return server;
17299    };
17300
17301    /**
17302     * public methods
17303     */
17304    return {
17305        build: buildPlayer,
17306        playButton: playButton,
17307        downloadButton: downloadButton,
17308        bind: bindUIActions
17309    };
17310
17311
17312})();
17313
17314/**
17315 * NETSAPIENS search and sort contacts module based on NSAgentSearch OMP-56
17316 * Used in Contacts dock.ctp and popout.ctp
17317 *
17318 * @requires jquery-1.8.3.mins.js
17319 * @requires NSPresenceSearchSort module
17320 * @returns {object} public methods
17321 */
17322var NSContactSearch = (function () {
17323    var sortTimerSet =false;
17324    /**
17325     * initialize NSAgentSearch
17326     */
17327    var init = function(actionsId, tableId) {
17328        // Get localStorage sort_type value
17329        var local = $.localStorage.get('contacts_sort_type_'+actionsId);
17330
17331        // Set sortType value if local falsy or undefined "Last Name", else local value
17332        var sortType = (!local || typeof local === "undefined") ? "Last Name" : local;
17333
17334        // Translate and display sortType
17335        var sortTypeText = $('#' + actionsId + ' .contacts-sortby-toggle').find('[data-contacts-sort-type="' + sortType + '"]').text();
17336        $('#' + actionsId + ' .contacts-current-sortby').text(sortTypeText);
17337
17338        _resetContacts(tableId);
17339        _sortContactsTable(actionsId, tableId);
17340        _bindUIActions(actionsId, tableId);
17341    },
17342
17343    /**
17344     * bind listeners for sortings, search string entry, and show/hide toggle of search field
17345     */
17346    _bindUIActions = function(actionsId, tableId) {
17347        log('NSContactSearch._bindUIActions');
17348
17349        var $inputBox = $('#' + actionsId + ' .contacts-searchbox-input');
17350        var $searchBox = $('#' + actionsId + ' .contacts-searchbox');
17351        var $searchDropToggle = $('#' + actionsId + ' .contacts-sort-dropdown .dropdown-toggle');
17352        var $searchBoxIcon = $('#' + actionsId + ' .contacts-searchbox-icon span');
17353
17354        var isOpen = false;
17355
17356        /* select sort option */
17357        $('#' + actionsId + ' .contacts-sortby-toggle a').on('click', function(){
17358            var sortTypeText = $(this).text();
17359            var sortType = $(this).data('contacts-sort-type');
17360            var sortOrder = $(this).data('contacts-sort-order');
17361            var previousSortType = $.localStorage.get('contacts_sort_type_'+actionsId);
17362            var previousSortOrder = $.localStorage.get('contacts_sort_order_'+actionsId);
17363
17364            if( previousSortType == sortType ) sortOrder = previousSortOrder == 'desc' ? 'asc' : 'desc'; /// reverse order when sorting by same type
17365
17366            $.localStorage.set('contacts_sort_type_'+actionsId,sortType);
17367            $.localStorage.set('contacts_sort_order_'+actionsId,sortOrder);
17368            $('#' + actionsId + ' .contacts-current-sortby').text(sortTypeText);
17369
17370            _sortContactsTable(actionsId, tableId);
17371
17372            return true;
17373        });
17374
17375        /* read search string after each key press */
17376        $inputBox.on('keyup', function() {
17377            _resetContacts();
17378        });
17379
17380        /* toggle the search field */
17381        $('#' + actionsId + ' .contacts-searchbox-icon').click(function(){
17382
17383            if(isOpen == false)
17384            {
17385                $searchBox.addClass('searchbox-open');
17386                $inputBox.focus();
17387                $searchDropToggle.fadeTo('fast', 0);
17388                $searchBoxIcon.removeClass('iconfont-search').addClass('iconfont-remove');
17389
17390                /* set height of scroll container so it doesn't shift when searching */
17391                $('.dock-contacts .scroll-container').css('height', function(){
17392                    return $(this).height();
17393                })
17394
17395                isOpen = true;
17396            }
17397            else
17398            {
17399                $searchBox.removeClass('searchbox-open');
17400                $inputBox.attr('placeholder', '')
17401                         .val('')
17402                         .focusout();
17403                $searchDropToggle.fadeTo('fast', 1);
17404                $searchBoxIcon.removeClass('iconfont-remove').addClass('iconfont-search');
17405                _resetContacts(undefined, true);
17406
17407                /* remove height of scroll container */
17408                $('.dock-contacts .scroll-container').css('height', '');
17409
17410                isOpen = false;
17411            }
17412        });
17413    },
17414
17415    /**
17416     * after receiving a socket update for contacts, check if user is currently searching their contacts so we don't resort/reset the table.
17417     * if they're not searching, sort the table
17418     */
17419    receivedSocketUpdate = function() {
17420        var actionsId = 'contacts-sort-search'; // updates only go to dock
17421        var searchOpen = $('.contacts-searchbox').hasClass('.searchbox-open');
17422        var sortType = $.localStorage.get('contacts_sort_type_'+actionsId);
17423        var sortOrder = $.localStorage.get('contacts_sort_order_'+actionsId);
17424
17425        //only sort from socket update if searchbox isn't open and sort type is Online, and a sort isn't already in progres
17426        if(!searchOpen && !sortTimerSet && sortType == 'Online')
17427		{
17428			sortTimerSet=true;
17429			sortTimer =setTimeout(function() {
17430				sortTimerSet=false;
17431			_sortContactsTable();
17432			}, 200);
17433		}
17434    },
17435
17436    changedGroup = function(actionsId) {
17437        _resetContacts();
17438        var filter = $('#' + actionsId + ' .contact-groups option:selected').val();
17439
17440        $.cookie('Dock_filter',filter,{expires : 365,path : '/'}); //brought cookie saving over from existing function in node.php
17441    },
17442
17443    /**
17444     * filter contacts using the search string.
17445     */
17446    _resetContacts = function(tableId, reset = false) {
17447        if( typeof tableId == 'undefined' ) tableId = 'contacts-table'; // default is dock contacts
17448
17449        $('#' + tableId + ' .contact-row').hide();
17450        var table = document.getElementById(tableId);
17451        var textfilter = $("#contacts-searchbox-input").val();
17452        if (reset) {
17453            //if it is resetting contacts from exit, need to keep current group selected
17454            var filter = $("#current-group").text();
17455            if ($("#current-group").attr("data-selected"))
17456                filter = $("#current-group").attr("data-selected");
17457        } else {
17458            //else should filter from all
17459            var filter = $("#contact-groups option:selected").val();
17460            if ($("#current-group").attr("data-selected"))
17461                filter = $("#current-group").attr("data-selected");
17462        }
17463
17464        var viewable = false;
17465
17466        for (var i = 0, row; row = table.rows[i]; i++) {
17467            var thisRow = $(row);
17468
17469            if (NSPresenceSearchSort.isItemViewable(filter, textfilter, thisRow)) {
17470                thisRow.show();
17471                viewable = true;
17472                $('.nonecreated-contacts').hide();
17473            }
17474        }
17475
17476        if (!viewable) {
17477            var message = $('.nonecreated-contacts h5');
17478
17479            if (textfilter) {
17480                message.text(_('No contacts matched your search for') + ' "' + textfilter + '".');
17481            }
17482            else {
17483                message.text(_('No contacts found.'));
17484            }
17485
17486            $('.nonecreated-contacts').show();
17487        }
17488    },
17489
17490    /**
17491     * sort contacts table based on selected sort option
17492     */
17493    _sortContactsTable = function(actionsId, tableId) {
17494        if( typeof actionsId == 'undefined' ) actionsId = 'contacts-sort-search'; // default is dock contacts
17495        if( typeof tableId == 'undefined' ) tableId = 'contacts-table'; // default is dock contacts
17496
17497        log('NSContactSearch._sortContactsTable');
17498
17499        var rows = $('#' + tableId + ' .contact-row').get();
17500        var sortType = $.localStorage.get('contacts_sort_type_'+actionsId);
17501        var sortOrder = $.localStorage.get('contacts_sort_order_'+actionsId);
17502
17503        if (sortType == null) sortType = "Extension";
17504        if (sortOrder == null) sortOrder = "asc";
17505
17506        rows = NSPresenceSearchSort.sortRows(rows, sortType, sortOrder);
17507
17508        $.each(rows, function(index, row) {
17509            $('#'+tableId).children('tbody').append(row);
17510        });
17511    };
17512
17513    return {
17514        init: init,
17515        receivedSocketUpdate: receivedSocketUpdate,
17516        changedGroup: changedGroup
17517    };
17518
17519})();
17520
17521/**
17522 * NETSAPIENS search or sort any contacts/agents table
17523 *
17524 * @requires jquery-1.8.3.mins.js
17525 * @returns {object} public methods
17526 */
17527var NSPresenceSearchSort = (function() {
17528
17529    /**
17530     * Determines if item (table row) should show up in search results
17531     *
17532     * @param {string} filter is the Contacts Group that was selected for filter with
17533     * @param {string} textfilter is the string of text that the user input to search
17534     * @param {object} thisRow is the row element being checked against the textfilter
17535     * @returns {boolean} true if the row is visible, false if it isn't
17536     */
17537    var isItemViewable = function(filter, textfilter, thisRow ) {
17538        var isViewable = false;
17539
17540        // this gets flipped from Offline to inactive somewhere, but they're analogous
17541        if (filter == 'inactive')
17542            filter = 'Offline';
17543
17544        if(typeof String.prototype.trim !== 'function') {
17545            String.prototype.trim = function() {
17546                return this.replace(/^\s+|\s+$/g, ''); //add IE support for trim()
17547            }
17548        }
17549
17550        filter = filter.trim();
17551
17552        if (filter=="All")
17553            isViewable = true;
17554        else if (filter=="My Contacts" )
17555        {
17556            if ((typeof(thisRow.attr("uid")) == "undefined" || thisRow.attr("uid")=="") && (thisRow.attr("shared")!="true" && thisRow.attr("shared")!="1"))
17557                isViewable = true;
17558        }
17559        else if (filter=="Favorites" )
17560        {
17561            if (typeof(thisRow.attr("fav")) != "undefined")
17562                if (thisRow.attr("fav")=="1")
17563                    isViewable = true;
17564        }
17565        else if (filter=="Coworkers" && thisRow.attr("uid")!="")
17566        {
17567            isViewable = true;
17568        }
17569        else if (filter=="Available")
17570        {
17571            if (thisRow.attr("presence") =="open")
17572                isViewable = true;
17573        }
17574        else if (filter=="Offline")
17575        {
17576            if (thisRow.attr("presence") =="inactive")
17577                isViewable = true;
17578        }
17579        else if (filter=="Busy" )
17580        {
17581            if (thisRow.attr("presence") =="inuse")
17582                isViewable = true;
17583            if (thisRow.attr("presence") =="closed")
17584                isViewable = true;
17585            if (thisRow.attr("presence") =="progressing")
17586                isViewable = true;
17587            if (thisRow.attr("presence") =="alerting")
17588                isViewable = true;
17589        }
17590        else if (filter == "Shared" )
17591        {
17592            if (thisRow.attr("shared")=="true" || thisRow.attr("shared")=="1")
17593                isViewable = true;
17594        }
17595        else
17596        {
17597            if (thisRow.attr("department") == filter) {
17598                isViewable = true;
17599            }
17600            if (thisRow.attr("site") == filter) {
17601                isViewable = true;
17602            }
17603        }
17604
17605        if (typeof(textfilter) != "undefined"
17606            && textfilter != "Enter a name or extension"
17607            && textfilter != "Enter a name or extension "
17608            && textfilter != ""
17609            && textfilter != " "
17610        ) {
17611            // only apply text filter if item is currently visible
17612            if (isViewable) {
17613                isViewable = _checkTextfilter(textfilter, thisRow);
17614            }
17615        }
17616
17617        return isViewable;
17618    },
17619
17620    /**
17621     * Compares and sorts entry based on presence, extension or name
17622     *
17623     * @param {object} rows contains all of the row elements to be sorted in the table
17624     * @param {string} sortType is the sort type parameter
17625     * @returns {object} rows is the sorted object of rows
17626     **/
17627    sortRows = function(rows, sortType, sortOrder) {
17628        log("NSPresenceSearchSort.sortRows");
17629
17630        if ("Online" == sortType) {
17631            rows = _sortByOnline(rows, sortOrder);
17632        } else if ("Extension" == sortType) {
17633            rows = _sortByExtension(rows, sortOrder);
17634        } else if ("First Name" == sortType) {
17635            rows = _sortByName(rows, sortOrder, "firstname");
17636        } else if ("Last Name" == sortType) {
17637            rows = _sortByName(rows, sortOrder, "lastname");
17638        }
17639
17640        return rows;
17641    },
17642
17643    /**
17644     * Compares row data to search string
17645     *
17646     * @param {string} textfilter is the string of text that the user input to search
17647     * @param {object} thisRow is the row element being checked against the textfilter
17648     * @returns {boolean} true if it matches, false if it doesn't
17649     */
17650    _checkTextfilter = function(textfilter,thisRow) {
17651        if (typeof(thisRow) == "undefined")
17652            return false;
17653        var name = thisRow.attr("name");
17654        var ext = thisRow.attr("uid");
17655
17656        if (typeof(name) != "undefined")
17657        {
17658            if (name.toLowerCase().indexOf(textfilter.toLowerCase()) !=-1)
17659                return true;
17660        }
17661        if(typeof(ext) != "undefined")
17662        {
17663            if (ext.indexOf(textfilter) !=-1)
17664                return true;
17665        }
17666        return false;
17667
17668    },
17669
17670    /**
17671     * Compares and sorts entry based on either first name or last name, depending on type parameter
17672     *
17673     * @param {object} rows contains all of the row elements to be sorted in the table
17674     * @returns {object} rows is the sorted object of rows
17675     **/
17676    _sortByOnline = function(rows, sortOrder) {
17677
17678        rows.sort(function(a, b) {
17679            var A = "";
17680            var B = "";
17681
17682            A = $(a).data("availindex");
17683            B = $(b).data("availindex");
17684
17685
17686            if(A === B)
17687            {
17688              if (A =="a" )
17689              {
17690                if ($(a).find('.onphone').length >0 || $(b).find('.onphone').length >0)
17691                {
17692                  if ($(a).find('.onphone').length >0 && $(b).find('.onphone').length ==0)
17693                    return 1;
17694                  else if ($(a).find('.onphone').length ==0 && $(b).find('.onphone').length >0)
17695                    return -1;
17696                }
17697
17698              }
17699
17700                var x = $(a).attr("firstname"),
17701                    y = $(b).attr("firstname");
17702
17703                return x < y ? -1 : x > y ? 1 : 0;
17704            }
17705
17706            if (A < B)
17707                return -1;
17708
17709            if (A > B)
17710                return 1;
17711
17712            return 0;
17713        });
17714
17715        return sortOrder == 'desc' ? rows.reverse() : rows;
17716    },
17717
17718    /**
17719     * Compares and sorts entry based on extension
17720     *
17721     * @param {object} rows contains all of the row elements to be sorted in the table
17722     * @returns {object} rows is the sorted object of rows
17723     **/
17724    _sortByExtension = function(rows, sortOrder) {
17725        rows.sort(function(a, b) {
17726            var A = $(a).attr('uid');
17727            var B = $(b).attr('uid');
17728
17729            A = A === undefined ? "" : A;
17730            B = B === undefined ? "" : B;
17731
17732            A = A.toString();
17733            B = B.toString();
17734
17735            if(A === B)
17736            {
17737                var x = $(a).attr('lastname');
17738                    y = $(b).attr('lastname');
17739
17740                x = x === undefined ? "" : x;
17741                y = y === undefined ? "" : y;
17742
17743                if(x && y) {
17744                  x = x.toString();
17745                  y = y.toString();
17746                }
17747
17748                return _naturalSort(x, y);
17749            }
17750
17751            // for when it doesn't have a user/extension
17752            if (A == "")
17753              return 1;
17754            if (B == "")
17755              return -1;
17756
17757            return _naturalSort(A, B);
17758        });
17759
17760        return sortOrder == 'desc' ? rows.reverse() : rows;
17761    },
17762
17763    /**
17764     * Compares and sorts entry based on either first name or last name, depending on type parameter
17765     *
17766     * @param {object} rows contains all of the row elements to be sorted in the table
17767     * @param {string} type is either firstname or lastname
17768     * @returns {object} rows is the sorted object of rows
17769     **/
17770    _sortByName = function(rows, sortOrder, type) {
17771        log("_sortByName");
17772        var secondSort = (type == "firstname" ? "lastname" : "firstname");
17773
17774        rows.sort(function(a, b) {
17775            var A = $(a).attr(type);
17776            var B = $(b).attr(type);
17777
17778            A = A === undefined ? "" : A;
17779            B = B === undefined ? "" : B;
17780
17781            // if first sort is equal, do secondary sort
17782            if (A == B)
17783            {
17784                var X = $(a).attr(secondSort),
17785                    Y = $(b).attr(secondSort);
17786
17787                return X < Y ? -1 : X > Y ? 1 : 0;
17788            }
17789            else
17790                return A < B ? -1 : A > B ? 1 : 0;
17791        });
17792
17793        return sortOrder == 'desc' ? rows.reverse() : rows;
17794    },
17795
17796    /**
17797     * Ordering of strings in alphabetical order, except that multi-digit numbers are ordered as a single character
17798     * http://stackoverflow.com/a/15479354
17799     *
17800     * @param {string} a - string to compare
17801     * @param {string} b - string to compare
17802     * @returns {int}
17803     **/
17804    _naturalSort = function(a, b) {
17805      var ax = [], bx = [];
17806
17807      a.replace(/(\d+)|(\D+)/g, function(_, $1, $2) { ax.push([$1 || Infinity, $2 || ""]) });
17808      b.replace(/(\d+)|(\D+)/g, function(_, $1, $2) { bx.push([$1 || Infinity, $2 || ""]) });
17809
17810      while(ax.length && bx.length) {
17811          var an = ax.shift();
17812          var bn = bx.shift();
17813          var nn = (an[0] - bn[0]) || an[1].localeCompare(bn[1]);
17814          if(nn) return nn;
17815      }
17816
17817      return ax.length - bx.length;
17818    };;
17819
17820    return {
17821        isItemViewable: isItemViewable,
17822        sortRows: sortRows
17823    };
17824
17825})();
17826
17827var NSRecurringTimeframeSettings = (function() {
17828    // Assuming _bindUIActions is meant to be used and not commented out
17829    var _bindUIActions = function() {
17830        // Rest of your code for _bindUIActions...
17831        $('.modal-nav-tabs a').off().click(function (e) {
17832            e.preventDefault();
17833            // $(this).tab('show'); // do not show on click all the time. needs to validate first
17834            return;
17835        });
17836    };
17837
17838    var init = function() {
17839        _bindUIActions();
17840    };
17841
17842    return {
17843        init: init
17844    };
17845})();
17846
17847/**
17848 * NSDomainSettings
17849 * Everything to do with the Edit Domain Settings (domains/write.ctp) including the Edit Settings button
17850 * in the domain message header.
17851 *
17852 * @return public entry to methods.
17853 **/
17854
17855var NSDomainSettings = (function() {
17856
17857    /**
17858     * local settings variables accessible across module methods
17859     */
17860    var s = {
17861        modalId: '#write-domain'
17862    };
17863
17864    var f = {
17865        modalId: '#cdr-scheduling'
17866    }
17867
17868    /**
17869     * initializes
17870     */
17871    var init = function() {
17872        //set modal to a pleasing height so it doesn't shift modal size when switching between tabs
17873        var maxHeight = parseFloat($(s.modalId + " .modal-body").css('maxHeight')),
17874            fixedHeight = 380; //approximate height of tallest tab in the modal
17875
17876        if (maxHeight > fixedHeight)
17877            maxHeight = fixedHeight;
17878
17879        $(s.modalId + " .modal-body").css('height', maxHeight + 'px');
17880        console.log("maxheight for domain is: " + maxHeight);
17881        _bindUIActions();
17882    },
17883
17884    /**
17885     * binds events
17886     */
17887    _bindUIActions = function() {
17888        //initialize navigation tabs
17889        ModalTabs.init();
17890    },
17891
17892    /**
17893     * toggle custom recording limits fields
17894     *
17895     **/
17896    customRecLimits = function() {
17897        if ($('#custom_limits').prop('checked'))
17898        {
17899            $("#defaultRecordingSection").hide();
17900            $("#domainRecordingSection").show();
17901        }
17902        else
17903        {
17904            $("#domainRecordingSection").hide();
17905            $("#defaultRecordingSection").show();
17906        }
17907    },
17908
17909    /**
17910     *
17911     * @param {object} btn is the DOM element object of the settings button
17912     **/
17913    clickedSettingsButton = function(btn) {
17914        log('clickedSettingsButton');
17915        var modalPath = $(btn).data('modal-path');
17916        var justHide = $(s.modalId).hasClass('in'); //check if settings modal is visible
17917
17918        //check if any modal is visible and hide it
17919        if(NSModal.isModalVisible())
17920            $('.modal').modal('hide');
17921
17922        //show and load domain settings modal if it wasn't visible already
17923        if(!justHide) {
17924            $(s.modalId).modal('show');
17925            loadModal(s.modalId, modalPath);
17926        }
17927
17928    },
17929
17930    // update domain description in the header after submitting
17931    updateHeaderDesc = function() {
17932        var newDesc = $('#DomainDescription').val();
17933
17934        $('.domain-description').text(newDesc);
17935    };
17936
17937    /**
17938     * public methods
17939     */
17940    return {
17941        init: init,
17942        customRecLimits: customRecLimits,
17943        clickedSettingsButton: clickedSettingsButton,
17944        updateHeaderDesc: updateHeaderDesc
17945    };
17946
17947
17948})();
17949
17950/**		/**
17951 * NSDomainSettings
17952 * Everything to do with the Edit Domain Settings (domains/write.ctp) including the Edit Settings button
17953 * in the domain message header.
17954 *
17955 * @requires dateformat
17956 * @return public entry to methods.
17957 **/
17958var NSCdrScheduleSettings = (function() {
17959    /**
17960     * local settings variables accessible across module methods
17961     */
17962    var s = {
17963        modalId: '#write-domain'
17964    };
17965    var f = {
17966        modalId: '#cdr-scheduling'
17967    }
17968    /**
17969     * initializes
17970     */
17971    var init = function() {
17972        //newDatePicker(0);
17973        // console.log("in the init function for NSCdrScheduleSettings");
17974        //set modal to a pleasing height so it doesn't shift modal size when switching between tabs
17975        var maxHeight = parseFloat($(f.modalId + " .modal-body").css('maxHeight'));
17976            fixedHeight = 450; //approximate height of tallest tab in the modal
17977        if (maxHeight > fixedHeight)
17978            maxHeight = fixedHeight;
17979        $(f.modalId + " .modal-body").css('height', maxHeight + 'px');
17980        _bindUIActions();
17981    },
17982    /**
17983     * binds events
17984     */
17985    _bindUIActions = function() {
17986        //initialize navigation tabs
17987        //console.log("before modaltabs init");
17988
17989        ModalTabs.init();
17990    },
17991
17992    //upon change of the calendar, disable or enable the "Also run this export immediately"
17993    startTimeChange = function(value){
17994      var date_time = document.getElementById('next_run_time').getAttribute("date_time");
17995
17996      var valueDate = new Date(value);
17997      //null out the run immediately if the date is in the future
17998      if(valueDate <= new Date()){
17999        document.getElementById("CdrscheduleRunImmediately").disabled = true;
18000        $('#CdrscheduleRunImmediately').prop('checked', false);
18001      }
18002      else{
18003        document.getElementById("CdrscheduleRunImmediately").disabled = false;
18004      }
18005    },
18006
18007    capturePeriodChange = function(value){
18008      if (value == "1 month" || value == "3 months" || value == "6 months"){
18009        //if month is chosen, need to block out the 28-31st
18010        var array = [29,30,31];
18011        if ($(".cdrScheduleCalendar").attr('data-time-format') == 'HH:mm') {
18012          var userTimeFormat = 'HH:mm';
18013        } else {
18014          var userTimeFormat = 'hh:mm tt';
18015        }
18016        $(".cdrScheduleCalendar").datetimepicker("destroy");
18017        $('.cdrScheduleCalendar').datetimepicker({
18018      		showMinute: true,
18019      		showHour: true,
18020          //dateFormat: 'mm/dd/yy', //here
18021          dateFormat: 'dd/mm/yyyy', //here
18022          timeFormat: userTimeFormat,
18023      		//timeFormat: this.getAttribute('data-time-format'),
18024      		onSelect: function(){
18025      			var time = document.getElementById(this.id);
18026      			$("[id=" + this.id + "]").val( NSCdrScheduleSettings.formatDate(this.value));
18027      		},
18028      		beforeShowDay: function(date){
18029      				//var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
18030      				var number = date.getDate();
18031      				// console.log(number);
18032      				return [ array.indexOf(number) == -1 ];
18033      		}
18034      	}).datetimepicker('setDate', (document.getElementsByClassName("cdrScheduleCalendar")[0].value));
18035      } else { //reset the datetimepicker back to regular
18036        if ($(".cdrScheduleCalendar").attr('data-time-format') == 'HH:mm') {
18037          var userTimeFormat = 'HH:mm';
18038        } else {
18039          var userTimeFormat = 'hh:mm tt';
18040        }
18041        $(".cdrScheduleCalendar").datetimepicker("destroy");
18042        $('.cdrScheduleCalendar').datetimepicker({
18043          showMinute: true,
18044          showHour: true,
18045          //dateFormat: 'mm/dd/yy',
18046          dateFormat: 'dd/mm/yyyy', //here
18047          timeFormat: userTimeFormat,
18048      		//timeFormat: this.getAttribute('data-time-format'),
18049          onSelect: function(){
18050            var time = document.getElementById(this.id);
18051            $("[id=" + this.id + "]").val( NSCdrScheduleSettings.formatDate(this.value));
18052          }
18053        }).datetimepicker('setDate', (document.getElementsByClassName("cdrScheduleCalendar2")[0].value));
18054      }
18055    },
18056
18057    cdrFormatChange = function(value){
18058      if (value == "Advanced") {
18059        $(".format_note").text(_("This format exports with the more common fields of a call's history")+".");
18060      } else if (value == "Standard") {
18061        $(".format_note").text(_("This format exports with all the fields of a call's history")+".");
18062      } else {
18063        $(".format_note").text(_("This format exports with the fields used in the previous call history export")+".");
18064      }
18065
18066    },
18067
18068    checkBoxChange = function(value){
18069      if(value == true){
18070        document.getElementById('CdrscheduleEmail').className += " validate[required]";
18071
18072      }
18073      else{
18074        document.getElementById('CdrscheduleEmail').className -= " validate[required]";
18075      }
18076    },
18077
18078    formatDate = function(date) {
18079      date = new Date(date);
18080      var monthNames = [
18081        "01", "02", "03",
18082        "04", "05", "06", "07",
18083        "08", "09", "10",
18084        "11", "12"
18085      ];
18086
18087      var day = date.getDate();
18088      var monthIndex = date.getMonth();
18089      var year = date.getFullYear();
18090      var day = (day<10?'0':'') + day;
18091      var hour = (date.getHours()<10?'0':'') + date.getHours();
18092      var minutes = (date.getMinutes()<10?'0':'') + date.getMinutes();
18093
18094      //return year + '-' + monthNames[monthIndex] + '-' + day + ' ' + hour + ':' + minutes;
18095      return monthNames[monthIndex] + '/' + day + '/' + year + ' ' + hour + ':' + minutes;
18096      //return monthNames[monthIndex] + '/' + day + '/' + year;
18097    },
18098
18099    swapDate = function(date) {
18100      //console.log("this is input in swapDate: " + date);
18101      dateCopy = date;
18102      date = new Date(date);//
18103
18104      //if it was invalid date then it means that the date was already flipped, just return.
18105      if (date == 'Invalid Date') {
18106        //console.log("was invalid date");
18107        return dateCopy;
18108      }
18109      //console.log("this is date in swapDate: " + date);
18110      var monthNames = [
18111        "01", "02", "03",
18112        "04", "05", "06", "07",
18113        "08", "09", "10",
18114        "11", "12"
18115      ];
18116
18117      var day = date.getDate();
18118      var monthIndex = date.getMonth();
18119      var year = date.getFullYear();
18120      var day = (day<10?'0':'') + day;
18121      var hour = (date.getHours()<10?'0':'') + date.getHours();
18122      var minutes = (date.getMinutes()<10?'0':'') + date.getMinutes();
18123
18124      //return year + '-' + monthNames[monthIndex] + '-' + day + ' ' + hour + ':' + minutes;
18125      return day + '/' + monthNames[monthIndex] + '/' + year + ' ' + hour + ':' + minutes;
18126      //return monthNames[monthIndex] + '/' + day + '/' + year;
18127    },
18128
18129    extraExportArguments = function(value){
18130      //logic for SFTP and FTP changes in modal
18131      if(value == "sftp" || value == "ftp upload"){
18132        $(".exportCredentials").show(600);
18133        document.getElementById('CdrscheduleEmail').className -= " validate[required]";
18134      }
18135      else{
18136        $(".exportCredentials").hide(600);
18137      }
18138      //logic for email sepcific changes in modal
18139      if(value == "email"){
18140        document.getElementById('send_email_original').checked = true; //TODO it is here
18141        document.getElementById('CdrscheduleEmail').className += " validate[required]";
18142        $( "#send_email_original" ).hide(); //enable the checkbox again
18143        $( "#send_email_disabled" ).show(); //enable the checkbox again
18144      }
18145      else{
18146        document.getElementById('CdrscheduleEmail').classList.remove("validate[required]");
18147        $( "#CdrscheduleSendEmail" ).prop( "disabled", false ); //enable the checkbox again
18148        $( "#send_email_original" ).show(); //enable the checkbox again
18149        $( "#send_email_disabled" ).hide(); //enable the checkbox again
18150      }
18151    },
18152
18153    checkEmailNotification = function(value){
18154      //if value contains some letters (not blank or all spaces), then check, else
18155      //will uncheck
18156      if(value.match(/[a-z]/i)){
18157        document.getElementById('send_email_original').checked = true;
18158      } else {
18159        document.getElementById('send_email_original').checked = false;
18160      }
18161    },
18162
18163    /**
18164     * toggle custom recording limits fields
18165     *
18166     **/
18167    customRecLimits = function() {
18168        console.log('in customRecLimits after change');
18169
18170        $("#extraExportFields").show();
18171        /*
18172        if ($('#export_method').attr != "")
18173        {
18174            for(var propertyName in $('#export_method')){
18175              console.log(propertyName);
18176            }
18177            console.log('export method value was set to: ' + $('#export_method'));
18178            $("#defaultRecordingSection").hide();
18179            $("#extraExportFields").show();
18180        }
18181        else
18182        {
18183            $("#extraExportFields").hide();
18184            $("#defaultRecordingSection").show();
18185        }
18186        */
18187    },
18188    /**
18189     *
18190     * @param {object} btn is the DOM element object of the settings button
18191     **/
18192    clickedSettingsButton = function(btn) {
18193        log('clickedSettingsButton');
18194        var modalPath = $(btn).data('modal-path');
18195        var justHide = $(s.modalId).hasClass('in'); //check if settings modal is visible
18196        //check if any modal is visible and hide it
18197        if(NSModal.isModalVisible())
18198            $('.modal').modal('hide');
18199        //show and load domain settings modal if it wasn't visible already
18200        if(!justHide) {
18201            $(s.modalId).modal('show');
18202            loadModal(s.modalId, modalPath);
18203        }
18204    },
18205    // update domain description in the header after submitting
18206    updateHeaderDesc = function() {
18207        var newDesc = $('#DomainDescription').val();
18208        $('.domain-description').text(newDesc);
18209    };
18210    /**
18211     * public methods
18212     */
18213    return {
18214        init: init,
18215        customRecLimits: customRecLimits,
18216        clickedSettingsButton: clickedSettingsButton,
18217        extraExportArguments: extraExportArguments,
18218        checkEmailNotification: checkEmailNotification,
18219        updateHeaderDesc: updateHeaderDesc,
18220        startTimeChange: startTimeChange,
18221        capturePeriodChange: capturePeriodChange,
18222        formatDate: formatDate,
18223        swapDate: swapDate,
18224        checkBoxChange: checkBoxChange,
18225        cdrFormatChange: cdrFormatChange
18226    };
18227})();
18228
18229
18230
18231/**
18232 * ModalTabs
18233 * This module initializes tabs in a modal by customizing behavior
18234 * Requires tab markup to exist before initializing. See domains/write.ctp for example
18235 *
18236 * @return public entry to init method.
18237 **/
18238
18239var ModalTabs = (function() {
18240
18241    /**
18242     * local settings variables accessible across module methods
18243     */
18244    var s = {
18245        $form: null,
18246        isAdd: false
18247    };
18248
18249    var f = {
18250        $form: null,
18251        isAdd: false
18252    };
18253
18254
18255    /**
18256     * initializes
18257     * @param {string} id is the id of the form that must be validated before switching tabs
18258     * @param {boolean}
18259     */
18260    var init = function() {
18261        s.$form = $('.modal.in').find('form');
18262
18263        //determine if next and back buttons should be shown
18264        if($('.modal-tabs-btn-next').length) {
18265            s.isAdd = true;
18266        }
18267
18268        f.$form = $('.modal.in').find('form');
18269        //determine if next and back buttons should be shown
18270        if($('.modal-tabs-btn-next-cdr').length)
18271            f.isAdd = true;
18272
18273        _bindUIActions();
18274    },
18275
18276    /**
18277     * binds events
18278     */
18279    _bindUIActions = function() {
18280        //prevent default tab behavior by removing
18281        $('.modal').off('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]');
18282
18283        //manually handle tab click events for validation
18284        $('.modal-nav-tabs a').off().click(function (e) {
18285            e.preventDefault();
18286
18287            // console.log('clicked modal nav tab');
18288
18289            if (s.$form.length == 0)
18290            {
18291              console.log("Form invalid, re running init");
18292              init();
18293            }
18294            //validate form before showing another tab
18295            if(s.$form.validationEngine('validate'))
18296                $(this).tab('show');
18297        });
18298
18299        // if adding, show "next" and "back" buttons. bind behavior accordingly
18300        if(s.isAdd) {
18301            $('.modal-tabs-btn-next').on('click', function(){
18302                //validate form before showing next tab
18303                if (s.$form.length == 0)
18304                {
18305                  console.log("Form invalid, re running init");
18306                  init();
18307                }
18308
18309
18310                // if it is domain add, validate the address in the form
18311                if ($('.address_line_1_domain_add').is(":visible")) {
18312                    // set IP address of where the user is at here
18313                    let public_ip;
18314                    $.get("/portal/publicip.php", function(response) {
18315                        public_ip = response.ip;
18316                        $.post( '/portal/inventory/validateAddress2', $( "#write-domain-form" ).serialize() )
18317                            .done(function( data ) {
18318                                var json = JSON.parse(data);
18319
18320                                if (json['address']['valid'] == true) {
18321                                    // address was valid
18322                                    // set save to be enabled
18323                                    // $('.saveBtn').prop('disabled', false);
18324
18325                                    // stringify the json of json['address']['standardized'] and set it to a value above
18326                                    var standardizedString = JSON.stringify(json['address']['standardized']);
18327
18328                                    // set standardized in the form, hidden field but still used in database
18329                                    document.getElementById("stardardized").value = standardizedString;
18330
18331                                    // set carrier in the form, hidden field but still used in database
18332                                    var carrier = json['address']['carrier'];
18333                                    document.getElementById("carrier").value = carrier;
18334
18335                                    document.getElementById("public_ip").value = public_ip;
18336
18337                                    $("#validate-address-message").addClass("text-success").text("<?php __('The address has been confirmed and any suggested changes have been applied.'); ?>");
18338
18339                                    jsFlash(_("Address was valid!"), "success");
18340                                    if(s.$form.validationEngine('validate'))
18341                                        $('.modal-nav-tabs .active').next('li:visible').children('a').tab('show');
18342
18343                                } else {
18344                                    // address was not valid\
18345                                    // $('.saveBtn').prop('disabled', true);
18346
18347                                    // $("#validate-address-message").text("<?php __('The entered address could not be found. Please check the configuration and try again.'); ?>")
18348                                    // $("#validate-address-message").addClass("text-error");
18349
18350                                    // show the address is not valid alert
18351                                    jsFlash(_("Address was not valid!"), "error");
18352
18353                                }
18354
18355                                // $('.valBtn').button('reset');
18356                                // $("#validate-address-message").removeClass('text-success text-error');
18357                            });
18358
18359                    }, "json").fail(function(data) {
18360                      setTimeout(function() {
18361                        $('.valBtn').button('reset');
18362                        $('.valBtn').prop('disabled', false);
18363                        $("#validate-address-message").text(_("Unable to validate address, please check browser plug-ins and setting."));
18364                        $("#validate-address-message").addClass("text-error");
18365                      },1000);
18366                    }); // end of getting ip address
18367
18368
18369                } else {
18370                    if(s.$form.validationEngine('validate'))
18371                        $('.modal-nav-tabs .active').next('li:visible').children('a').tab('show');
18372                }
18373
18374            });
18375
18376            $('.modal-tabs-btn-back').on('click', function(){
18377                //validate form before showing previous tab
18378                if(s.$form.validationEngine('validate'))
18379                    $('.modal-nav-tabs .active').prev('li').children('a').tab('show');
18380            });
18381
18382            $('.modal-nav-tabs a').on('shown',  function (e) {
18383
18384                var $currentTab = $(this).parent(),
18385                    $nextBtn = $('.modal-tabs-btn-next'),
18386                    $backBtn = $('.modal-tabs-btn-back'),
18387                    $saveBtn = $('.modal-tabs-btn-save');
18388
18389                // show and hide 'add' and 'back' buttons if adding
18390                // hide 'next' button if on the final tab. show save button instead.
18391                if($currentTab.is(':last-child'))
18392                {
18393                    $nextBtn.hide();
18394                    $saveBtn.show();
18395                }
18396                else
18397                {
18398                    $nextBtn.show();
18399                    $saveBtn.hide();
18400                }
18401
18402                // hide 'back' button if on the first tab.
18403                if($currentTab.is(':first-child'))
18404                    $backBtn.hide();
18405                else
18406                    $backBtn.show();
18407
18408            });
18409        }
18410
18411        if(f.isAdd){
18412          $('.modal-tabs-btn-next-cdr').on('click', function(){
18413              //$('#cdr-scheduling-edit-tabs a[href="#profile"]').tab('show');
18414
18415              //return;
18416              //validate form before showing next tab
18417              if (f.$form.length == 0)
18418              {
18419                console.log("f.$form.length == 0");
18420                init();
18421              }
18422              if(f.$form.validationEngine('validate')) //ajax 200 error
18423                $('.modal-nav-tabs .active').next('li:visible').children('a').tab('show');
18424          });
18425          //when clicking on back button
18426          $('.modal-tabs-btn-back-cdr').on('click', function(){
18427              // console.log("f is add and i clicked on back");
18428              //validate form before showing previous tab
18429              //if(f.$form.validationEngine('validate'))
18430                  $('.modal-nav-tabs .active').prev('li').children('a').tab('show');
18431          });
18432
18433          $('.modal-nav-tabs a').on('shown',  function (e) {
18434              var $currentTab = $(this).parent(),
18435                  $nextBtn = $('.modal-tabs-btn-next-cdr'),
18436                  $backBtn = $('.modal-tabs-btn-back-cdr'),
18437                  $saveBtn = $('.modal-tabs-btn-save');
18438                  $title = $('#modal-title');
18439
18440              // show and hide 'add' and 'back' buttons if adding
18441              // hide 'next' button if on the final tab. show save button instead.
18442              if($currentTab.is(':last-child'))
18443              {
18444                  $nextBtn.hide();
18445                  $saveBtn.show();
18446              }
18447              else
18448              {
18449                  $nextBtn.show();
18450                  if(!$title.text().includes("Edit")){
18451                    $saveBtn.hide(); //should not affect anything but cdrschedule, but if it does find a different way CDR-149
18452                  }
18453              }
18454
18455              // hide 'back' button if on the first tab.
18456              if($currentTab.is(':first-child'))
18457                  $backBtn.hide();
18458              else
18459                  $backBtn.show();
18460
18461          });
18462
18463        }
18464    };
18465
18466    /**
18467     * public methods
18468     */
18469    return {
18470        init: init
18471    };
18472
18473
18474})();
18475
18476/**
18477 * ModuleTemplate
18478 * This module is a template
18479 *
18480 *
18481 * @return public entry to init method.
18482 **/
18483
18484var ModuleTemplate = (function() {
18485
18486    /**
18487     * local settings variables accessible across module methods
18488     */
18489    var s = {
18490
18491    };
18492
18493    /**
18494     * initializes
18495     */
18496    var init = function() {
18497        bindUIActions();
18498    },
18499
18500    /**
18501     * binds events
18502     */
18503    bindUIActions = function() {
18504
18505    };
18506
18507    /**
18508     * public methods
18509     */
18510    return {
18511        init: init
18512    };
18513
18514
18515})();
18516
18517�/*******************************************************************************
18518 * global variables and options
18519 *******************************************************************************
18520 */
18521
18522//Defines String.format to behave similar to php's sprintf()
18523//Used for localization string substitution purposes
18524//Ex. String.format('{0} is dead, but {1} is alive! {0} {2}', 'ASP', 'ASP.NET'); => ASP is dead, but ASP.NET is alive! ASP {2}
18525//This function may not be necessary. the translate function _ appears to already do this
18526if (!String.format) {
18527    String.format = function (format) {
18528        var args = Array.prototype.slice.call(arguments, 1);
18529        return format.replace(/{(\d+)}/g, function (match, number) {
18530            return typeof args[number] != 'undefined'
18531                ? args[number]
18532                : match
18533                ;
18534        });
18535    };
18536}
18537
18538if (!String.prototype.includes) {
18539    String.prototype.includes = function (search, start) {
18540        if (typeof start !== 'number') {
18541            start = 0;
18542        }
18543
18544        if (start + search.length > this.length) {
18545            return false;
18546        } else {
18547            return this.indexOf(search, start) !== -1;
18548        }
18549    };
18550}
18551
18552if (!String.prototype.startsWith) {
18553    String.prototype.startsWith = function (searchString, position) {
18554        return this.substr(position || 0, searchString.length) === searchString;
18555    };
18556}
18557
18558//Converts from moment.js format to datepicker format
18559//keys need to be arranged in order of greatest number of characters to least ex. 'ddd' before 'dd'
18560var datepickerConvertionFormats = {
18561    Day: {Do: 'd', DD: 'dd', D: 'd', dddd: 'DD', ddd: 'D'},
18562    Month: {MMMM: 'MM', MMM: 'M', MM: 'mm', M: 'm'},
18563    Year: {YYYY: 'yy', YY: 'y'},
18564    Abbrev: {A: 'tt', a: 'tt'}
18565};
18566
18567// global var for referencing contacts popout window
18568var contactsPopoutWindow;
18569
18570// global var for tracking current state of the modal
18571var modalState = 'closed';
18572var modalTimer;
18573
18574// ping webphone
18575if (typeof sub_user !== 'undefined') localStorage.setItem('webphone_present_' + sub_user, null);
18576localStorage.setItem('webphone_present', null); // webphone backwards compatibility
18577if (typeof sub_user !== 'undefined') localStorage.removeItem('webphone_present_' + sub_user);
18578localStorage.removeItem('webphone_present'); // webphone backwards compatibility
18579
18580// global scrollTop cursor, used for smoothed modal behavior
18581var scrollTop;
18582
18583if (typeof jsdebug === 'undefined') {
18584    jsdebug = getJsDebug();
18585}
18586
18587if (typeof openModalId === 'undefined') {
18588    openModalId = null;
18589}
18590
18591if (typeof console === "undefined" || typeof console.log === "undefined") {
18592    console = {};
18593    console.log = function () {
18594    };
18595}
18596
18597if (!String.prototype.trim) {
18598    String.prototype.trim = function () {
18599        return this.replace(/^\s+|\s+$/g, '');
18600    };
18601}
18602
18603if (!String.prototype.isNumber) {
18604    String.prototype.isNumber = function () {
18605        return !isNaN(parseFloat(this)) && isFinite(this);
18606    };
18607}
18608
18609//xhr requests object to keep track of existing requests
18610xhrRequests = {};
18611
18612$.xhrPool = [];
18613
18614$.xhrPool.abortAll = function () {
18615    var countAbort = 0;
18616    $(this).each(function (idx, jqXHR) {
18617        // log(idx);
18618        countAbort++;
18619        jqXHR.abort();
18620
18621    });
18622    if (countAbort)
18623        log("Aborted " + countAbort + " ajax requests");
18624    $.xhrPool = [];
18625};
18626
18627$.ajaxSetup({
18628    beforeSend: function (jqXHR) {
18629        $.xhrPool.push(jqXHR);
18630    },
18631    complete: function (jqXHR) {
18632        var index = $.inArray(jqXHR, $.xhrPool);
18633        if (index > -1) {
18634            $.xhrPool.splice(index, 1);
18635        }
18636    }
18637});
18638
18639
18640/*******************************************************************************
18641 * document load
18642 *******************************************************************************
18643 */
18644
18645// basic functions on document load
18646$(function () {
18647    $.ajaxSetup({cache: false});
18648
18649    log('running basic scripts.js functions');
18650    initFlashMessage(6000, 800);
18651    radioSlide();
18652    greetingFade();
18653    msgFade();
18654    newDatePicker(0);
18655    dynamicDateField();
18656    attachValidation();
18657    initTooltips();
18658    initConfirmCall();
18659    initDownloadFile();
18660    showScheduledExports();
18661});
18662
18663//condense navigation for smaller screens
18664//$(function() {
18665//  $('.condense').click(function(){
18666//      $('.nav-text').toggle();
18667//  })
18668//});
18669
18670$(function () {
18671    log('adding xhr abort click events');
18672    $('body').on('click', '.nav-link', function () {
18673        if (typeof $.xhrPool != 'undefined') {
18674            try {
18675                $.xhrPool.abortAll();
18676            } catch (e) {
18677
18678            }
18679
18680        }
18681    });
18682    $('body').on('click', '.header-link', function () {
18683        if (typeof $.xhrPool != 'undefined') {
18684            try {
18685                $.xhrPool.abortAll();
18686            } catch (e) {
18687
18688            }
18689
18690        }
18691    });
18692});
18693
18694//bind print-div buttons
18695$(function () {
18696    log('adding print button listeners');
18697    $('body').off('click.print').on('click.print', '.print-div', function () {
18698        var divId = $(this).data('target');
18699
18700        printDiv(divId);
18701    });
18702});
18703
18704//bind print-report buttons
18705$(function () {
18706    log('adding print report button listeners');
18707    $('body').off('click.print').on('click.print', '.print-report', function () {
18708
18709        printReport();
18710    });
18711});
18712
18713//initialize sticky table headers
18714$(function () {
18715    log('adding sticky table header');
18716    if ($('#domain-message').length)
18717        $('.fixed-table-header').stickyTableHeaders({fixedOffset: $('#domain-message')});
18718    else
18719        $('.fixed-table-header').stickyTableHeaders();
18720});
18721
18722// modal event listeners
18723$(function () {
18724    log('adding modal event listeners');
18725    $('.modal')
18726        .off('show.modal').on('show.modal', function (e) {
18727        //make sure it's a modal show event
18728        if ($(e.target).hasClass("modal")) {
18729            log('modal "show" event triggered');
18730            var $modal = $(this);
18731            openModalId = $modal[0].id;
18732
18733            modalResize($modal);
18734
18735            //$('[class*="helpsy"]').tooltip('hide');
18736            $('.helpsy').tooltip('hide');
18737            scrollTop = $(window).scrollTop();
18738            bodyCss = {
18739                overflowY: ($('body').height() > $(window).height() ? 'scroll' : 'auto'),
18740                position: 'fixed',
18741                width: '100%',
18742                top: -1 * scrollTop
18743            };
18744            $('body').css(bodyCss); // hax to lock body scrolling when a modal is open
18745        }
18746    })
18747        .off('shown.modal').on('shown.modal', function (e) {
18748        //make sure it's a modal show event
18749        if ($(e.target).hasClass("modal")) {
18750            log('modal "shown" event triggered');
18751            var $modal = $(this);
18752
18753            modalResize($modal);
18754        }
18755    })
18756        .off('hidden.modal').on('hidden.modal', function (e) {
18757        //make sure it's a modal show event
18758        if ($(e.target).hasClass("modal")) {
18759            log('modal "hidden" event triggered');
18760
18761            openModalId = '';
18762
18763            log(openModalId);
18764
18765            $('body').css({
18766                overflowY: 'auto',
18767                position: 'static',
18768                width: 'auto'
18769            });
18770            $(window).scrollTop(scrollTop);
18771        }
18772    });
18773
18774    //listen for resize event on modal.
18775    //manual trigger: use $(this).parents('.modal').trigger('resize') when working within a modal
18776    $('.modal').off('resize.modal').on('resize.modal', function (e) {
18777        //log('modal "resize" event triggered');
18778        var $modal = $(this);
18779
18780        modalResize($modal);
18781    });
18782
18783    $(window).resize(function () {
18784
18785        if (openModalId) {
18786            log(openModalId);
18787            modalResize($('#' + openModalId));
18788        }
18789
18790    });
18791
18792});
18793
18794//show and hide application autocomplete fields in DID application select
18795$(function () {
18796    log('adding DID application select events');
18797    $('#PhonenumberApplication').change(function () {
18798        var val = $(this).val();
18799        //log(val);
18800        //log("xxxxx"+typeof $('#PhonenumberTimeframes'));
18801
18802        var isTimeFrame = false;
18803        if ($('#PhonenumberTimeframes').prop('checked'))
18804            isTimeFrame = true;
18805
18806        if ($('div[id^="find-"]').is(':visible')) {
18807
18808            if (isTimeFrame)
18809                $('div[id^="find-"]:visible').hide();
18810            else
18811                $('div[id^="find-"]:visible').animate({
18812                    opacity: "hide"
18813                }, function () {
18814                    //log('showing' +val);
18815
18816                    if (!isTimeFrame) {
18817                        //log("checked false");
18818                        $('#find-' + val).animate({
18819                            opacity: "show",
18820                        }, {
18821                            progress: function () {
18822                                modalResize($(this).parents('.modal'));
18823                            }
18824                        });
18825                    }
18826                });
18827
18828        } else {
18829            //log("ELSE path");
18830            if (!isTimeFrame) {
18831                $('#find-' + val).animate({
18832                    height: "show",
18833                    opacity: "show"
18834                }, {
18835                    progress: function () {
18836                        modalResize($(this).parents('.modal'));
18837                    }
18838                });
18839            }
18840
18841        }
18842
18843        if (isTimeFrame) {
18844            $('.treatmentBox').hide();
18845            $('.tzCapable').animate({
18846                height: "show", opacity: "show"
18847            }, {
18848                progress: function () {
18849                    modalResize($(this).parents('.modal'));
18850                }
18851            });
18852            //console.log("timeframes is on");
18853
18854        } else {
18855            $('#app-details .tzCapable').hide();
18856            $('.tzCapable.accordion-group').animate({
18857                height: "hide", opacity: "hide"
18858            }, {
18859                progress: function () {
18860                    modalResize($(this).parents('.modal'));
18861                }
18862            });
18863            $('.treatmentBox').fadeIn();
18864            //console.log("timeframes is off");
18865        }
18866
18867        if ($(this).val() == 'trunk') {
18868            //log("is trunk");
18869            //log($('#trunk-choices-dd').data('domain'));
18870            //log($('#domain-choices').val());
18871            //log($('#trunk-choices-dd option').length);
18872
18873            $('#trunk-choices').hide();
18874            $('#trunk-choices-dd').hide();
18875
18876            if (($('#trunk-choices-dd option').length > 0) && ($('#trunk-choices-dd').data('domain') == $('#domain-choices').val())) {
18877
18878                $('#trunk-choices').show();
18879                $('#trunk-choices-dd').show();
18880            } else {
18881                log("looking up trunk");
18882                $('#trunk-choices').show();
18883                $('#trunk-choices').prop("disabled", true);
18884                $('#trunk-choices').val( 'Finding SIP Trunks....');
18885                $.getJSON('/portal/siptrunks/listTrunks/' + $('#domain-choices').val(), function (data) {
18886                    $('#trunk-choices').hide();
18887                    $('#trunk-choices-dd').empty();
18888                    $('#trunk-choices-dd').show();
18889                    //log(data);
18890
18891                    $('#trunk-choices-dd').append("<option value=\"\">Please select SIP Trunk</option>");
18892
18893                    $.each(data.trunks, function (key, val) {
18894                        var selected = "";
18895                        $('#trunk-choices-dd').append("<option value='" + val + "' " + selected + ">" + val + "</option>");
18896                    });
18897
18898
18899                });
18900            }
18901
18902
18903        } else if ($(this).val() == 'route') {
18904            //log("is route");
18905            //log($('#route-choices-dd').data('domain'));
18906            //log($('#domain-choices').val());
18907
18908            $('#route-choices').hide();
18909            $('#route-choices-dd').hide();
18910
18911            if (($('#trunk-choices-dd').children('option').length > 0) && ($('#trunk-choices-dd').data('domain') == $('#domain-choices').val())) {
18912                $('#route-choices').hide();
18913                $('#route-choices-dd').show();
18914            } else {
18915                log("looking up routes");
18916                $('#route-choices').show();
18917                $('#route-choices').prop("disabled", true);
18918                $('#route-choices').val( 'Finding Route Profiles....');
18919                $.getJSON('/portal/routeprofiles/listTrunks/' + $('#domain-choices').val() + "", function (data) {
18920                    $('#route-choices').hide();
18921                    $('#route-choices-dd').empty();
18922                    $('#route-choices-dd').show();
18923                    //log(data);
18924
18925                    $('#route-choices-dd').append("<option value=\"\">Please select Route Profile</option>");
18926
18927                    $.each(data.trunks, function (key, val) {
18928                        var selected = "";
18929                        $('#route-choices-dd').append("<option value='" + val + "' " + selected + ">" + val + "</option>");
18930                    });
18931
18932
18933                });
18934            }
18935
18936
18937        } else if ($(this).val() == 'user') {
18938
18939            log($('#user-choices'));
18940            log($('#user-choices').length);
18941
18942
18943        }
18944
18945        //if ($(this).val() =='user')
18946        //  $('.tzCapable').show();
18947        //else
18948        //$('.tzCapable').hide();
18949
18950
18951    });
18952});
18953
18954//custom file input display field
18955$(function () {
18956    log('adding file location field listener');
18957    $('input:file').change(function () {
18958        var fileLocation = $(this).val();
18959        $('.file-location').val(fileLocation).blur();
18960    });
18961});
18962
18963//timepicker
18964//$(function() {
18965//  var i=0;
18966//  for (i=0;i<=6;i++) {
18967//    var timeFrom = $('input#from-timepicker-' + i);
18968//    var timeTo = $('input#to-timepicker-' + i);
18969//    if (typeof timeFrom=="undefined")
18970//        continue;
18971//    if(typeof timeFrom.timepicker != 'function') {
18972//        continue;
18973//    }
18974//    timeFrom.timepicker({
18975//      ampm: true,
18976//      timeFormat: "h:mm tt",
18977//      hourGrid: 4,
18978//      minuteGrid: 10,
18979//      hour: 0,
18980//      minute: 0
18981//    });
18982//    timeTo.timepicker({
18983//      ampm: true,
18984//      timeFormat: "h:mm tt",
18985//      hourGrid: 4,
18986//      minuteGrid: 10,
18987//      hour: 23,
18988//      minute: 59
18989//    });
18990//  }
18991//});
18992
18993//confirmation plugin calls (uses bootstrap popover)
18994$(function () {
18995    log('adding confirmation popovers');
18996    //confirmation popup with default options, best for hyperlink confirmation
18997    //add specific options via the data attribute
18998    //onConfirm cannote be set via the data attributes
18999    $('[data-toggle="confirmation"]').confirmation({
19000        placement: 'left',
19001        btnOkClass: 'btn-danger',
19002        btnOkLabel: '<i class="icon-ok-sign icon-white"></i> ' + _('Yes', true),
19003        btnCancelLabel: '<i class="icon-remove-sign"></i> ' + _('No', true),
19004        singleton: true,
19005        popout: true,
19006        container: 'body'
19007    });
19008
19009    $('[data-toggle="confirmation-agent-migration"]').confirmation({
19010        placement: 'top',
19011        btnOkClass: 'btn-primary',
19012        btnOkLabel: '<i class="icon-ok-sign icon-white"></i> ' + _('Convert', true),
19013        btnCancelLabel: '<i class="icon-remove-sign"></i> ' + _('Cancel', true),
19014        singleton: true,
19015        popout: true,
19016        container: 'body',
19017        onConfirm: function (e) {
19018          $('.popover').hide();
19019          $('[data-toggle="confirmation-agent-migration"]').html(_('Converting...',true));
19020          $('[data-toggle="confirmation-agent-migration"]').prop("disabled",true);
19021          agent_migrate();
19022        },
19023        onCancel: function (e) {
19024          $('#migrate-agents-btn').click();
19025        }
19026
19027    });
19028
19029    //special case delete confirmation for aa greetings because of onConfirm
19030    //onConfirm grabs needed data from the originating button
19031    $('[data-toggle="aa-greeting-confirmation"]').confirmation({
19032        placement: 'left',
19033        href: 'javascript:void(0);',
19034        btnOkClass: 'btn-danger aa-greeting-confirm',
19035        btnOkLabel: '<i class="icon-ok-sign icon-white"></i> ' + _('Yes', true),
19036        btnCancelLabel: '<i class="icon-remove-sign"></i> ' + _('No', true),
19037        singleton: true,
19038        popout: true,
19039        container: 'body',
19040        onConfirm: function (e) {
19041            var currentTarget = e.currentTarget;
19042            var element = '#' + $(currentTarget).attr('data-orig-btn');
19043            var row_id = $(element).attr('data-row-id');
19044            var callee_match = $(element).attr('data-callee-match');
19045            var starting = $(element).attr('data-starting');
19046            var greeting_index = $(element).attr('data-greeting-index');
19047            var timeframe = $(element).attr('data-timeframe');
19048
19049            // make sure the greeting confirmation bubble goes away
19050            $('[data-toggle="aa-greeting-confirmation"]').confirmation('destroy');
19051
19052            jsFlash(_('Deleting...'));
19053
19054            $('#' + row_id).css('opacity', 0.5);
19055            $('#' + row_id + ' delete, #' + row_id + ' edit').hide();
19056            var jqxhr = $.post('./introdelete/' + callee_match + '/' + starting + '/' + greeting_index + '/' + timeframe, function (data) {
19057
19058                log(data);
19059                if (data.indexOf("REDIRECT") > -1) {
19060                    var arr = data.split(":");
19061                    log(arr);
19062                    window.location.replace("/portal/attendants/edit/" + arr[1] + "/" + arr[2] + "/");
19063                    return;
19064                }
19065
19066            })
19067                .done(function () {
19068                    loadIntroModal();
19069                    log("in done");
19070                    jsFlash(_('Greeting has been deleted.'), 'success');
19071                })
19072                .fail(function () {
19073                    $('#' + row_id).css('opacity', 1);
19074                    $('#' + row_id + ' delete, #' + row_id + ' edit').show();
19075                    log("in error");
19076                    jsFlash(_('Greeting was not deleted!'), 'danger');
19077                });
19078        }
19079    });
19080
19081    //special case delete confirmation for aa greetings because of onConfirm
19082    //onConfirm grabs needed data from the originating button
19083    $('[data-toggle="user-greeting-confirmation"]').confirmation({
19084        placement: 'left',
19085        href: 'javascript:void(0);',
19086        btnOkClass: 'btn-danger user-greeting-confirm',
19087        btnOkLabel: '<i class="icon-ok-sign icon-white"></i> ' + _('Yes', true),
19088        btnCancelLabel: '<i class="icon-remove-sign"></i> ' + _('No', true),
19089        singleton: true,
19090        popout: true,
19091        container: 'body',
19092        onConfirm: function (e) {
19093            var currentTarget = e.currentTarget;
19094            var element = '#' + $(currentTarget).data('orig-btn');
19095            var row_id = $(element).data('row-id');
19096            var uid = $(element).data('uid');
19097            var greeting_index = $(element).data('greeting-index');
19098
19099            $('#' + row_id).css('opacity', 0.5);
19100            $('#' + row_id + ' delete, #' + row_id + ' edit').hide();
19101            var jqxhr = $.post('./greetings/delete/' + uid + '/' + greeting_index, function (data) {
19102
19103
19104            })
19105                .done(function () {
19106                    $('#' + row_id).remove();
19107                    jsFlash('Greeting has been deleted.', 'success');
19108                })
19109                .fail(function () {
19110                    $('#' + row_id).css('opacity', 1);
19111                    $('#' + row_id + ' delete, #' + row_id + ' edit').show();
19112                    jsFlash(_('Greeting was not deleted') + "!", 'danger');
19113                });
19114        }
19115    });
19116
19117    let recentClick = false;
19118    $('[data-toggle="confirmation-blocked-numbers"]').confirmation({
19119        placement: 'left',
19120        btnOkClass: 'btn-danger',
19121        btnOkLabel: '<i class="icon-ok-sign icon-white"></i> ' + _('Yes', true),
19122        btnCancelLabel: '<i class="icon-remove-sign"></i> ' + _('No', true),
19123        singleton: true,
19124        popout: true,
19125        container: 'body',
19126        onConfirm: function () {
19127            bulkRemoveNumbers();
19128        },
19129        onCancel: function (e) {
19130            if ($('#delete-all-btn').is(':visible'))
19131            {
19132                $('#delete-all-btn').click();
19133            }
19134            else if ($('#delete-selected-btn').is(':visible'))
19135            {
19136                if (!recentClick)
19137                {
19138                    recentClick=true;
19139                    console.log("onCancel");
19140                    $('#delete-selected-btn').click(); 
19141                    setTimeout(function() {
19142                        recentClick=false;
19143                    },1000);
19144                }
19145            }
19146            else
19147                $('.popover').hide();
19148        }
19149        
19150    });
19151});
19152
19153//informational popovers (uses bootstrap popover)
19154$(function () {
19155    log('adding popovers');
19156    if (typeof $('a.view-timeframe').popover == 'function')
19157        $('a.view-timeframe').popover({
19158            trigger: 'hover',
19159            template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
19160            delay: {show: 200, hide: 0}
19161        });
19162    if (typeof $('a.view-qos').popover == 'function')
19163        $('a.view-qos').popover({
19164            trigger: 'hover',
19165            template: '<div class="popover qos-popover"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
19166            delay: {show: 200, hide: 0}
19167        });
19168
19169    if (typeof $('a.view-preview').popover == 'function')
19170        $('a.view-preview').popover({
19171            trigger: 'hover',
19172            template: '<div class="popover faxpreview-popover"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
19173            delay: {show: 200, hide: 0}
19174        });
19175    if (typeof $('.label-popover').popover == 'function')
19176        $('.label-popover').popover({
19177            trigger: 'hover',
19178            template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
19179            container: 'body',
19180            html: true,
19181            delay: {show: 200, hide: 0}
19182        });
19183    if (typeof $('.label-popover-scopes').popover == 'function')
19184        $('.label-popover-scopes').popover({
19185            trigger: 'hover',
19186            template: '<div class=\"popover uiconfig\"><div class=\"arrow\"></div><div class=\"popover-inner uiconfig\"><h3 class=\"popover-title uiconfig\"></h3><div class=\"popover-content uiconfig\"><p></p></div></div></div>',
19187            container: 'body',
19188            html: true,
19189            delay: {show: 200, hide: 100}
19190        });
19191
19192    if (typeof $('.clickable-popover').popover == 'function')
19193        $('.clickable-popover').popover({
19194            trigger: 'click',
19195            template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
19196            container: 'body',
19197            html: true,
19198        });
19199});
19200
19201//table sorting on answering rules
19202$(function () {
19203    log('adding table sorting for answering rules');
19204    //fixHelper keeps the dragged element from collapsing when dragging
19205    var fixHelper = function (e, ui) {
19206        ui.children().each(function () {
19207            $(this).width($(this).width());
19208        });
19209        return ui;
19210    };
19211
19212    $('#sort-rules tbody').sortable({
19213        items: 'tr',
19214        helper: fixHelper,
19215        tolerance: 'pointer',
19216        placeholder: 'sort-placeholder',
19217        'start': function (event, ui) {
19218            ui.placeholder.html('<td colspan="5" class="sort-placeholder-td">&nbsp;</td>');
19219            ui.placeholder.height(ui.helper.height());
19220        },
19221        update: function (event, ui) {
19222            var ordering = $('#sort-rules tbody').sortable('toArray').join('/');
19223            var action = 'reorder';
19224            if ($('#' + action).length) {
19225                var href = $('#' + action).attr('href');
19226                var base = href.substring(0, href.indexOf('/', href.indexOf(action) + action.length + 1));
19227                $('#' + action).attr('href', base + '/' + ordering);
19228                $('#save-priority').animate({height: "show", opacity: "show"}, 150);
19229            } else if ($('#orderfinish').length) {
19230                var elements = [];
19231                $('#sort-rules tr:visible').each(function () {
19232                    elements.push($(this).data('priority'));
19233                });
19234                $('#orderfinish').val(elements.toString().replace(/^,|,$/g, ''));
19235            }
19236
19237        },
19238        axis: 'y',
19239        cursor: 'move',
19240        distance: 10,
19241        opacity: 0.8
19242    });
19243    $('#sort-rules tbody').disableSelection();
19244
19245    $('#sort-music tbody').sortable({
19246        items: 'tr',
19247        helper: fixHelper,
19248        tolerance: 'pointer',
19249        placeholder: 'sort-placeholder',
19250        'start': function (event, ui) {
19251            ui.placeholder.html('<td colspan="6" class="sort-placeholder-td">&nbsp;</td>');
19252            ui.placeholder.height(ui.helper.height());
19253        },
19254        update: function (event, ui) {
19255            var ordering = $('#sort-music tbody').sortable('toArray').join(',');
19256            $('#orderMus').val(ordering);
19257            $('#save-priority').animate({
19258                height: "show", opacity: "show"
19259            }, 150);
19260            updateRowNumbers();
19261
19262        },
19263        axis: 'y',
19264        cursor: 'move',
19265        distance: 10,
19266        opacity: 0.8
19267    });
19268    $('#sort-music tbody').disableSelection();
19269
19270
19271    $('#sort-message tbody').sortable({
19272        items: 'tr:not(:first)',
19273        helper: fixHelper,
19274        tolerance: 'pointer',
19275        placeholder: 'sort-placeholder',
19276        'start': function (event, ui) {
19277            ui.placeholder.html('<td colspan="6" class="sort-placeholder-td">&nbsp;</td>');
19278            ui.placeholder.height(ui.helper.height());
19279        },
19280        update: function (event, ui) {
19281            var ordering = $('#sort-message tbody').sortable('toArray').join(',');
19282            $('#orderMsg').val(ordering);
19283            $('#save-priority').animate({
19284                height: "show", opacity: "show"
19285            }, 150);
19286            updateRowNumbers();
19287        },
19288        axis: 'y',
19289        cursor: 'move',
19290        distance: 10,
19291        opacity: 0.8
19292    });
19293    $('#sort-message tbody').disableSelection();
19294});
19295
19296
19297// update the index of the rows on the music/messages tables, always keep the order, just update it so the user doesnt get confused
19298function updateRowNumbers() {
19299    $('#sort-music > tbody  > tr > td.order').each(function(index, td) {
19300        td.innerText = index+1;
19301    });
19302    $('#sort-message > tbody  > tr > td.order').each(function(index, td) {
19303        td.innerText = index+1;
19304    });
19305}
19306
19307//checks placeholder compatibility with non-modern browsers
19308//this checks to see if the browser supports placeholders
19309$(function () {
19310    log('checking placeholder support');
19311    $.support.placeholder = false;
19312    test = document.createElement('input');
19313    if ('placeholder' in test) $.support.placeholder = true;
19314});
19315
19316//if the browser does not support placeholders, run this javascript alternative
19317$(function () {
19318    if (!$.support.placeholder) {
19319        log('placeholders not supported, using javascript alternative');
19320        var active = document.activeElement;
19321        $(':text').focus(function () {
19322            if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
19323                $(this).val('').removeClass('hasPlaceholder');
19324            }
19325        }).blur(function () {
19326            if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
19327                $(this).val($(this).attr('placeholder')).addClass('hasPlaceholder');
19328            }
19329        });
19330        $(':text').blur();
19331        $(active).focus();
19332        $('form').submit(function () {
19333            $(this).find('.hasPlaceholder').each(function () {
19334                if ($(this).val() == $(this).attr('placeholder')) {
19335                    $(this).val('');
19336                }
19337            });
19338        });
19339    }
19340});
19341
19342$(function () {
19343    setTimeout(function () {
19344        //User Modal autocompletes
19345        $('input#site').attr('autocomplete', 'disable_please');
19346        $('input#department').attr('autocomplete', 'disable_please');
19347        $('input#UserFirstName').attr('autocomplete', 'disable_please');
19348        $('input#UserLastName').attr('autocomplete', 'disable_please');
19349        $('input#UserCallidNmbr').attr('autocomplete', 'disable_please');
19350        $('input#UserCallidEmgr').attr('autocomplete', 'disable_please');
19351        $('input#UserAreaCode').attr('autocomplete', 'disable_please');
19352
19353        //Domain modal autocompletes
19354        $('input#DomainDomain').attr('autocomplete', 'disable_please');
19355        $('input#DomainEmailSender').attr('autocomplete', 'disable_please');
19356        $('input#DomainAreaCode').attr('autocomplete', 'disable_please');
19357
19358        $('input#CdrscheduleScheduleName').attr('autocomplete', 'disable_please');
19359
19360
19361
19362    }, 200);
19363});
19364
19365$(function () {
19366    log('scripts.js: end document load functions');
19367});
19368
19369/*******************************************************************************
19370 * Custom functions
19371 *******************************************************************************
19372 */
19373
19374//jquery method: takes string and inserts into cursor position
19375jQuery.fn.extend({
19376    insertAtCaret: function (myValue) {
19377        return this.each(function (i) {
19378            if (document.selection) {
19379                //For browsers like Internet Explorer
19380                this.focus();
19381                var sel = document.selection.createRange();
19382                sel.text = myValue;
19383                this.focus();
19384            } else if (this.selectionStart || this.selectionStart == '0') {
19385                //For browsers like Firefox and Webkit based
19386                var startPos = this.selectionStart;
19387                var endPos = this.selectionEnd;
19388                var scrollTop = this.scrollTop;
19389                this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length);
19390                this.focus();
19391                this.selectionStart = startPos + myValue.toString().length;
19392                this.selectionEnd = startPos + myValue.toString().length;
19393                this.scrollTop = scrollTop;
19394            } else {
19395                this.value += myValue;
19396                this.focus();
19397            }
19398        });
19399    }
19400});
19401
19402function placeholderInit(input) {
19403    if (!$.support.placeholder) {
19404        $(input).focus(function () {
19405            if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
19406                $(this).val('').removeClass('hasPlaceholder');
19407            }
19408        }).blur(function () {
19409            if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
19410                $(this).val($(this).attr('placeholder')).addClass('hasPlaceholder');
19411            }
19412        });
19413        $(input).blur();
19414    }
19415}
19416
19417function getJsDebug() {
19418    var storage = $.localStorage;
19419    var setting = false;
19420
19421    if (storage.isSet('jsDebugSetting'))
19422        setting = storage.get('jsDebugSetting');
19423    if (storage.isSet('jsTraceSetting'))
19424        jstrace = storage.get('jsTraceSetting');
19425    else
19426        jstrace = false;
19427
19428    return setting;
19429}
19430
19431function buildAndSetAutoComplete(type, source, input, exclusions, value, fuzzymatch) {
19432    if (typeof fuzzymatch == 'undefined')
19433      fuzzymatch = false;
19434    var typeChoices = [];
19435
19436    typeChoices[source] = $("#" + source + " option").map(function () {
19437        if (typeof exclusions === 'undefined' || exclusions == null)
19438            return this.value;
19439        else if (!exclusions.includes(this.value))
19440            return this.value;
19441    });
19442
19443    let minLength = 0;
19444    if (value && value != null && value !="")
19445    {
19446      var autocompleteChoices = $("#" + source + " option").filter(function () {
19447        if (fuzzymatch && this.dataset  && this.dataset.cleaned && this.dataset.cleaned.startsWith(value))
19448          return true;
19449        if (this.dataset && value == this.dataset.cleaned)
19450          return true;
19451        return false;
19452      });
19453      if (typeof autocompleteChoices != 'undefined' && autocompleteChoices.length== 1 && autocompleteChoices[0].value)
19454        input.val(autocompleteChoices[0].value);
19455    }
19456
19457    if (typeChoices[source].length > 3000)
19458      minLength =3;
19459    input.autocomplete({
19460        //autoFocus: true,
19461        minLength: minLength,
19462        source: function (request, response) {
19463            var results = $.ui.autocomplete.filter(typeChoices[source], request.term);
19464            if (!results.length) {
19465                input.validationEngine("showPrompt",
19466                    "* " + _("No Matches Found") + "!", "red", "bottomLeft", true);
19467            } else {
19468                input.validationEngine("hidePrompt");
19469            }
19470
19471            response(results);
19472        },
19473
19474        select: function (event, ui) {
19475            var selectedObj = ui.item;
19476
19477            var event = new CustomEvent('autocomplete-select', {
19478                detail: {
19479                    event: event,
19480                    selectedObj: selectedObj
19481                }
19482            });
19483            window.dispatchEvent(event);
19484        }
19485    });
19486
19487}
19488
19489addAnswerruleAutocomplete = (buttonConfig) => {
19490  let domain = window.SNAPbuilder.domain;
19491  if (buttonConfig.extra.targetUser.includes(" "))
19492    buttonConfig.extra.targetUser = buttonConfig.extra.targetUser.substring(0, buttonConfig.extra.targetUser.indexOf(' '));
19493
19494  if(!$("option[data-extension='" + buttonConfig.extra.targetUser +"']").length)
19495  {
19496    console.log("no user match for now.");
19497    return;
19498  }
19499  let inputId = "target_"+buttonConfig.index;
19500  const newid = 'available_answerrules_'+buttonConfig.extra.targetUser;
19501
19502  if ($('#'+newid).length)
19503  {
19504    if (buttonConfig.target)
19505      buildAndSetAutoComplete('answerrule',newid,$("#"+inputId),null, buttonConfig.target);
19506    else {
19507      buildAndSetAutoComplete('answerrule',newid,$("#"+inputId));
19508    }
19509    return;
19510  }
19511
19512  netsapiens.api.post(
19513    {
19514        object:"answerrule",
19515        action:"read",
19516        user: buttonConfig.extra.targetUser ,
19517        domain: domain
19518    }
19519  )
19520  .catch(function (e) {
19521    console.log(e)
19522  })
19523  .then(function (data) {
19524    clearAutoComplete(inputId);
19525    if (!$('#'+newid).length)
19526    {
19527      var sel = $('<select id="'+newid+'">').appendTo('body');
19528      Object.values(data).forEach(val => {
19529        if (val.time_frame == "*")
19530          sel.append($("<option>").attr('value',_("Default")).text("*"));
19531        else
19532          sel.append($("<option>").attr('value',val.time_frame).text(val.time_frame));
19533      });
19534    }
19535
19536    if (buttonConfig.target)
19537      buildAndSetAutoComplete('answerrule',newid,$("#"+inputId),null, buttonConfig.target);
19538    else {
19539      buildAndSetAutoComplete('answerrule',newid,$("#"+inputId),null,"");
19540    }
19541
19542
19543  });
19544
19545}
19546
19547/*
19548 * Turns log() debug on and off.
19549 *
19550 * @param {boolean} setting turns on or off the log
19551 * @param {boolean} trace turn on or off trace data in the log
19552 *
19553 */
19554function setJsDebug(setting, trace) {
19555    var storage = $.localStorage;
19556
19557    storage.set('jsDebugSetting', setting);
19558
19559    jsdebug = setting;
19560
19561    if (typeof trace !== 'undefined') {
19562        storage.set('jsTraceSetting', trace);
19563        jstrace = trace;
19564    }
19565}
19566
19567function log(msg, force) {
19568    if (jsdebug && typeof console != 'undefined' && typeof console.log == 'function' && typeof msg != 'undefined')
19569        console.log(msg);
19570    else if (typeof force !== 'undefined' && force === true && typeof msg != 'undefined')
19571        console.log(msg);
19572
19573    if (jstrace)
19574        console.trace();
19575}
19576
19577function getFieldWidthClass(element, maxSmall, maxMed) {
19578    var format = '';
19579    if (element.hasAttribute('data-date-format'))
19580        format += element.getAttribute('data-date-format') + " ";
19581
19582    if (element.hasAttribute('data-time-format'))
19583        format += element.getAttribute('data-time-format');
19584
19585    if (format) {
19586        var formatWidths = {
19587            Year: {YYYY: 30, YY: 15},
19588            Day: {Do: 25, DD: 15, D: 7, dddd: 65, ddd: 25},
19589            Month: {MMMM: 65, MMM: 25, MM: 15, M: 7},
19590            Hour: {HH: 15, H: 7, hh: 15, h: 7},
19591            Minute: {mm: 15},
19592            Second: {ss: 15},
19593            Abbrev: {A: 20, a: 20}
19594        };
19595
19596        var width = 0;
19597        for (var category in formatWidths) {
19598            $.each(formatWidths[category], function (formatType, formatWidth) {
19599                if (format.indexOf(formatType) != -1) {
19600                    width += formatWidth;
19601                    return false;
19602                }
19603            });
19604        }
19605
19606        if (width <= maxSmall)
19607            return 'date-small';
19608        else if (width > maxSmall && width <= maxMed)
19609            return 'date-medium';
19610        else if (width > maxMed)
19611            return 'date-large';
19612    }
19613    return null;
19614}
19615
19616function reloginWebphone(nmbr) {
19617    $.get('/portal/webphone/relogin', function (data) {
19618        setTimeout(function () {
19619            launchWebPhone(nmbr);
19620        }, 400);
19621    });
19622}
19623
19624function getContactList(type = "all") {
19625  var contactlist = [ ];
19626
19627  $("#contacts-table tr.contact-row-info").each(function () {
19628
19629      //log($(this));
19630      var c = {name:$(this).find(".contact-name").text()};
19631
19632      if(enableChatUC && (type == "all" || type == "chat" || type == "chat-name-change" || type == "chat-video-invite" || type == "chat-participant-add" || type == "chat-participant-remove" || type == "chat-participant-leave")) {
19633          c.extension = $(this).find(".contact-extension").text();
19634          if (typeof c.extension!='undefined' && c.extension !="" && c.extension!= c.name)
19635          {
19636
19637              c.label = c.name + " - Chat";
19638              c.imgclass =  "icon-comment";
19639              c.value = $(this).find(".contact-extension").html();
19640              c.text = c.label;
19641              c.id = c.value;
19642              c.text += '(num)'+c.value; //add the value/number to the id as well
19643
19644              contactlist.push(c);
19645
19646          }
19647          else
19648              delete c.extension ;
19649      }
19650
19651
19652      if(enableChatSMS  && (type == "all" || type == "sms" || type == "mms")) {
19653          $(this).find(".dropdown-menu li").each(function () {
19654              if($(this).data("smsnumber")) {
19655                  var tmpType =  $.extend(true, {}, c);
19656                  tmpType.value = $(this).data("smsnumber");
19657                  tmpType.number = $(this).data("smsnumber");
19658                  if ($(this).hasClass("smsmobile"))
19659                  {
19660                      tmpType.label = c.name + " - Mobile SMS";
19661                      tmpType.imgclass =  "nsicon nsicon-mobile";
19662                      tmpType.pretty = netsapiens.utils.formatPhoneNumber(tmpType.number.toString(), PORTAL_LOCALIZATION_NUMBER_FORMAT);
19663                  }
19664                  else if ($(this).hasClass("smshome"))
19665                  {
19666                      tmpType.label = c.name + " - Home SMS";
19667                      tmpType.imgclass =  "nsicon nsicon-home";
19668                      tmpType.pretty = netsapiens.utils.formatPhoneNumber(tmpType.number.toString(), PORTAL_LOCALIZATION_NUMBER_FORMAT);
19669                  }
19670                  else if ($(this).hasClass("smswork"))
19671                  {
19672                      tmpType.label = c.name + " - Work SMS";
19673                      tmpType.imgclass =  "nsicon nsicon-work";
19674                      tmpType.pretty = netsapiens.utils.formatPhoneNumber(tmpType.number.toString(), PORTAL_LOCALIZATION_NUMBER_FORMAT);
19675                  }
19676                  tmpType.text = tmpType.label+'(num)'+tmpType.value;;
19677
19678                  tmpType.id = tmpType.label;
19679
19680                  contactlist.push(tmpType);
19681              }
19682
19683          });
19684      }
19685
19686  });
19687
19688  return contactlist;
19689}
19690
19691function filterContactList(allContacts, toFilterUid, toFilterName) {
19692    if (typeof toFilterUid == 'undefined' || typeof toFilterName == 'undefined') {
19693        return allContacts;
19694    }
19695    var filteredContacts = [];
19696    for (var index = 0; index < allContacts.length; index++) {
19697        if ((allContacts[index].extension && toFilterUid.includes(allContacts[index].extension))
19698            || (allContacts[index].name && toFilterName.includes(allContacts[index].name))) {
19699        } else {
19700            filteredContacts.push(allContacts[index]);
19701        }
19702    }
19703
19704    return filteredContacts;
19705}
19706
19707
19708/*
19709 * Re-focus webphone tab/window
19710 *
19711 * @param {string} number passed from portal
19712 *
19713 *
19714 */
19715var webphoneTab, webphoneWindow;
19716
19717function launchWebPhone(nmbr) {
19718    // check local storage for webphpone + user
19719    var webphoneOpen = localStorage.getItem('webphone_open_' + sub_user);
19720
19721    if (!webphoneOpen || webphoneOpen == 'false') {
19722        var query = '?user=' + sub_user;
19723        if (nmbr) {
19724            query += '&call=' + nmbr;
19725        }
19726        if (PORTAL_WEBPHONE_NEW_TAB_VIEW) {
19727            // UI Config for new tab view ( set to yes )
19728            webphoneTab = window.open('/webphone' + query, 'webphone');
19729            webphoneTab.focus();
19730        } else {
19731            // Webphone Window view ( compact webphone )
19732            webphoneWindow = window.open('/webphone' + query, 'webphone',
19733                'directories=no,titlebar=no,location=no,status=no,menubar=no,resizable=no,width=400,height=640');
19734        }
19735    } else if (nmbr) {
19736        // Portal call passing number to Webphone
19737        localStorage.setItem('webphone_call_' + sub_user, nmbr);
19738        localStorage.removeItem('webphone_call_' + sub_user);
19739        localStorage.setItem('webphone_call', nmbr);
19740        localStorage.removeItem('webphone_call');
19741        if (!webphoneWindow && !webphoneTab) {
19742          if (PORTAL_WEBPHONE_NEW_TAB_VIEW) {
19743              webphoneTab = window.open('', 'webphone');
19744              if (webphoneTab)
19745                webphoneTab.focus();
19746          } else {
19747              // Webphone Window view ( compact webphone )
19748              webphoneWindow = window.open('', 'webphone');
19749              if (webphoneWindow)
19750                webphoneWindow.focus();
19751          }
19752            //localStorage.removeItem('webphone_open_' + sub_user);
19753            //launchWebPhone();
19754        } else if (webphoneWindow && !webphoneTab) {      // Webphone window is open
19755            webphoneWindow.focus();
19756        } else if (!webphoneWindow && webphoneTab) {      // Webphone tab is open
19757            webphoneTab.focus();
19758        }
19759    } else {
19760        if (!webphoneWindow && !webphoneTab) {            // NO instance of tab/window found
19761            localStorage.removeItem('webphone_open_' + sub_user);
19762            launchWebPhone();
19763        } else if (webphoneWindow && !webphoneTab) {      // Webphone window is open
19764            webphoneWindow.focus();
19765        } else if (!webphoneWindow && webphoneTab) {      // Webphone tab is open
19766            webphoneTab.focus();
19767        }
19768
19769    }
19770
19771}
19772
19773function launchPremiumVideo(sub_domain, sub_user) {
19774    netsapiens.api.v2({ object: 'video', action: 'get' }, `domains/${sub_domain}/users/${sub_user}/video`)
19775        .then((host) => {
19776            var url = `https://${host.iotum_domain}/auth?host_id=${host.host_id}&login_token_public_key=${host.login_token_public_key}&redirect_url=conf/conferences/create?events=false`;
19777            // var options = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=1200,height=900';
19778            var openWin = window.open(url,'_video');
19779        }).catch((e) => {
19780            console.error('launchPremiumVideo error:',e);
19781        });
19782}
19783// open contacts popout or focus it if already open
19784// unique window name means we'll always use the same window
19785function openContactsPopoutWindow() {
19786    var url = '/portal/contacts/popout';
19787    var params = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=275,height=600';
19788    if (typeof (contactsPopoutWindow) == 'undefined' || contactsPopoutWindow.closed) {
19789        //create new, since none is open
19790        contactsPopoutWindow = window.open(url, "contacts_popout_window", params);
19791    } else {
19792        try {
19793            contactsPopoutWindow.document; //if this throws an exception then we have no access to the child window - probably domain change so we open a new window
19794        } catch (e) {
19795            contactsPopoutWindow = window.open(url, "contacts_popout_window");
19796        }
19797
19798        //focus the window if it already exists
19799        contactsPopoutWindow.focus();
19800    }
19801}
19802
19803function convertByMapping(original, conversionUnits) {
19804    for (var key in conversionUnits) {
19805        $.each(conversionUnits[key], function (baseUnit, conversionUnit) {
19806            if (original != null && original.indexOf(baseUnit) != -1) //TODO SCASTRO please review.
19807            {
19808                original = original.replace(baseUnit, conversionUnit);
19809                return false;
19810            }
19811        });
19812    }
19813    return original;
19814}
19815
19816
19817//Converts standard js date format rules into a different set of format rules
19818//(this is necessary because jquery's datepicker uses its own date formatting logic
19819//with its own formatting rules)
19820function convertDateFormat(original, conversionUnits) {
19821    return convertByMapping(original, conversionUnits);
19822}
19823
19824//Sets the proper date format for an input field's alert message in case of failed validation
19825function setDateValidation(field, rules, i, options) {
19826    var dateInput = field[0];
19827    var dateFormat = '';
19828    if (dateInput.hasAttribute('data-date-format')) {
19829        dateFormat = dateInput.getAttribute('data-date-format');
19830    }
19831
19832    var timeFormat = '';
19833    if (dateInput.hasAttribute('data-time-format')) {
19834        timeFormat = dateInput.getAttribute('data-time-format');
19835    }
19836
19837    var dateAndTimeFormats = '';
19838    if (dateFormat && timeFormat) {
19839        dateAndTimeFormats = dateFormat + " " + timeFormat;
19840    } else if (dateFormat && !timeFormat) {
19841        dateAndTimeFormats = dateFormat;
19842    } else if (!dateFormat && timeFormat) {
19843        dateAndTimeFormats = timeFormat;
19844    }
19845
19846    var inputDate = moment(field.val(), dateAndTimeFormats);
19847    if (!inputDate.isValid() && field.val() != '') {
19848        var customRule = rules.indexOf('custom');
19849        return String.format(options.allrules[rules[customRule + 1]].alertText, dateAndTimeFormats);
19850    }
19851}
19852
19853function setFaxUploadValidation(field, rules, i, options) {
19854    var fileInput = field[0];
19855    var fileTypes = fileInput.getAttribute('data-file-types').split(',');
19856    for (var index = 0; index < fileTypes.length; ++index) {
19857        fileTypes[index] = fileTypes[index].trim().replace(/\./g, '');
19858    }
19859    var regex = new RegExp('\.(?:' + fileTypes.join('|') + ')$','i');
19860    if (!regex.test(field.val())) {
19861        $('.saving').prop('disabled', true);
19862        return '* Invalid file type';
19863    }
19864    $('.saving').prop('disabled', false);
19865}
19866
19867// function bindJsDebug() {
19868//  if($('#js-debug-btn').length) {
19869//      var iconClass = (jsdebug ? 'icon-eye-open' : 'icon-eye-close');
19870
19871//      $('#js-debug-btn i').attr('class', '').addClass(iconClass);
19872
19873//      $('#js-debug-btn').off('click').on('click', function(){
19874//          if(jsdebug) {
19875//              log('disabled javascript log');
19876//              setJsDebug(false);
19877//              $('#js-debug-btn i').attr('class', '').addClass('icon-eye-close');
19878//          }
19879//          else {
19880//              setJsDebug(true);
19881//              $('#js-debug-btn i').attr('class', '').addClass('icon-eye-open');
19882//              log('enabled javascript log');
19883//          }
19884//      });
19885//  }
19886// }
19887
19888var checkSessionTimeout;
19889function checkSession(secondAttempt) {
19890    if (typeof secondAttempt == 'undefined') secondAttempt = false;
19891
19892    if (secondAttempt) log("checkSession secondAttempt");
19893    else log("checkSession");
19894
19895    if (window.location.pathname == '/portal/login/index') {
19896        if (checkSessionTimeout) {
19897            clearTimeout(checkSessionTimeout);
19898        }
19899        return;
19900    }
19901
19902    $.get('/portal/home/checkSession', function (data) {
19903        if (typeof data != 'undefined' && data.trim() != "ok") {
19904            if (secondAttempt)
19905            {
19906                if (checkSessionTimeout) {
19907                    clearTimeout(checkSessionTimeout);
19908                }
19909                forceLogout();
19910                return;
19911            }
19912            setTimeout(function () {
19913              checkSession(true);
19914            },5000);
19915        } else {
19916            if (checkSessionTimeout) {
19917                clearTimeout(checkSessionTimeout);
19918            }
19919            checkSessionTimeout = setTimeout(function () {
19920                checkSession();
19921            }, 300000);
19922        }
19923    })
19924    .fail(function() {
19925        if (secondAttempt)
19926        {
19927            if (checkSessionTimeout) {
19928                clearTimeout(checkSessionTimeout);
19929            }
19930            forceLogout();
19931            return;
19932        }
19933        if (checkSessionTimeout) {
19934            clearTimeout(checkSessionTimeout);
19935        }
19936        setTimeout(function () {
19937            checkSession(true);
19938        },5000);
19939    });
19940
19941}
19942
19943setInterval(function () {
19944  if (!checkSessionTimeout) {
19945    checkSessionTimeout = setTimeout(function () {
19946        checkSession();
19947    }, 180000);
19948  }
19949},300000);
19950
19951function forceLogout() {
19952    window.location = "/portal/login/logout/expired";
19953    return;
19954}
19955
19956$(document).on('click', '#logout', function () {
19957    localStorage.removeItem('openChats');
19958});
19959
19960function printDiv(divId) {
19961    var cssLink = '<link rel="stylesheet" type="text/css" href="/portal/css/myprintstyle.css">';
19962
19963    window.frames["print_frame"].document.body.innerHTML = cssLink + $("#" + divId).html();
19964    window.frames["print_frame"].window.focus();
19965    window.frames["print_frame"].window.print();
19966}
19967
19968/**
19969 * print a call center report
19970 **/
19971function printReport() {
19972    log('printReport');
19973    var css = '<link id="print-styles" rel="stylesheet" type="text/css" href="/portal/css/myprintstyle.css">';
19974    var dateFrom = $('#modal-from-0').attr('data-raw-date');
19975    var dateTo = $('#modal-to-0').attr('data-raw-date');
19976    var type = $("#stat_type option[value='" + $('#stat_type').val() + "']").text();
19977    var title = '<h2>' + type + ': ' + dateFrom + ' &mdash; ' + dateTo + '</h2>';
19978    var graphTitle = '<h3>' + $('#graph-type-label').text() + ' Graph</h3>';
19979    var $tableBody = $('#modal-table-div .dataTables_scrollBody tbody')[0].outerHTML;
19980    var $tableHeader = $('#modal_stats_table_wrapper .dataTables_scrollHead thead')[0].outerHTML;
19981    var $tableFoot="";
19982    if ($('#modal-table-div .dataTables_scrollBody tfoot').length)
19983      $tableFoot = $('#modal-table-div .dataTables_scrollBody tfoot')[0].outerHTML;
19984    var $statsTable = '<table class="table table-condensed table-hover table-bordered dataTable">' + $tableHeader + $tableBody + $tableFoot+ '</table>';
19985    var html = title + graphTitle + $('#modal-graph-div').html() + $
19985statsTable;
19986
19987    printFrame(css, html);
19988}
19989
19990/**
19991 * center a modal on screen based on dimensions. trace modals resize width as well as height.
19992 *
19993 * @param {string} css is the link html for css
19994 * @param {string} html is the content to be printed
19995 **/
19996function printFrame(css, html) {
19997    log('printFrame');
19998
19999    window.frames["print_frame"].document.head.innerHTML = css;
20000    window.frames["print_frame"].document.body.innerHTML = html;
20001
20002    // fetch print css file and wait for it to load before printing
20003
20004    $("[name='print_frame']").contents().find("#print-styles").on("load", function() {
20005      window.frames["print_frame"].window.focus();
20006      window.frames["print_frame"].window.print();
20007    });
20008}
20009
20010/**
20011 * center a modal on screen based on dimensions. trace modals resize width as well as height.
20012 *
20013 * @param {jquery object} modal object to resize
20014 * @param {boolean} trace indicates if the modal contains a trace
20015 **/
20016function modalResize(modal, trace) {
20017    log('modalResize');
20018
20019    //hide validation popups because they don't scroll with resize
20020    $('form').validationEngine('hideAll');
20021
20022    //collect element heights
20023    var modalHeaderHeight = modal.find('.modal-header').outerHeight(true);
20024    var modalFooterHeight = modal.find('.modal-footer').outerHeight(true);
20025    var windowHeight = $(window).height();
20026
20027    //combined height of modal header and footer (~150) plus some margin (2x the mask bar)
20028    var heightOffset = modalHeaderHeight + modalFooterHeight + 160;
20029    var marginOffset = 0;
20030
20031    //check if domain editing message is shown and adjust offsets
20032    if ($('#domain-message').length) {
20033        var domainMsgHeight = $('#domain-message').outerHeight();
20034
20035        heightOffset += domainMsgHeight;
20036        marginOffset = domainMsgHeight / 2;
20037    }
20038
20039    if ($('.modal-header-settings').length) {
20040        var modalSettingsHeight = $('.modal-header-settings').outerHeight();
20041
20042        heightOffset += modalSettingsHeight;
20043    }
20044
20045    //add dock header height to offsets
20046    heightOffset += 33;
20047    marginOffset -= 16;
20048
20049    modal.find('.modal-body').css({'max-height': (windowHeight - heightOffset)});
20050    modal.find('.modal-body .modal-body-flex-container').css({'max-height': (windowHeight - heightOffset)});
20051
20052    //calculate negative vertical margin to center modal
20053    var modalHeight = modal.outerHeight();
20054
20055    var marginTop = ((modalHeight / 2) * -1 + marginOffset);
20056    modal.css({marginTop:marginTop });
20057
20058
20059    //calculate negative horizontal margin to center modal
20060
20061    if (trace)
20062        modal.css({marginLeft: ((modal.outerWidth() / 2) * -1)});
20063
20064
20065    //log('modal outerHeight: ' + modalHeight);
20066    //log('vertical margin: ' + ((modalHeight / 2) * -1 + marginOffset));
20067    //log('modal-body max height: ' + (windowHeight - heightOffset));
20068}
20069
20070/**
20071 * adjusts contacts dock max-height based on window height.
20072 *
20073 **/
20074function contactsResize() {
20075    var dockContacts = $('.dock-contacts');
20076    var maxHeight = 250;
20077
20078    //grab heights of window, contacts headers, footer
20079    var windowHeight = $(window).height();
20080    var dockHeadHeight = dockContacts.find('.dock-head').outerHeight();
20081    var contactsHeadHeight = dockContacts.find('.dock-contacts-header').outerHeight();
20082    var contactsGroupsHeight = dockContacts.find('.groups-container').outerHeight();
20083    var domainHeight = 0;
20084
20085    //check if domain editing message is shown and adjust offset
20086    if ($('#domain-message').is(':visible')) {
20087        domainHeight = 50;
20088    }
20089
20090    //subtract headers/footers heights from window height, plus some margin and give max-height to contacts scroll container
20091    //double contactsGroupsHeight because of contacst/recent toggle
20092    maxHeight = windowHeight - dockHeadHeight - contactsHeadHeight - contactsGroupsHeight - contactsGroupsHeight - domainHeight - 20;
20093
20094    dockContacts.find('.scroll-container').css('max-height', maxHeight + 'px');
20095}
20096
20097/**
20098 * decide whether to make a dropdown go up instead of down (default)
20099 *
20100 * @param {object} el should be the element that toggles the dropdown
20101 */
20102function getDropdownDirection(el) {
20103    var $dropdown = $(el).next('.dropdown-menu')
20104    // Invisibly expand the dropdown menu so its true height can be calculated
20105    $dropdown.css({
20106        visibility: "hidden",
20107        display: "block"
20108    });
20109
20110    // Necessary to remove class each time so we don't unwantedly use dropup's offset top
20111    $(el).parent().removeClass("dropup");
20112
20113    // Determine whether bottom of menu will be below window at current scroll position
20114    if ($dropdown.offset().top - $(el).scrollParent().offset().top - $(el).scrollParent().scrollTop() + $dropdown.outerHeight() > $(el).scrollParent().innerHeight() - $(el).scrollParent().scrollTop()) {
20115        $(el).parent().addClass("dropup");
20116    }
20117
20118    // Return dropdown menu to fully hidden state
20119    $dropdown.removeAttr("style");
20120}
20121
20122/**
20123 * minimize a dock popup and save position of dock-contacts in a cookie
20124 *
20125 * @param {object} el is either the dock-minimize button or the dock-header
20126 */
20127function minimizeDockPopup(el) {
20128    var dockBody = $(el).parents('.dock-head').siblings('.dock-body');
20129    var isContactsDock = $(el).parents('.dock-column').hasClass('dock-contacts');
20130    var position = 'Dock.positon';
20131    if (dockBody.is(':visible')) {
20132        dockBody.hide();
20133        $(el).parents('.dock-column').find('.dock-minimize i').removeClass('icon-minimize').addClass('icon-maximize').attr('title', _('Maximize'));
20134        if (isContactsDock) {
20135            localStorage.setItem('DockPosition', 'hidden');
20136            $.cookie(position, 0, {
20137                expires: 365,
20138                path: '/'
20139            });
20140            $.cookie(position, 0, {
20141                expires: 365,
20142                path: '/portal/'
20143            });
20144        } else {
20145            // add sessionid to hiddenChatBoxes
20146            let session_id = $(el).closest('.uc-message-box-column').data('session');
20147            var old = localStorage.getItem('hiddenChatBoxes');
20148            if(old === null) old = "";
20149            localStorage.setItem('hiddenChatBoxes', old + session_id);
20150        }
20151
20152    } else {
20153        dockBody.show();
20154        $(el).parents('.dock-column').find('.dock-minimize i').removeClass('icon-maximize').addClass('icon-minimize').attr('title', _('Minimize'));
20155        contactsResize();
20156
20157        if (isContactsDock) {
20158            localStorage.setItem('DockPosition', 'show');
20159            $.cookie(position, 1, {
20160                expires: 365,
20161                path: '/'
20162            });
20163            $.cookie(position, 1, {
20164                expires: 365,
20165                path: '/portal/'
20166            });
20167        } else {
20168            // remove sessionid from hiddenChatBoxes
20169            let session_id = $(el).closest('.uc-message-box-column').data('session');
20170            var old = localStorage.getItem('hiddenChatBoxes');
20171            if(old === null) old = "";
20172            old = old.replaceAll(session_id, '');
20173            localStorage.setItem('hiddenChatBoxes', old);
20174        }
20175    }
20176}
20177
20178/**
20179 * bind accordion slide to chevron icon
20180 *
20181 **/
20182function bindAccordionSlide() {
20183    $('.accordion-body').each(function () {
20184        $(this).on('show', function () {
20185            $(this).siblings('.accordion-heading').find('.icon-chevron-up').removeClass('icon-chevron-up').addClass('icon-chevron-down');
20186        });
20187        $(this).on('shown', function () {
20188            $(this).parents('.modal').trigger('resize');
20189        });
20190        $(this).on('hide', function () {
20191            $(this).siblings('.accordion-heading').find('.icon-chevron-down').removeClass('icon-chevron-down').addClass('icon-chevron-up');
20192        });
20193        $(this).on('hidden', function () {
20194            $(this).parents('.modal').trigger('resize');
20195        });
20196    });
20197}
20198
20199/**
20200 * initialize bootstrap tooltips on elements with 'helpsy' class
20201 *
20202 **/
20203function initTooltips() {
20204
20205    function tooltipTop(element) {
20206        return element.tooltip({
20207            delay: {show: 400, hide: 100},
20208            container: 'body'
20209        }).on('hidden', function (e) {
20210            e.stopPropagation();
20211        });
20212    }
20213
20214    function tooltipRight(element) {
20215        return element.tooltip({
20216            placement: 'right',
20217            delay: {show: 400, hide: 100},
20218            container: 'body'
20219        }).on('hidden', function (e) {
20220            e.stopPropagation();
20221        });
20222    }
20223
20224    function tooltipButtom(element) {
20225        return element.tooltip({
20226            placement: 'bottom',
20227            delay: {show: 400, hide: 100},
20228            container: 'body'
20229        }).on('hidden', function (e) {
20230            e.stopPropagation();
20231        });
20232    }
20233
20234    function tooltipLeft(element) {
20235        return element.tooltip({
20236            placement: 'left',
20237            delay: {show: 400, hide: 100},
20238            container: 'body'
20239        }).on('hidden', function (e) {
20240            e.stopPropagation();
20241        });
20242    }
20243
20244    function initOverlay(element) {
20245        var title = element.attr('data-original-title');
20246        return $('<div />').addClass('helpsy')
20247            .attr('title', title)
20248            .css({
20249                position: "absolute",
20250                top: element.position().top,
20251                left: element.position().left,
20252                width: element.outerWidth(),
20253                height: element.outerHeight(),
20254                zIndex: 1000,
20255                backgroundColor: "#fff",
20256                opacity: 0
20257            });
20258    }
20259
20260    // init tooltips
20261    tooltipTop($('.helpsy'));
20262    tooltipRight($('.helpsy-right'));
20263    tooltipButtom($('.helpsy-buttom'));
20264    tooltipLeft($('.helpsy-left'));
20265
20266    // init tooltips for disabled buttons
20267    $('.helpsy:disabled').each(function () {
20268        var _this = $(this);
20269        var overlay = initOverlay(_this);
20270        overlay = tooltipTop(overlay);
20271        _this.after(overlay);
20272    });
20273    $('.helpsy-right:disabled').each(function () {
20274        var _this = $(this);
20275        var overlay = initOverlay(_this);
20276        overlay = tooltipRight(overlay);
20277        _this.after(overlay);
20278    });
20279    $('.helpsy-buttom:disabled').each(function () {
20280        var _this = $(this);
20281        var overlay = initOverlay(_this);
20282        overlay = tooltipButtom(overlay);
20283        _this.after(overlay);
20284    });
20285    $('.helpsy-left:disabled').each(function () {
20286        var _this = $(this);
20287        var overlay = initOverlay(_this);
20288        overlay = tooltipLeft(overlay);
20289        _this.after(overlay);
20290    });
20291}
20292
20293/**
20294 * force validation for js -> submit method. initiate button loading if applicable
20295 *
20296 **/
20297function forceValidate(form) {
20298    log('forced validation on ' + form);
20299    var validated = $(form).validationEngine('validate');
20300    //var validated = true;
20301
20302    if (validated) {
20303        $(form + ' .saving').button('loading');
20304        return true;
20305    } else
20306        return false;
20307}
20308
20309//attach validationEngine to forms
20310function attachValidation() {
20311    $('form').validationEngine('attach', {
20312        autoHidePrompt: true,
20313        scroll: false,
20314        onValidationComplete: function (form, status) {
20315            if (status) {
20316                log('validationEngine: passed');
20317                $('.saving').button('loading');
20318                return true;
20319            } else {
20320                log('validationEngine: failed');
20321                return false;
20322            }
20323        },
20324        onFailure: function () {
20325            log('onFailure');
20326        }
20327    });
20328
20329    //delay validation on keyup for password
20330    var delay = (function () {
20331        var timer = 0;
20332        return function (callback, ms) {
20333            clearTimeout(timer);
20334            timer = setTimeout(callback, ms);
20335        };
20336    })();
20337    $('#confirm-new-password').keyup(function () {
20338        delay(function () {
20339            $('form').validationEngine('validateField', "#confirm-new-password");
20340        }, 1000);
20341    });
20342
20343    //clicking cancel button hides red notifications
20344    $('.cancel').click(function () {
20345        $('form').validationEngine('hideAll');
20346        //hideModal('.modal:visible');
20347    });
20348    $('ul.nav a').click(function () {
20349        $('form').validationEngine('hideAll');
20350    });
20351
20352    //losing autcomplete field focus hides notification
20353    $('#choices').blur(function () {
20354        $('#choices').validationEngine('hidePrompt');
20355    });
20356
20357    // This might not be necessary since hidden and disabled fields don't seem to validate anyway.
20358    // Left it here just in case.
20359    //
20360    //$('input:radio').click(function(){
20361    //  if ($('#TimeframeSelectOption2').prop('checked')){
20362    //    $('input:checkbox').change(function(){
20363    //      if ($('#' + this.id).prop('checked')) {
20364    //        $('.' + this.id).addClass('validate[required,custom[time]]');
20365    //        $('form').validationEngine();
20366    //      }
20367    //      else {
20368    //        $('.' + this.id).removeClass('validate[required,custom[time]]');
20369    //        $('form').validationEngine();
20370    //      }
20371    //    });
20372    //  }
20373    //});
20374
20375    //hide any error prompts if a new radioSlide option is selected
20376    $('.radioSlide').change(function () {
20377        $('.datepicker').validationEngine('hidePrompt');
20378        $('.input-hour-minute').validationEngine('hidePrompt');
20379        dayOfWeekCheck();
20380    });
20381
20382    //unbind the blur event from datepicker fields to prevent unwanted validation until form is submitted.
20383    $('.datepicker, .datetimepicker').unbind('blur');
20384}
20385
20386//toggle slidedown of add time frame options
20387function radioSlide() {
20388    //show selected radio option div on edit
20389    $('input.radioSlide:checked').each(function () {
20390        var selected = $(this).val();
20391        $('#' + selected).show();
20392
20393    });
20394
20395    //show selected radio options when clicking each radio
20396    $('input.radioSlide').change(function () {
20397        var selected = $(this).val();
20398
20399        if (selected == 'option1')
20400            $('.timeframe-divider').fadeOut();
20401        else
20402            $('.timeframe-divider').fadeIn();
20403
20404        $('.slide').animate({
20405            height: "hide", opacity: "hide"
20406        }, {
20407            progress: function () {
20408                //if (selected == 'option1')
20409                modalResize($(this).parents('.modal'));
20410            }
20411        });
20412        $('#' + selected).animate({
20413            height: "show", opacity: "show"
20414        }, {
20415            progress: function () {
20416                //if (selected == 'option1')
20417                modalResize($(this).parents('.modal'));
20418            }
20419        });
20420
20421
20422    });
20423}
20424
20425function handleAgentOnlineStatus() {
20426    let val = $('#agentstatus-value').attr('val');
20427    if (val == undefined || val == null || val == '') {
20428        // had to specify because ! wasn't working ???
20429        reloadModal('#write-agents');
20430    } else {
20431      $.post("/portal/agents/agentLog/" + val+'/'+$('#agentstatus-value').attr('user')+'@'+$('#agentstatus-value').attr('queue').split('@')[1], function () {
20432      })
20433        .fail(function () {
20434            console.log('failed to post log update');
20435        })
20436        .done(function () {
20437            reloadModal('#write-agents');
20438        });
20439    }
20440  }
20441
20442  function agentSetStatusValue(value) {
20443    let valobj = $('#agentstatus-value');
20444    if (valobj.attr('isagent') == 'no') return;
20445
20446    if (value == 'Online' || value == 'Logged In') {
20447      valobj.attr('val', 'Auto')
20448    } else if (value == 'Offline' || value == 'Logged Out') {
20449      valobj.attr('val', 'Manual')
20450    }
20451  }
20452
20453//funtion to show add/edit menu of the agents page
20454function toggleAgentEdit(device, type, time, priority, order, tier, auto, call_limit, max_sms, confirm_required, offnet, agent_type) {
20455    if (typeof agent_type == 'undefined' || agent_type === null || agent_type === "")
20456    {
20457      if ($('#agent_type').length >0 && $('#agent_type').val() == "subscriber") {
20458        agent_type = "subscriber";
20459      } else {
20460        agent_type = "device";
20461      }
20462    }
20463
20464    var addedit = $('#addedit');
20465
20466    if (typeof type == 'object')
20467    {
20468      if (type.contains("loggedin"))
20469      {
20470        type = 'Logged In';
20471      }
20472      else {
20473        type = 'Logged Out';
20474      }
20475    }
20476
20477    if (agent_type == 'subscriber') {
20478        if (type.includes('Logged In') || type.includes('Online')) $('#agentstatus-value').attr('val','Auto');
20479        else $('#agentstatus-value').attr('val','Manual');
20480        $('#agentstatus-value').attr('isagent', 'yes');
20481    } else $('#agentstatus-value').attr('isagent', 'no');
20482
20483    $('#CallqueueLoginType').val(type);
20484    time = time.replace("-", "0");
20485    $('#agentstatus-value').attr('user',device.split(' ')[0]);
20486
20487    $('#CallqueueWaitTime').val(time);
20488    $('#CallqueueWaitTime-slider').slider('value', time / 5);
20489    $('#CallqueueWaitTime-slider').children(".ui-slider-handle").find("span.slider-tooltip-value").html(time);
20490
20491    $('#CallqueueCallLimit').val( call_limit);
20492    $('#CallqueueCallLimit').val(call_limit);
20493    $('#CallqueueCallLimit-slider').slider('value', call_limit);
20494    $('#CallqueueCallLimit-slider').children(".ui-slider-handle").find("span.slider-tooltip-value").html(call_limit);
20495
20496    $('#CallqueueMaxSms').val( max_sms);
20497    $('#CallqueueMaxSms-slider').slider('value', max_sms);
20498    $('#CallqueueMaxSms-slider').children(".ui-slider-handle").find("span.slider-tooltip-value").html(max_sms);
20499    $('#CallqueueMaxSms').val(max_sms);
20500
20501    priority = priority.replace("-", "1");
20502    $('#CallqueuePriority').val( priority);
20503    $('#CallqueuePriority').val(priority);
20504
20505    order = order.replace("-", "0");
20506    $('#CallqueueOrder').val( order);
20507    $('#CallqueueOrder').val(order);
20508
20509
20510    tier = tier.replace("-", "0");
20511    $('#CallqueueTier').val( tier);
20512    $('#CallqueueTier').val(tier);
20513
20514
20515    $('#agent_type').val( agent_type);
20516    $('#agent_type').val(agent_type);
20517    var isEditNow = false;
20518    if (agent_type == "subscriber" || (showByUser && !showByDevice))
20519    {
20520      isEditNow = $('#extension').prop('readonly');
20521      $('#extension').val( device);
20522      $('#device').val( "");
20523      if (device === null || device === "")
20524          $('#extension').prop('readonly', false);
20525      else
20526          $('#extension').prop('readonly', true);
20527
20528      $('.control-group.group-extension').show();
20529      $('.control-group.group-device').hide();
20530    }
20531    else {
20532      isEditNow = $('#device').prop('readonly');
20533      $('#device').val( device);
20534      $('#extension').val( "");
20535      if (device === null || device === "")
20536          $('#device').prop('readonly', false);
20537      else
20538          $('#device').prop('readonly', true);
20539
20540      $('.control-group.group-device').show();
20541      $('.control-group.group-extension').hide();
20542    }
20543
20544    //showAddEdit
20545    //alert(auto);
20546    if (auto == "yes" || auto == "Yes")
20547        $('#auto_answer').prop('checked', true);
20548    else
20549        $('#auto_answer').prop('checked', false);
20550
20551    if (confirm_required == "yes" || confirm_required == "Yes")
20552        $('#confirm_required').prop('checked', true);
20553    else
20554        $('#confirm_required').prop('checked', false);
20555    //else
20556    //  $('#auto_answer').prop('checked', 'unchecked');
20557    //alert($('#auto_answer').prop('checked'));
20558    //$('#' + selected).slideDown();
20559    //$('#' + 'addbutton').hide();
20560
20561    // var bodyHeight = parseInt($('#write-agents').find('.modal
20561-body').css('max-height'));
20562    //var editHeight = addedit.outerHeight();
20563    //log('editHeight: ' +editHeight);
20564
20565    if (device === null || device === "")
20566    {
20567      $('#agents-autocomplete').show();
20568      $('#extensions-autocomplete').show();
20569      $('#device').hide();
20570      $('#extension').hide();
20571      $('.add-agents-by').show();
20572
20573    }
20574    else {
20575      $('#agents-autocomplete').hide();
20576      $('#extensions-autocomplete').hide();
20577      $('#device').show();
20578      $('#extension').show();
20579      $('.add-agents-by').hide();
20580    }
20581
20582    if (isEditNow && addedit.is(':visible')) {
20583        //do nothing
20584    } else if (addedit.is(':hidden')) {
20585        showAgentEdit();
20586    } else if (device == '' && addedit.is(':visible')) {
20587        hideAgentEdit();
20588        $('#agents-autocomplete').hide();
20589    }
20590
20591    if (offnet || offnet == "1") {
20592        hqAgentOffnet(true, type);
20593    } else {
20594        hqAgentOffnet(false, type);
20595    }
20596}
20597
20598function showAgentEdit() {
20599    var bodyHeight = parseInt($('#write-agents').find('.modal-body').css('max-height'));
20600
20601    $('#addedit .scrollable').css({height: (bodyHeight - 52) * (1 / 2) - 30 + 'px'});
20602    $('#add-agents-table').animate({height: (bodyHeight - 52) * (1 / 2) - 30 + 'px'}, {duration: 400, queue: false});
20603    $('#addedit').animate(
20604        {
20605            height: 'show'
20606        }, {
20607            duration: 400,
20608            queue: false,
20609            progress: function () {
20610                modalResize($(this).parents('.modal'));
20611            }
20612        });
20613}
20614
20615function hideAgentEdit() {
20616    var bodyHeight = parseInt($('#write-agents').find('.modal-body').css('max-height'));
20617
20618    $('#add-agents-table').animate({height: bodyHeight - 40 + 'px'}, {duration: 400, queue: false});
20619    $('#addedit').animate({height: 'hide'}, {
20620        duration: 400, queue: false, progress: function () {
20621            modalResize($(this).parents('.modal'));
20622        }
20623    });
20624}
20625
20626function toggleSiteManagerScope()
20627{
20628  setTimeout(function () {
20629    if($('#site').length == 0 || $('#site').val() == "")
20630      $("#UserScope option[value*='Site Manager']").prop('disabled',true);
20631    else {
20632      $("#UserScope option[value*='Site Manager']").prop('disabled',false);
20633    }
20634  }, 100);
20635}
20636
20637/**
20638 * Function adds jQuery based on whether Agent number is "off net" - 10 digit phone number, indicating outside system
20639 *
20640 * @param {boolean} isOffnet
20641 * @param {string} type
20642 */
20643function hqAgentOffnet(isOffnet, type) {
20644    if (isOffnet) {
20645        $("#device").attr("class", "large validate[required]");
20646        $("#remote-agent-label").removeClass("hide");
20647        $("#group-for-offnet-name").removeClass("hide"); // show offnet name field
20648        $("#isOffnet").val( "yes");
20649        $("#CallqueueLoginType").html("<option value=\"Disabled\">" + _('Offline') + "</option><option value=\"offnet\">" + _('Online') + "</option>");
20650        log(type);
20651        if (type == "offnet" || type == "Logged In")
20652            $("#CallqueueLoginType").val( "offnet");
20653        else
20654            $("#CallqueueLoginType").val( "Disabled");
20655        $("#groupforwrap, #group-for-maxcalls, #group-for-priority, #group-for-autoanswer, #group-for-maxsms").addClass("hide");
20656    } else {
20657        $("#device").attr("class", "large validate[required,ajax[agentAdd] ]");
20658        $("#remote-agent-label").addClass("hide");
20659        $("#group-for-offnet-name").addClass("hide"); // hide offnet name field
20660        $("#isOffnet").val( "no");
20661        $("#CallqueueLoginType").html("<option value=\"Logged Out\">" + _('Offline') + "</option><option value=\"Logged In\">" + _('Online') + "</option>"); // REMOVED 1226 <option value=\"Available One Call\">Online: One Call</option>");
20662        if (type == "Logged In" || type == _('Online') || type =='Online' ) {
20663            $("#CallqueueLoginType").val( "Logged In");
20664        } else if (type == "Logged Out" || type == _('Offline') || type =='Offline') {
20665            $("#CallqueueLoginType").val( "Logged Out");
20666        } else {
20667            $("#CallqueueLoginType").val( "Available One Call");
20668        }
20669        $("#groupforwrap, #group-for-maxcalls, #group-for-priority, #group-for-autoanswer, #group-for-maxsms").removeClass("hide");
20670    }
20671}
20672
20673function agentsTableHeight(refresh) {
20674    log('adjusting agents table height');
20675    var modal = $('#write-agents');
20676    // modalResize(modal);
20677
20678    //show hidden modal elements before calculating heights
20679    //modal.find('.modal-header, .modal-body, .modal-footer').show();
20680
20681    var bodyHeight = parseInt(modal.find('.modal-body').css('max-height'));
20682
20683    $('#add-agents-table').css({height: bodyHeight - 20});
20684
20685    if (refresh)
20686        modal.find('.modal-header, .modal-footer').fadeIn(25, function () {
20687            modal.find('.modal-body')
20688                .css('display', 'block');
20689            modalResize(modal);
20690        });
20691    else
20692        modal.find('.modal-header, .modal-footer').fadeIn(25, function () {
20693            modal.find('.modal-body')
20694                .animate({
20695                    height: "show", opacity: "show"
20696                }, {
20697                    duration: 100,
20698                    progress: function () {
20699                        modalResize(modal);
20700                    }
20701                });
20702        });
20703
20704    //modalResize(modal);
20705    //workaround to prevent modal hide event from triggering tooltip
20706    $('.modal').unbind('hide');
20707}
20708
20709function enableAgentDelete() {
20710
20711    alert('test');
20712
20713    //$(form)[0].CallqueueToDelete.value = "DELETE";
20714    $('#' + 'CallqueueToDelete').val( "DELETE");
20715
20716    //var name=prompt("TYPE DELETE","DELE");
20717    //confirm("sometext");
20718
20719}
20720
20721function hideAddEdit(toDelete) {
20722
20723
20724    var selected = 'addedit';
20725
20726    $('#' + selected).slideUp();
20727
20728
20729    //$("form:first").submit('toDelete');
20730
20731}
20732
20733function phoneShowOptions(isAdd) {
20734    if (isAdd != "1")
20735        isAdd = false;
20736    else
20737        isAdd = true;
20738    //alert($(this).attr('val'));
20739    var model = $('#PhoneModel').val()
20740    if (model != "" && model != "Manual or Softphone") {
20741        $('#' + "macLineDiv").animate({
20742            height: "show", opacity: "show"
20743        }, {
20744            queue: false,
20745            progress: function () {
20746                modalResize($(this).parents('.modal'));
20747            }
20748        });
20749        $('#' + "manualDiv").animate({
20750            height: "hide", opacity: "hide"
20751        }, {
20752            queue: false,
20753            progress: function () {
20754                modalResize($(this).parents('.modal'))
20755            }
20756        });
20757    } else {
20758        $('#' + "macLineDiv").animate({
20759            height: "hide", opacity: "hide"
20760        }, {
20761            queue: false,
20762            progress: function () {
20763                modalResize($(this).parents('.modal'))
20764            }
20765        });
20766        if (!isAdd)
20767            $('#' + "manualDiv").animate({
20768                height: "show", opacity: "show"
20769            }, {
20770                queue: false,
20771                progress: function () {
20772                    modalResize($(this).parents('.modal'))
20773                }
20774            });
20775    }
20776
20777}
20778
20779function greetingFadeCallback(select, selectText = '') {
20780    if (select == null) {
20781        var selected = selectText;
20782    } else {
20783        var selected = $(select).val();
20784    }
20785
20786    if ($('.toggle-placeholder').is(':hidden')) {
20787        $('.toggle-placeholder').slideDown();
20788    }
20789
20790    if ($('.toggle-placeholder .slide').is(':visible')) {
20791        $('.toggle-placeholder .slide:visible').stop().fadeOut(200, function () {
20792            $('#' + selected).fadeIn(200);
20793        });
20794    } else {
20795        $('#' + selected).fadeIn(200);
20796    }
20797
20798    if ($('#UserSelectUploadFile').prop('checked')) {
20799        $('.save_button_js').hide();
20800        $('.save_tts_btn').hide();
20801        $('.save_button_form').show();
20802        $('.save_button_form > .btn').val('Upload');
20803    } else if ($('#UserSelectTextToSpeech').prop('checked')) {
20804        $('.save_tts_btn').show();
20805        $('#save_tts_btn').show();
20806        $('.save_button_form').hide();
20807        $('.save_button_js').hide();
20808    } else {
20809        $('.save_button_form').hide();
20810        $('.save_tts_btn').hide();
20811        $('.save_button_js').show();
20812        $('#save_button_js').show();
20813        $('.save_button_js > .btn').val('Call');
20814        $('.save_button_js > .btn').data('loading-text', 'Calling...');
20815    }
20816}
20817
20818function greetingFade() {
20819    $('#moh00_enabled').click(function () {
20820        if ($('#MusicSelectRecordNumber').is(':checked')) {
20821            $('#save-js').show();
20822            $('#save-form').addClass('hide');
20823        }
20824    });
20825
20826    $(':button[value="Add Greeting"],#moh00_enabled').click(function () {
20827        if ($(':input[value="record-number"]').is(':checked')) {
20828            $('input.greetingFade').each(function () {
20829                greetingFadeCallback(this);
20830            })
20831        }
20832    });
20833
20834    $('input.greetingFade').change(function () {
20835        greetingFadeCallback(this)
20836    });
20837}
20838
20839
20840
20841function msgFadeCallback(select, selectText = '') {
20842    if (select == null) {
20843        var selected = selectText;
20844    } else {
20845        var selected = $(select).val();
20846    }
20847
20848    if ($('.toggle-placeholder').is(':hidden')) {
20849        $('.toggle-placeholder').slideDown();
20850    }
20851
20852    if ($('.toggle-placeholder .slide').is(':visible')) {
20853        $('.toggle-placeholder .slide:visible').stop().fadeOut(200, function () {
20854            $('#' + selected).fadeIn(200);
20855        });
20856    } else {
20857        $('#' + selected).fadeIn(200);
20858    }
20859
20860    if ($('#UserSelectUploadFile').prop('checked')) {
20861        $('.save_button_js').hide();
20862        $('.save_tts_btn').hide();
20863        $('.save_button_form').show();
20864        $('.save_button_form > .btn').val('Upload');
20865    } else if ($('#UserSelectTextToSpeech').prop('checked')) {
20866        $('.save_tts_btn').show();
20867        $('#save_tts_btn').show();
20868        $('.save_button_form').hide();
20869        $('.save_button_js').hide();
20870    } else {
20871        // console.log('show save_button_js 1');
20872        // $('.save_button_form').hide();
20873        // $('.save_tts_btn').hide();
20874        // $('.save_button_js').show();
20875        // $('#save_button_js').show();
20876        // $('.save_button_js > .btn').val('Call');
20877        // $('.save_button_js > .btn').data('loading-text', 'Calling...');
20878    }
20879}
20880
20881function msgFade() {
20882    $('#moh00_enabled').click(function () {
20883        if ($('#MusicSelectRecordNumber').is(':checked')) {
20884            $('#save-js').show();
20885            $('#save-form').addClass('hide');
20886        }
20887    });
20888
20889    $(':button[value="Add Greeting"],#moh00_enabled').click(function () {
20890        if ($(':input[value="record-number"]').is(':checked')) {
20891            $('input.msgFade').each(function () {
20892                msgFadeCallback(this);
20893            })
20894        }
20895    });
20896
20897    $('input.msgFade').change(function () {
20898        msgFadeCallback(this)
20899    });
20900}
20901
20902
20903
20904/**
20905 * calculates and shows or hides table and add/edit div heights
20906 *
20907 * @param {integer} index - is the greeting file index
20908 * @param {string} script - is used for the greeting name
20909 * @param {boolean} edit - true if editing a greeting
20910 * @param {string} voice_id - voice id
20911 * @param {string} voice_language - voice language
20912 **/
20913function greetingAddEdit(index, script, edit) {
20914    script = decodeURIComponent(script);
20915    var addedit = $('#greetingAddEdit');
20916    //alert($('#moh00_enabled').prop('checked'));
20917    $('#UserEditNumber').val( index);
20918
20919    var bodyHeight = parseInt($('#greetings-modal').find('.modal
20919-body').css('max-height'));
20920    //var addeditHeight = addedit.outerHeight();
20921    var addeditHeight = 243; //gave a hard value because outerHeight calculates inconsistently
20922
20923    //log('addeditHeight: ' +addeditHeight);
20924
20925    //if editing a greeting do...
20926    if (edit) {
20927        //if addedit section is hidden show it
20928        if (addedit.is(':hidden')) {
20929            $('#UserGreetingName').val( script);
20930            $('#messageText').val(script);
20931            //outerHeight of addEdit div
20932            $('.greetings-table').animate({height: bodyHeight - addeditHeight + 'px'},
20933                {
20934                    duration: 550,
20935                    queue: false
20936                });
20937            addedit.animate({height: 'show', opacity: 'show'},
20938                {
20939                    duration: 550,
20940                    queue: false
20941                });
20942        }
20943        //otherwise fade section out and in with greeting's values
20944        else
20945            addedit.fadeOut(100, function () {
20946                $('#UserGreetingName').val( script);
20947                $('#messageText').val(script);
20948                addedit.fadeIn(100);
20949            });
20950    } else {
20951        //if addedit section is visible and the name value is blank, hide the addedit section
20952        if (addedit.is(':visible') && $('#UserGreetingName').val() == '') {
20953            //outerHeight of addEdit div - 20px padding/margin
20954            $('.greetings-table').animate({height: bodyHeight - 20 + 'px'},
20955                {
20956                    duration: 550,
20957                    queue: false
20958                });
20959            addedit.animate({height: 'hide', opacity: 'hide'},
20960                {
20961                    duration: 550,
20962                    queue: false
20963                });
20964        }
20965        //otherwise if it's visible but has greetings values, fade out/in and overwrite them for a new greeting
20966        else if (addedit.is(':visible')) {
20967            addedit.fadeOut(100, function () {
20968                $('#UserGreetingName').val( script);
20969                $('#messageText').val(script);
20970                addedit.fadeIn(100);
20971            });
20972        }
20973        //otherwise just show the addedit section to add a new greeting
20974        else {
20975            $('#UserGreetingName').val( script);
20976
20977            //outerHeight of addEdit div
20978            $('.greetings-table').animate({height: bodyHeight - addeditHeight + 'px'},
20979                {
20980                    duration: 550,
20981                    queue: false
20982                });
20983            addedit.animate({height: 'show', opacity: 'show'},
20984                {
20985                    duration: 550,
20986                    queue: false
20987                });
20988        }
20989
20990
20991    }
20992}
20993
20994//used after clicking 'save' on greeting
20995function greetingAddEditClose() {
20996    //alert($('#moh00_enabled').prop('checked'));
20997    $('#greetingAddEdit').animate({height: 'hide', opacity: 'hide'}, 750);
20998}
20999
21000function updateGreetingDD() {
21001    $.getJSON("/portal/users/greetings/json/" + sub_user + "@" + sub_domain + "/*", function (data) {
21002        var source = "";
21003        log(data);
21004
21005        $.each(data, function (key, val) {
21006            var isFound = false;
21007            var totest = val.index + " - " + val.moh_script;
21008
21009            $('#greeting-select option').each(function () {
21010
21011                if (totest == $(this).text()) {
21012                    isFound = true;
21013                    log("found " + totest);
21014                }
21015            });
21016
21017            if (!isFound) {
21018                $('#greeting-select').append(
21019                    $('<option></option>').val(val.remotepath).html(totest)
21020                );
21021            }
21022        });
21023    });
21024
21025}
21026
21027// shows/hides intro greetings sections in AA intro greetings modal
21028function introsAddEdit(index, script, edit, message) {
21029    if (typeof message == 'undefined')
21030      message = "";
21031    message = decodeURIComponent(message);
21032
21033    var addedit = $('#greetingAddEdit');
21034    //alert($('#moh00_enabled').prop('checked'));
21035    $('#UserEditNumber').val( index);
21036    $('#UserGreeting').val( index);
21037    $('#UserTimeFrame').val( script);
21038    $('#UserTimeFrame2').val( script);
21039    $('#intro_enabled_changed').val( "1");
21040
21041    if (script === "") {
21042        $('#UserTimeFrame').prop("disabled", false);
21043        $('#UserTimeFrame').attr('class', "xlarge validate[required]");
21044    } else {
21045        $('#UserTimeFrame').prop("disabled", true);
21046        $('#UserTimeFrame').attr('class', "xlarge ");
21047
21048    }
21049
21050    $('#messageText').val(message);
21051
21052    var bodyHeight = parseInt($('#introgreeting-modal').find('.modal-body').css('max-height'));
21053    //var addeditHeight = addedit.outerHeight();
21054    var addeditHeight = 243; //gave a hard value because outerHeight calculates inconsistently
21055
21056    //log('addeditHeight: ' +addeditHeight);
21057
21058    //if editing a greeting do...
21059    if (edit) {
21060
21061        //if addedit section is hidden show it
21062        if (addedit.is(':hidden')) {
21063            $('#UserGreetingName').val( script);
21064            $('#newGreetingTimeframeSelect').val( script);
21065            $('#newGreetingTimeframeSelect').prop("disabled", true);
21066
21067            //modal body - addEdit div
21068            $('.greetings-table').animate({height: bodyHeight - addeditHeight + 'px'},
21069                {
21070                    duration: 550,
21071                    queue: false
21072                });
21073            addedit.animate({height: 'show', opacity: 'show'},
21074                {
21075                    duration: 550,
21076                    queue: false
21077                });
21078        }
21079        //otherwise fade section out and in with greeting's values
21080        else
21081            addedit.fadeOut(100, function () {
21082                $('#UserGreetingName').val( script);
21083                $('#newGreetingTimeframeSelect').val( script);
21084                $('#newGreetingTimeframeSelect').prop("disabled", true);
21085                addedit.fadeIn(100);
21086            });
21087    } else {
21088        $('#newGreetingTimeframeSelect').prop("disabled", false);
21089        //if addedit section is visible and the name value is blank, hide the addedit section
21090        if (addedit.is(':visible') && $('#UserTimeFrame').val() == '') {
21091            //modal body - 20px padding/margin
21092            $('.greetings-table').animate({height: bodyHeight - 20 + 'px'},
21093                {
21094                    duration: 550,
21095                    queue: false
21096                });
21097            addedit.animate({height: 'hide', opacity: 'hide'},
21098                {
21099                    duration: 550,
21100                    queue: false
21101                });
21102        }
21103        //otherwise if it's visible but has greetings values, fade out/in and overwrite them for a new greeting
21104        else if (addedit.is(':visible')) {
21105            addedit.fadeOut(100, function () {
21106                $('#UserGreetingName').val( script);
21107                $('#newGreetingTimeframeSelect').val( script);
21108                addedit.fadeIn(100);
21109            });
21110        }
21111        //otherwise just show the addedit section to add a new greeting
21112        else {
21113            $('#UserGreetingName').val( script);
21114            $('#newGreetingTimeframeSelect').val( script);
21115            //modal body - addEdit div
21116            $('.greetings-table').animate({height: bodyHeight - addeditHeight + 'px'},
21117                {
21118                    duration: 550,
21119                    queue: false
21120                });
21121            addedit.animate({height: 'show', opacity: 'show'},
21122                {
21123                    duration: 550,
21124                    queue: false
21125                });
21126        }
21127    }
21128}
21129
21130//used after clicking 'save' on greeting
21131function introsAddEditClose() {
21132    //alert($('#moh00_enabled').prop('checked'));
21133    $('#greetingAddEdit').animate({height: 'hide', opacity: 'hide'}, 750);
21134}
21135
21136//calculates table height on modal load and display
21137//form is a boolean that indicates if the greetingstable is being loaded after an ajax form submit
21138function greetingsTableHeight(form) {
21139    log('adjusting greetings table height');
21140
21141    if ($('#introgreeting-modal').length)
21142        var modal = $('#introgreeting-modal');
21143    else
21144        var modal = $('#greetings-modal');
21145
21146    modalResize(modal);
21147    //show hidden modal elements before calculating heights
21148    //modal.find('.modal-header, .modal-body, .modal-footer').show();
21149
21150    var addedit = $('#greetingAddEdit');
21151    var bodyHeight = parseInt(modal.find('.modal-body').css('max-height'));
21152    //var addeditHeight = addedit.outerHeight() + 10; //10 added because outerHeight misses some margin from a field
21153    var addeditHeight = 233;
21154
21155
21156    if (addedit.hasClass('nohide'))
21157        $('.greetings-table').css({height: bodyHeight - addeditHeight - 20}); //outerHeight of addEdit div - 20px padding
21158    else
21159        $('.greetings-table').css({height: bodyHeight - 20});
21160
21161    if (form)
21162        modal.find('.modal-header, .modal-body, .modal-footer').fadeIn(25);
21163    else
21164        modal.find('.modal-header, .modal-footer').fadeIn(25, function () {
21165            modal.find('.modal-body')
21166                .animate({
21167                    height: "show", opacity: "show"
21168                }, {
21169                    duration: 100,
21170                    progress: function () {
21171                        modalResize(modal);
21172                    }
21173                });
21174        });
21175
21176
21177    modalResize(modal);
21178
21179    //workaround to prevent modal hide event from triggering tooltip
21180    $('.modal').unbind('hide');
21181}
21182
21183function toggleMoh0() {
21184    //alert($('#moh00_enabled').prop('checked'));
21185
21186    if ($('#moh00_enabled').prop('checked'))
21187        $("#moh0manage").animate({
21188            height: 'show', opacity: 'show'
21189        }, {
21190            progress: function () {
21191                modalResize($(this).parents('.modal'));
21192            }
21193        });
21194    else {
21195        $("#moh0manage").animate({
21196            height: 'hide', opacity: 'hide'
21197        }, {
21198            progress: function () {
21199                modalResize($(this).parents('.modal'));
21200            }
21201        });
21202        $("#upload_div, #record_div").hide();
21203    }
21204}
21205
21206function showUpload() {
21207    $("#record_div").hide();
21208    $("#upload_div").show();
21209}
21210
21211function showRecord() {
21212    $("#upload_div").hide();
21213    $("#record_div").show();
21214}
21215
21216function saveNoAnsTimeout() {
21217    //alert("saving");
21218
21219    //var selected = 'submittimeout';
21220
21221    //$('#' + selected).submit();
21222    //$("form:first").submit(); //dead code
21223    //$('.slide').slideDown();
21224    //$('#' + selected).slideUp();
21225
21226    //for (counter=0; counter<$(form).length; counter++)
21227    //  alert($(form)[counter]);
21228
21229
21230    //alert($(form).toString());
21231    //$(form)[0].submit();
21232
21233
21234}
21235
21236function showMoreTZoptions() {
21237    var selectString = '#UserTimeZone';
21238    var mySelect = $(selectString);
21239
21240    if (typeof mySelect == 'undefined' || mySelect.length == 0) {
21241        selectString = '#DomainTimeZone';
21242        mySelect = $(selectString);
21243    }
21244
21245    if (mySelect.val() == "show more...") {
21246        var optVals = [];
21247        $(selectString + 'Storage option').each(function () {
21248            if ($(this).val() != "")
21249                optVals.push($(this).val());
21250        });
21251
21252        $.each(optVals, function (val, text) {
21253            mySelect.append(
21254                $('<option></option>').val(text).html(text)
21255            );
21256        });
21257        $(selectString).find("option").attr("selected", false);
21258        $(selectString + " option[value='show more...']").remove();
21259    }
21260}
21261
21262
21263function addLocationToggle() {
21264    // reveal the duplicate location inputs
21265    // change the button to be x helpsy instead
21266    // if it is to show
21267    if ($('#add-location').hasClass('add-state')) {
21268        showAddLocation();
21269    } else {
21270        // cancel Add Location
21271        hideAddLocation();
21272    }
21273}
21274
21275
21276function showAddLocation() {
21277    $('.address-duplicate-control-group').removeClass('hide');
21278    $('#add-location').removeClass('add-state');
21279    // $('#add-location').addClass('del');
21280
21281    // change help text to "Cancel"
21282    $("#add-location").text(_('Cancel'));
21283
21284    // hide the original dropdowns
21285    $('.address-control-group').addClass('hide');
21286    $('.address-control-group-notify').addClass('hide');
21287
21288    // hide Edit Address button
21289    $('#edit-address').addClass('hide');
21290    $('#delete-address').addClass('hide');
21291
21292    modalResize($('.address-control-group').parents('.modal'));
21293    modalResize($('.address-control-group-notify').parents('.modal'));
21294}
21295
21296
21297function hideAddLocation() {
21298    $('#address_name_duplicate').val('');
21299    $('#location_duplicate').val('');
21300
21301    $('.address-duplicate-control-group').addClass('hide');
21302    // $('#add-location').removeClass('del');
21303    $('#add-location').addClass('add-state');
21304    $("#add-location").text(_('Add location description'));
21305
21306    // show the original dropdowns IF the value is add an address
21307    if ($("#address_id").val() == "add_address_id") {
21308        $('.address-control-group').removeClass('hide');
21309        $('.address-control-group-notify').removeClass('hide');
21310    }
21311
21312    // see if should show edit address
21313    var value = $("#address_id").val();
21314    if (addressesJS != undefined && Array.isArray(addressesJS) && addressesJS['0'] != undefined && value != undefined) {
21315        // get the address chosen from dropdown from the list of all addresses
21316        let chosenAddress = addressesJS.find(o => o.address_id === value);
21317
21318        // set the address pretty print help text to the chosen address
21319        if (chosenAddress != undefined) {
21320            // only show address if the address belongs to the current logged in user (this is so that you cannot dox someone else by looking at their profile)
21321            if (chosenAddress['user'] == "*" || chosenAddress['user'] == userSite || chosenAddress['domain_level'] != undefined || chosenAddress['site_level'] != undefined || chosenAddress['user'] == sub_user) {
21322                $('#address_pretty_print').text(chosenAddress['pretty_print']);
21323
21324                // TODO also show edit options only show edit option if it is user level..
21325                if (chosenAddress['domain_level'] != undefined || chosenAddress['site_level'] != undefined) {
21326                    $('#delete-address').addClass('hide');
21327                    $('#edit-address').addClass('hide');
21328                } else {
21329                    $('#edit-address').removeClass('hide');
21330                    $('#delete-address').removeClass('hide');
21331                }
21332            }
21333        }
21334    }
21335    modalResize($('.address-control-group').parents('.modal'));
21336    modalResize($('.address-control-group-notify').parents('.modal'));
21337}
21338
21339
21340
21341// shows more options for address adding for various add/edit routes
21342function showAddressAddProfile(value, addressesJS = undefined, userSite = undefined) {
21343    cancelAddressEdit();
21344    hideAddLocation();
21345    if (value == 'add_address_id') {
21346        $('.address-control-group').removeClass('hide');
21347        $('.address-control-group-notify').removeClass('hide');
21348        // disable save button for now
21349        $('.saveBtn').prop('disabled', true);
21350
21351        // show the validate button
21352        $('.valBtn').removeClass('hide');
21353
21354        // resize modal
21355        modalResize($('.address-control-group').parents('.modal'));
21356        modalResize($('.address-control-group-notify').parents('.modal'));
21357
21358        // hide/reset any duplicate prompts that might be showing if you change to add_address option
21359        $('#address_name_duplicate').val('');
21360        $('#location_duplicate').val('');
21361        $('.address-duplicate-control-group').addClass('hide');
21362        $('#add-location').addClass('add-state');
21363        $("#add-location").text(_('Add location description'));
21364        $('#address_pretty_print').text('');
21365
21366        // hide buttons for Add my location and Edit Address
21367        $('#add-location').addClass('hide');
21368        $('#edit-address').addClass('hide');
21369        $('#delete-address').addClass('hide');
21370
21371        // make all the fields blank
21372        $('#address_name').val('');
21373        $('#caller_name').val('');
21374        $('#address_line_1').val('');
21375        $('#address_line_2').val('');
21376        $('#state_code').val('');
21377        $('#city').val('');
21378        $('#zip').val('');
21379        $('#location').val('');
21380    } else {
21381        // $('.address-control-group').addClass('hide');
21382        // enable save button for now
21383        $('.saveBtn').prop('disabled', false);
21384
21385        // hide the validate button
21386        $('.valBtn').addClass('hide');
21387
21388        // set the help text too
21389        $("#validate-address-message").removeClass("text-success").text(_('Validate a new address before saving. All fields must be filled out before validating.'));
21390
21391        // resize modal
21392        modalResize($('.address-control-group').parents('.modal'));
21393        modalResize($('.address-control-group-notify').parents('.modal'));
21394
21395
21396        // // changed to a non-address value, can read and fill in the address information into the boxes, and also show the
21397        // if (addressesJS != undefined && Array.isArray(addressesJS) && addressesJS['0'] != undefined) {
21398        //     // show pretty print here
21399        //     let chosenAddress = addressesJS.find(o => o.address_id === value);
21400
21401        //     // set the address pretty print help text to the chosen address
21402        //     if (chosenAddress != undefined) {
21403        //         $('#address_pretty_print').text(chosenAddress['pretty_print']);
21404        //     }
21405        // }
21406    }
21407
21408    // changed to a non-address value, can read and fill in the address information into the boxes, and also show the
21409    // show pretty print here
21410    if (addressesJS != undefined && Array.isArray(addressesJS) && addressesJS['0'] != undefined) {
21411        // get the address chosen from dropdown from the list of all addresses
21412        let chosenAddress = addressesJS.find(o => o.address_id === value);
21413
21414        // set the address pretty print help text to the chosen address
21415        if (chosenAddress != undefined) {
21416            // only show address if the address belongs to the current logged in user (this is so that you cannot dox someone else by looking at their profile)
21417            if (chosenAddress['user'] == "*" || chosenAddress['user'] == userSite || chosenAddress['domain_level'] != undefined || chosenAddress['site_level'] != undefined || chosenAddress['user'] == sub_user) {
21418                $('#address_pretty_print').text(chosenAddress['pretty_print']);
21419
21420                // TODO also show edit options only show edit option if it is user level..
21421                if (chosenAddress['domain_level'] != undefined || chosenAddress['site_level'] != undefined) {
21422                    $('#edit-address').addClass('hide');
21423                    $('#add-location').removeClass('hide'); // if it is domain/site level, always show the add location
21424                } else {
21425                    $('#edit-address').removeClass('hide');
21426                }
21427
21428
21429                if (chosenAddress['user'] == sub_user) {
21430                    $('#add-location').addClass('hide');
21431                }
21432
21433                // fill in the values
21434                fillInAddressData(chosenAddress);
21435            } else {
21436                $('#address_pretty_print').text(_('Address is hidden for privacy'));
21437            }
21438        } else {
21439            $('#address_pretty_print').text('');
21440        }
21441    }
21442}
21443
21444
21445
21446// press edit address, should change edit flag to true
21447// change the string of the button to be "Cancel"
21448// show the address information fields
21449function editAddressToggle () {
21450    var editFlagEle = document.getElementById("edit_flag");
21451    if (!editFlagEle) {
21452        return;
21453    }
21454
21455    if (document.getElementById("edit_flag").value == "false") {
21456        // toggling to true (Pressed Edit address)
21457        startAddressEdit();
21458    } else if (document.getElementById("edit_flag").value == "true") {
21459        // toggling to false (Pressed Cancel)
21460        cancelAddressEdit();
21461    }
21462}
21463
21464
21465function startAddressEdit() {
21466    // toggling to true (Pressed Edit address)
21467    document.getElementById("edit_flag").value = "true";
21468
21469    // show the inputs
21470    $('.address-control-group').removeClass('hide');
21471    $('.address-control-group-notify').removeClass('hide');
21472
21473
21474    // value is the address_id that is currently selected
21475    let value = document.getElementById("address_id").value;
21476    let chosenAddress = addressesJS.find(o => o.address_id === value);
21477
21478    if (chosenAddress != undefined) {
21479        fillInAddressData(chosenAddress);
21480    }
21481
21482    // change "Edit Address" link text to "Cancel"
21483    $('#edit-address').text(_('Cancel'));
21484
21485    // hide Add my location button
21486    $('#add-location').addClass('hide');
21487
21488
21489    // hide pretty print
21490    $('#address_pretty_print').addClass('hide');
21491
21492    // make sure save is disabled anymore on edit
21493    $('.saveBtn').prop('disabled', true);
21494
21495    // show validate button
21496    $('.valBtn').prop('disabled', false).show();
21497
21498    modalResize($('.address-control-group').parents('.modal'));
21499    modalResize($('.address-control-group-notify').parents('.modal'));
21500}
21501
21502function cancelAddressEdit() {
21503    // toggling to false (Pressed Cancel)
21504    var editFlagEle = document.getElementById("edit_flag");
21505    if (editFlagEle) {
21506        editFlagEle.value = "false";
21507    }
21508
21509    // hide the inputs
21510    $('.address-control-group').addClass('hide');
21511    $('.address-control-group-notify').addClass('hide');
21512
21513    // change "Cancel" link text BACK to "Edit Address"
21514    $('#edit-address').text(_('Edit Address'));
21515
21516    // bring back Add my location description button
21517    // $('#add-location').removeClass('hide');
21518
21519    // reveal pretty print again
21520    $('#address_pretty_print').removeClass('hide');
21521
21522    // make sure save is not disabled anymore on cancel edit
21523    $('.saveBtn').prop('disabled', false);
21524
21525    modalResize($('.address-control-group').parents('.modal'));
21526    modalResize($('.address-control-group-notify').parents('.modal'));
21527}
21528
21529
21530function fillInAddressData(chosenAddress) {
21531    document.getElementById("address_name").value = chosenAddress['address_name'];
21532    document.getElementById("caller_name").value = chosenAddress['caller_name'];
21533    document.getElementById("address_line_1").value = chosenAddress['address_line_1'];
21534    document.getElementById("address_line_2").value = chosenAddress['address_line_2'];
21535    document.getElementById("country_code").value = chosenAddress['country_code'];
21536    document.getElementById("state_code").value = chosenAddress['state_code'];
21537    document.getElementById("city").value = chosenAddress['city'];
21538    document.getElementById("zip").value = chosenAddress['zip'];
21539    if (typeof chosenAddress['location'] != 'undefined' && document.getElementById("location") != null) {
21540        document.getElementById("location").value = chosenAddress['location'];
21541    }
21542    document.getElementById("carrier").value = chosenAddress['carrier'];
21543}
21544
21545
21546// should require validate again because the user changed the address to be added
21547function domainAddressChange(value) {
21548    // disable the save button
21549    $('.saveBtn').prop('disabled', true);
21550
21551    isSaveValidDomain();
21552    // check if values are filled, if they are, then set validate button to be true
21553}
21554
21555function isSaveValidDomain() {
21556    var allowValidate = true;
21557    $( ".isNeededDomain" ).each(function( index ) {
21558        if ($(this).val() =="") {
21559            allowValidate = false;
21560        }
21561    });
21562
21563    if (allowValidate) {
21564        $('.valBtn').prop('disabled', false).show();
21565        $('#validate-address-message')
21566            .addClass('muted')
21567            .removeClass('text-error text-success')
21568            .text(_('Validate a new address before saving. All fields must be filled out before validating.'));
21569
21570    } else {
21571        $('.valBtn').prop('disabled', true);
21572    }
21573}
21574
21575
21576
21577// should require validate again because the user changed the address to be added
21578function userAddressChange(value) {
21579    // disable the save button
21580    $('.saveBtn').prop('disabled', true);
21581
21582    isSaveValid();
21583    // check if values are filled, if they are, then set validate button to be true
21584}
21585
21586//make sure all address fields are filled before allowing to validate
21587function isSaveValid() {
21588    var allowValidate = true;
21589    $( ".isNeeded" ).each(function( index ) {
21590        if ($(this).val() =="")
21591            allowValidate = false;
21592
21593    });
21594
21595    if (allowValidate) {
21596        $('.valBtn').prop('disabled', false).show();
21597        $('#validate-address-message')
21598            .addClass('muted')
21599            .removeClass('text-error text-success')
21600            .text(_('Validate a new address before saving. All fields must be filled out before validating.'));
21601
21602    } else {
21603        $('.valBtn').prop('disabled', true);
21604    }
21605}
21606
21607
21608//clears forms and hides sliding content
21609function clearForm(form) {
21610    $(form)[0].reset();
21611    $('li[id*="slide"]').remove();
21612    findCheck();
21613    $(':text').blur();
21614}
21615
21616//hide modal modalId includes the #
21617function hideModal(modalId) {
21618    modalState = 'closing';
21619    var $modal = $(modalId);
21620
21621    $('form').validationEngine('hideAll');
21622
21623    modalTimer = setTimeout(function () {
21624        if ($modal.is(':visible'))
21625            $modal.modal('hide');
21626
21627        //empty and remove any bound events to elements in modal
21628        $modal.empty().off("*");
21629        $modal.html('<div class="loading-container relative" style="top:0;padding: 50px 0;">' +
21630            '<div class="loading-spinner la-ball-spin-clockwise">' +
21631            '<div></div>' +
21632            '<div></div>' +
21633            '<div></div>' +
21634            '<div></div>' +
21635            '<div></div>' +
21636            '<div></div>' +
21637            '<div></div>' +
21638            '<div></div>' +
21639            '</div>' +
21640            '</div>').attr('style', '');
21641        $modal.removeClass('load-failed');
21642        modalState = 'closed';
21643    }, 1000);
21644
21645}
21646
21647//hide agent stats modal used in call center manager
21648//TODO: convert to take placeholder html, store in string, then use here
21649function hideAgentModal(modalId) {
21650    modalState = 'closing';
21651
21652    if (modalId != "#view-agent-stats")
21653        return hideModal(modalId);
21654    $('form').validationEngine('hideAll');
21655    $(modalId).modal('hide');
21656
21657    modalTimer = setTimeout(function () {
21658        $(modalId).html('<div class="modal-header">' +
21659            '<button type="button" class="close cancel" data-dismiss="modal"  onclick="hideModal(\'#view-reports\');">&times;</button>' +
21660            '<h3>&nbsp;</h3>' +
21661            '</div>' +
21662            '<div class="split-chart-container">' +
21663            '<div class="chart-container first-chart">' +
21664            '<span class="loading-lg chart_div"></span>' +
21665            '<div id="chart_div" class="chart-container"></div>' +
21666            '</div>' +
21667            '<div class="chart-container second-chart">' +
21668            '<span class="loading-lg chart_div2"></span>' +
21669            '<div id="chart_div2" class="chart-container"></div>' +
21670            '</div>' +
21671            '</div>' +
21672            '<div class="split-chart-container">' +
21673            '<div class="chart-container first-chart">' +
21674            '<span class="loading-lg chart_div3"></span>' +
21675            '<div id="chart_div3" class="chart-container"></div>' +
21676            '</div>' +
21677            '<div class="chart-container second-chart">' +
21678            '<span class="loading-lg chart_div4"></span>' +
21679            '<div id="chart_div4" class="chart-container"></div>' +
21680            '</div>' +
21681            '</div>' +
21682            '<div class="modal-footer">' +
21683            '<button type="button" class="btn" data-dismiss="modal"  onclick="hideModal(\'#view-reports\');">Close</button>' +
21684            '</div>').attr('style', '');
21685        modalState = 'closed';
21686    }, 1000);
21687}
21688
21689//hide modal conditionally
21690function hideModalIf(modalId) {
21691    if ($('#hideModal').length) {
21692        modalState = 'closing';
21693
21694        log('hiding modal, reload location');
21695
21696        $(modalId).modal('hide');
21697
21698        modalTimer = setTimeout(function () {
21699            $(modalId).html('<span class="loading-lg"></span>').attr('style', '');
21700            modalState = 'closed';
21701        }, 1000);
21702
21703        location.reload(true);
21704    }
21705}
21706
21707function hideModalIfNoReload(modalId) {
21708    if ($('#hideModal').length) {
21709        modalState = 'closing';
21710
21711        log('hiding modal, no reload');
21712
21713        $(modalId).modal('hide');
21714
21715        modalTimer = setTimeout(function () {
21716            $(modalId).html('<span class="loading-lg"></span>').attr('style', '');
21717            modalState = 'closed';
21718        }, 1000);
21719    }
21720}
21721
21722//reloads the contents of the modal. Used in save and delete cases where the table contents need to be updated
21723function reloadModal(modalId) {
21724    modalState = 'opening';
21725
21726    var $modalObj = $(modalId);
21727    var modalPath = $modalObj.data('modal-path');
21728
21729    $modalObj.html('<span class="loading-lg"></span>');
21730
21731    modalResize($modalObj);
21732
21733    $.ajax({
21734        url: modalPath,
21735        cache: false
21736    }).done(function (html) {
21737        log('reloading modal data succeeded for ' + modalId);
21738
21739        $modalObj.css("minHeight", $modalObj.height());
21740
21741        try {
21742            $modalObj.html(html);
21743        } catch (err) {
21744            log("error caught - " + err);
21745        }
21746
21747        $modalObj.find('.modal-header, .modal-body, .modal-footer').show();
21748        modalResize($modalObj);
21749
21750        //workaround to prevent modal hide event from triggering tooltip
21751        $modalObj.unbind('hide');
21752
21753        modalState = 'open';
21754    }).fail(function (textStatus) {
21755        $modalObj.addClass('load-failed');
21756        var html = '<div class="modal-header">'
21757            + '<button type="button" class="close cancel" data-dismiss="modal"  onclick="hideModal(\'' + modalId + '\');">&times;</button>'
21758            + '<h4>' + textStatus.statusText + '</h4>'
21759            + '</div>'
21760            + '<div class="modal-body">'
21761            + '<div class="load-failed">'
21762            + '<h4>The modal contents failed to load.</h4><h4>Please try again.</h4>'
21763            + '</div>'
21764            + '</div>'
21765            + '<div class="modal-footer">'
21766            + '<button type="btn" class="cancel btn" data-dismiss="modal" onclick="hideModal(\'' + modalId + '\');">Close</button>'
21767            + '</div>'
21768        $modalObj.html(html);
21769        $modalObj.find('.modal-header, .modal-body, .modal-footer').show();
21770        modalResize($modalObj);
21771    });
21772}
21773
21774//load content into modal and show it.
21775function loadModal(modalId, path) {
21776    modalState = 'opening';
21777    clearTimeout(modalTimer);
21778
21779    log('loading modal ' + modalId + ' with data from ' + path);
21780
21781    var modalObj = $(modalId);
21782    var isNewModal = modalObj.css('display') != 'block';
21783
21784    var loadingHtml = '<div class="loading-container relative" style="top:0;padding: 50px 0;">' +
21785        '<div class="loading-spinner la-ball-spin-clockwise">' +
21786        '<div></div>' +
21787        '<div></div>' +
21788        '<div></div>' +
21789        '<div></div>' +
21790        '<div></div>' +
21791        '<div></div>' +
21792        '<div></div>' +
21793        '<div></div>' +
21794        '</div>' +
21795        '</div>';
21796
21797    if (isNewModal) {
21798        modalObj.html(loadingHtml).addClass('loading');
21799        modalResize(modalObj);
21800        $('.helpsy').tooltip('hide');
21801    }
21802
21803    modalObj.data('modal-path', path);
21804
21805    $.ajax({
21806        url: path,
21807        cache: false
21808    }).done(function (html) {
21809        log('loading modal data succeeded for ' + modalId);
21810        modalObj.removeClass('loading');
21811
21812        try {
21813            modalObj.html(html);
21814        } catch (err) {
21815          log("error caught - " + err);
21816        }
21817
21818        if (modalId == "#history-trace") {
21819            log('trying to animate modal width to window');
21820            var srcImage = $('.callflow-image img');
21821
21822            modalObj.css("maxHeight", $(window).height() - 30);
21823
21824            var widthImage = new Image();
21825            widthImage.onload = function () {
21826                var imageWidth = widthImage.width;
21827                modalObj.find('.modal-header, .modal-footer').fadeIn(25, function () {
21828
21829                    if (imageWidth > 610) {
21830                        if (imageWidth > ($(window).width() - 20))
21831                            imageWidth = $(window).width() - 20;
21832                        modalObj.animate({
21833                            width: imageWidth
21834                        }, {
21835                            duration: 150,
21836                            queue: false,
21837                            progress: function () {
21838                                modalResize(modalObj, true);
21839                            },
21840                            complete: function () {
21841                                modalObj.trigger('modal.animation.end');
21842                                modalState = 'open';
21843                            }
21844                        });
21845                    }
21846                    modalObj.find('.modal-body')
21847                        .animate({
21848                            height: "show", opacity: "show"
21849                        }, {
21850                            duration: 100,
21851                            queue: false,
21852                            progress: function () {
21853                                if (imageWidth < 610)
21854                                    modalResize(modalObj, true);
21855                            },
21856                            complete: function () {
21857                                if (imageWidth < 610)
21858                                    modalResize(modalObj, true);
21859                                modalObj.trigger('modal.animation.end');
21860                            }
21861                        });
21862                });
21863            };
21864            widthImage.src = srcImage.attr("src");
21865        } else {
21866            modalObj.find('.modal-header, .modal-footer').fadeIn(isNewModal ? 25 : 0);
21867            modalObj.find('.modal-body')
21868                .animate({
21869                    height: "show",
21870                    opacity: "show"
21871                }, {
21872                    duration: isNewModal ? 100 : 0,
21873                    progress: function () {
21874                        modalResize(modalObj);
21875                        $('.helpsy').tooltip('hide');
21876
21877                    },
21878                    complete: function () {
21879                        modalResize(modalObj);
21880                        $('.helpsy').tooltip('hide');
21881                        modalObj.trigger('modal.animation.end');
21882                    }
21883                });
21884        }
21885        // modalObj.css('minHeight', '');
21886
21887        //workaround to prevent modal hide event from triggering tooltip
21888        $('.modal').unbind('hide');
21889
21890    }).fail(function (textStatus) {
21891        modalObj.removeClass('loading').addClass('load-failed');
21892        var html = '<div class="modal-header">'
21893            + '<button type="button" class="close cancel" data-dismiss="modal"  onclick="hideModal(\'' + modalId + '\');">&times;</button>'
21894            + '<h4>' + textStatus.statusText + '</h4>'
21895            + '</div>'
21896            + '<div class="modal-body">'
21897            + '<div class="load-failed">'
21898            + '<h4>The modal contents failed to load.</h4><h4>Please try again.</h4>'
21899            + '</div>'
21900            + '</div>'
21901            + '<div class="modal-footer">'
21902            + '<button type="btn" class="cancel btn" data-dismiss="modal" onclick="hideModal(\'' + modalId + '\');">Close</button>'
21903            + '</div>'
21904        modalObj.html(html);
21905        modalObj.find('.modal-header, .modal-body, .modal-footer').show();
21906        modalResize(modalObj);
21907    });
21908}
21909
21910//used for closing the current modal and showing the next modal. Needs current modal id, next modal id and next modal path
21911function loadNextModal(current, next, path) {
21912    var currentModal = $(current);
21913    var nextModal = $(next);
21914
21915    var currentPath = currentModal.data('modal-path');
21916
21917    nextModal.data('prev-modal-id', current);
21918    nextModal.data('prev-modal-path', currentPath);
21919
21920    currentModal.on('hidden', function () {
21921        currentModal.html('<span class="loading-lg"></span>');
21922        modalResize(nextModal);
21923        nextModal.modal('show');
21924        loadModal(next, path);
21925        currentModal.off('hidden');
21926    });
21927
21928    currentModal.modal('hide');
21929
21930}
21931
21932//load new contents into existing modal. Needs modal id and path to load
21933function loadModalContent(modal, path) {
21934
21935}
21936
21937function showConfReport(conf_id) {
21938    if ($('#preview-' + conf_id).is(':visible')) {
21939        $('#participants-' + conf_id).animate({
21940            height: "hide", opacity: "hide"
21941        }, function () {
21942            $('#preview-' + conf_id).hide();
21943            modalResize($(this).parents('.modal'))
21944        });
21945    } else {
21946        $(".subtable:visible div").animate({height: "hide", opacity: "hide"}, function () {
21947            $(".subtable").not('#preview-' + conf_id).hide();
21948        });
21949        $('#preview-' + conf_id).show();
21950        $('#participants-' + conf_id).animate({
21951            height: "show", opacity: "show"
21952        }, {
21953            progress: function () {
21954                modalResize($(this).parents('.modal'))
21955            }
21956        });
21957
21958    }
21959}
21960
21961$('.date-field').each(function () {
21962    var widthClass = getFieldWidthClass(this, 80, 120);
21963
21964    $(this).addClass(widthClass);
21965});
21966
21967//dynamic form, date range text field additions
21968function dynamicDateField() {
21969    var scntDiv = $('#p_scents');
21970    var slotsMax = 25;
21971    var slotsAvailable = [];
21972    for (i = slotsMax - 1; i >= $('#p_scents li').length; i--) {
21973        slotsAvailable.push(i);
21974    }
21975
21976    scntDiv.on('click', '#addScnt', function () {
21977        var newClass = $(this).attr('classToAdd');
21978
21979        $('.helpsy').tooltip('hide');
21980        if (slotsAvailable.length > 0) {
21981            slot = slotsAvailable.pop();
21982            if (views.timeframes.timeformat != '')
21983                timeformat = 'data-time-format="' + views.timeframes.timeformat + '"';
21984            else
21985                timeformat = '';
21986
21987            var dateFieldsHtml =
21988                '<li id="slide-' + slot + '">\
21989              <div class="input-append">\
21990              <input id="from-' + slot + '" name="data[option3][Timerange][' + slot + '][begin]"\
21991               class="date-field ' + newClass + ' isFrom" type="text" data-date-format="' + views.timeframes.dateformat + '"\
21992               ' + timeformat + '/>\
21993              <input name="data[option3][Timerange][' + slot + '][begin]" type="hidden" id="from-' + slot + '-hidden"  />\
21994              <span class="add-on"><span class="icon-calendar"></span></span>\
21995              </div>\
21996              ' + ' ' + _('to') + ' ' + ' \
21997              <div class="input-append">\
21998              <input id="to-' + slot + '" name="data[option3][Timerange][' + slot + '][end]"\
21999               class="date-field ' + newClass + ' isTo" type="text" data-date-format="' + views.timeframes.dateformat + '"\
22000               ' + timeformat + '/>\
22001              <input name="data[option3][Timerange][' + slot + '][end]" type="hidden" id="to-' + slot + '-hidden"/>\
22002              <span class="add-on"><span class="icon-calendar"></span></span>\
22003              </div>\
22004              <a href="#" class="del remScnt helpsy" title="' + _('Remove') + '">' + _('Remove') + '</a></li>';
22005
22006            $(dateFieldsHtml)
22007                .appendTo(scntDiv)
22008                .hide()
22009                .animate({
22010                    height: "show", opacity: "show"
22011                }, {
22012                    progress: function () {
22013                        modalResize($(this).parents('.modal'))
22014                    },
22015                    complete: function () {
22016                        initTooltips();
22017                    }
22018                });
22019            newDatePicker(slot);
22020
22021            $('.date-field').each(function () {
22022                var widthClass = getFieldWidthClass(this, 80, 120);
22023
22024                $(this).addClass(widthClass);
22025            });
22026
22027            $('.date,.timeTimeFrame,.timeframe').not('hasDatePicker').each(function () {
22028                var dateFormat = this.getAttribute('data-date-format');
22029
22030                //if (dateFormat != null)
22031                //  dateFormat = dateFormat.replace('Do', 'D');
22032
22033                var timeFormat = this.getAttribute('data-time-format');
22034                var dateTimeFormat = '';
22035                if (dateFormat && timeFormat)
22036                    dateTimeFormat = dateFormat + " " + timeFormat;
22037                else if (dateFormat && !timeFormat)
22038                    dateTimeFormat = dateFormat;
22039                else if (!dateFormat && !timeFormat)
22040                    dateTimeFormat = timeFormat;
22041
22042                $(this).change(function () {
22043                    var newDate = moment(this.value, dateFormat + ' ' + timeFormat);
22044                    if (newDate.isValid()) {
22045                        this.value = newDate.format(dateTimeFormat);
22046                        this.setAttribute('value', newDate.format(dateTimeFormat));
22047                    }
22048                });
22049            });
22050        } //end if slotsAvailable.length > 0
22051
22052        return false;
22053    }); //end #addScnt on click
22054
22055    scntDiv.on('click', '.remScnt', function () {
22056        var li = this.parentNode;
22057
22058        $('.helpsy').tooltip('hide');
22059        if (li.id != "keep") {
22060            var modal = $(this).parents('.modal');
22061
22062            slot = li.id.substr(li.id.lastIndexOf('-') + 1);
22063            slotsAvailable.push(slot);
22064            $(this).parent('li').remove();
22065            modalResize(modal);
22066        }
22067        return false;
22068    });
22069}
22070
22071function dynamicField(listId, slotsMax, addId, slideId, type, field, disableClass, effectClass, placeholder, removeClass) {
22072    var scntDiv = $('#' + listId);
22073    var slotsAvailable = [];
22074    for (i = slotsMax - 1; i >= $('#' + listId + ' li').length; i--) {
22075        slotsAvailable.push(i);
22076    }
22077
22078
22079    scntDiv.on('click', '#' + addId, function () {
22080        if (slotsAvailable.length > 0) {
22081            slot = slotsAvailable.pop();
22082            var id = slideId + '-' + slot;
22083            var simDelay = ($('.sim-delay-btn').length ? true : false);
22084            var isEmail = (listId.startsWith('email-list') ? true : false);
22085            var isFaxUser = (listId.startsWith('faxuser-list') ? true : false);
22086            var isVmailnag = (listId.startsWith('vmailnag-') ? true : false);
22087            if (isVmailnag) {
22088                var itemType = slideId.startsWith('phone') ? 'phone' : slideId.startsWith('sms') ? 'sms' : 'email';
22089            }
22090
22091            if (simDelay) {
22092                var $delayDrop = $('.sim-delay-drop:first').clone();
22093                var fieldHtml = '<li id="' + id + '" style="display:none;">' +
22094                    '<div class="input-append sim-delay">' +
22095                    '<input id="answerrule_sim_numbers'+id+'" name="data[' + type + '][' + field + '][' + slot + ']" class="' + disableClass + ' ' + effectClass + '" placeholder="' + placeholder + '" type="text" />' +
22096                    '<button type="button" class="sim-delay-btn btn helpsy-right cb-simring cb-always-effect cb-dnd-effect" title="Ring Delay (sec)"><i class="icon-time"></i> <span></span></button>' +
22097                    '</div> ' +
22098                    '<button type="button" href="javascript:void(0)" id="remove-simring" class="del helpsy ' + removeClass + ' ' + disableClass + ' ' + effectClass + '" title="Delete">Delete</button>' +
22099                    '<select id="' + type + 'SimDelay' + slot + '" name="data[' + type + '][sim_delay][' + slot + ']" class="sim-delay-drop"></select>' +
22100                    '</li>';
22101
22102            } else if (isEmail) {
22103                var fieldHtml = '<li id="' + id + '" style="display:none;">' +
22104                    '<input id="UserEmailAddress' + slot + '" name="data[' + type + '][' + field + '][' + slot + ']" class="' + disableClass + ' ' + effectClass + '" placeholder="' + placeholder + '" type="text" />' +
22105                    '<button type="button" href="javascript:void(0)" class="del helpsy ' + removeClass + ' ' + disableClass + ' ' + effectClass + '" title="Delete">Delete</button></li>';
22106            } else if (isFaxUser) {
22107                var fieldHtml = '<li id="' + id + '" style="display:none;">' +
22108                    '<input id="FaxUsershare' + slot + '" name="data[' + type + '][' + field + '][' + slot + ']" class="' + disableClass + ' ' + effectClass + '" placeholder="' + placeholder + '" type="text" />' +
22109                    '<button type="button" href="javascript:void(0)" class="del helpsy ' + removeClass + ' ' + disableClass + ' ' + effectClass + '" title="Delete">Delete</button></li>';
22110            } else if (isVmailnag) {
22111                var fieldHtml = '<li id="' + id + '" style="display:none;">' +
22112                    '<input id="UserVmailnag' + itemType.charAt(0).toUpperCase() + itemType.substring(1) + ((itemType == 'phone' || itemType == 'sms') ? 'Nums' : 'Addrs') + slot + '" name="data[' + type + '][' + field + '][' + slot + ']" class="' + disableClass + ' ' + effectClass + '" placeholder="' + placeholder + '" type="text" />' +
22113                    '<button type="button" href="javascript:void(0)" class="del helpsy ' + removeClass + ' ' + disableClass + ' ' + effectClass + '" title="Delete">Delete</button></li>';
22114            } else {
22115                var fieldHtml = '<li id="' + id + '" style="display:none;">' +
22116                    '<input name="data[' + type + '][' + field + '][' + slot + ']" class="' + disableClass + ' ' + effectClass + '" placeholder="' + placeholder + '" type="text" />' +
22117                    '<button type="button" href="javascript:void(0)" class="del helpsy ' + removeClass + ' ' + disableClass + ' ' + effectClass + '" title="Delete">Delete</button></li>';
22118            }
22119
22120            scntDiv.append(fieldHtml);
22121
22122            if (simDelay) {
22123                var $btn = $('#' + id).find('.sim-delay-btn');
22124                var $dropdown = $('#' + id).find('.sim-delay-drop');
22125                var $delaySpan = $dropdown.siblings('.input-append').find('.sim-delay-btn span');
22126
22127                $('.sim-delay-drop:first').children().clone().appendTo("#" + type + "SimDelay" + slot);
22128                $dropdown[0].selectedIndex = 0;
22129                $delaySpan.text($dropdown.val());
22130
22131            }
22132
22133            $('#' + id).animate({
22134                height: "show", opacity: "show"
22135            }, {
22136                progress: function () {
22137                    modalResize($(this).parents('.modal'))
22138                },
22139                complete: function () {
22140                    if (simDelay)
22141                        initSimDelayPopover($btn);
22142
22143                    initTooltips();
22144                }
22145            });
22146
22147
22148            // auto fill for the new input field, only devices and do not show No Matches Prompt
22149            if (simDelay)
22150            {
22151              $('#answerrule_sim_numbers'+id).attr("spellcheck",false);
22152              $('#answerrule_sim_numbers'+id).autocomplete(
22153                {
22154                  autoFocus: true,minLength: 0,source: function (request, response) {
22155
22156                  var results = $.ui.autocomplete.filter(userchoicesChoices, request.term);
22157                  log(results.length);
22158                  if (!results.length)
22159                  {
22160                    // $('#answerrule_sim_numbers'+id).validationEngine("showPrompt",_("* No matches found!"), "red", "bottomLeft", true);
22161                  } else {
22162                    $('#answerrule_sim_numbers'+id).validationEngine("hidePrompt");
22163                  }
22164                  $('#answerrule_sim_numbers'+id).data("tabblock",false);response(results);
22165                },select: function(event, ui) {}}
22166              );
22167
22168            }
22169
22170            if (isFaxUser)
22171            {
22172              $("#FaxUsershare"+slot).attr("spellcheck",false);
22173              $("#FaxUsershare"+slot).autocomplete(
22174                {
22175                  autoFocus: true,minLength: 0,source: function (request, response) {
22176
22177                  var results = $.ui.autocomplete.filter(userchoicesChoices, request.term);
22178                  log(results.length);
22179                  if (!results.length)
22180                  {
22181                    $("#FaxUsershare"+slot).validationEngine("showPrompt",_("* No matches found!"), "red", "bottomLeft", true);
22182                  } else {
22183                    $("#FaxUsershare"+slot).validationEngine("hidePrompt");
22184                  }
22185                  $("#FaxUsershare"+slot).data("tabblock",false);response(results);
22186                },select: function(event, ui) {}}
22187              );
22188
22189            }
22190        }
22191
22192
22193        placeholderInit($('#' + id + ' input'));
22194
22195        if (isEmail) {
22196            $('form').validationEngine('detach');
22197            $('#' + slideId + '-' + slot + ' input').addClass('validate[custom[email]]');
22198            $('form').validationEngine();
22199        }
22200
22201        if (isVmailnag) {
22202            var $vmailnagElemClass = "validate[custom[email]] emremrecip";
22203            if (itemType == 'phone') {
22204                $vmailnagElemClass = "validate[custom[phone]] phremrecip";
22205            }
22206            if (itemType == 'sms') {
22207                $vmailnagElemClass = "validate[custom[phone]] smsremrecip";
22208            }
22209            $('form').validationEngine('detach');
22210            $('#' + slideId + '-' + slot + ' input').addClass($vmailnagElemClass);
22211            $('form').validationEngine();
22212        }
22213
22214        return false;
22215    });
22216
22217    scntDiv.on('click', '.' + removeClass, function () {
22218        li = this.parentNode;
22219        if (li.id != "keep") {
22220            var modal = $(this).parents('.modal');
22221
22222            slot = li.id.substr(li.id.lastIndexOf('-') + 1);
22223            slotsAvailable.push(slot);
22224
22225            $(this).tooltip('destroy');
22226            $(this).parent('li').remove();
22227
22228            log('removing field');
22229            modalResize(modal);
22230        }
22231
22232        if (removeClass == 'rem-simring') {
22233            // Read the limit for sim_numbers and see if the number of elements with both 'input-append' and 'sim-delay' classes exceeds it, if so, then hide the add-simring button
22234            // var limit = 3;
22235            // Correct the class selector to include both 'input-append' and 'sim-delay'
22236            var count = $('.input-append.sim-delay').length; // Ensure there is no space between class names
22237            if (count > max_sim_numbers) {
22238                console.log('count is more');
22239                $('#add-simring').hide(); // Hide the button if the count is at or exceeds the limit
22240            } else {
22241                console.log('count is less');
22242                $('#add-simring').show(); // Show the button if the count is below the limit
22243            }
22244        }
22245
22246        return false;
22247    });
22248}
22249
22250$('.hasDatepicker').change(function () {
22251    if (this.value == '')
22252        $("[id=" + this.id + "-hidden]").val( "");
22253});
22254
22255var bulkEditEnabled = [];//Used to save the state of the checkboxes (if no checkboxes are checked, save button is disabled)
22256$('.bulk-edit-checkbox').change(function () {
22257    var enableEdit = $(this).is(':checked');
22258    inputFieldName = $(this).attr('name');
22259    inputFieldName = inputFieldName.replace('-checkbox', '');
22260    inputField = $("[name='" + inputFieldName + "']");
22261    if (enableEdit) {
22262        bulkEditEnabled[inputFieldName] = '';
22263        $('input[value="Save"]').removeAttr("disabled");
22264        if (inputFieldName == 'data[Phonenumber][enable-date]' || inputFieldName == 'data[Phonenumber][disable-date]') {
22265            inputField.prop("disabled", false);
22266            inputField.siblings('.add-on')[0].style.pointerEvents = 'auto';
22267            if ('data[Phonenumber][enable-date]' in bulkEditEnabled && 'data[Phonenumber][disable-date]' in bulkEditEnabled)
22268                validateDateRange(inputField.attr('data-date-format'));
22269        } else if (inputFieldName == 'data[Phonenumber][enable]')
22270            $('#enable').bootstrapSwitch('disabled', false);
22271        else if (inputFieldName == 'data[Phonenumber][domain]') {
22272            inputField.prop("disabled", false);
22273            $('#PhonenumberApplication').prop("disabled", false);
22274            val = $('#PhonenumberApplication').val();
22275            $('#find-' + val).animate({
22276                height: "show",
22277                opacity: "show",
22278            });
22279        } else
22280            inputField.prop("disabled", false);
22281    } else {
22282        if (inputFieldName == 'data[Phonenumber][enable-date]' || inputFieldName == 'data[Phonenumber][disable-date]') {
22283            $('#disable-date').validationEngine('hidePrompt');
22284            $('input[value="Save"]').removeAttr("disabled");
22285            inputField.prop("disabled", true);
22286            inputField.siblings('.add-on')[0].style.pointerEvents = 'none';
22287
22288        } else if (inputFieldName == 'data[Phonenumber][enable]')
22289            $('#enable').bootstrapSwitch('disabled', true);
22290        else if (inputFieldName == 'data[Phonenumber][domain]') {
22291            inputField.prop("disabled", true);
22292            $('#PhonenumberApplication').prop("disabled", true);
22293            $('div[id^="find-"]:visible').animate({
22294                height: "hide",
22295                opacity: "hide"
22296            });
22297        } else
22298            inputField.prop("disabled", true);
22299
22300        delete bulkEditEnabled[inputFieldName];
22301        if (Object.keys(bulkEditEnabled).length === 0)
22302            $('input[value="Save"]').prop("disabled", true);;
22303    }
22304
22305});
22306
22307function validateDateRange(dateFormat) {
22308    isFrom = $('.isFrom');
22309    isTo = $('.isTo');
22310    if (!isFrom.val() == "" && !isTo.val() == "") {
22311        var a = moment(isFrom.datepicker('getDate')).unix();
22312        var b = moment(isTo.datepicker('getDate')).unix();
22313        var daysRemaining = Math.floor((b - a) / 60 / 60 / 24);
22314        if (daysRemaining < 0) {
22315            $('input[type="submit"]').prop("disabled", true);;
22316            isTo.validationEngine('showPrompt', '* Invalid range');
22317        } else {
22318            isTo.validationEngine('hidePrompt');
22319            $('input[type="submit"]').removeAttr("disabled");
22320        }
22321    }
22322}
22323
22324/*
22325 * creates a datepickers for various types based on slot
22326 *
22327 * @param {integer} slot is the slot/index of the datepicker created
22328 */
22329function newDatePicker(slot) {
22330    var currentDate = new Date();
22331    $('.dateInventory ~ span, .time ~ span,.reportdate ~ span,.date ~ span,.timeTimeFrame ~ span,.timeframe ~ span').not('hasDatePicker').each(function () {
22332        $(this).click(function () {
22333            dateInput = $(this).siblings('.dateInventory,.time,.reportdate,.date,.timeTimeFrame,.timeframe');
22334            if (dateInput.attr('disabled') != 'disabled')
22335                dateInput.datepicker('show');
22336        });
22337    })
22338
22339    //Set the VALUE property and attribute of inputs with datepickers when the datepicker is used
22340    $('.dateInventory,.time,.reportdate,.date,.timeTimeFrame,.timeframe').not('hasDatePicker').each(function () {
22341        var dateFormat = this.getAttribute('data-date-format');
22342
22343        //if (dateFormat != null)
22344        //  dateFormat = dateFormat.replace('Do', 'D');
22345
22346        var timeFormat = this.getAttribute('data-time-format');
22347        var dateTimeFormat = '';
22348        if (dateFormat && timeFormat)
22349            dateTimeFormat = dateFormat + " " + timeFormat;
22350        else if (dateFormat && !timeFormat)
22351            dateTimeFormat = dateFormat;
22352        else if (!dateFormat && !timeFormat)
22353            dateTimeFormat = timeFormat;
22354
22355        $(this).change(function () {
22356            var newDate = moment(this.value, dateFormat + ' ' + timeFormat);
22357            if (newDate.isValid()) {
22358                this.value = newDate.format(dateTimeFormat);
22359                this.setAttribute('value', newDate.format(dateTimeFormat));
22360            }
22361        });
22362    })
22363    // var validator =  formval.validationEngine();
22364    //this makes the class cdrScheduleCalendar2 into a datetimepicker with several
22365    //special necessities
22366    $('.cdrScheduleCalendar2').each(function () {
22367        $(this).datetimepicker({
22368            showHour: true,
22369            showMinute: true,
22370            //maxDate: currentDate,
22371            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvert
22371ionFormats),
22372            timeFormat: convertDateFormat(this.getAttribute('data-time-format'), datepickerConvertionFormats),
22373            onSelect: function (selectedDate) {
22374                var newDate = moment(this.value, this.getAttribute('data-date-format'), false);
22375                if (newDate.isValid()) {
22376                    newDate = newDate.format(this.getAttribute('data-date-format'));
22377                    this.value = newDate;
22378                    this.setAttribute('value', newDate);
22379                }
22380            },
22381
22382            onClose: function () {
22383                $("[id=" + this.id + "-hidden]").val( moment(this.value, this.getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22384            }
22385        });
22386    }) //end of cdrScheduleCalendar2
22387
22388    $('.date').not('hasDatePicker, .cdrScheduleCalendar2').each(function () {
22389        let allowFutureDate = $(this).hasClass('allowFutureDate');
22390        $(this).datepicker({
22391            maxDate: allowFutureDate ? undefined : currentDate,
22392            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvertionFormats),
22393            onSelect: function (selectedDate) {
22394                var newDate = moment(this.value, this.getAttribute('data-date-format'), false);
22395                if (newDate.isValid()) {
22396                    newDate = newDate.format(this.getAttribute('data-date-format'));
22397                    this.value = newDate;
22398                    this.setAttribute('value', newDate);
22399                }
22400
22401                $("[id=" + this.id + "-hidden]").val( moment(this.value, this.getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22402
22403                var settings = $(this).data("datepicker").settings,
22404                    date = $.datepicker.parseDate(
22405                        settings.dateFormat || $.datepicker._defaults.dateFormat,
22406                        selectedDate, settings);
22407
22408                log("date select is " + date + "for box " + this.id);
22409                if (this.id == 'from-' + slot) {
22410                    if (typeof $('#to-' + slot)[0] !== 'undefined') {
22411                        var curTo = new Date(moment($('#to-' + slot)[0].value, $('#to-' + slot)[0].getAttribute('data-date-format'), false));
22412                        log("curTo-" + curTo);
22413                    }
22414
22415                    var newEnd = date;
22416                    //newEnd.setDate(newEnd.getDate()+31);
22417                    //log("newEnd-" + newEnd);
22418                    //$('#to-' + slot).datepicker("option", "maxDate", newEnd);
22419                    //$('#to-' + slot).datepicker("option", "minDate", null);
22420                } else {
22421                    log("$('#from-' + slot).attr(value)-" + $('#from-' + slot).val());
22422                    var start = $('#from-' + slot).datepicker("option", "getDate");
22423                    log("start-" + start);
22424                    log("date-" + date);
22425                    if (start > date) {
22426
22427                        start.setDate(start.getDate() - 3);
22428                        var newEnd = start;
22429                        newEnd.setDate(newEnd.getDate() + 31);
22430                        $('#to-' + slot).datepicker("option", "maxDate", newEnd);
22431                        $('#to-' + slot).datepicker("option", "minDate", null);
22432
22433                    }
22434                    //if ()
22435                    //$('#from-' + slot).datepicker("option", "maxDate", date);
22436                }
22437
22438                // log( $('#from-' + slot).datepicker("option"));
22439                // log( $('#to-' + slot).datepicker("option"));
22440
22441                // log($('#from-' + slot).val());
22442                // log($('#to-' + slot).val());
22443                //  log(settings);
22444                var a = Date.parse($("[id=from-" + slot + "-hidden]").val());
22445                var b = Date.parse($("[id=to-" + slot + "-hidden]").val());
22446                var difference = b - Math.round(a / 1000.0) * 1000;
22447                var daysRemaining = Math.floor(difference / 1000 / 60 / 60 / 24) + 1;
22448
22449
22450                //   $('#to-' + slot).valid();
22451
22452
22453                if (daysRemaining < 0) {
22454                    $('.filtersavebutton').prop("disabled", true);;
22455                    $('#to-0').validationEngine('showPrompt', '* Invalid range');
22456                } else if (daysRemaining > max_days) {
22457                    $('.filtersavebutton').prop("disabled", true);;
22458                    $('#to-0').validationEngine('showPrompt', '* Ma
22458x range is ' + max_days + ' days');
22459                } else {
22460                    $('#to-0').validationEngine('hidePrompt');
22461                    $('.filtersavebutton').removeAttr("disabled");
22462                }
22463
22464
22465                // log ($('#from-' + slot));
22466                if ($('#from-' + slot).hasClass("ccmanagertables")) {
22467                    //  log ($('#from-' + slot));
22468                    //getStatsLayout(activeManagerTable);
22469                }
22470
22471                if ($('#modal-from-' + slot).hasClass("ccmanagertablesModal")) {
22472
22473                    getNewTableData();
22474                }
22475            },
22476            onClose: function () {
22477                var hiddenElement = $("[id=" + this.id + "-hidden]");
22478                var tempFormat = 'MM/DD/YYYY';
22479                if (hiddenElement.attr('hidden-field-format-override') !== undefined && hiddenElement.attr('hidden-field-format-override') !== '') {
22480                    tempFormat = hiddenElement.attr('hidden-field-format-override');
22481                }
22482
22483                $("[id=" + this.id + "-hidden]").val( $(this).val() !== '' ? moment(this.value, this.getAttribute('data-date-format'), false).format(tempFormat) : '');
22484            }
22485        });
22486    }); //END OF THE IF
22487
22488    $('.reportdate').not('hasDatePicker').each(function () {
22489        var from = '#modal-from-' + slot;
22490        var to = '#modal-to-' + slot;
22491        $(this).datepicker({
22492            maxDate: currentDate,
22493            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvertionFormats),
22494            onSelect: function (selectedDate) {
22495                var newDate = moment(this.value, this.getAttribute('data-date-format'), false);
22496                if (newDate.isValid()) {
22497                    newDate = newDate.format(this.getAttribute('data-date-format'));
22498                    this.value = newDate;
22499                    this.setAttribute('value', newDate);
22500                }
22501                this.setAttribute('data-raw-date', moment(this.value, this.getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22502                log("date select is " + selectedDate + " for box " + this.id);
22503
22504                var thisDate = new Date(moment(this.value, this.getAttribute('data-date-format'), false));
22505                var fromDate = new Date(moment($(from).val(), $(from).attr('data-date-format'), false));
22506                var toDate = new Date(moment($(to).val(), $(to).attr('data-date-format'), false));
22507
22508                //convert date objects to milliseconds for comparisons
22509                var msFromDate = fromDate.getTime();
22510                var msToDate = toDate.getTime();
22511
22512                log("fromDate-" + fromDate);
22513                log("toDate-" + toDate);
22514                // log(msFromDate);
22515                // log(msToDate);
22516                if (msFromDate > msToDate) {
22517                    log('from date is greater than to date!');
22518
22519                    if (this.id == 'from-' + slot || this.id == 'modal-from-' + slot) {
22520                        $(to).val(moment(fromDate).format($(to).attr('data-date-format')));
22521                        $(to).val( moment(fromDate).format($(to).attr('data-date-format')))
22522                        $(to).attr('data-raw-date', moment(fromDate).format('MM/DD/YYYY'));
22523                    } else {
22524                        $(from).val(moment(toDate).format($(from).attr('data-date-format')));
22525                        $(from).val( moment(toDate).format($(from).attr('data-date-format')));
22526                        $(from).attr('data-raw-date', moment(toDate).format('MM/DD/YYYY'));
22527                    }
22528                }
22529
22530                var a = Date.parse($("[id=modal-from-0]").attr('data-raw-date')+" "+$("[id=modal-from-time]").val());
22531                var b = Date.parse($("[id=modal-to-0]").attr('data-raw-date')+" "+$("[id=modal-to-time]").val());
22532                var difference = b - Math.round(a / 1000.0) * 1000;
22533                var daysRemaining = Math.floor(difference / 1000 / 60 / 60 / 24) + 1;
22534
22535
22536                if (daysRemaining < 0) {
22537                    $("#"+this.id ).validationEngine('showPrompt', '* Invalid range');
22538                } else if (daysRemaining > max_days) {
22539                    $("#"+this.id ).validationEngine('showPrompt', '* Ma
22539x range is ' + max_days + ' days');
22540                } else {
22541                    $(from).validationEngine('hidePrompt');
22542                    $(to).validationEngine('hidePrompt');
22543                    getNewTableData();
22544                }
22545
22546            },
22547            onClose: function () {
22548                $(this).attr('data-raw-date', moment(this.value, this.getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22549            }
22550
22551        });
22552    });
22553
22554    function setBackEndDate(element) {
22555        $("[id=" + element.id + "-hidden]").val( moment($(element).val(), element.getAttribute('data-date-format') + " " + element.getAttribute('data-time-format'), false).format('MM/DD/YYYY h:mm a'));
22556    }
22557
22558    /** Timepicker Addon **/
22559    $('.time').not('hasDatePicker').each(function () {
22560        $(this).datetimepicker({
22561            maxDate: moment(currentDate).endOf('day').toDate(),
22562            showMinute: false,
22563            timeFormat: convertDateFormat(this.getAttribute('data-time-format'), datepickerConvertionFormats),
22564            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvertionFormats),
22565            onSelect: function (dateText, timepicker) {
22566                //change minutes to either 00 or 59 to capture the whole day
22567                $("[id=" + this.id + "-hidden]").val( moment($(this).val(), this.getAttribute('data-date-format') + " " + this.getAttribute('data-time-format'), false).format('MM/DD/YYYY HH:mm'));
22568                var newDate;
22569                if (timepicker.hour == 0 && this.id.startsWith("from")) {
22570                    newDate = timepicker.formattedDate + ' ' + timepicker.hour + ':' + '00';
22571                    $(this).datetimepicker('setDate', newDate);
22572                } else if (timepicker.hour == 23 && this.id.startsWith("to")) {
22573                    newDate = timepicker.formattedDate + ' ' + timepicker.hour + ':' + '59';
22574                    $(this).datetimepicker('setDate', newDate);
22575                }
22576
22577                var a = Date.parse($('[id=from-' + slot + '-hidden]').val());
22578                var b = Date.parse($('[id=to-' + slot + '-hidden]').val());
22579                var difference = b - Math.round(a / 1000.0) * 1000;
22580                var daysRemaining = Math.floor(difference / 1000 / 60 / 60 / 24) + 1;
22581
22582                if (daysRemaining > max_days) {
22583                    $('.filtersavebutton').prop("disabled", true);;
22584                    $('#to-0').validationEngine('showPrompt', '* Max range is ' + max_days + ' days');
22585                } else {
22586                    $('#to-0').validationEngine('hidePrompt');
22587                    $('.filtersavebutton').removeAttr("disabled");
22588                }
22589            }
22590        });
22591    });
22592
22593    $('.dateInventory').not('hasDatePicker').each(function () {
22594        $(this).datepicker({
22595            //minDate: new Date(),
22596            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvertionFormats),
22597            monthNames: [_("January"), _("February"), _("March"), _("April"), _("May"), _("June"), _("July"), _("August"), _("September"), _("October"), _("November"), _("December")],
22598            dayNamesMin: [_('Su'), _('Mo'), _('Tu'), _('We'), _('Th'), _('Fr'), _('Sa')],
22599            onSelect: function (selectedDate) {
22600                //change minutes to either 00 or 59 to capture the whole day
22601                $("[id=" + this.id + "-hidden]").val( moment($(this).val(), this.getAttribute('data-date-format'), false).format('YYYY-MM-DD'));
22602                if ($('.dateInventory[disabled="disabled"]').length == 0)//check that both date fields are enabled before validating
22603                    validateDateRange(this.getAttribute('data-date-format'));
22604            }
22605        });
22606    });
22607
22608    var startDateTextBox = $('#from-' + slot);
22609    var endDateTextBox = $('#to-' + slot);
22610    var hasMinutes = false;
22611
22612    if ($('.timeTimeFrame').hasClass('hasMinutes'))
22613        var hasMinutes = true;
22614
22615    $('#from-' + slot + '.timeTimeFrame.isFrom').not('hasDatePicker').each(function () { //it this type of datepicke
22616        $(this).datetimepicker({
22617            showMinute: hasMinutes,
22618            timeFormat: convertDateFormat(this.getAttribute('data-time-format'), datepickerConvert
22618ionFormats),
22619            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvertionFormats),
22620            onSelect: function () {
22621                setBackEndDate(this);
22622            },
22623            onClose: function (dateText, inst) {
22624                var dFormat = startDateTextBox[0].getAttribute('data-date-format') + ' ' + startDateTextBox[0].getAttribute('data-time-format');
22625                var testStartDate = moment(startDateTextBox[0].value, dFormat, false);
22626                var testEndDate = moment(endDateTextBox[0].value, dFormat, false);
22627                if (endDateTextBox.val() != '') {
22628                    if (testStartDate > testEndDate)
22629                        endDateTextBox[0].value = testStartDate.format(dFormat);
22630                } else if (startDateTextBox.val() != '') {
22631                    endDateTextBox.val(testStartDate.format(dFormat));
22632                }
22633                setBackEndDate(this);
22634                setBackEndDate(endDateTextBox[0]);
22635            }
22636        });
22637    });
22638
22639    $('#to-' + slot + '.timeTimeFrame.isTo').not('hasDatePicker').each(function () { //it this type of datepicke
22640        $(this).datetimepicker({
22641            showMinute: hasMinutes,
22642            timeFormat: convertDateFormat(this.getAttribute('data-time-format'), datepickerConvertionFormats),
22643            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvertionFormats),
22644            hour: "23",
22645            minute: "59",
22646            onSelect: function () {
22647                setBackEndDate(this);
22648            },
22649            onClose: function (dateText, inst) {
22650                var dFormat = startDateTextBox[0].getAttribute('data-date-format') + ' ' + startDateTextBox[0].getAttribute('data-time-format');
22651                var testStartDate = moment(startDateTextBox[0].value, dFormat, false);
22652                var testEndDate = moment(endDateTextBox[0].value, dFormat, false);
22653                if (startDateTextBox.val() != '') {
22654                    if (testStartDate > testEndDate)
22655                        startDateTextBox[0].value = testEndDate.format(dFormat);
22656                } else if (endDateTextBox.val() != '') {
22657                    startDateTextBox.val(testEndDate.format(dFormat));
22658                }
22659                setBackEndDate(this);
22660                setBackEndDate(startDateTextBox[0]);
22661            }
22662        });
22663    });
22664
22665    $('#from-' + slot + '.timeframe.isFrom').not('hasDatePicker').each(function () {  //it this type of datepicke
22666        $(this).datepicker({
22667            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvertionFormats),
22668            onSelect: function () {
22669                $("[id=" + this.id + "-hidden]").val( moment($(this).val(), this.getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22670            },
22671            onClose: function (dateText, inst) {
22672                dFormat = startDateTextBox[0].getAttribute('data-date-format');
22673                var testStartDate = moment(startDateTextBox[0].value, dFormat, false);
22674                var testEndDate = moment(endDateTextBox[0].value, dFormat, false);
22675                if (endDateTextBox.val() != '') {
22676                    if (testStartDate > testEndDate)
22677                        endDateTextBox[0].value = testStartDate.format(dFormat);
22678                } else if (startDateTextBox.val() != '') {
22679                    endDateTextBox.val(testStartDate.format(dFormat));
22680                }
22681                $("[id=" + this.id + "-hidden]").val( moment($(this).val(), this.getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22682                $("[id=" + endDateTextBox[0].id + "-hidden]").val( moment($(endDateTextBox[0]).val(), endDateTextBox[0].getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22683            }
22684        });
22685    });
22686
22687    $('#to-' + slot + '.timeframe.isTo').not('hasDatePicker').each(function () {  //it this type of datepicke
22688        $(this).datepicker({
22689            dateFormat: convertDateFormat(this.getAttribute('data-date-format'), datepickerConvertionFormats),
22690            onSelect: function () {
22691                $("[id=" + this.id + "-hidden]").val( moment($(this).val(), this.getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22692            },
22693            onClose: function (dateText, inst) {
22694                dFormat = startDateTextBox[0].getAttribute('data-date-format');
22695                var testStartDate = moment(startDateTextBox[0].value, dFormat, false);
22696                var testEndDate = moment(endDateTextBox[0].value, dFormat, false);
22697                if (startDateTextBox.val() != '') {
22698                    if (testStartDate > testEndDate)
22699                        startDateTextBox[0].value = testEndDate.format(dFormat);
22700                } else if (endDateTextBox.val() != '') {
22701                    startDateTextBox.val(testEndDate.format(dFormat));
22702                }
22703                $("[id=" + this.id + "-hidden]").val( moment($(this).val(), this.getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22704                $("[id=" + startDateTextBox[0].id + "-hidden]").val( moment($(startDateTextBox[0]).val(), startDateTextBox[0].getAttribute('data-date-format'), false).format('MM/DD/YYYY'));
22705            }
22706        });
22707    });
22708
22709}
22710
22711/**
22712 * function to change audio source. used with #greeting-select in user voicemail page
22713 *
22714 **/
22715function changeAudioSource(path) {
22716    var audio = $('#audio-player-0');
22717
22718    src = $('#audio-player-0');
22719    if ($('#audio-player-0-aac-1').length)
22720        $('#audio-player-0-aac-1').attr("src", path + "&convert=aac");
22721    if ($('#audio-player-0-aac-2').length)
22722        $('#audio-player-0-aac-2').attr("src", path + "&convert=aac");
22723    if ($('#audio-player-0-aac-3').length)
22724        $('#audio-player-0-aac-3').attr("src", path + "&convert=signed");
22725    if ($('#audio-player-0-wav-1').length)
22726        $('#audio-player-0-wav-1').attr("src", path + "&convert=signed");
22727    if ($('#audio-player-0-wav-2').length)
22728        $('#audio-player-0-wav-2').attr("src", path + "&convert=ogg");
22729    if ($('#audio-player-0-wav-3').length)
22730        $('#audio-player-0-wav-3').attr("src", path + "&convert=aac");
22731    //alert($('#audio-player-0-wav-1').attr("src"));
22732
22733    //audio.attr('src', path);
22734    audio[0].load();
22735}
22736
22737/**
22738 * function changes the download source for the associated download button. used in user voicemail page
22739 *
22740 **/
22741function changeDownloadSource(path) {
22742    var download = $('#audio-player-0').siblings('.download-audio');
22743    var newPath = path + '&convert=signed';
22744
22745    download.attr('href', newPath);
22746}
22747
22748/**
22749 * download a file from a given path
22750 * this is being activated from pressing the export button
22751 **/
22752function initDownloadFile() {
22753    $('.download-file').on('click', function () {
22754        var path = $(this).data('download-path');
22755
22756        window.location = path;
22757
22758        if ($(this).data('download-disable') == true)
22759            $(this).prop("disabled", true);
22760    });
22761}
22762
22763/**
22764 * Show list of scheduled exports
22765 * (does nothing for now)
22766 * need to add it up top as well.
22767 **/
22768function showScheduledExports() {
22769    $('.show_scheduled').on('click', function () {
22770        return;
22771        var path = $(this).data('download-path');
22772
22773        window.location = path;
22774
22775        if ($(this).data('download-disable') == true)
22776            $(this).prop("disabled", true);
22777    });
22778}
22779
22780//makes confirmation password field required if the new-password field is non-empty.
22781function newPassValidate() {
22782    $('#confirm-new-password').removeClass('validate[equals[new-password]]');
22783    $('#confirm-new-password').removeClass('validate[required,equals[new-password]]');
22784    $('#confirm-new-password').validationEngine('hidePrompt');
22785    if ($('#new-password').val() != "") {
22786        $('#confirm-new-password').addClass('validate[required,equals[new-password]]');
22787    } else {
22788        $('#confirm-new-password').addClass('validate[equals[new-password]]');
22789    }
22790}
22791
22792function initFlashMessage(wait, fade) {
22793    $("#flashMessage").delay(wait).fadeTo(fade, 0.00, function () {
22794        $(this).remove();
22795    });
22796}
22797
22798function jsFlash(data, theClass, duration, callback) {
22799
22800    var message = $('<div><div class="flashMessage new alert-dismissible alert alert-' + theClass + '">' + data + '</div></div>');
22801    var count = $('.flashMessage').length;
22802    var timer;
22803    var displayDuration = typeof duration == 'number' ? duration : 6000;
22804
22805    if (arguments.length > 0) {
22806        $('#flashContainer').prepend(message);
22807
22808        $('.fixed-container').css('visibility', 'visible');
22809
22810        $('.flashMessage').css({width: 'auto'});
22811
22812        message.hide().animate({
22813            height: "show",
22814            opacity: "show"
22815        }, 200, function () {
22816            $('.fixed-container').css('visibility', 'hidden');
22817        });
22818
22819        if (count > 2)
22820            $('.flashMessage:last').fadeOut(100, function () {
22821                $(this).remove();
22822                $(this).parent().remove();
22823            });
22824    }
22825
22826    timer = setTimeout(function () {
22827        message.fadeOut(500, function () {
22828            $(this).remove();
22829        });
22830    }, displayDuration); // You can modify this to display the message for different times
22831
22832    // Make the messages container clickable to hide the message before the timeout fires
22833    message.click(function () {
22834        //clearTimeout(timer);
22835        $(this).fadeOut(500, function () {
22836            $(this).remove();
22837        });
22838    });
22839
22840    if (typeof callback === 'function')
22841        callback();
22842    else
22843        $('.flashMessage').removeClass('new');
22844}
22845
22846function jsFlashDismissible(data, theClass, callback) {
22847    if (theClass == 'warning') {
22848        var message = $('<div><div class="flashMessage new alert-dismissible alert alert-' + theClass + '">' +
22849            '<span class="message-content" style="font-weight: normal;">' + data + '</span>' +
22850            '  ' +
22851            '<a href="#" class="more-info-link" style="text-decoration: underline; color: #c09853 !important; font-weight: normal !important;">' + _('View Errors') + '</a>' +
22852            '<button type="button" style="margin-right: 20px; margin-left: -10px;" class="close" data-dismiss="alert" aria-label="Close">&times;</button>' +
22853            '</div></div>');
22854    } else {
22855        var message = $('<div><div class="flashMessage new alert-dismissible alert alert-' + theClass + '">' +
22856            '<span class="message-content" style="font-weight: normal;">' + data + '</span>' +
22857            '<button type="button" style="margin-right: 20px; margin-left: -10px;" class="close" data-dismiss="alert" aria-label="Close">&times;</button>' +
22858            '</div></div>');
22859    }
22860    var count = $('.flashMessage').length;
22861
22862    if (arguments.length > 0) {
22863        $('#flashContainer').prepend(message);
22864
22865        $('.fixed-container').css('visibility', 'visible');
22866
22867        $('.flashMessage').css({ width: 'auto' });
22868
22869        message.hide().animate({
22870            height: "show",
22871            opacity: "show"
22872        }, 200, function () {
22873            $('.fixed-container').css('visibility', 'hidden');
22874        });
22875
22876        if (count > 2) {
22877            $('.flashMessage:last').fadeOut(100, function () {
22878                $(this).remove();
22879                $(this).parent().remove();
22880            });
22881        }
22882    }
22883
22884    // Make the close button clickable to hide the message
22885    message.find('.close').click(function () {
22886        $(this).closest('.flashMessage').fadeOut(500, function () {
22887            $(this).remove();
22888        });
22889    });
22890
22891    // Add click event for the "More Info" link
22892    message.find('.more-info-link').click(function(e) {
22893        e.preventDefault();
22894        // hide the alert
22895        $(this).closest('.flashMessage').fadeOut(500, function () {
22896            $(this).remove();
22897        });
22898
22899        $('#moreInfoModal').modal('show');
22900    });
22901
22902    if (typeof callback === 'function') {
22903        callback();
22904    }
22905    else {
22906        $('.flashMessage').removeClass('new');
22907    }
22908}
22909
22910function postValue(url, value, success, error) {
22911    var currentElement = document.activeElement;
22912    var messageElement = document.getElementById("message");
22913    if (messageElement) messageElement.blur();
22914
22915    var originalShownValue = $(".contacts-message2-text").text();
22916    if (value != "") {
22917      let string = value.replace(/COLLON/g,":");
22918      if (messageElement) messageElement.value = string;
22919      $(".contacts-message2-text").text(string);
22920      $('.contacts-message2-text').css({'color':'#a2a2a2'});
22921    } else {
22922      if (messageElement) messageElement.value = '';
22923      $(".contacts-message2-text").text("Set a status message");
22924      $('.contacts-message2-text').css({'color':'#08c'});
22925    }
22926    $.post(url + "/" , {message:value},function () {
22927    })
22928        .fail(function () {
22929            //switch back to original value if error occured
22930            $(".contacts-message2-text").text(originalShownValue);
22931            if (error != null) jsFlash(error, "danger");
22932        })
22933        .done(function () {
22934            if (success != null) jsFlash(success, "success");
22935        });
22936
22937}
22938
22939function onBlurStatus(event, value) {
22940  document.getElementById("contacts-message").style.display = "none";
22941  document.getElementById("contacts-message2").style.display = "block";
22942}
22943
22944function traceBack(target, hide)
22945{
22946    var to_hide = document.querySelectorAll(hide);
22947    $(target).hide();
22948    $(target).html('');
22949    for (i = 0; i < to_hide.length; ++i) {
22950        to_hide[i].style.display = 'block';
22951    }
22952}
22953
22954function exportTrace(url) {
22955    url = url + '/csv';
22956    window.location = url;
22957    return;
22958}
22959
22960function saveTrace(url) {
22961    jsFlash(_('Generating share link…'));
22962    url = url + '/1';
22963    try{
22964        navigator.clipboard.write([
22965            new ClipboardItem({
22966                'text/plain': new Promise(async (resolve) => {
22967                    $.getJSON(url, function (data) {
22968                        var key = "";
22969                        if (data !== null)
22970                            key = data['key'];
22971                        console.log(key);
22972                        resolve(new Blob([key], {type: 'text/plain'}));
22973                    });
22974                }),
22975            }),
22976        ]).then(function(){
22977            jsFlash(_('Copied to clipboard'), 'success');
22978        }, function (err) {
22979            throw 'Error copying to clipboard';
22980        });
22981    }
22982    catch (err) {
22983        $.getJSON(url, function (data) {
22984            if (data == null) {
22985                jsFlash(_('Error'));
22986                return;
22987            }
22988            const el = document.createElement('textarea');
22989            el.value = data['key'];
22990            document.body.appendChild(el);
22991            el.select();
22992            document.execCommand('copy');
22993            document.body.removeChild(el);
22994            jsFlash(_('Copied to clipboard'), 'success');
22995        });
22996    }
22997}
22998
22999function getTrace(url, element) {
23000    $('#recording-alert').hide();
23001    if (element) {
23002        var target = $(element).data("target");
23003        var to_hide = document.querySelectorAll($(element).data("hide"));
23004        for (i = 0; i < to_hide.length; ++i) {
23005            to_hide[i].style.display = 'none';
23006        }
23007        $(target).show();
23008        var actions = '<button class="btn" style="margin-bottom:10px" id="trace-back-btn" onclick="traceBack(\''+target+'\',\''+$(element).data("hide")+'\')"><i class="nsicon nsicon-reply"> </i> '+_("Back")+' </button>';
23009        actions += '<div class="action-container-right">';
23010        actions += '<button class="btn" style="margin-bottom:10px" id="trace-share-btn" onclick="saveTrace(\''+url+'\')">'+_("Share")+' </button>';
23011        actions += '<button class="btn" style="margin-bottom:10px" id="trace-export-btn" data-download-path=\''+url+'\' onclick="exportTrace(\''+url+'\')" download>'+_("Export")+' </button>';
23012        actions += '</div>';
23013        actions += '<div class="loading-container" style="position: initial;margin-top: 60px"><div class="loading-spinner la-ball-spin-clockwise"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div>';
23014        $(target).append(actions);
23015        $.getJSON(url, function (data) {
23016            $(target).find('.loading-container').remove();
23017            if (data == null) {
23018                var notrace = '<div class="nonecreated"><h3>' + _('No trace available') + '</h3></div>';
23019                $(target).append(notrace);
23020            }
23021            else if (typeof data.svg != 'undefined') {
23022                var svg = atob(data.svg);
23023                var elm = document.querySelector(target);
23024                elm.innerHTML += '<div class="flow-fullscreen-container">' + svg + '</div>';
23025                Array.from(elm.querySelectorAll("script")).forEac
23025h( script_tag => {
23026                  const new_script_tag = document.createElement("script");
23027                  Array.from(script_tag.attributes)
23028                    .forEach( attr =>
23029                      {
23030                        if (attr.name.includes("xml"))
23031                          return;
23032                        if (attr.name == "xlink:href")
23033                          new_script_tag.src = attr.value;
23034                        new_script_tag.setAttribute(attr.name, attr.value);
23035                      });
23036                  if (script_tag.textContent) {
23037                        new_script_tag.textContent = script_tag.textContent;
23038                  } else if (script_tag.innerText) {
23039                        new_script_tag.innerText = script_tag.innerText;
23040                  }
23041                  script_tag.parentNode.replaceChild(new_script_tag, script_tag);
23042                });
23043            }
23044        });
23045        return false;
23046    }
23047    $.getJSON(url, function (data) {
23048        log(data);
23049
23050        if (data == null) {
23051            var modalObj = $('#history-trace');
23052
23053            modalObj.css("minHeight", modalObj.height());
23054            //modalObj.empty();
23055            try {
23056                modalObj.html('<div class="modal-header"><button type="button" class="close cancel" data-dismiss="modal"  onclick="hideModal(\'#history-trace\');">&times;</button><h4>' + _('Call Trace') + '</h4></div><div class="modal-body"><div class="nonecreated"><h3>' + _('No trace available') + '</h3></div></div><div class="modal-footer"><button class="btn cancel" data-dismiss="modal"  onclick="hideModal(\'#history-trace\');">' + _('Close') + '</button></div>');
23057            } catch (err) {
23058            }
23059
23060            modalObj.find('.modal-body').css("minHeight", "90px");
23061            modalObj.find('.modal-header, .modal-footer').fadeIn(25, function () {
23062                modalObj.find('.modal-body')
23063                    .animate({
23064                        height: "show", opacity: "show"
23065                    }, {
23066                        duration: 250,
23067                        progress: function () {
23068                            modalResize(modalObj);
23069                        }
23070                    });
23071            });
23072
23073
23074        } else if (typeof data.url != 'undefined')
23075            loadModal('#history-trace', data.url);
23076        else {
23077            var modalObj = $('#history-trace');
23078
23079            modalObj.css("minHeight", modalObj.height());
23080            var html = '<div class="modal-header"><button type="button" class="close cancel" data-dismiss="modal"  onclick="hideModal(\'#history-trace\');">&times;</button><h4>' + _('Call Trace') + '</h4></div><div class="modal-body">';
23081            // 	html += '<div class="nonecreated"><h3>No trace available</h3></div>';
23082
23083            html += ' 	<ul id="serverTabs" class="nav nav-tabs">';
23084            var x = ' class="active" ';
23085            for (var key in data) {
23086                html += ' 	  <li ' + x + '><a href="#' + key.replace(/\W/g, '') + '" data-rawurl="' + data[key].replace("/modal.php", "") + '" data-toggle="tab">' + key + '</a></li>';
23087                x = '';
23088            }
23089
23090
23091            html += '  	</ul>';
23092            html += ' <div class="tab-content">';
23093            x = ' active';
23094            for (var key in data) {
23095                html += ' <div class="tab-pane ' + x + '" id="' + key.replace(/\W/g, '') + '">';  //+data[key];
23096                x = '';
23097                html += '<img src="' + data[key].replace("modal.php", "callflow.svg") + '" id="' + key.replace(/\W/g, '') + 'img" >';
23098
23099                html += '</div>';
23100                //  propigateTabTrace(key.replace(/\W/g, ''),data[key]);
23101            }
23102            html += ' 	</div>';
23103            html += '</div><div class="modal-footer">';
23104
23105            x = ' active';
23106            for (var key in data) {
23107                if (x == " active") {
23108                    html += '	 <a id="dnlLink" class="btn" href="' + data[key].replace("/modal.php", "") + '.csv" target="_blank">' + _('Download CSV') + '</a> ';
23109                    html += '	 <a id="viewLink" class="btn" href="' + data[key].replace("/modal.php", "") + '/index_with_frames.html" target="_blank">' + _('View Full Trace') + '</a> ';
23110                }
23111                x = '';
23112            }
23113            html += ' <button class="btn cancel" data-dismiss="modal"  onclick="hideModal(\'#history-trace\');">' + _('Close') + '</button></div>'
23114
23115
23116            html += "<script> $('#serverTabs a').click(function (e) {  e.preventDefault(); $(this).tab('show'); " +
23117                "$('#dnlLink').attr('href', $(this).data('rawurl')+'.csv');$('#viewLink').attr('href', $(this).data('rawurl')+'/index_with_frames.html');}); ";
23118            for (var key in data) {
23119                html += ' $( "#' + key.replace(/\W/g, '') + 'img" ).load(function() { modalResize($("#history-trace")); }); ';
23120            }
23121            html += "</script>";
23122            modalObj.html(html);
23123
23124            // 	 modalResize(modalObj).delay( 2000 );
23125            modalObj.find('.modal-body').css("minHeight", "90px");
23126            modalObj.find('.modal-header, .modal-footer').fadeIn(25, function () {
23127                modalObj.find('.modal-body')
23128                    .animate({
23129                        height: "show", opacity: "show"
23130                    }, {
23131                        duration: 250,
23132                        progress: function () {
23133                            modalResize(modalObj);
23134                        }
23135                    });
23136            });
23137        }
23138
23139        //window.open(data.url);
23140
23141    });
23142
23143}
23144
23145
23146function getCradle(url, element) {
23147    if (element) {
23148        var target = $(element).data("target");
23149        var to_hide = document.querySelectorAll($(element).data("hide"));
23150        for (i = 0; i < to_hide.length; ++i) {
23151              to_hide[i].style.display = 'none';
23152        }
23153        $(target).addClass('loading fade in');
23154        if (document.querySelector(target).classList.contains('modal'))
23155        {
23156            $(target).modal('show');
23157            $(target).animate({
23158                height: 'show',
23159                opacity: 1,
23160            }, {
23161                progress: function () {
23162                    modalResize($(target));
23163                },
23164                complete: function () {
23165                    modalResize($(target));
23166                }
23167            });
23168        }
23169        else {
23170            $(target).modal('show');
23171            var actions = '<button class="btn" style="margin-bottom:10px" id="trace-back-btn" onclick="traceBack(\''+target+'\',\''+$(element).data("hide")+'\')"><i class="nsicon nsicon-reply"> </i> '+_("Back")+' </button>';
23172            actions += '<div class="loading-container" style="position: initial;margin-top: 60px"><div class="loading-spinner la-ball-spin-clockwise"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div>';
23173            $(target).append(actions);
23174        }
23175
23176        $.getJSON(url, function (data) {
23177            $(target).find('.loading-container').remove();
23178            $(target).removeClass('loading');
23179            if (document.querySelector(target).classList.contains('modal')) {
23180                console.debug(url);
23181                const traceClass = (sub_scope=="Super User" || sub_scope=="Reseller")?"":"hide";
23182                $(target).html('<div class="modal-header"><button type="button" class="close cancel" data-dismiss="modal"  onclick="hideModal(\''+target+'\');">&times;</button><h4>' + PORTAL_CRADLE_TO_GRAVE_FEATURE_NAME + '</h4></div><div class="modal-body"></div><div class="modal-footer"><button class="btn '+ traceClass +'" data-target="#trace-inline" data-hide=".action-container-row, .callhistory-panel-main, .cc-details-table" onclick="hideModal(\''+target+'\');$(\'div.cc-details-table\').hide();getTrace(\''+url.replace('cradle','trace')+'\',this);debugger;return false;">'+ _('View SIP Flow') + '</button><button class="btn cancel" data-dismiss="modal"  onclick="hideModal(\''+target+'\');">' + _('Close') + '</button></div>');
23183                $(target).find('.modal-header, .modal-body, .modal-footer').show();
23184                target += " > .modal-body";
23185                console.log(target);
23186            }
23187            if (data == null || data.length == 0) {
23188                var notrace = '<div class="nonecreated"><h3>' + _('No trace available') + '</h3></div>';
23189                $(target).append(notrace);
23190            }
23191            ul = $('<ul class="cradle-timeline">');
23192            data.forEach(function(e) {
23193                var e_class = e.hasOwnProperty('classes') ? 'event ' + e['classes'] : 'event';
23194                var li = $('<li class="'+e_class+'" data-date="'+e['ts']+'">');
23195                if (e['diff_ts'].length > 0)
23196                    li.append('<span class="event-ts">+'+e['diff_ts']+'</span>');
23197                li.append('<p>'+e['str']+'</p>');
23198                ul.append(li);
23199            });
23200
23201            $(target).append(ul);
23202            if (document.querySelector(target).classList.contains('modal') || $(target).parent('.modal').length > 0) {
23203                modalResize($(target).parent('.modal'));
23204            }
23205        });
23206        return false;
23207    }
23208}
23209
23210function propigateTabTrace(mdlName, url) {
23211    //alert(url.replace("modal.php","callflow.svg"));
23212    $.ajax({
23213        url: url,
23214        cache: false
23215    }).done(function (html) {
23216        //alert(mdlName);
23217        var modalObj = $('#' + mdlName);
23218        //alert(modalObj);
23219        try {
23220            //alert('loading modal data succeeded for ' + modalId);
23221            //log(html);
23222
23223
23224            //alert(html);
23225            modalObj.css("minHeight", "600px");
23226            modalObj.empty();
23227
23228
23229            modalObj.append(html);
23230        } catch (err) {
23231            alert("error caught - " + err);
23232            // log(html);
23233        }
23234
23235        return;
23236
23237        if (modalId == "#history-trace") {
23238            log('trying to animate modal width to window');
23239            var srcImage = $('.callflow-image img');
23240
23241            modalObj.css("maxHeight", $(window).height() - 30);
23242
23243            var widthImage = new Image();
23244            widthImage.onload = function () {
23245                var imageWidth = widthImage.width;
23246                modalObj.find('.modal-header, .modal-footer').fadeIn(25, function () {
23247
23248                    if (imageWidth > 610) {
23249                        if (imageWidth > ($(window).width() - 20))
23250                            imageWidth = $(window).width() - 20;
23251                        modalObj.animate({
23252                            width: imageWidth
23253                        }, {
23254                            duration: 150,
23255                            queue: false,
23256                            progress: function () {
23257                                modalResize(modalObj, true);
23258                            },
23259                            complete: function () {
23260                                modalObj.trigger('modal.animation.end');
23261                            }
23262                        });
23263                    }
23264                    modalObj.find('.modal-body')
23265                        .animate({
23266                            height: "show", opacity: "show"
23267                        }, {
23268                            duration: 100,
23269                            queue: false,
23270                            progress: function () {
23271                                if (imageWidth < 610)
23272                                    modalResize(modalObj, true);
23273                            },
23274                            complete: function () {
23275                                if (imageWidth < 610)
23276                                    modalResize(modalObj, true);
23277                                modalObj.trigger('modal.animation.end');
23278                            }
23279                        });
23280                });
23281            };
23282            widthImage.src = srcImage.attr("src");
23283        } else {
23284            modalObj.find('.modal-header, .modal-footer').fadeIn(25);
23285            modalObj.find('.modal-body')
23286                .animate({
23287                    height: "show", opacity: "show"
23288                }, {
23289                    duration: 100,
23290                    progress: function () {
23291                        modalResize(modalObj);
23292                    },
23293                    complete: function () {
23294                        modalResize(modalObj);
23295                        modalObj.trigger('modal.animation.end');
23296                    }
23297                });
23298
23299        }
23300
23301        //workaround to prevent modal hide event from triggering tooltip
23302        $('.modal').unbind('hide');
23303    }).fail(function (textStatus) {
23304        modalObj.removeClass('loading').addClass('load-failed');
23305        var html = '<div class="modal-header">'
23306            + '<button type="button" class="close cancel" data-dismiss="modal"  onclick="hideModal(\'' + modalId + '\');">&times;</button>'
23307            + '<h4>' + textStatus.statusText + '</h4>'
23308            + '</div>'
23309            + '<div class="modal-body">'
23310            + '<div class="load-failed">'
23311            + '<h4>The modal contents failed to load.</h4><h4>Please try again.</h4>'
23312            + '</div>'
23313            + '</div>'
23314            + '<div class="modal-footer">'
23315            + '<button type="btn" class="cancel btn" data-dismiss="modal" onclick="hideModal(\'' + modalId + '\');">Close</button>'
23316            + '</div>'
23317        modalObj.html(html);
23318        modalObj.find('.modal-header, .modal-body, .modal-footer').show();
23319        modalResize(modalObj);
23320    });
23321
23322}
23323
23324function clickToDial(user, formatted, destination, origination, autoanswer) {
23325    if (typeof origination != 'undefined' && origination != null)
23326        origination = "/" + origination;
23327    else
23328        origination = "";
23329
23330    if (typeof autoanswer === 'undefined' || autoanswer === null)
23331        autoanswer = false;
23332
23333    formatted = cleanDevice(formatted);
23334
23335    destination = destination.replace("+", "PLUS");
23336    if (autoanswer)
23337        $.post("/portal/calls/clickToDialAA/" + user + "/" + destination + origination, function (data) {
23338
23339            if (data.trim() == "ok")
23340                jsFlash(_("Please answer your ringing phone and the call will be connected to {0}", formatted), 'success');
23341            else
23342                jsFlash(_("There was an error placing your call to {0}", formatted), "danger");
23343
23344        });
23345    else
23346        $.post("/portal/calls/clickToDial/" + user + "/" + destination + origination, function (data) {
23347
23348            if (data.trim() == "ok")
23349                jsFlash(_("Please answer your ringing phone and the call will be connected to {0}", formatted), 'success');
23350            else
23351                jsFlash(_("There was an error placing your call to {0}", formatted), "danger");
23352
23353        });
23354}
23355
23356function clickToAddParticipant(bridge, destination) {
23357    $.post("/portal/conferences/clickToDial/" + bridge + "/" + destination, function (data) {
23358
23359        if (data.trim() == "ok")
23360            jsFlash(_("A call to {0} has been initiated", destination), 'success');
23361        else
23362            jsFlash(_("There was an error placing the call to {0}", destination), "danger");
23363
23364    });
23365
23366}
23367
23368//itm is the mute button that was pressed
23369function muteParticipant(bridge, destination, itm) {
23370    $.post("/portal/conferences/mute/" + bridge + "/" + destination, function (data) {
23371        log(data);
23372        if (data.trim() == "ok") {
23373            jsFlash("Participant muted!", 'success');
23374
23375            itm.removeClass('mute')
23376                .addClass('listen')
23377                .attr('data-original-title', 'Un-mute')
23378                .attr('onclick', 'unmute($(this))');
23379            itm.parent().siblings(".participant-mode").html('<span class="label label-success">Active</span>')
23380            $('.helpsy').tooltip('hide');
23381            initTooltips();
23382        } else {
23383            jsFlash("Participant could not be muted!", "danger");
23384        }
23385
23386    });
23387
23388}
23389
23390function unmuteParticipant(bridge, destination, itm) {
23391    $.post("/portal/conferences/unmute/" + bridge + "/" + destination, function (data) {
23392        log(data);
23393        if (data.trim() == "ok") {
23394            jsFlash("Participant un-muted!", 'success');
23395
23396            itm.removeClass('listen')
23397                .addClass('mute')
23398                .attr('data-original-title', _('Mute'))
23399                .attr('onclick', 'mute($(this))');
23400            itm.parent().siblings(".participant-mode").html('<span class="label label-important">' + _('Muted') + '</span>')
23401            $('.helpsy').tooltip('hide');
23402            initTooltips();
23403        } else
23404            jsFlash("Participant could not be un-muted!", "danger");
23405
23406    });
23407
23408}
23409
23410function discParticipant(bridge, destination) {
23411    $.post("/portal/conferences/disc/" + bridge + "/" + destination, function (data) {
23412        log(data);
23413
23414        $('.helpsy').tooltip('hide');
23415
23416        if (data.trim() == "ok")
23417            jsFlash("Participant disconnected!", 'success');
23418        else
23419            jsFlash("Participant not disconnected!", "danger");
23420
23421    });
23422
23423}
23424
23425// gets the messages count of voicemails and sms/chat (if enabled)
23426function getCount() {
23427    $.get('/portal/voicemails/count/0', function (data) {
23428        var vmMsg = data;
23429
23430        if (enableChatUC || enableChatSMS) {
23431            //get unread sms/chat messages if enabled
23432            var args = {
23433                'action': "count",
23434                "object": "messagesession",
23435                "format": "json",
23436                "user": sub_user,
23437                "domain": sub_domain,
23438                "last_sender": "remote",
23439                "last_status": "unread",
23440                "muted": "no"
23441            };
23442            netsapiens.api.post(args).then(function (data) {
23443                if (typeof data == "string")
23444                    data = JSON.parse(data);
23445
23446                var chatMsg = 0;
23447                var totalMsg;
23448
23449                if (data && typeof data.total != 'undefined' && $.isNumeric(data.total))
23450                    chatMsg = data.total;
23451                else if (data && typeof data == 'number')
23452                    chatMsg = data;
23453
23454                //update tab badges if they exist
23455                if ($("#sub-nav-msg-count").length) {
23456                    handleMsgCountChatSMS(chatMsg);
23457                    handleMsgCountChatVM(vmMsg);
23458                }
23459                //else just update the main messages badges
23460                else {
23461                    totalMsg = chatMsg + parseInt(vmMsg);
23462                    handleMsgCount(totalMsg);
23463                }
23464            });
23465        } else {
23466            //just use voicemail count
23467            handleMsgCount(vmMsg);
23468        }
23469
23470    });
23471}
23472
23473// gets the messages count of voicemails and sms/chat (if enabled)
23474function getRecentCount() {
23475    $.get('/portal/messages/countUnreadRecents/', function (data) {
23476        var chatMsg = 0;
23477        if (enableChatUC || enableChatSMS) {
23478            if (data && typeof data != 'undefined' && $.isNumeric(data)) {
23479                chatMsg = data;
23480            }
23481            handleRecentSessionCount(chatMsg);
23482        }
23483    });
23484}
23485
23486
23487// updates messages count badge
23488function handleMsgCount(count) {
23489    var $badge;
23490
23491    if ($('#nav-msg-count').length) {
23492        $badge = $('#nav-msg-count');
23493    }
23494    else if ($('.dropdown-msg-count').length) {
23495        $badge = $('.dropdown-msg-count');
23496    }
23497    else {
23498        return;
23499    }
23500
23501    if (count > 0) {
23502        $badge.text(count).fadeIn();
23503    }
23504    else {
23505        $badge.fadeOut();
23506    }
23507}
23508
23509// updates tabs chat/sms count badge
23510function handleMsgCountChatSMS(count) {
23511    // debugger;
23512    if (count > 0)
23513        $('#sub-nav-msg-count').text(count).fadeIn();
23514    else
23515        $('#sub-nav-msg-count').fadeOut();
23516}
23517
23518// updates tabs voicemail count badge
23519function handleMsgCountChatVM(count) {
23520    if (count > 0)
23521        $('#sub-nav-vm-count').text(count).fadeIn();
23522    else
23523        $('#sub-nav-vm-count').fadeOut();
23524}
23525
23526
23527// updates tabs voicemail count badge
23528function handleRecentSessionCount(count) {
23529    var $recentUnreadBadge;
23530
23531    if ($('#recents-msg-count').length) {
23532        $recentUnreadBadge = $('#recents-msg-count');
23533
23534        if (count > 0) {
23535            $recentUnreadBadge.text(count).fadeIn();
23536        }
23537        else {
23538            $recentUnreadBadge.fadeOut();
23539        }
23540    }
23541}
23542
23543
23544function minusOneVmail() {
23545    var count = $('#nav-msg-count').text();
23546    count = count - 1;
23547    handleMsgCount(count);
23548}
23549
23550/**
23551 * Reseller was chosen, so should change the list of the domains and users that are available for autofill
23552 *
23553 */
23554function cdrScheduleChangeReseller() {
23555    clearAutoComplete('domain');
23556}
23557
23558/**
23559 * Domain was chosen, so should change the list of the users that are available for autofill
23560 *
23561 */
23562function cdrScheduleChangeDomain() {
23563    //$('#app-details').hide();
23564    $('#user-choices').val( '');
23565
23566    clearAutoComplete('user-choices');
23567}
23568
23569/**
23570 * Reseller was chosen, so should change the list of the domains that are available for autofill
23571 *
23572 */
23573function cdrScheduleChangeReseller() {
23574    //$('#app-details').hide();
23575    $('#domain-choices').val( '');
23576    $('#user-choices').val( '');
23577
23578    clearAutoComplete('domain-choices');
23579    clearAutoComplete('user-choices');
23580}
23581
23582function inventoryChangeDomain() {
23583    //$('#app-details').hide();
23584    if (notesClear)
23585        $('#notes').val( '');
23586
23587    $('#PhonenumberApplication').val( 'available');
23588    $('#PhonenumberApplication').change();
23589
23590    $('#trunk-choices-dd').data('domain', "");
23591    $('#route-choices-dd').data('domain', "");
23592
23593    $('#user-choices').val( '');
23594    $('#fax-choices').val( '');
23595    $('#conference-choices').val( '');
23596    $('#callqueue-choices').val( '');
23597    $('#vmail-choices').val( '');
23598    $('#PhonenumberNumber').val( '');
23599    clearAutoComplete('user-choices');
23600    clearAutoComplete('fax-choices');
23601    clearAutoComplete('conference-choices');
23602    clearAutoComplete('callqueue-choices');
23603    clearAutoComplete('vmail-choices');
23604    clearAutoComplete('attendant-choices');
23605
23606
23607}
23608
23609function answerrulesFeatureCheck() {
23610    //minfeature
23611}
23612
23613function updateExportHref() {
23614    var path = '/portal/contacts/export/' + encodeURIComponent($("#ContactContacts").val())
23615        + "/" + $("#ContactFormat").val() + "/contacts.";
23616    var format = $("#ContactFormat").val() + "";
23617
23618    if (format == "vcard")
23619        path = path + "vcf";
23620    else
23621        path = path + "csv";
23622
23623    $('#export_button').attr('href', path);
23624
23625}
23626
23627//update the path the export button will take to make sure it is in the
23628//export_shared_contacts function instead of looking at the regular export subset
23629function updateExportHrefShared() {
23630    var path = '/portal/contacts/export_shared_contacts/' + encodeURIComponent($("#ContactContacts").val())
23631        + "/" + $("#ContactFormat").val() + "/contacts.";
23632    var format = $("#ContactFormat").val() + "";
23633
23634    if (format == "vcard")
23635        path = path + "vcf";
23636    else
23637        path = path + "csv";
23638
23639    $('#export_button').attr('href', path);
23640
23641}
23642
23643function pad(num) {
23644    return ("0" + num).slice(-2);
23645}
23646
23647function getSecDiff(date) {
23648    var startTime = new Date(Date.parse(date + " GMT"));
23649    //log("startTime "+startTime);
23650
23651    if (typeof startTime == 'undefined' || startTime == "Invalid Date" || startTime == "NaN") {
23652        startTime = Date.parseExact(startTime, 'yyyy-MM-ddd hh:mm:ss zzz');
23653        //log("startTime "+startTime);
23654    }
23655
23656    var currentTime = new Date();
23657    //log("current time "+currentTime);
23658    var startMili = startTime.getTime();
23659    var currentMili = currentTime.getTime();
23660    var sec = (currentMili - startMili) / 1000;
23661    sec = Math.floor(sec);
23662    //log("current sec "+sec);
23663    return sec;
23664}
23665
23666function getDuration(date, offset) {
23667    var sec = getSecDiff(date);
23668    sec = sec - offset;
23669    if (sec < 0)
23670        sec = getSecDiff(date);
23671    return getMMss(sec);
23672}
23673
23674function getMMss(sec) {
23675    var hour = Math.floor(sec / 3600);
23676    sec = sec - (hour * 3600);
23677    var min = Math.floor(sec / 60);
23678    sec = sec - (min * 60);
23679    sec = Math.floor(sec);
23680    var duration = "";
23681
23682    if (hour > 0)
23683        duration += pad(hour) + ":";
23684    duration += pad(min) + ":";
23685    duration += pad(sec);
23686    return duration;
23687}
23688
23689function changehidden(event, ui, avail, hidden) {
23690    if (typeof ui == 'undefined')
23691        return;
23692    var selectedObj = ui.item;
23693    var device = "";
23694    $("#" + avail + " option").map(function () {
23695        if (selectedObj.value == this.value || selectedObj.value == this.innerHTML)
23696            device = this.text;
23697    });
23698    $('#' + hidden).val( device);
23699    if (device === "" && selectedObj.value.includes("@conference-bridge")) {
23700        $('#' + hidden).val( selectedObj.value);
23701    }
23702
23703}
23704
23705function clearAutoComplete(id) {
23706    var choices = [];
23707    $('#' + id).autocomplete({
23708        //autoFocus: true,
23709        source: function (request, response) {
23710            var results = $.ui.autocomplete.filter(choices, request.term);
23711            response(results);
23712        }
23713    });
23714
23715
23716}
23717
23718function changeDispType() {
23719    var disp = $('#CallhistoryDisposition');
23720    var reason = $('#CallhistoryReason');
23721    var disp_value = disp.val().toString();
23722    reason.empty();
23723    var matchString = '#disposition-' + disp_value.replace(/ /g, '') + " > option";
23724    $(matchString).each(function () {
23725        reason.append("<option>" + this.value + "</option>");
23726    });
23727}
23728
23729//returns a formatted NA number
23730function cleanDevice(str) {
23731    //log("cleaning device "+str);
23732    var found = false;
23733    $('.hiddenconflist').each(function () {
23734        //log($(this).attr('id'));
23735        if ($(this).attr('id') == str) {
23736            found = true;
23737            str = $(this).val();
23738            return $(this).val();
23739        }
23740
23741
23742    });
23743    if (found)
23744        return str;
23745
23746    if (typeof str != "string")
23747        str = str + "";
23748
23749    if (PORTAL_PHONENUMBER_REMOVE_POUND_PREFIXES) {
23750        str = str.replace("%23", "#");
23751        str = str.substring(str.indexOf("#") + 1);
23752    }
23753
23754
23755    if ("Call-To-Talk" == str)
23756        return _("Click to Call");
23757    str = cleanDevicePrep(str);
23758
23759
23760    if (str.includes("video.bridge"))
23761        str = _("Video Bridge");
23762
23763
23764    //log(str +" is not a number");
23765    if (/^\d+$/.test(str)) {
23766        //log(str +" is a number");
23767
23768        return netsapiens.utils.formatPhoneNumber(str, PORTAL_LOCALIZATION_NUMBER_FORMAT);
23769    } else {
23770        //log(str +" is not a number");
23771    }
23772    //log("the length  is="+str.length);
23773
23774    //log("the modded number is="+str);
23775
23776    return str;
23777
23778}
23779
23780//strip all characters except numbers
23781function cleanDevicePrep(str) {
23782    if (typeof str == 'undefined' || str == null)
23783        return "";
23784
23785    //make sure str is a string
23786    if (typeof str !== 'string')
23787        str = str.toString();
23788
23789    str = str.replace("sip", "");
23790    str = str.replace(":", "");
23791    if (PORTAL_PHONENUMBER_REMOVE_PLUS_ON_CALL) {
23792        str = str.replace("+", "");
23793    }
23794    str = str.replace("(", "");
23795    str = str.replace(")", "");
23796    str = str.replace("-", "");
23797    str = str.replace(/\./g, "");
23798    str = str.replace(/:/g, "");
23799    str = str.replace(/ /g, "");
23800    if (PORTAL_PHONENUMBER_REMOVE_PLUS_ON_CALL) {
23801        str = str.replace(/\+/g, "");
23802    }
23803    str = str.replace(/\(/g, "");
23804    str = str.replace(/\)/g, "");
23805    str = str.replace(/-/g, "");
23806    str = str.replace(/^\s+|\s+$/g, '');
23807    str = str.replace('wp', '');
23808    str = str.replace('\"', '');
23809    str = str.replace(']', '');
23810    str = str.replace('[', '');
23811    var group = str.split("@");
23812    str = group[0];
23813    str = str.replace("%40", "@");
23814    var group = str.split("@");
23815    str = group[0];
23816
23817    return str;
23818}
23819
23820function cleanRemote(str) {
23821    if (typeof str === 'undefined' || str === null)
23822        return "";
23823
23824    str = str.replace("sip", "");
23825    str = str.replace(":", "");
23826    str = str.replace("+", "");
23827    str = str.replace("(", "");
23828    str = str.replace(")", "");
23829    str = str.replace("-", "");
23830    str = str.replace(/\./g, "");
23831    str = str.replace(/:/g, "");
23832    str = str.replace(/ /g, "");
23833    str = str.replace(/\+/g, "");
23834    str = str.replace(/\(/g, "");
23835    str = str.replace(/\)/g, "");
23836    str = str.replace(/-/g, "");
23837    str = str.replace(/^\s+|\s+$/g, '');
23838
23839    str = str.replace(/\[/g, "");
23840    str = str.replace(/\]/g, "");
23841    str = str.replace(/\"/g, "");
23842
23843    str = str.replace(new RegExp("@"+sub_domain, "g"), "");
23844
23845    return str;
23846}
23847
23848
23849
23850//returns a formatted NA number
23851function cleanTermQueue(str) {
23852    var res = str.split("@");
23853
23854    return res[0];
23855}
23856
23857function isNumber(n) {
23858    return !isNaN(parseFloat(n)) && isFinite(n);
23859}
23860
23861function postLog(status) {
23862    $.post("/portal/agents/agentLog/" + status + '/null', function () {
23863    })
23864        .fail(function () {
23865            log('postLog: ' + status + ' failed');
23866        })
23867        .done(function () {
23868            log('postLog: ' + status + ' success');
23869        });
23870}
23871
23872function ownDevice(callid) {
23873    var device = $('#device').val();
23874    var devSplit = device.split(" ");
23875    log(devSplit[0]);
23876    callToOwn(devSplit[0], callid);
23877    $('#activateCallBtn').prop("disabled", true);
23878
23879}
23880
23881function callToOwn(device, callid) {
23882    $.post("/portal/phones/own/" + device + "/" + callid, function (data) {
23883
23884        if (data.trim() == "ok") {
23885            jsFlash("Please answer the ringing phone (" + device + ")", 'success');
23886            // $.cookie("agent-device", "device-" + device);
23887            $('#activate-done').on('click', function () {
23888                // if on the agents page
23889                if ($('.phones-panel-home').length > 0) {
23890                    hotDeskConfirm(device);
23891                }
23892                else { // if on the phones page
23893                    location.reload(true);
23894                }
23895            });
23896        } else
23897            jsFlash("There was an error placing your call to " + device, "danger");
23898
23899    })
23900        .always(function () {
23901            $('#activateCallBtn').prop("disabled", false);
23902        });
23903}
23904
23905function toggleHiddenUser() {
23906    if ($('#hideSystemUsers').is(":checked")) {
23907        $.cookie('user-hidden-'+sub_user+"-"+md5(sub_name), 'true', {path: "/portal/users", expires: 3600*24*7});
23908        $.cookie('user-hidden-'+sub_user+"-"+md5(sub_name), 'true', {path: "/", expires: 3600*24*7});
23909
23910    }
23911    else {
23912        $.cookie('user-hidden-'+sub_user+"-"+md5(sub_name), 'false', {path: "/portal/users", expires: 3600*24*7});
23913        $.cookie('user-hidden-'+sub_user+"-"+md5(sub_name), 'false', {path: "/", expires: 3600*24*7});
23914    }
23915
23916    location.reload();
23917}
23918
23919function toggleHiddenUserAddresses() {
23920    if ($('#hideUserAddresses').is(":checked")) {
23921        $.cookie('user-addresses-hidden-'+sub_user+"-"+md5(sub_name), 'true', {path: "/portal/inventory/addresses", expires: 3600*24*7});
23922        $.cookie('user-addresses-hidden-'+sub_user+"-"+md5(sub_name), 'true', {path: "/", expires: 3600*24*7});
23923
23924    }
23925    else {
23926        $.cookie('user-addresses-hidden-'+sub_user+"-"+md5(sub_name), 'false', {path: "/portal/addresses", expires: 3600*24*7});
23927        $.cookie('user-addresses-hidden-'+sub_user+"-"+md5(sub_name), 'false', {path: "/", expires: 3600*24*7});
23928    }
23929
23930    location.reload();
23931}
23932
23933function toggleHiddenUserTimeFrames() {
23934    if ($('#hiddenUsersValueTimeFrames').is(":checked")) {
23935        $.cookie('user-hidden-timeframes-'+sub_user+"-"+md5(sub_name), 'true', {path: "/portal/timeframes", expires: 3600*24*7});
23936        $.cookie('user-hidden-timeframes-'+sub_user+"-"+md5(sub_name), 'true', {path: "/", expires: 3600*24*7});
23937
23938    }
23939    else {
23940        $.cookie('user-hidden-timeframes-'+sub_user+"-"+md5(sub_name), 'false', {path: "/portal/timeframes", expires: 3600*24*7});
23941        $.cookie('user-hidden-timeframes-'+sub_user+"-"+md5(sub_name), 'false', {path: "/", expires: 3600*24*7});
23942    }
23943
23944    location.reload();
23945}
23946
23947function toggleHiddenZerosTimeFrames() {
23948    if ($('#hiddenZerosValueTimeFrames').is(":checked")) {
23949        $.cookie('hide-zeros-timeframes-'+sub_user+"-"+md5(sub_name), 'true', {path: "/portal/timeframes", expires: 3600*24*7});
23950        $.cookie('hide-zeros-timeframes-'+sub_user+"-"+md5(sub_name), 'true', {path: "/", expires: 3600*24*7});
23951
23952    }
23953    else {
23954        $.cookie('hide-zeros-timeframes-'+sub_user+"-"+md5(sub_name), 'false', {path: "/portal/timeframes", expires: 3600*24*7});
23955        $.cookie('hide-zeros-timeframes-'+sub_user+"-"+md5(sub_name), 'false', {path: "/", expires: 3600*24*7});
23956    }
23957
23958    location.reload();
23959}
23960
23961
23962function toggleHiddenUserMusic() {
23963    if ($('#hiddenUsersValueMusic').is(":checked")) {
23964        $.cookie('user-hidden-music-'+sub_user+"-"+md5(sub_name), 'true', {path: "/portal/music", expires: 3600*24*7});
23965        $.cookie('user-hidden-music-'+sub_user+"-"+md5(sub_name), 'true', {path: "/", expires: 3600*24*7});
23966
23967    }
23968    else {
23969        $.cookie('user-hidden-music-'+sub_user+"-"+md5(sub_name), 'false', {path: "/portal/music", expires: 3600*24*7});
23970        $.cookie('user-hidden-music-'+sub_user+"-"+md5(sub_name), 'false', {path: "/", expires: 3600*24*7});
23971    }
23972
23973    location.reload();
23974}
23975
23976function toggleHiddenZerosMusic() {
23977    if ($('#hiddenZerosValueMusic').is(":checked")) {
23978        $.cookie('hide-zeros-music-'+sub_user+"-"+md5(sub_name), 'true', {path: "/portal/music", expires: 3600*24*7});
23979        $.cookie('hide-zeros-music-'+sub_user+"-"+md5(sub_name), 'true', {path: "/", expires: 3600*24*7});
23980
23981    }
23982    else {
23983        $.cookie('hide-zeros-music-'+sub_user+"-"+md5(sub_name), 'false', {path: "/portal/music", expires: 3600*24*7});
23984        $.cookie('hide-zeros-music-'+sub_user+"-"+md5(sub_name), 'false', {path: "/", expires: 3600*24*7});
23985    }
23986
23987    location.reload();
23988}
23989
23990
23991
23992
23993// toggle enable MOH settings
23994function toggleEnableMusicOnHold(domain, state) {
23995    var url = "/portal/music/toggleEnableMOH/" + domain + "/" + state;
23996    $.post(url, function (data) {
23997        jsFlash("Music on hold settings have been updated", 'success');
23998
23999        // change the state of the boxesto indicate whether or not music on hold is on or not
24000        if (state == false) {
24001            // hide the panes and show the
24002            $('.music-panel-main').addClass('hide');
24003            $('.moh-footer').addClass('hide');
24004
24005            $('.music-panel-main-no-moh').removeClass('hide');
24006
24007        } else {
24008            $('.music-panel-main').removeClass('hide');
24009            $('.moh-footer').removeClass('hide');
24010
24011
24012            $('.music-panel-main-no-moh').addClass('hide');
24013
24014        }
24015
24016    });
24017}
24018
24019
24020// toggle randomize music for MOH settings
24021function toggleRandomizeMusic(uid = '') {
24022    var url = "/portal/music/randomize/" + $('#randomizeMusic').is(":checked") + "/" + uid;
24023    $.post(url, function (data) {
24024        jsFlash("Music on hold settings have been updated", 'success');
24025    });
24026}
24027
24028
24029function updateInterval(uid, moh_interval) {
24030    var url = "/portal/music/updateInterval/" + uid + "/" + moh_interval;
24031    $.post(url, function (data) {
24032        jsFlash("Music on hold settings have been updated", 'success');
24033    });
24034
24035}
24036
24037
24038function toggleUiconfigDefault() {
24039    if ($('#showDefaults').is(":checked"))
24040        $.cookie('uiconfig-showDefaults', 'true', {path: "/portal/uiconfigs", expires: 180});
24041    else
24042        $.cookie('uiconfig-showDefaults', 'false', {path: "/portal/uiconfigs", expires: 180});
24043
24044    location.reload();
24045}
24046
24047function releaseDevice(device, queue) {
24048    var url = "/portal/phones/release/" + device;
24049    if (typeof queue != 'undefined' && queue != "")
24050        url = url + "/" + queue;
24051    $.post(url, function (data) {
24052        if (data.trim() == "ok")
24053            jsFlash("The phone (" + device + ") has been released ", 'success');
24054        else
24055            jsFlash("There was an error releasing phone " + device, "danger");
24056
24057        if ($.cookie("agent-device") == device)
24058            $.cookie("agent-device", null);
24059
24060        setTimeout(function () {
24061            if ($('.phones-panel-home').length > 0) {
24062                homegetPhones();
24063            }
24064            else {
24065                location.reload(true);
24066            }
24067
24068        }, 1000);
24069
24070
24071    });
24072}
24073
24074function dynamicStaticChange(isAdd, dynamic) {
24075    if ($('#ip_control_dd').val() == "Static IP") {
24076        $('.limit-max_total').animate({
24077            height: 'show',
24078            opacity: 'show'
24079        });
24080        $('.dynamicipgroup').animate({
24081            height: 'hide',
24082            opacity: 'hide'
24083        });
24084        $('.staticipgroup').animate({
24085            height: 'show',
24086            opacity: 'show'
24087        });
24088        $('#authSection').animate({
24089            height: 'show',
24090            opacity: 'show'
24091        }, {
24092            progress: function () {
24093                modalResize($(this).parents('.modal'))
24094            }
24095        });
24096    } else {
24097        //#11231 Allow a static sip trunk to be turned into a dynamic registration based sip trunk.
24098        if (!isAdd && !dynamic) {
24099
24100            $('#SiptrunkDeviceUserRO').hide();
24101            $('#SiptrunkDeviceUser').show();
24102
24103        }
24104        log("needs work");
24105        $('.limit-max_total').animate({
24106            height: 'hide',
24107            opacity: 'hide'
24108        });
24109        $('.staticipgroup').animate({
24110            height: 'hide',
24111            opacity: 'hide'
24112        });
24113        $('.dynamicipgroup').animate({
24114            height: 'show',
24115            opacity: 'show'
24116        });
24117        $('#authSection').animate({
24118            height: 'hide',
24119            opacity: 'hide'
24120        }, {
24121            progress: function () {
24122                modalResize($(this).parents('.modal'))
24123            }
24124        });
24125    }
24126}
24127
24128function iTunkChange(isAdd, enabled) {
24129    if ($('#itrunk_enabled_dd').bootstrapSwitch('state')) {
24130        $('.itrunkgroup').animate({
24131            height: 'show',
24132            opacity: 'show'
24133        }, {
24134            progress: function () {
24135                modalResize($(this).parents('.modal'))
24136            }
24137        });
24138    } else {
24139        $('.itrunkgroup').animate({
24140            height: 'hide',
24141            opacity: 'hide'
24142        }, {
24143            progress: function () {
24144                modalResize($(this).parents('.modal'))
24145            }
24146        });
24147    }
24148}
24149
24150function routeTypeChange() {
24151    // if ($('.route-options').is(':visible'))
24152    //  $('.route-options').animate({
24153    //          height: 'hide', opacity: 'hide', queue: true
24154    //      }, {
24155    //          progress: function(){
24156    //              modalResize($(this).parents('.modal'));
24157    //          }
24158    //      });
24159
24160    var type = $('#route_type_dd').val();
24161    log(type);
24162
24163    if (type == "percentage") {
24164        $('.pct-remaining, #pct-equal-btn').animate({
24165            opacity: 'show',
24166            width: 'show'
24167        });
24168        $('.trunk-method-table').animate({
24169            opacity: 'hide'
24170        }, {
24171            queue: true,
24172            duration: 200,
24173            complete: function () {
24174                $('.route-fixed').hide();
24175                $('.route-percent').show();
24176            }
24177        });
24178        $('.trunk-method-table').animate({
24179            opacity: 'show',
24180            queue: true
24181        });
24182    } else if (type == "fixed") {
24183        $('.pct-remaining, #pct-equal-btn').animate({
24184            opacity: 'hide',
24185            width: 'hide'
24186        });
24187        $('.trunk-method-table').animate({
24188            opacity: 'hide'
24189        }, {
24190            queue: true,
24191            duration: 200,
24192            complete: function () {
24193                $('.route-percent').hide();
24194                $('.route-fixed').show();
24195            }
24196        });
24197        $('.trunk-method-table').animate({
24198            opacity: 'show',
24199            queue: true
24200        });
24201    }
24202
24203}
24204
24205function trunkTypeChange() {
24206    if ($('#trunk_type_dd').val() == "Origination Only" || $('#trunk_type_dd').val() == "Locked") {
24207        $('.outbound-only').animate({
24208            height: 'hide', opacity: 'hide'
24209        }, {
24210            progress: function () {
24211                modalResize($(this).parents('.modal'))
24212            }
24213        });
24214    } else {
24215        $('.outbound-only').animate({
24216            height: 'show', opacity: 'show'
24217        }, {
24218            progress: function () {
24219                modalResize($(this).parents('.modal'))
24220            }
24221        });
24222    }
24223
24224
24225    if ($('#isAdd').length != 0)
24226        return;
24227
24228    if ($('#trunk_type_dd').val() == "Termination Only" || $('#trunk_type_dd').val() == "Locked") {
24229        $('.inbound-only').animate({
24230            height: 'hide', opacity: 'hide'
24231        }, {
24232            progress: function () {
24233                modalResize($(this).parents('.modal'))
24234            }
24235        });
24236    } else {
24237        $('.inbound-only').animate({
24238            height: 'show', opacity: 'show'
24239        }, {
24240            progress: function () {
24241                modalResize($(this).parents('.modal'))
24242            }
24243        });
24244        ;
24245    }
24246}
24247
24248function authChange() {
24249    if ($('#auth_dd').val() == "yes") {
24250        $('#authEnabledSection').animate({
24251            height: 'show', opacity: 'show'
24252        }, {
24253            progress: function () {
24254                modalResize($(this).parents('.modal'))
24255            }
24256        });
24257    } else {
24258        $('#authEnabledSection').animate({
24259            height: 'hide', opacity: 'hide'
24260        }, {
24261            progress: function () {
24262                modalResize($(this).parents('.modal'))
24263            }
24264        });
24265    }
24266}
24267
24268function updateRecentDomain(event, ui) {
24269    var domain = ui.item.id;
24270    var value = ui.item.value;
24271    var desc = value.replace(domain, "").trim();
24272    if (desc == domain)
24273        desc = "";
24274    log(desc);
24275    addRecentDomain(domain, desc);
24276}
24277
24278function addRecentDomain(domain, desc) {
24279    domain = $.trim(domain);
24280    desc = $.trim(desc);
24281
24282    // use localStorage
24283    let recentDomains = localStorage.getItem(sub_user + sub_domain + 'recentDomains');
24284
24285    if (recentDomains == null) {
24286        recentDomains = domain + "|||" + desc + ",;,";
24287    } else if (!recentDomains.includes(domain + "|||" + desc + ",;,")) {
24288        // string does not exist already in the list:
24289        recentDomains = domain + "|||" + desc + ",;," + recentDomains;
24290    } else if (recentDomains.includes(domain + "|||" + desc + ",;,")) {
24291        // if string does exist, add it to the front after removing
24292        removeRecentDomain(domain, desc);
24293        recentDomains = localStorage.getItem(sub_user + sub_domain + 'recentDomains');
24294        recentDomains = domain + "|||" + desc + ",;," + recentDomains;
24295    }
24296    localStorage.setItem(sub_user + sub_domain + 'recentDomains', recentDomains);
24297}
24298
24299function removeRecentDomain(domain, desc) {
24300    domain = $.trim(domain);
24301    desc = $.trim(desc);
24302
24303    let recentDomains = localStorage.getItem(sub_user + sub_domain + 'recentDomains');
24304    recentDomains = recentDomains.replaceAll(domain + "|||" + desc + ",;,",'');
24305
24306    localStorage.setItem(sub_user + sub_domain + 'recentDomains', recentDomains);
24307    return true;
24308}
24309
24310function modifyDialPlanning(event, ui) {
24311    var domain = ui.item.id;
24312    modifyDialPlanning4domain(domain);
24313
24314
24315}
24316
24317function modifyDialPlanning4domain(domain) {
24318    $('#staticdomain').text(domain);
24319
24320    $.getJSON('/portal/siptrunks/dialPlanningLookup/' + domain, function (data) {
24321
24322        log(data);
24323        $('#dialplan').empty();
24324        $('#dialplan').append("<option value=\"\">Please select a Dial Translation</option>");
24325
24326        $.each(data.plans, function (key, val) {
24327            var selected = "";
24328            if (domain == val)
24329                selected = "selected=\"selected\"";
24330            $('#dialplan').append("<option value='" + val + "' " + selected + ">" + val + "</option>");
24331        });
24332        $('#dialpolicy').empty();
24333        $('#dialpolicy').append("<option value=\"\">Please select a Dial Permission</option>");
24334        $.each(data.policies, function (key, val) {
24335
24336            $('#dialpolicy').append("<option value='" + val + "'>" + val + "</option>");
24337        });
24338
24339        $('#dialplanningSection').show();
24340
24341    });
24342
24343}
24344
24345function inventoryMacDomainChange(event, ui, domain) {
24346    if (typeof domain == 'undefined' || domain == null)
24347        domain = ui.item.id;
24348    var a = [1, 2, 3, 4, 5, 6, 7, 8];
24349
24350    if (typeof lineCountDynamic == 'undefined')
24351        lineCountDynamic = 3;
24352
24353    $('#staticdomain').text(domain);
24354    for (var i = 0; i < a.length; i++) {
24355        var id = "#line" + a[i];
24356        $(id).val( "");
24357        $(id).prop("disabled", true);;
24358
24359
24360        if (i <= lineCountDynamic)
24361            $('#device_linerow_' + a[i]).show();
24362    }
24363
24364    //log('inventoryMacDomainChange');
24365    try {
24366        $.getJSON('/portal/phones/getDevices/' + domain, function (data) {
24367            if (data == null)
24368                return;
24369            log(data);
24370
24371
24372            var choices = [];
24373
24374            $.each(data, function (key, val) {
24375                choices.push({id: key, value: val})
24376
24377            });
24378
24379            for (var i = 0; i < a.length; i++) {
24380                var id = "#line" + a[i];
24381                $(id).autocomplete({
24382                    autoFocus: true,
24383                    source: function (request, response) {
24384                        var results = $.ui.autocomplete.filter(choices, request.term);
24385                        if (!results.length) {
24386                            $(id).validationEngine("showPrompt", _("* No matches found!"), "red", "bottomLeft", true);
24387                        } else {
24388                            $(id).validationEngine("hidePrompt");
24389                        }
24390                        response(results);
24391                    }
24392
24393
24394                });
24395                $(id).removeAttr("disabled");
24396
24397            }
24398
24399
24400        });
24401    } catch (e) {
24402    }
24403
24404
24405}
24406
24407function dayOfWeekCheck() {
24408    var inError = false;
24409    if ($('#TimeframeSelectOption2').is(":checked") && !$('#TimeframeSelectOption3').is(":checked")) {
24410        var fields = $(".slider_checkbox").serializeArray();
24411        if (fields.length == 0) {
24412            inError = true;
24413        }
24414    }
24415    if (inError) {
24416        $("input[type=submit]").prop("disabled", true);;
24417    } else
24418        $("input[type=submit]").removeAttr("disabled");
24419
24420}
24421
24422function cleanId(value) {
24423    //log ("cleanId");
24424    //log (value);
24425    if (typeof value != 'undefined')
24426        var val = value.replace(/\W/g, '-');
24427    else
24428        return "";
24429    //log(val);
24430    return val;
24431
24432}
24433
24434$(function () {
24435    addAutoCleanFunction();
24436});
24437
24438function addAutoCleanFunction() {
24439    $(".autoclean").change(function () {
24440        let x = removeSpecials($(this).val());
24441        $(this).val(x);
24442    });
24443    $(".autotrim").change(function () {
24444        let x = $(this).val().trim();
24445        $(this).val(x);
24446    });
24447}
24448
24449function removeSpecials(str) {
24450    var lower = str.toLowerCase();
24451    var upper = str.toUpperCase();
24452
24453    var res = "";
24454    for (var i = 0; i < lower.length; ++i) {
24455        if (lower[i] != upper[i] || '0123456789'.indexOf(lower[i]) !== -1)
24456            res += str[i];
24457    }
24458    return res;
24459
24460
24461    function addIEsupport() {
24462        if (!jQuery.support.cors && window.XDomainRequest) {
24463            var httpRegEx = /^https?:\/\//i;
24464            var getOrPostRegEx = /^get|post$/i;
24465            var sameSchemeRegEx = new RegExp('^' + location.protocol, 'i');
24466            var xmlRegEx = /\/xml/i;
24467
24468            // ajaxTransport exists in jQuery 1.5+
24469            jQuery.ajaxTransport('xml json', function (options, userOptions, jqXHR) {
24470                // XDomainRequests must be: asynchronous, GET or POST methods, HTTP or HTTPS protocol, and same scheme as calling page
24471
24472                var output = '';
24473                for (property in options) {
24474                    output += property + ': ' + options[property] + '; ';
24475                }
24476                //log(output);
24477                output = '';
24478                for (property in userOptions) {
24479                    output += property + ': ' + userOptions[property] + '; ';
24480                }
24481                //log(output);
24482                output = '';
24483                for (property in jqXHR) {
24484                    output += property + ': ' + jqXHR[property] + '; ';
24485                }
24486                //log(output);
24487
24488                if (options.crossDomain)
24489                    log("options.crossDomain");
24490                if (options.async)
24491                    log("options.async");
24492                if (getOrPostRegEx.test(options.type))
24493                    log("getOrPostRegEx.test(options.type)");
24494                if (httpRegEx.test(userOptions.url))
24495                    log("httpRegEx.test(userOptions.url)");
24496                if (sameSchemeRegEx.test(userOptions.url))
24497                    log("sameSchemeRegEx.test(userOptions.url)");
24498
24499
24500                // && sameSchemeRegEx.test(userOptions.url)
24501
24502                if (options.crossDomain && options.async && getOrPostRegEx.test(options.type) && httpRegEx.test(userOptions.url)) {
24503                    //log("ok");
24504                    var xdr = null;
24505                    var userType = (userOptions.dataType || '').toLowerCase();
24506                    log("userType=" + userType);
24507                    return {
24508                        send: function (headers, complete) {
24509                            xdr = new XDomainRequest();
24510                            if (/^\d+$/.test(userOptions.timeout)) {
24511                                xdr.timeout = userOptions.timeout;
24512                                log("xdr.timeout=" + xdr.timeout);
24513                            }
24514                            xdr.ontimeout = function () {
24515                                complete(90000, 'timeout');
24516                            };
24517                            xdr.onload = function () {
24518                                var allResponseHeaders = 'Content-Length: ' + xdr.responseText.length + '\r\nContent-Type: ' + xdr.contentType;
24519                                log("allResponseHeaders" + allResponseHeaders);
24520                                var status = {
24521                                    code: 200,
24522                                    message: 'success'
24523                                };
24524                                var responses = {
24525                                    text: xdr.responseText
24526                                };
24527                                /*
24528                             if (userType === 'html') {
24529                            responses.html = xdr.responseText;
24530                            } else
24531                                */
24532                                try {
24533                                    if (userType === 'json') {
24534                                        log("xdr.timeout=" + xdr.timeout);
24535                                        try {
24536                                            responses.json = JSON.parse(xdr.responseText);
24537                                            output = '';
24538                                            for (property in responses.json) {
24539                                                output += property + ': ' + responses.json[property] + '; ';
24540                                            }
24541                                            log("responses.json=" + output);
24542                                        } catch (e) {
24543                                            log("status.message=" + 'parseerror');
24544                                            status.code = 500;
24545                                            status.message = 'parseerror';
24546                                            //throw 'Invalid JSON: ' + xdr.responseText;
24547                                        }
24548                                    }
24549                                    /* else if ((userType === 'xml') || ((userType !== 'text') && xmlRegEx.test(xdr.contentType))) {
24550                                    var doc = new ActiveXObject('Microsoft.XMLDOM');
24551                                    doc.async = false;
24552                                    try {
24553                                        doc.loadXML(xdr.responseText);
24554                                    } catch(e) {
24555                                        doc = undefined;
24556                                    }
24557                                    if (!doc || !doc.documentElement || doc.getElementsByTagName('parsererror').length) {
24558                                        status.code = 500;
24559                                        status.message = 'parseerror';
24560                                        throw 'Invalid XML: ' + xdr.responseText;
24561                                    }
24562                                    responses.xml = doc;
24563                                }
24564                                */
24565                                } catch (parseMessage) {
24566                                    log("catch.parseMessage=" + parseMessage);
24567                                    throw parseMessage;
24568                                } finally {
24569                                    complete(status.code, status.message, responses, allResponseHeaders);
24570                                }
24571                            };
24572                            xdr.onerror = function () {
24573                                log("xdr.responseText" + xdr.responseText);
24574                                complete(500, 'error', {
24575                                    text: xdr.responseText
24576                                });
24577
24578                            };
24579                            xdr.open(options.type, options.url);
24580                            //xdr.send(userOptions.data);
24581                            xdr.send();
24582                        },
24583                        abort: function () {
24584                            if (xdr) {
24585                                xdr.abort();
24586                            }
24587                        }
24588                    };
24589                } else
24590                    log("failed check");
24591            });
24592        }
24593    }
24594
24595    var BrowserDetect = {
24596        init: function () {
24597            this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
24598            this.version = this.searchVersion(navigator.userAgent)
24599                || this.searchVersion(navigator.appVersion)
24600                || "an unknown version";
24601            this.OS = this.searchString(this.dataOS) || "an unknown OS";
24602        },
24603        searchString: function (data) {
24604            for (var i = 0; i < data.length; i++) {
24605                var dataString = data[i].string;
24606                var dataProp = data[i].prop;
24607                this.versionSearchString = data[i].versionSearch || data[i].identity;
24608                if (dataString) {
24609                    if (dataString.indexOf(data[i].subString) != -1)
24610                        return data[i].identity;
24611                } else if (dataProp)
24612                    return data[i].identity;
24613            }
24614        },
24615        searchVersion: function (dataString) {
24616            var index = dataString.indexOf(this.versionSearchString);
24617            if (index == -1) return;
24618            return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
24619        },
24620        dataBrowser: [
24621            {
24622                string: navigator.userAgent,
24623                subString: "Chrome",
24624                identity: "Chrome"
24625            },
24626            {
24627                string: navigator.userAgent,
24628                subString: "OmniWeb",
24629                versionSearch: "OmniWeb/",
24630                identity: "OmniWeb"
24631            },
24632            {
24633                string: navigator.vendor,
24634                subString: "Apple",
24635                identity: "Safari",
24636                versionSearch: "Version"
24637            },
24638            {
24639                prop: window.opera,
24640                identity: "Opera",
24641                versionSearch: "Version"
24642            },
24643            {
24644                string: navigator.vendor,
24645                subString: "iCab",
24646                identity: "iCab"
24647            },
24648            {
24649                string: navigator.vendor,
24650                subString: "KDE",
24651                identity: "Konqueror"
24652            },
24653            {
24654                string: navigator.userAgent,
24655                subString: "Firefox",
24656                identity: "Firefox"
24657            },
24658            {
24659                string: navigator.vendor,
24660                subString: "Camino",
24661                identity: "Camino"
24662            },
24663            {       // for newer Netscapes (6+)
24664                string: navigator.userAgent,
24665                subString: "Netscape",
24666                identity: "Netscape"
24667            },
24668            {
24669                string: navigator.userAgent,
24670                subString: "MSIE",
24671                identity: "Explorer",
24672                versionSearch: "MSIE"
24673            },
24674            {
24675                string: navigator.userAgent,
24676                subString: "Gecko",
24677                identity: "Mozilla",
24678                versionSearch: "rv"
24679            },
24680            {       // for older Netscapes (4-)
24681                string: navigator.userAgent,
24682                subString: "Mozilla",
24683                identity: "Netscape",
24684                versionSearch: "Mozilla"
24685            }
24686        ],
24687        dataOS: [
24688            {
24689                string: navigator.platform,
24690                subString: "Win",
24691                identity: "Windows"
24692            },
24693            {
24694                string: navigator.platform,
24695                subString: "Mac",
24696                identity: "Mac"
24697            },
24698            {
24699                string: navigator.userAgent,
24700                subString: "iPhone",
24701                identity: "iPhone/iPod"
24702            },
24703            {
24704                string: navigator.platform,
24705                subString: "Linux",
24706                identity: "Linux"
24707            }
24708        ]
24709
24710    };
24711}
24712
24713function selectLanguages(containerId, selectId, languages, selected) {
24714    var options = [];
24715    for (var i = 0; i < languages.length; i += 1) {
24716        // todo selected based on users lang
24717        var optionName = languages[i].name + ' ' + '(' + languages[i].country + ')';
24718        if (i === 0 && !selected) {
24719            options.push('<option value="' + languages[i].id + '" selected>' + optionName + '</option>');
24720        } else if (selected === languages[i].id) {
24721            options.push('<option value="' + languages[i].id + '" selected>' + optionName + '</option>');
24722        } else {
24723            options.push('<option value="' + languages[i].id + '">' + optionName + '</option>');
24724        }
24725    }
24726
24727    var elem = $('#' + selectId);
24728    elem.empty();
24729    elem.append(options.join(''));
24730    if (options.length === 1) { $('#' + containerId).hide(); }
24731}
24732
24733function voiceMultipleVendors(voices) {
24734    return [...new Set(voices.map((item) => item.type))].length > 1;
24735}
24736
24737function getSSMLDocumentLink(type) {
24738    if (type === 'google') {
24739        return '<a href="https://cloud.google.com/text-to-speech/docs/ssml" target="_blank">' + _('Read more') + '</a>';
24740    } else if (type === 'polly') {
24741        return '<a href="https://docs.aws.amazon.com/polly/latest/dg/ssml.html" target="_blank">' + _('Read more') + '</a>';
24742    } else if (type === 'azure') {
24743        return '<a href="https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-synthesis-markup-voice" target="_blank">' + _('Read more') + '</a>';
24744    } else if (type === 'watson') {
24745        return '<a href="https://www.ibm.com/docs/en/wvs/6.1.1?topic=610-text-speech-ssml-programming-guide" target="_blank">' + _('Read more') + '</a>';
24746    }
24747
24748    return '';
24749}
24750
24751function ssmlSupportMessage(voice) {
24752    $('#ssml-support').html('<div style="padding-top:4px">' + _('SSML supported') + ' ' + getSSMLDocumentLink(voice.type) + '</div>');
24753}
24754
24755function clearSSMLParseError() {
24756    $('#playing-error').html('');
24757}
24758
24759function ssmlDisplayErrorMessage(message, line, col) {
24760    let msg = message;
24761    if (line || col) {
24762        msg = _('Syntax error on line') + ' ' + line + ' ' + _('column') + ' ' + col
24763    }
24764    $('#playing-error').html('<div style="padding-top:4px">' + msg + '</div>');
24765}
24766
24767function getVoice(voices, voiceId) {
24768    if (voices) {
24769        for (let i = 0; i < voices.length; i += 1) {
24770            if (voiceId === voices[i].id) {
24771                return voices[i];
24772            }
24773        }
24774    }
24775
24776    return undefined;
24777}
24778
24779function selectVoices(selectId, voices, selected) {
24780    const options = [];
24781    const multipleVendors = voiceMultipleVendors(voices);
24782
24783    for (let i = 0; i < voices.length; i += 1) {
24784        let str = '';
24785        if (multipleVendors) {
24786            str = _(voices[i].type[0].toUpperCase() + voices[i].type.substring(1));
24787        }
24788
24789        if (str.length) {
24790            str = ' (' + str + ')';
24791        }
24792
24793        if (i === 0 && !selected) {
24794            options.push('<option value="' + voices[i].id + '" selected>' + voices[i].name + str + '</option>');
24795        } else if (selected === voices[i].id) {
24796            options.push('<option value="' + voices[i].id + '" selected>' + voices[i].name + str + '</option>');
24797        } else {
24798            options.push('<option value="' + voices[i].id + '">' + voices[i].name + str + '</option>');
24799        }
24800    }
24801
24802    var elem = $('#' + selectId);
24803    elem.empty();
24804    elem.append(options.join(''));
24805}
24806
24807function lookupCall(recording, mycallback) {
24808    let processedRows = new Set();
24809    let pendingPromises = [];
24810
24811    $.getJSON(recording['url']).done(function(data) {
24812        mycallback();
24813
24814        $.each(data, function (cid, result) {
24815            $('tr[recindex]').each(function () {
24816                const rowElement = $(this);
24817                const rowId = rowElement.data("orig-id");                
24818                if (typeof rowElement.data("state") == 'undefined')
24819                    rowElement.data("state", "unknown");
24820
24821                var newhost = server_name;
24822
24823                if (typeof result.geo_id == 'undefined') {
24824                    result.geo_id = "n/a";
24825                }
24826
24827                // get number of columns by counting td children
24828                var numCols = rowElement.find('td').length;
24829                
24830                const orig = rowElement.data("orig-id");
24831                const term = rowElement.data("term-id");
24832                const jobId = rowElement.data("job-id");
24833                
24834                if (cid == orig || cid == term || result.geo_id == term || result.geo_id == orig) {
24835                    processedRows.add(rowId);
24836                    var audioTag = '<audio id="audio-' + orig + '" ' +
24837                        'data-orig-id="' + orig + '"  data-term-id="' + term + '"' +
24838                        'controls class="cdraudio" preload="'+PORTAL_CALLHISTORY_RECORDING_PRELOAD+'" >';
24839                    if (result.status.toLowerCase() === "converted" || result.status.toLowerCase() === "archived") {
24840                        if (rowElement.data("state") !== "available") {
24841                            console.log('available');
24842                            var parser = document.createElement('a');
24843                            parser.href = result.url;
24844                            
24845                            if (typeof rowElement.attr("recDomain") != 'undefined' && rowElement.attr("recDomain") !== "") {
24846                                newhost = parser.protocol + "//" + rowElement.attr("recDomain") + parser.pathname + parser.search;
24847                            } else {
24848                                newhost = result.url.replace("/localhost", "/" + newhost);
24849
24850                            }
24851                            if (rowElement.find('.listen.disabled.statusonly').length) {
24852                                rowElement.find('.listen.disabled.statusonly').replaceWith('<a class="listen helpsy statusonly" title="'+ _('Recording Available') +"." + _('Playback Disabled')+'"></a>');
24853                            } else {
24854                                const thisElement = rowElement;
24855                                if (jobId && recording['jobId'] && String(jobId) === String(recording['jobId'])) {
24856                                    var user = sub_user;
24857                                    var currDomain = sub_domain;
24858                                    const voicePromise = NetsapiensVoice.authenticate(user, currDomain).then(function() {
24859                                        const recordingDate = result.time_open.substring(0,7).replace('-', '');
24860                                        return NetsapiensVoice.getTranscriptionJob({jobId: recording['jobId'], recordingDate: recordingDate, user, domain: currDomain }).then(function(transcriptionJob) {
24861                                            console.log('data', transcriptionJob, jobId);
24862                                            if (transcriptionJob && transcriptionJob.status === 'finished') {
24863                                                let listenDisabled = thisElement.find('.listen.disabled');
24864                                                if (!listenDisabled.hasClass('block-recording')) {
24865                                                    listenDisabled.replaceWith('<a class="listen open-transcription helpsy" title="'+_('Listen')+'" onclick="loadModal(\'#transcriptions\', \''+rootPath+'/callhistory/transcription/' + transcriptionJob.id + "/" + recordingDate + "/" + encodeURIComponent(transcriptionJob.services) + "/" + orig + "/" + term + '\')" data-toggle="modal" data-target="#transcriptions" data-backdrop="static" />');
24866                                                    let positiveItem = thisElement.find('.table-sentiment-positive').not('.closing-sentiment');
24867                                                    positiveItem.attr('onclick', 'loadModal(\'#transcriptions\', \''+rootPath+'/callhistory/transcription/' + transcriptionJob.id + "/" + recordingDate + "/" + encodeURIComponent(transcriptionJob.services) + "/" + orig + "/" + term + "/positive" + '\')')
24868                                                    positiveItem.attr('data-toggle', 'modal');
24869                                                    positiveItem.attr('data-target', '#transcriptions');
24870                                                    positiveItem.attr('data-backdrop', 'static');
24871                                                    positiveItem.css('cursor', 'pointer');
24872                                                    let neutralItem = thisElement.find('.table-sentiment-neutral').not('.closing-sentiment');
24873                                                    neutralItem.attr('onclick', 'loadModal(\'#transcriptions\', \''+rootPath+'/callhistory/transcription/' + transcriptionJob.id + "/" + recordingDate + "/" + encodeURIComponent(transcriptionJob.services) + "/" + orig + "/" + term + "/neutral" + '\')')
24874                                                    neutralItem.attr('data-toggle', 'modal');
24875                                                    neutralItem.attr('data-target', '#transcriptions');
24876                                                    neutralItem.attr('data-backdrop', 'static');
24877                                                    neutralItem.css('cursor', 'pointer');
24878                                                    let negativeItem = thisElement.find('.table-sentiment-negative').not('.closing-sentiment');
24879                                                    negativeItem.attr('onclick', 'loadModal(\'#transcriptions\', \''+rootPath+'/callhistory/transcription/' + transcriptionJob.id + "/" + recordingDate + "/" + encodeURIComponent(transcriptionJob.services) + "/" + orig + "/" + term + "/negative" + '\')')
24880                                                    negativeItem.attr('data-toggle', 'modal');
24881                                                    negativeItem.attr('data-target', '#transcriptions');
24882                                                    negativeItem.attr('data-backdrop', 'static');
24883                                                    negativeItem.css('cursor', 'pointer');
24884
24885                                                    let closingBadge = thisElement.find('.closing-sentiment');
24886                                                    closingBadge.attr('onclick', 'loadModal(\'#transcriptions\', \''+rootPath+'/callhistory/transcription/' + transcriptionJob.id + "/" + recordingDate + "/" + encodeURIComponent(transcriptionJob.services) + "/" + orig + "/" + term + "/closing" + '\')')
24887                                                    closingBadge.attr('data-toggle', 'modal');
24888                                                    closingBadge.attr('data-target', '#transcriptions');
24889                                                    closingBadge.attr('data-backdrop', 'static');
24890                                                    closingBadge.css('cursor', 'pointer');
24891                                                }
24892                                                initTooltips();
24893                                            } else {
24894                                                let listenDisabled = thisElement.find('.listen.disabled');
24895                                                if (!listenDisabled.hasClass('block-recording')) {
24896                                                    listenDisabled.replaceWith('<a class="listen helpsy" title="'+_('Listen')+'"></a>');
24897                                                    initRecordingBtns(thisElement,numCols,audioTag,newhost);
24898                                                }
24899                                            }
24900                                            let dlAudioDisabled = thisElement.find('.download-audio.disabled');
24901                                            if (!dlAudioDisabled.hasClass('block-recording')) {
24902                                                dlAudioDisabled.replaceWith('<a class="download-audio helpsy" title="'+_('Download')+'" href="' + result.url.replace("/localhost", server_name) + '" ></a>');
24903                                            }
24904
24905
24906
24907                                            // let dlAudioDisabled = thisElement.find('.download-audio.disabled');
24908                                            // if (!dlAudioDisabled.hasClass('block-recording')) {
24909                                            //     if (transcriptionJob && transcriptionJob.status === 'finished') {
24910                                            //         thisElement.find('.listen.disabled').replaceWith('<a class="listen open-transcription helpsy" onclick="loadM
24910odal(\'#transcriptions\', \''+rootPath+'/callhistory/transcription/' + transcriptionJob.id + "/" + recordingDate + "/" + encodeURIComponent(transcriptionJob.services) + "/" + orig + "/" + term + '\')" data-toggle="modal" data-target="#transcriptions" data-backdrop="static" />');
24911                                            //       } else {
24912                                            //         thisElement.find('.listen.disabled').replaceWith('<a class="listen helpsy" title="'+_('Listen')+'"></a>');
24913                                            //         initRecordingBtns(thisElement,numCols,audioTag,newhost);
24914                                            //       }
24915                                            //       thisElement.find('.download-audio.disabled').replaceWith('<a class="download-audio helpsy" title="'+_('Download')+'" href="' + result.url.replace("/localhost", server_name) + '" ></a>');
24916                                            // }
24917                                        }).catch(function(err){
24918                                            console.log(err);
24919                                            initRecordingBtns(thisElement,numCols,audioTag,newhost);
24920                                        });
24921                                    }).catch(function(err){
24922                                        console.log(err);
24923                                        initRecordingBtns(thisElement,numCols,audioTag,newhost);
24924                                    });
24925                                    pendingPromises.push(voicePromise);
24926                                } else {
24927                                    let listenDisabled = thisElement.find('.listen.disabled');
24928                                    if (!listenDisabled.hasClass('block-recording')) {
24929                                        listenDisabled.replaceWith('<a class="listen helpsy" title="'+_('Listen')+'"></a>');
24930                                        initRecordingBtns(thisElement,numCols,audioTag,newhost);
24931                                    }
24932
24933                                    let dlAudioDisabled = thisElement.find('.download-audio.disabled');
24934                                    if (!dlAudioDisabled.hasClass('block-recording')) {
24935                                        dlAudioDisabled.replaceWith('<a class="download-audio helpsy" title="'+_('Download')+'" href="' + result.url.replace("/localhost", server_name) + '" ></a>');
24936                                    }
24937                                }
24938                            }
24939                            rowElement.data("state", "available");
24940                        } else {
24941                            if (!$(this).find('.listen.disabled.statusonly').length) {
24942                                if (preferMP4)
24943                                    $(this).find('cdraudio').append('<td class="cdraudio" colspan="' + numCols + '">' +
24944                                      audioTag +
24945                                      '<source src="' + newhost + '&convert=aac" type="audio/mp4">' +
24946                                      '<source src="' + newhost + '&convert=wav16" type="audio/wav">' +
24947                                      '</audio>');
24948                                else
24949                                    $(this).find('cdraudio').append('<td class="cdraudio" colspan="' + numCols + '">' +
24950                                      audioTag +
24951                                      '<source src="' + newhost + '&convert=wav16" type="audio/wav">' +
24952                                      '<source src="' + newhost + '&convert=aac" type="audio/mp4">' +
24953                                      '</audio>');
24954                            }
24955                        }
24956                    } else if (result.status.toLowerCase() === "unconverted") {
24957                        rowElement.data("pendingConversion", true);
24958                        rowElement.find('.listen.disabled').replaceWith('<a class="listen disabled helpsy" title="'+_('Looking up')+'"></a>');
24959                        rowElement.find('.download-audio.disabled').replaceWith('<a class="download-audio disabled helpsy" title="'+_('Looking up')+'"></a>');
24960                    } else {
24961                        rowElement.find('.listen.disabled').replaceWith('<a class="listen disabled helpsy" title="'+_('No Recording')+'"></a>');
24962                        rowElement.find('.download-audio.disabled').replaceWith('<a class="download-audio disabled helpsy" title="'+_('No Recording')+'"></a>');
24963                    }
24964                }
24965            });
24966        });
24967        
24968        Promise.all(pendingPromises.map(p =>
24968 p.catch(e => e))).then(function() {
24969            $('tr[recindex]').each(function() {
24970                const rowId = $(this).data("orig-id");
24971                if (processedRows.has(rowId) || $(this).data("pendingConversion") === true) {
24972                    return;
24973                }
24974                let listenButtons = $(this).find('.listen.disabled');
24975                let downloadButtons = $(this).find('.download-audio.disabled');
24976
24977                listenButtons.each(function() {
24978                    let title = $(this).attr('title');
24979                    if (title === _('Looking up') || !title || title === '') {
24980                        $(this).replaceWith('<a class="listen disabled helpsy" title="'+_('No Recording')+'"></a>');
24981                    }
24982                });
24983                
24984                downloadButtons.each(function() {
24985                    let title = $(this).attr('title');
24986                    if (title === _('Looking up') || !title || title === '') {
24987                        $(this).replaceWith('<a class="download-audio disabled helpsy" title="'+_('No Recording')+'"></a>');
24988                    }
24989                });
24990            });
24991            initTooltips();
24992        });
24993    })
24994    .fail(function() {
24995        mycallback();
24996        $('tr[recindex]').each(function() {
24997            $(this).find('.listen.disabled').replaceWith('<a class="listen disabled helpsy" title="'+_('No Recording')+'"></a>');
24998            $(this).find('.download-audio.disabled').replaceWith('<a class="download-audio disabled helpsy" title="'+_('No Recording')+'"></a>');
24999        });
25000        initTooltips();
25001    });
25002}
25003
25004function initRecordingBtns(thisElement,numCols,audioTag,newhost){
25005  $('.tooltip').hide();
25006  let listenDisabled = thisElement.find('.listen.disabled');
25007  if (!listenDisabled.hasClass('block-recording')) {
25008    listenDisabled.replaceWith('<a class="listen helpsy" title="'+_('Listen')+'"></a>');
25009  }
25010  let dlAudioDisabled = thisElement.find('.download-audio.disabled');
25011  if (!dlAudioDisabled.hasClass('block-recording')) {
25012    dlAudioDisabled.replaceWith('<a class="download-audio helpsy" title="'+_('Download')+'" href="' + newhost + '" ></a>');
25013  }
25014  let dlAudioHidden = thisElement.find('.download-audio.hide');
25015  if (!dlAudioHidden.hasClass('block-recording')) {
25016      dlAudioHidden.replaceWith('<a class="download-audio helpsy" title="'+_('Download')+'" href="' + newhost + '" ></a>');
25017  }
25018
25019  if (preferMP4) {
25020    thisElement.after('<tr class="audioplayerrow cdraudio hide"><td class="cdraudio" colspan="' + numCols + '">' +
25021      audioTag +
25022      '<source src="' + newhost + '&convert=aac" type="audio/aac">' +
25023      '<source src="' + newhost + '&convert=aac" type="audio/mp4">' +
25024      '<source src="' + newhost + '&convert=wav16" type="audio/wav">' +
25025      '</audio>');
25026  } else {
25027    thisElement.after('<tr class="audioplayerrow cdraudio hide"><td class="cdraudio" colspan="' + numCols + '">' +
25028      audioTag +
25029      '<source src="' + newhost + '&convert=wav16" type="audio/wav">' +
25030      '<source src="' + newhost + '&convert=aac" type="audio/aac">' +
25031      '<source src="' + newhost + '&convert=aac" type="audio/mp4">' +
25032      '</audio>');
25033  }
25034
25035  setTimeout(initTooltips,100);
25036}
25037
25038
25039function calculateWeekdayInfo(dateString) {
25040    var date = parseTimeframeDate(dateString, userDateformat);
25041
25042    // var date = new Date(dateString);
25043    var dayOfWeek = date.toLocaleString('en-US', { weekday: 'long' });
25044    var dayOfMonth = date.getDate();
25045    var ordinalNumber = Math.ceil(dayOfMonth / 7);
25046    var isFirstOrLast = dayOfMonth <= 7 ? 'first' : '';
25047
25048    // Check for last occurrence of the weekday
25049    var lastDayOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0);
25050    if (dayOfMonth + 7 > lastDayOfMonth.getDate()) {
25051        isFirstOrLast = 'last';
25052    }
25053
25054    var ordinalString = getOrdinalString(ordinalNumber);
25055
25056    return {
25057        dayOfWeek: dayOfWeek,
25058        ordinalNumber: ordinalNumber,
25059        ordinalString: ordinalString,
25060        isFirstOrLast: isFirstOrLast
25061    };
25062}
25063
25064function isLastDayOfMonth(dateString, userDateformat) {
25065    var date = parseTimeframeDate(dateString, userDateformat);
25066
25067    // Determine the last day of the month for the given date
25068    var lastDayOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0);
25069
25070    // Compare the date to the last day of the month
25071    return date.getDate() === lastDayOfMonth.getDate();
25072}
25073
25074// Function to parse the date according to the user's date format
25075function parseTimeframeDate(startDate, userDateFormat) {
25076    var day, month, year;
25077    var parts = startDate.split('/');
25078
25079    switch (userDateFormat) {
25080        case "dd/mm/yy":
25081            day = parseInt(parts[0], 10);
25082            month = parseInt(parts[1], 10) - 1; // Month is 0-indexed in JavaScript Date
25083            year = parseInt(parts[2], 10);
25084            break;
25085        case "mm/dd/yy":
25086            month = parseInt(parts[0], 10) - 1;
25087            day = parseInt(parts[1], 10);
25088            year = parseInt(parts[2], 10);
25089            break;
25090        case "yy/mm/dd":
25091            year = parseInt(parts[0], 10);
25092            month = parseInt(parts[1], 10) - 1;
25093            day = parseInt(parts[2], 10);
25094            break;
25095        // Add more cases for different formats if needed
25096    }
25097
25098    return new Date(year, month, day);
25099}
25100
25101// Helper function to format date and get day of the week
25102function getDayOfWeekHoliday(date) {
25103    const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
25104    return days[date.getDay()];
25105}
25106
25107// Adjusted holiday work function to include day of the week in the readableDate
25108function formatHoliday(holiday, userDateformat = 'mm/dd/yy') {
25109    // console.log('this is formatHoliday: ', holiday);
25110
25111    if (holiday.name === 'Leap Day') {
25112        holiday.date = getNextLeapYearDate();
25113    }
25114
25115    const year = holiday.date.datetime.year.toString();
25116    const month = String(holiday.date.datetime.month).padStart(2, '0'); // Adds leading zero if needed
25117    const day = String(holiday.date.datetime.day).padStart(2, '0'); // Adds leading zero if needed
25118
25119    // Create a Date object to find the day of the week
25120    const date = new Date(year, month - 1, day);
25121    const dayOfWeek = getDayOfWeekHoliday(date);
25122
25123    // create api date YYYYMMDD
25124    const apiDate = `${year}${month}${day}`;
25125
25126    // Include day of week in the formatted date
25127    const readableDate = `${dayOfWeek}, ` + formatHolidayByUserPreference(year, month, day, userDateformat, dayOfWeek);
25128
25129    return {
25130        uuid: holiday.uuid,
25131        name: holiday.name,
25132        countryId: holiday.country,
25133        locations: holiday.locations,
25134        date: apiDate, // Use the ISO formatted date for internal purposes
25135        apiDate: apiDate,
25136        readableDate: readableDate // User-preferred formatted date with day of week
25137    };
25138}
25139
25140function getNextLeapYearDate() {
25141    const currentYear = new Date().getFullYear();
25142    let year = currentYear;
25143
25144    // Function to check if a year is a leap year
25145    function isLeapYear(year) {
25146        return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
25147    }
25148
25149    // Check if the current year is a leap year and today's date is before or on February 29
25150    const today = new Date();
25151    if (isLeapYear(year) && (today.getMonth() < 1 || (today.getMonth() === 1 && today.getDate() <= 29))) {
25152        // Current year is a leap year and it's before or on February 29
25153    } else {
25154        // Find the next leap year
25155        year++;
25156        while (!isLeapYear(year)) {
25157            year++;
25158        }
25159    }
25160
25161    return {
25162        "iso": `${year}-02-29`,
25163        "datetime": {
25164            "year": year,
25165            "month": 2,
25166            "day": 29
25167        }
25168    };
25169}
25170
25171function formatHolidayByUserPreference(year, month, day, userFormat) {
25172    let formattedDate = userFormat
25173        .replace(/yy/g, year) // For 'yy' format, get last two digits of year
25174        .replace(/mm/g, month)
25175        .replace(/dd/g, day);
25176
25177    return formattedDate;
25178}
25179
25180function convertTimeToMinutes(timeStr, userTimeDelimiter = ':') {
25181    // Escape the delimiter in case it's a special character in regex (e.g., '.')
25182    const escapedDelimiter = userTimeDelimiter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
25183
25184    // Construct regex patterns to match both 24-hour and 12-hour formats
25185    const regex24HourPattern = new RegExp(`(\\d{1,2})${escapedDelimiter}(\\d{2})`);
25186    const regex12HourPattern = new RegExp(`(\\d{1,2})${escapedDelimiter}(\\d{2})\\s?(am|pm)?`, 'i');
25187
25188    // First try matching 12-hour format
25189    let parts = timeStr.match(regex12HourPattern);
25190
25191    if (!parts) {
25192        // No AM/PM marker found; try matching 24-hour format
25193        parts = timeStr.match(regex24HourPattern);
25194        if (!parts) return null; // or handle invalid format if both matches fail
25195    }
25196
25197    let hours = parseInt(parts[1], 10);
25198    let minutes = parseInt(parts[2], 10);
25199
25200    // Adjust hours for AM/PM if present
25201    if (parts[3]) { // Check if AM/PM part exists
25202        let amPm = parts[3].toLowerCase();
25203        if (amPm === 'pm' && hours < 12) hours += 12;
25204        if (amPm === 'am' && hours == 12) hours = 0;
25205    } else {
25206        // For 24-hour format, ensure hours fall within [0, 23]
25207        hours = hours % 24;
25208    }
25209
25210    return hours * 60 + minutes;
25211}
25212
25213/**
25214 * Validates a date string against a specific date format.
25215 * It checks for the correct placement and validity of the day, month, and year components within the date string.
25216 * It also performs logical date validation to ensure the date exists in the calendar (e.g., no February 30).
25217 *
25218 * @param {string} dateString - The date string to validate.
25219 * @param {string} dateFormat - The format of the date string (e.g., "mm/dd/yyyy").
25220 * @returns {boolean} - True if the date string is valid according to the dateFormat, false otherwise.
25221 */
25222function isValidDateInput(dateString, dateFormat) {
25223    let delimiter = /[^mdy]/.exec(dateFormat)[0];
25224    let theFormat = dateFormat.split(delimiter);
25225    let theDate = dateString.split(delimiter);
25226
25227    let day, month, year = false;
25228
25229    // Identify the format dynamically and validate component sizes
25230    for (let i = 0; i < theFormat.length; i++) {
25231        let component = theDate[i];
25232        let formatPart = theFormat[i];
25233
25234        // Check component length and value based on format part
25235        if (/m/.test(formatPart.toLowerCase())) {
25236            month = parseInt(component, 10);
25237            if (component.length > 2 || isNaN(month) || month < 1 || month > 12) return false;
25238        } else if (/d/.test(formatPart.toLowerCase())) {
25239            day = parseInt(component, 10);
25240            if (component.length > 2 || isNaN(day) || day < 1 || day > 31) return false;
25241        } else if (/y/.test(formatPart.toLowerCase())) {
25242            year = parseInt(component, 10);
25243            if (component.length !== 4 || isNaN(year)) return false;
25244        }
25245    }
25246
25247    // Logical date validation to catch invalid dates like February 30
25248    let date = new Date(year, month - 1, day);
25249    if (date.getFullYear() === year && date.getMonth() + 1 === month && date.getDate() === day) {
25250        return true;
25251    } else {
25252        return false;
25253    }
25254}
25255
25256�var timeOffset = 0;
25257
25258$(function() {
25259	if (typeof servertime != 'undefined')
25260		timeOffset = getSecDiff(servertime);
25261	//log("functions loaded");
25262	setInterval(durrationCounter, 1000);
25263});
25264
25265function sGetContactsData(type, domain, filter) {
25266
25267	if (typeof socket == 'undefined')
25268		return;
25269
25270	var options = {
25271		domain : domain,
25272		type : 'contacts',
25273		'bearer': localStorage.ns_t,
25274        application: 'portal'
25275	};
25276
25277	if (typeof filter != 'undefined' && filter != "" && filter != "*")
25278		options.filter = filter;
25279
25280	socket.emit('subscribe', options);
25281	//log("requested data options:");
25282	log(options);
25283
25284	subscriptions.push(options);
25285
25286	socket.on('contacts-domain', updateDomainUser);
25287	if (callbacks) callbacks.push({name:'contacts-domain', callback: updateDomainUser});
25288
25289
25290}
25291
25292function updateDomainUser(data) {
25293	var domain = data.domain.replace(".","-").replace(".","-").replace(".","-").replace(".","-");
25294	var cRow = data.user+"-"+domain;
25295	//var idRow ="[id="+data.user+"-"+domain+"-message"+"]"; //older and slower way?
25296	var idRow ="#"+data.user+"-"+domain+"-message"+"";
25297	var id =idRow +" .user-message";
25298	var contactId ="#message-"+cRow;
25299	//log(contactId);
25300	$(id).data("last_update", data.last_update);
25301	$(id).attr("last_update", data.last_update);
25302
25303	// Define uid from data
25304	var uid = data.user+'@'+data.domain;
25305	var status = data.portal_status;
25306	if (status!= null && status!="" && status!=" ")
25307		status = _(status);
25308
25309	/**
25310	 *  Set the status of the contact in the panel using uid attribute selector
25311	 *  Private function scoped to updateDomainUser
25312	 */
25313	function setStatus(uid, status) {
25314
25315		// Return immediately for no uid
25316		if(!uid || typeof uid === "undefined") { return; }
25317
25318		// List of possible status strings considered empty
25319		var empty = ['undefined', 'null', '', ' ', '&nbsp;'];
25320
25321		// Selectors based on current HTML markup / classes
25322		var row = document.querySelector('table#contacts-table [uid="' + uid + '"] tr.contact-row-msg');
25323
25324		// No message row available in markup, then create one
25325		if(!row || typeof row === 'undefined') {
25326			row = createMessageRow(uid);
25327		}
25328
25329		var contact = row.querySelector('.contact-status-msg');
25330
25331		// Toggle hide class - If status is not falsy or in empty array show the row
25332		if(status && empty.indexOf(status) === -1) {
25333			$(row).show();
25334		} else {
25335			$(row).hide();
25336		}
25337		contact.innerHTML = status;
25338
25339		//if contact update is self, re-load bigbutton
25340		if(uid ===  sub_user + '@' + sub_domain) {
25341			homegetStatusButtonNoFade();
25342		}
25343	}
25344
25345	/**
25346	 * Create row matching html markup from dock.ctp
25347	 * Private function scoped to updateDomainUser
25348	 */
25349	function createMessageRow(uid) {
25350		var row = document.createElement('tr');
25351		row.classList.add('contact-row-msg');
25352
25353		var td = document.createElement('td');
25354		row.appendChild(td);
25355
25356		var tdStatus = document.createElement('td');
25357		tdStatus.classList.add('contact-status-msg');
25358		row.appendChild(tdStatus);
25359
25360		var tbody = document.querySelector('table#contacts-table [uid="' + uid + '"] tbody');
25361		if (tbody && typeof tbody != 'undefined')
25362			tbody.appendChild(row);
25363
25364		return row;
25365	}
25366
25367	setStatus(uid, status);
25368
25369	//log ("x"+data.portal_status+"x");
25370	$(id).text(status);
25371	$(contactId).text(status);
25372	if (typeof status == 'undefined'|| status==null || status=="null" || status=="" ||status==" "|| status=="&nbsp;"|| status=="null")
25373	{
25374		$(idRow).hide();
25375		$(idRow).attr('style','display: none;');
25376		$(id).text("");
25377		$(id).hide();
25378
25379	}
25380	else
25381		$(idRow).show();
25382
25383	if ($('#agents-table').length >0)
25384		if (typeof processAgentTotals == 'function')
25385			processAgentTotals();
25386
25387	var contactId = $("#contact-"+data.user+"-"+domain);
25388	var contactRow = $(contactId).parent().parent();
25389	var availIndex;
25390
25391	//log(contactId.attr('id'));
25392	//log(contactId.attr('class'));
25393	$(contactId).removeClass('open closed inuse progressing alerting held inactive');
25394	$(contactId).addClass(data.presence);
25395
25396	//update status here for recents as well
25397	var contactRecentId = $(".presence-recent-"+data.user);
25398	if (contactRecentId.length > 0) {
25399		$(contactRecentId).removeClass('open closed inuse progressing alerting held inactive');
25400		$(contactRecentId).addClass(data.presence);
25401	}
25402
25403
25404	/* set availability index for sorting */
25405  availIndex = "a";
25406
25407  /* if user has no device registered */
25408  if (data.presence  == "inactive" || data.presence == "")
25409      availIndex = "b"
25410
25411	contactRow.attr('presence',data.presence);
25412	contactRow.data('availindex', availIndex);
25413	$("#user-"+data.aor_user).data('availindex', availIndex);
25414
25415
25416	// if (typeof resetTable != 'undefined')
25417	// 	resetTable();
25418	//log(typeof resetTable);
25419
25420	/* sort the contacts table after updating presence and availIndex */
25421	if (typeof NSContactSearch.receivedSocketUpdate == 'function')
25422		NSContactSearch.receivedSocketUpdate();
25423
25424}
25425
25426
25427
25428function incWaitCounter() {
25429	$('.wait_counter').each(
25430
25431	function() {
25432		var sec = $(this).attr('data-wait-sec');
25433
25434		if (sec != 0 || sec != "0") {
25435			sec = parseInt(sec) + 1;
25436			$(this).attr('data-wait-sec', '' + sec);
25437			$(this).text(getMMss(sec));
25438
25439		} else {
25440			$(this).text("-");
25441		}
25442
25443	});
25444
25445	setTimeout(incWaitCounter, 1000);
25446}
25447
25448�var timeOffset = 0;
25449
25450$(function() {
25451	if (typeof servertime != 'undefined')
25452		timeOffset = getSecDiff(servertime);
25453	//log("functions loaded");
25454	setInterval(durrationCounter, 1000);
25455});
25456
25457function sGetParticipantData(type, domain, filter) {
25458
25459	if (typeof socket == 'undefined')
25460		return;
25461	var options = {
25462		domain : domain,
25463		bridge : filter,
25464		type : 'participant',
25465		'bearer': localStorage.ns_t
25466	};
25467
25468	if (typeof filter != 'undefined' && filter != "" && filter != "*")
25469		options.filter = filter;
25470
25471	socket.emit('subscribe', options);
25472	log(options);
25473	subscriptions.push(options);
25474
25475	socket.on('participant', updateParticipant);
25476	if (callbacks) callbacks.push({name:'participant', callback:updateParticipant});
25477	
25478
25479}
25480
25481function updateParticipant( value) {
25482	log ("updateParticipant");
25483	log (value);
25484
25485	var homeTable = false;
25486var lite = false;
25487	if($("#participants-table").hasClass("home-participants-table")){
25488		homeTable = true;
25489		log("is it home-participants-table? " + homeTable);
25490	}
25491	if($("#participants-table").hasClass("lite")){
25492		lite = true;
25493	}
25494	var searchString = "#participants-table tr:gt(0)";
25495	console.log(value);
25496	var conference_match = value.conference_match;
25497	var participant_match = value.participant_match;
25498	var name = value.name;
25499	var id = conference_match + "_" + participant_match + "_" + name;
25500	var rId = value.conference_match + "_" + value.participant_match + "_" + value.name;
25501	var leader = '<span class="not-registered"></span>';
25502
25503	if (value.leader == 'leader')
25504		leader = '<span class="checkmark"></span>';
25505
25506	if (value.leader =='bridge-spoke' ||value.leader =='bridge-hub' || value.aor_user =='bridge')
25507		return;
25508
25509	if (value.remove != "yes") {
25510		var found = false;
25511
25512		var trTag = "";
25513		var html = "";
25514		trTag += "<tr gmt_start='" + value.time_begin + "' c_id='" + conference_match.replace("sip:","") + "' p_id='" + participant_match.replace("sip:","") + "' conference_match='" + conference_match + "' participant_match='" + participant_match + "' name='" + name + "' id='" + id+ "' >";
25515
25516		let liteName = value.name;
25517		let ext = value.aor_user.replace("vb","");
25518		if(ext.includes("guest_") || ext.lenth>=10)
25519			ext = "";
25520		if (ext)
25521			liteName += " ("+ext+")";
25522		const connectedBy = value.aor_user.includes("vb")?_("Web"):_("Phone");
25523
25524		if (lite)
25525		{
25526			html += td(liteName);
25527		}
25528		else {
25529			html += td(value.name);
25530			html += td(value.aor_user);
25531		}
25532
25533
25534
25535
25536		if(!homeTable){
25537
25538			if (!lite)
25539			{
25540
25541
25542				html += td(leader);
25543
25544				var counterclass ="hide";
25545				if(value.mode== 'record_name')
25546					html +=  '<td class="participant-mode"><span class="label capitalize">Recording Name</span></td>';
25547				else if(value.mode == 'moh')
25548					html +=  '<td class="participant-mode"><span class="label capitalize">Waiting</span></td>';
25549				else if(value.mode == 'muted')
25550				{
25551					html += '<td class="participant-mode"><span class="label label-important capitalize">'+value.mode+'</span></td>';
25552					counterclass = "nohide";
25553				}
25554				else if(value.mode == 'active')
25555				{
25556					html += '<td class="participant-mode"><span class="label label-success capitalize">'+value.mode+'</span></td>';
25557					counterclass = "nohide";
25558				}
25559				else if(value.mode == 'announcing')
25560					html += '<td class="participant-mode"><span class="label capitalize">Joining</span></td>';
25561				else
25562					html += '<td class="participant-mode"><span class="label capitalize">'+value.mode+'</span></td>';
25563				//<span class="label label-important">Muted</span>
25564				//html += td(value.time_begin);
25565			}
25566			else {
25567				html += td(connectedBy);
25568			}
25569
25570			html += td("<span gmt_start='" + value.time_begin + "' gmt_answer='" + value.time_begin + "' class='duration_counter "+counterclass+"' ></span>");
25571
25572			if (!lite)
25573			{
25574				html += '<td class="action-buttons">';
25575				if(value.mode == 'muted')
25576					html += '<a  class="listen helpsy mute-user" title="" onclick="unmute($(this));return false;" data-original-title="Un-Mute"></a>&nbsp;';
25577				else
25578					html += '<a  class="mute helpsy mute-user" title="" onclick="mute($(this));return false;" data-original-title="Mute"></a>&nbsp;';
25579				//html += '<a  class="audio helpsy " title="" onclick="unmute($(this));return false;" data-original-title="Un-Mute"></a>&nbsp;';
25580				html += '<a  class="delete helpsy mute-user" title="" onclick="disc($(this));return false;" data-original-title="Disconnect"></a></td>';
25581			}
25582
25583		}
25584		trTag += html;
25585		trTag += "</tr  >";
25586
25587
25588		var rows = $(searchString);
25589
25590		rows.each(function(index) {
25591			if (rows[index].id == rId) {
25592				// MODIFY
25593				log("MODIFY");
25594				if (value.mode != "inactive")
25595					$(this).show();
25596				//log($(this).find(".duration_counter"));
25597				//log('#'+rId+" .duration_counter");
25598				if (value.mode != "active" && value.mode != "muted")
25599					$(this).find(".duration_counter").hide();
25600				else
25601					$(this).find(".duration_counter").show();
25602
25603				$(this).html(html);
25604				found = true;
25605			}
25606		});
25607		if (!found) {
25608			// ADD
25609			log("ADD");
25610			$('#participants-table > tbody:last').append(trTag);
25611		}
25612
25613		//init tooltips on new html
25614		initTooltips();
25615
25616	} else {
25617		// DELETE
25618		var rows = $(searchString);
25619		rows.each(function(index) {
25620			if (rows[index].id == rId)
25621				$(this).remove();
25622		});
25623	}
25624
25625
25626	var rowCount = $(searchString).length;
25627
25628	if (rowCount>0)
25629		$('.nonecreated').hide();
25630	else
25631		$('.nonecreated').show();
25632
25633}
25634
25635�var timeOffset = 0;
25636var bigButtonHoldOff=false;
25637
25638$(function() {
25639	if (typeof servertime != 'undefined')
25640		timeOffset = getSecDiff(servertime);
25641	//log("functions loaded");
25642	setInterval(durrationCounter, 1000);
25643});
25644
25645function sGetQueueData(type, domain, filter) {
25646
25647	if (typeof socket == 'undefined'){
25648		log('sGetQueueData: typeof socket undefined');
25649		return;
25650	}
25651	var options = {
25652		domain : domain,
25653		type : 'queue',
25654		'bearer': localStorage.ns_t,
25655        application: 'portal'
25656	};
25657
25658	if (typeof filter != 'undefined' && filter != "" && filter != "*")
25659		options.filter = filter;
25660
25661	socket.emit('subscribe', options);
25662	log(options);
25663	subscriptions.push(options);
25664
25665	function newQueueData(data) {
25666
25667		if (type == "manager")
25668			updateQueue(data.user, data);
25669		else if (type == "agent")
25670			updateQueue(data.user, data);
25671
25672	}
25673	socket.on('queue', newQueueData);
25674	if (callbacks) callbacks.push({name:'queue', callback:newQueueData});
25675
25676}
25677
25678function sGetAgentData(type, domain, filter) {
25679
25680	if (typeof socket == 'undefined')
25681		return;
25682
25683	var options = {
25684		domain : domain,
25685		type : 'agent',
25686		'bearer': localStorage.ns_t,
25687        application: 'portal'
25688	};
25689
25690
25691	if (typeof filter != 'undefined' && filter !== "" && filter != "*" && filter.includes("@"))
25692		options.filter = filter;
25693	else if (typeof filter != 'undefined' && filter !== "" && filter != "*")
25694		options.filter = 'sip:'+filter+"@"+domain;
25695	socket.emit('subscribe', options);
25696	//log("requested data options:");
25697	log(options);
25698
25699	subscriptions.push(options);
25700
25701	function newAgentData(data) {
25702		//log("recieved data ");
25703		//log(data);
25704		updateAgent(data.device_aor, data.huntgroup_name, data);
25705
25706	}
25707
25708	function newAgentDeviceData(data){
25709		//log("recieved data ");
25710		//log(data);
25711		if (((typeof data.remove != 'undefined' && data.remove) || (typeof data.create != 'undefined' && data.create))  && typeof homegetPhones != 'undefined')
25712		{
25713			homegetPhones();
25714			return;
25715		}
25716
25717		updateAgentDevice(data.device_aor, data.huntgroup_name, data);
25718
25719	}
25720
25721	socket.on('agent', newAgentData);
25722	if (callbacks) callbacks.push({name:'agent', callback:newAgentData});
25723
25724
25725	socket.on('agent-device', newAgentDeviceData );
25726	if (callbacks) callbacks.push({name:'agent-device', callback:newAgentDeviceData});
25727
25728}
25729
25730function updateQueue(queue, data) {
25731	//log("recieved data for " + queue);
25732	//log(data);
25733	$.each(data, function(key, value) {
25734
25735		if (key == "count_session")
25736			$("#queue" + queue + " .activecall").text(value);
25737		else if (key == "gau_session" && !('count_session' in data)) //i believe this is a older now depricated method.
25738			$("#queue" + queue + " .activecall").text(value);
25739		else if (key == "gau_queue_length") {
25740			$("#queue" + queue + " .queuelength").text(value);
25741
25742			if($("#dash-stats-grid-cw").length)
25743				StatsGrid.cw();
25744		}
25745		else if (key == "gau_agent_available")
25746		{
25747			$("#queue" + queue + " .availagents").text(value);
25748			countLoggedIn(queue);
25749		}
25750		else if (key == "gau_queue_max_wait") {
25751			$("#queue" + queue + " .waittime").attr('data-wait-sec', value);
25752
25753		}
25754
25755	});
25756
25757	//sum queue length and send it to dashboard stats grid
25758	//
25759
25760}
25761
25762function countLoggedIn(queue) {
25763	var tmp=0;
25764	$("#agents-table .agent_in_queue").each(function(){
25765		if ($(this).data("queue") == queue && ($(this).data("status")=="immediate" || $(this).data("status")=="available" || $(this).data("status")=="offnet"))
25766			tmp++;
25767	});
25768
25769	$("#queue" + queue + " .loggedinagents").text(tmp);
25770}
25771
25772function countLoggedInForQueues() {
25773
25774	if ($(".loggedinagents").length>0 && $(".agent_in_queue").length>0)
25775		$("#manager_queues .queue-row").each(function(){
25776			var queue = $(this).attr('id').replace("queue","");
25777			countLoggedIn(queue);
25778		});
25779
25780}
25781
25782function getDevId(value)
25783{
25784	value = value.replace(/@/gi,"-");
25785	value = value.replace(/:/gi,"-");
25786	value = value.replace(/\./gi,"-");
25787	return value;
25788}
25789
25790
25791
25792function updateAgent(device_aor, huntgroup_name, data) {
25793	//log("recieved data for " + device_aor);
25794	//log(data);
25795	device_aor = getDevId(device_aor);
25796	//contact_id is a class the uniquely identifies agent presence icon. is a class because there may be two
25797	//agents table on one page when "edit queue" modal is open
25798	var contact_id = ".agent-" + device_aor + "-" + huntgroup_name;
25799	var contact_id_no_hg = ".agent-" + device_aor ;
25800	var contact_id_fullrow = ".agent-" + device_aor + "-" + huntgroup_name+"-fullrow";
25801
25802	var contact_id_queue_list = ".agent-" + device_aor + "-" + huntgroup_name+".agent_in_queue";
25803	var contact_id_queue_list_no_hg = ".agent-" + device_aor +".agent_in_queue";
25804
25805	var contact_id_status = ".agent-" + device_aor + "-" + huntgroup_name+".agent-status-text";
25806
25807
25808	$(contact_id + "  .agentcalls").text(data.session_count);
25809	$(contact_id_fullrow).data("availindex","b");
25810
25811
25812	$(contact_id_queue_list).data('status',data.entry_option);
25813
25814	let quickStatus = 'offline';
25815
25816	if (data.entry_option == "immediate" || data.entry_option =="Logged In")
25817	{
25818		$(contact_id_status).html(_("Logged In",true));
25819		if (data.entry_status=="available")
25820		{
25821			data.entry_option = _("Logged In", true);
25822			$(contact_id_fullrow).data("availindex","a");
25823		}
25824		else
25825		{
25826			data.entry_option = _("Logged Out",true);
25827			$(contact_id_fullrow).data("availindex","b");
25828		}
25829		quickStatus = 'online';
25830
25831	}
25832	else if (data.entry_option == "disabled" || data.entry_option == "Disabled")
25833	{
25834		$(contact_id_status).html(_("Logged Out",true));
25835		data.entry_option = "Disabled";
25836	}
25837
25838	else  {
25839
25840		if (data.entry_status == "available")
25841		{
25842			$(contact_id_status).html(_("Logged In",true));
25843			data.entry_option = "Available One Call";
25844		}
25845
25846		else
25847		{
25848			data.entry_option = _("Logged Out",true);
25849			$(contact_id_status).html(_("Logged Out",true));
25850		}
25851
25852	}
25853
25854	if (data.entry_device !="reg")
25855		$(contact_id_status).html(_("Offline",true));
25856
25857
25858	$('.agent-status-group-success').each(
25859		function(){
25860			if (huntgroup_name == $(this).data("queue") && device_aor == getDevId($(this).data("agent")))
25861			{
25862				NSAgentsCallQueues.udateStatus(this.id.replace("agent_queue_",""),quickStatus,false);
25863			}
25864		}
25865	);
25866
25867
25868	$(contact_id).removeClass("loggedin loggedout onphone");
25869
25870	var new_title= _("Logged Out");
25871	if (data.entry_status == "available" )
25872	{
25873		//log("chanign to available");
25874		//$(id).addClass("open");
25875
25876		if (data.session_count > 0) {
25877			new_title = _("On a call");
25878			$(contact_id).addClass("onphone");
25879			if (!PORTAL_CALL_QUEUE_AGENT_SHOW_STATUS_COL) $(contact_id).attr("data-original-title",new_title);
25880			$(contact_id_fullrow).data("availindex","a");
25881		}
25882		else
25883		{
25884			new_title = _("Available");
25885			$(contact_id).addClass("loggedin");
25886			if (!PORTAL_CALL_QUEUE_AGENT_SHOW_STATUS_COL) $(contact_id).attr("data-original-title",new_title);
25887		}
25888		$(contact_id_fullrow).data("availindex","a");
25889
25890
25891	}
25892	else  if (data.session_count > 0) {
25893			//log("chanign to in use");
25894			//$(id).addClass("inuse");
25895			new_title = _("On a call");
25896			$(contact_id).addClass("onphone");
25897			if (!PORTAL_CALL_QUEUE_AGENT_SHOW_STATUS_COL) $(contact_id).attr("data-original-title",new_title);
25898			$(contact_id_fullrow).data("availindex","a");
25899	}
25900	else
25901	{
25902		if (data.entry_option =="Logged In")
25903			{
25904			new_title = _("Logged In");
25905			if (!PORTAL_CALL_QUEUE_AGENT_SHOW_STATUS_COL) $(contact_id).attr("data-original-title",new_title);
25906			$(contact_id).addClass("loggedin");
25907			$(contact_id_fullrow).data("availindex","a");
25908			//log("chanign to logged out");
25909			}
25910		else
25911			{
25912			new_title = _("Logged Out");
25913			if (!PORTAL_CALL_QUEUE_AGENT_SHOW_STATUS_COL) $(contact_id).attr("data-original-title",new_title);
25914			$(contact_id).addClass("loggedout");
25915			//log("chanign to logged out");
25916			}
25917
25918
25919	}
25920
25921	var tmp_title= _("Logged Out");
25922	var on_a_call_title= _("On a call");
25923	var available_title= _("Available");
25924	var tmp_class= "loggedout";
25925	var tmp_avail_indx= "b";
25926	var updated = false;
25927	if ($(contact_id_queue_list_no_hg).length>1)
25928		$(contact_id_queue_list_no_hg).each(function(){
25929			$(contact_id_queue_list_no_hg).length
25930			updated=true;
25931			if (tmp_class=="onphone" || tmp_class=="loggedin")
25932				return;
25933
25934			if (data.session_count > 0)
25935			{
25936				tmp_class="onphone";
25937				tmp_title=on_a_call_title;
25938				tmp_avail_indx="a";
25939			}
25940			if ($(this).data('status') =="immediate" || $(this).data('status') =="available" )
25941			{
25942				if (data.entry_status=="available")
25943				{
25944					tmp_class="loggedin";
25945					tmp_title=available_title;
25946					tmp_avail_indx="a";
25947
25948				}
25949
25950			}
25951
25952			//console.log($(this).data('status'));
25953		});
25954
25955	if (updated)
25956	{
25957		$(contact_id_no_hg+".agent-fullrow").data("availindex",tmp_avail_indx);
25958		$(contact_id_no_hg+".agent-fullrow").attr("data-original-title",tmp_title);
25959		if (!PORTAL_CALL_QUEUE_AGENT_SHOW_STATUS_COL) $(contact_id_no_hg+".agent-presence").attr("data-original-title",tmp_title);
25960		$(contact_id_no_hg+".agent-presence").attr("title",tmp_title);
25961		$(contact_id_no_hg+".agent-presence").removeClass("loggedin loggedout onphone");
25962		$(contact_id_no_hg+".agent-presence").addClass(tmp_class);
25963
25964	}
25965
25966
25967
25968
25969	/*
25970	$.each(data, function(key, value) {
25971
25972		if (key == "entry_status") {
25973			log("key match is " + key);
25974			$(id + " .presence").text(value);
25975		} else if (key == "entry_option") {
25976			log("key match is " + key);
25977			alert($(id + " .mode").text());
25978			$(id + " .mode").text("1");
25979		} else if (key == "session_count") {
25980			log("key match is " + key);
25981			$(id + " .agentcalls").text("1");
25982		}
25983
25984	});*/
25985	if (typeof processAgentTotals == 'function') {
25986		processAgentTotals();
25987	}
25988	if (typeof NSAgentsSearch != 'undefined' && typeof NSAgentsSearch.receivedSocketUpdate == 'function') {
25989		NSAgentsSearch.receivedSocketUpdate();
25990	}
25991
25992}
25993
25994function homegetStatusButtonNoFade() {
25995
25996	if (!bigButtonHoldOff)
25997	{
25998		bigButtonHoldOff = true;
25999		setTimeout(function() {
26000		    bigButtonHoldOff = false;
26001		}, 250);
26002
26003		setTimeout(function() {
26004			if (typeof activeDevice != 'undefined')
26005				$.get('./agents/bigbutton/'+activeDevice, function(data) { // now uses activeDevice
26006					$('#agent-status-panel-home').html(data).show();
26007				});
26008		}, 25);
26009
26010
26011	}
26012
26013}
26014
26015
26016
26017function updateAgentDevice(device_aor, huntgroup_name, data) {
26018	/* Per Queue UI block */
26019	var queueClass;
26020	if(data.entry_option == 'immediate' && data.entry_status == 'available') {
26021		queueClass  = 'open';
26022		loginStyle  = 'display: none;'; // hide login button, immediate / avail means were logged in
26023		logoutStyle = 'display: inline-block;'; // show logout button
26024	}
26025	else if(data.entry_option == 'manual' && data.entry_status == 'available') {
26026		queueClass  = 'open';
26027		loginStyle  = 'display: none;'; // hide login button, immediate / avail means were logged in
26028		logoutStyle = 'display: inline-block;'; // show logout button
26029	}
26030	else if(data.entry_option == 'immediate' && data.entry_status == 'unavailable' && data.session_count > 0) {
26031		queueClass  = 'inuse';
26032		loginStyle  = 'display: none;'; // hide login button, immediate / avail means were logged in
26033		logoutStyle = 'display: inline-block;'; // show logout button
26034	}
26035	 else {
26036		// offline gray, no queueclass
26037		queueClass  = '';
26038		loginStyle  = 'display: inline-block;'; // show login button
26039		logoutStyle = 'display: none;'; // hide logout button
26040	}
26041	//console.log(queueClass);
26042	// jQuery actions
26043	$('#queue' + huntgroup_name + ' .presence').attr('class', 'agent_status presence ' + queueClass);
26044	$('#queue' + huntgroup_name + ' button.queue-login').attr('style', loginStyle);
26045	$('#queue' + huntgroup_name + ' button.queue-logout').attr('style', logoutStyle);
26046	/* END Per Queue UI block */
26047
26048	var devId = cleanDevice(device_aor);
26049	//console.log(devId);
26050	device_aor = getDevId(device_aor);
26051	huntgroup_name = getDevId(huntgroup_name);
26052
26053	var id = "#big-button-group";
26054	var hg = $(id).data("huntgroup");
26055	//log(hg);
26056
26057	homegetStatusButtonNoFade();
26058
26059	$('.huntgroup_for_device').each(function() {
26060		if ($(this).data('huntgroup') == huntgroup_name) {
26061				$(this).data('mode', data.entry_option);
26062					$(this).data('status', data.entry_status);
26063		}
26064
26065	});
26066
26067}
26068
26069function incWaitCounter() {
26070	$('.wait_counter').each(
26071
26072	function() {
26073		var sec = $(this).attr('data-wait-sec');
26074
26075		if (sec != 0 || sec != "0") {
26076			sec = parseInt(sec) + 1;
26077			$(this).attr('data-wait-sec', '' + sec);
26078			$(this).text(getMMss(sec));
26079
26080		} else {
26081			$(this).text("-");
26082		}
26083
26084	});
26085
26086	setTimeout(incWaitCounter, 1000);
26087}
26088
26089�var timeOffset = 0;
26090var ignoreOrigId =[];
26091var intendedAnsOrigId =[];
26092var ignoreTermId =[];
26093var monitorIds =[];
26094
26095$(function() {
26096    if (typeof servertime != 'undefined')
26097        timeOffset = getSecDiff(servertime);
26098
26099
26100    //log("functions loaded");
26101    setInterval(durrationCounter, 1000);
26102});
26103
26104Object.size = function(obj) {
26105    var size = 0, key;
26106    for (key in obj) {
26107        if (obj.hasOwnProperty(key)) size++;
26108    }
26109    return size;
26110};
26111
26112let queuedCallMap = new Map();
26113const delayedRemoveMap = new Map();
26114function sGetQueuedData(type, domain, filter) {
26115
26116	if (typeof socket == 'undefined'){
26117		log('sGetQueueData: typeof socket undefined');
26118		return;
26119	}
26120	var options = {
26121		domain : domain,
26122		type : 'queued',
26123		'bearer': localStorage.ns_t,
26124        application: 'portal'
26125	};
26126
26127	if (typeof filter != 'undefined' && filter != "" && filter != "*")
26128		options.filter = filter;
26129
26130	socket.emit('subscribe', options);
26131	log(options);
26132	subscriptions.push(options);
26133
26134    function updateQueuedData(data) {
26135        const sessId = data.session_key + data.queue_name;
26136        var searchString = "#calls_table.waiting-table tr:gt(0)";
26137            if (data.remove && data.remove == "yes")
26138        {
26139          queuedCallMap.delete(sessId);
26140          delayedRemove(searchString,data.session_key);
26141          let newTimeout = setTimeout(delayedRemove,2000,searchString,data.session_key);
26142          delayedRemoveMap.set(data.session_key,newTimeout );
26143    
26144        }
26145        else
26146        {
26147          queuedCallMap.set(sessId,data);
26148        }
26149    
26150    }
26151	socket.on('queued', updateQueuedData);
26152    if (callbacks) callbacks.push({name:'queued', callback:updateQueuedData});
26153
26154}
26155
26156
26157function sGetCallsData(type, domain, filter, popout) {
26158
26159    if (typeof popout == 'undefined')
26160        popout = false;
26161    if (typeof socket == 'undefined')
26162        return;
26163
26164    var options = {
26165        domain : domain,
26166        type : 'call',
26167        'bearer': localStorage.ns_t,
26168        application: 'portal'
26169        
26170
26171    };
26172
26173    if (typeof type != 'undefined' && type != "" && type != "user")
26174        options.subtype = type;
26175
26176    if (typeof filter != 'undefined' && filter != "" && filter != "*")
26177        options.filter = filter;
26178
26179    socket.emit('subscribe', options);
26180    //log("requested data options:");
26181    log(options);
26182
26183    subscriptions.push(options);
26184
26185
26186    socket.on('call-domain', updateCallLineDomainFull);
26187    if (callbacks) callbacks.push({name:'call-queue',callback:updateCallLineDomain});
26188    socket.on('call-queue', updateCallLineDomain);
26189    if (callbacks) callbacks.push({name:'call-queue',callback:updateCallLineDomain});
26190
26191    function callUpdate(data) {
26192
26193        log('socket call');
26194
26195        if (data.orig_from_user =="Call-Record-Account" && data.remove == "yes"){
26196            log('Call to record ended');
26197
26198            var greetingEnd = false;
26199            var greetingsModal;
26200            var path;
26201
26202            //check to see if any greetings modals are showing
26203            if ($('#greetings-modal').is(':visible')) {
26204                log('greetings-modal is visible');
26205                greetingsModal = $('#greetings-modal');
26206                path = '/portal/users/greetings/index/' + data.by_sub + '@' + data.by_domain;
26207                greetingEnd = true;
26208            }
26209            else if ($('#introgreeting-modal').is(':visible')) {
26210                log('introgreeting-modal is visible');
26211                greetingsModal = $('#introgreeting-modal');
26212                var callee_match = greetingsModal.data('callee-match');
26213                var starting = greetingsModal.data('starting');
26214                path = '/portal/attendants/intros/' + callee_match + '/' + starting;
26215                greetingEnd = true;
26216            }
26217            else if($('#write-queue').is(':visible')) {
26218                log('write queue modal is visible');
26219                var queue = $("#CallqueueName").val();
26220                log(queue);
26221                var jsonPath = '/portal/callqueues/messagecheck/'+queue;
26222
26223                //grab new recording uri, insert into play and download buttons
26224                setTimeout(function(){
26225                    $.getJSON(jsonPath,function(data){
26226                        // log(data);
26227                        log('new remotepath for announce-to-agent.wav');
26228                        // log(data[0]['Music']['announce-to-agent.wav']['remotepath']);
26229
26230                        var remotePath = data[0]['Music']['announce-to-agent.wav']['remotepath'];
26231
26232                        if($('#audio-player-1').length) {
26233
26234                            //removes the HTML characters added
26235                            remotePath = remotePath.replace(/\bamp;\b/g, '');
26236
26237                            // for localhost testing
26238                            // remotePath = remotePath.replace('localhost', 'corp.netsapiens.com');
26239
26240                            $('#write-queue .download-audio').attr('href', remotePath);
26241
26242                            $('#audio-player-1 source').each(function(){
26243                                log('updating audio players source paths');
26244
26245                                var audioType = $(this).attr('type');
26246
26247                                // log(audioType);
26248
26249                                if(audioType == 'audio/x-wav')
26250                                    remotePath += '&convert=signed';
26251                                else if(audioType == 'audio/ogg; codecs=vorbis')
26252                                    remotePath += '&convert=ogg';
26253                                else if(audioType == 'audio/mp4')
26254                                    remotePath += '&convert=aac';
26255                                else if(audioType == 'audio/aac')
26256                                    remotePath += '&convert=aac';
26257
26258                                log(remotePath);
26259
26260                                $(this).attr('src', remotePath);
26261                            });
26262
26263                            //loads new sources to audio player
26264                            $('#audio-player-1')[0].load();
26265                            hideAgentMsgRecord();
26266                        } else {
26267                            log('no audio player found');
26268
26269
26270                        }
26271
26272
26273
26274                    }).fail(function(){
26275                        log('remotepath request failed');
26276                        jsFlash(_('Message to agent failed to record!'), 'danger');
26277                    });
26278
26279                }, 2000);
26280
26281            }
26282            //check if edit answering rule is open
26283            else if($('#write-rule').is(':visible')){
26284              hideAgentMsgRecord();
26285            }
26286
26287
26288            //after call to record ends, refresh greetings modal if it's visible
26289            if (greetingEnd) {
26290                log('a greetings modal is visible, reloading modal');
26291
26292                if (typeof path == 'undefined')
26293                  path = greetingsModal.find("form").attr("action");
26294                greetingsModal.html('<span class=\"loading-lg\"></span>');
26295                greetingsModal.css('min-height', '0');
26296                modalResize(greetingsModal);
26297
26298                setTimeout(loadModal, 2000,"#"+greetingsModal[0].id,path);
26299
26300
26301            }
26302
26303            
26304            return;
26305        }
26306        else if (data.orig_from_user =="Call-Record-Account")
26307            return;
26308
26309        if (filter != "*")
26310        {
26311          if (!popout)
26312            updateCallLineUser(data, domain, filter);
26313          else
26314            updateCallLineUserPopout(data, domain, filter);
26315        }
26316
26317    }
26318
26319    socket.on('call',callUpdate );
26320    if (callbacks) callbacks.push({name:'call',callback:callUpdate});
26321
26322
26323
26324}
26325
26326function sGetVoicemailData(domain, filter) {
26327    if (typeof socket == 'undefined')
26328        return;
26329
26330    var options = {
26331        domain : domain,
26332        type : 'voicemail',
26333        'bearer': localStorage.ns_t,
26334        application: 'portal'
26335    };
26336
26337    if (typeof filter != 'undefined' && filter != "" && filter != "*")
26338        options.filter = filter;
26339    else
26340        return;
26341
26342    socket.emit('subscribe', options);
26343
26344    subscriptions.push(options);
26345
26346    socket.on('voicemail', getCount);
26347    if (callbacks) callbacks.push({name:'voicemail', callback:getCount});
26348    
26349
26350}
26351
26352function getStatus(value) {
26353
26354    if (value.term_uri == "Call-Queue" || value.term_uri == "Auto-Attendant") {
26355        return _("Waiting");
26356    } else {
26357        if (value.time_answer == "0000-00-00 00:00:00") {
26358            if (value.by_action && value.by_action == "QueueSDispatch")
26359              return _("Ringing Agent(s)");
26360            else
26361              return _("Ringing Agent");
26362        } else
26363            return _("Talking");
26364    }
26365}
26366
26367var lastWaitingSort = Date.now()-2000;
26368let sortTimeoutID = setTimeout(sortWaitingTable, 250);
26369function sortWaitingTable() {
26370  const now = Date.now()-1;
26371
26372  if (lastWaitingSort+500 > now)
26373  {
26374    clearTimeout(sortTimeoutID);
26375    sortTimeoutID = setTimeout(sortWaitingTable, 250);
26376
26377    return;
26378  }
26379
26380
26381
26382  var table, rows, switching, i, x, y, shouldSwitch;
26383  table = document.getElementById("calls_table");
26384  if (!table) return;
26385  switching = true;
26386  /*Make a loop that will continue until
26387  no switching has been done:*/
26388  while (switching) {
26389    //start by saying: no switching is done:
26390    switching = false;
26391    rows = table.rows;
26392    /*Loop through all table rows (except the
26393    first, which contains table headers):*/
26394    for (i = 1; i < (rows.length - 1); i++) {
26395      //start by saying there should be no switching:
26396      shouldSwitch = false;
26397      /*Get the two elements you want to compare,
26398      one from current row and one from the next:*/
26399      x = rows[i];
26400      y = rows[i + 1];
26401      if (x.dataset.prioritizedvalue >= y.dataset.prioritizedvalue )
26402      {
26403        var d1 = new Date(Date.parse(x.dataset.gmt_start));
26404        var d2 = new Date(Date.parse(y.dataset.gmt_start));
26405
26406        if (d1 > d2 || x.dataset.prioritizedvalue > y.dataset.prioritizedvalue)
26407        {
26408          shouldSwitch = true;
26409          break;
26410        }
26411      }
26412
26413      //check if the two rows should switch place:
26414      // if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
26415      //   //if so, mark as a switch and break the loop:
26416      //   shouldSwitch = true;
26417      //   break;
26418      // }
26419    }
26420    if (shouldSwitch) {
26421      $('.tooltip').hide();
26422      /*If a switch has been marked, make the switch
26423      and mark that a switch has been done:*/
26424      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
26425      switching = true;
26426    }
26427  }
26428
26429  lastWaitingSort = Date.now()-1;
26430}
26431
26432
26433
26434
26435
26436function getButtons(value,includeTd) {
26437
26438    if (includeTd == null)
26439        includeTd =true;
26440    //log("getButtons");
26441    //log(value);
26442    var vrb = 'activecall'+value.orig_callid.replace(/[^a-zA-Z0-9]/g, '')+""+value.term_callid.replace(/[^a-zA-Z0-9]/g, '')+""+value.term_uri.replace(/[^a-zA-Z0-9]/g, '');
26443    var jsInsert = "var "+vrb+"=[];";
26444    jsInsert += ""+vrb+".orig_id='"+value.orig_callid+"';";
26445    jsInsert += ""+vrb+".term_id='"+value.term_callid+"';";
26446    jsInsert += ""+vrb+".orig_uri='"+value.orig_uri+"';";
26447    jsInsert += ""+vrb+".ani='"+value.ani+"';";
26448    jsInsert += ""+vrb+".term_uri='"+value.term_uri+"';log("+vrb+");"; //hideModal(\'#view-calls\');
26449    jsInsert += "listenIn("+vrb+");$(this).hide();";
26450    log(jsInsert);
26451
26452    var buttons ='<a href="javascript:void(0)"  class="listen helpsy" title="'+_('Listen in')+'" onclick="'+jsInsert+'">&nbsp;</a>';
26453
26454    if ($('#calls_table').hasClass('allowmonitor')) {
26455        //log("monitoring allowed");
26456    }
26457    else if ($('#agents-table').hasClass('allowmonitor')) {
26458        //log("monitoring allowed");
26459    }
26460    else {
26461        //log("monitoring NOT allowed");
26462        buttons = "&nbsp;";
26463    }
26464
26465
26466    if (value.term_uri == "Call-Queue" || value.term_uri == "Auto-Attendant") {
26467        buttons = "&nbsp;";
26468    } else if (value.time_answer == "0000-00-00 00:00:00") {
26469        buttons = "&nbsp;";
26470    }
26471
26472    if (includeTd)
26473        buttons = '<td class="action-buttons">'+buttons+'</td>';
26474
26475    return buttons;
26476}
26477
26478var callHistoryLookupScheduled = false;
26479var vMailLookupScheduled = false;
26480
26481var audioMonitoringtoClearOnHangup =[];
26482var callback_ids =[];
26483
26484function updateCallLineUser(value, domain, user) {
26485
26486    var searchString = "#calls_table tr:gt(0)";
26487
26488    var orid_id = value.orig_callid;
26489    var term_id = value.term_callid;
26490    var term_uri = value.term_uri;
26491    var id = orid_id + "_" + term_id + "_" + term_uri;
26492    var rId = value.orig_callid + "_" + value.term_callid + "_" + value.term_uri;
26493
26494    //log("by_callid="+value.by_callid);
26495    //log("term_callid="+value.term_callid);
26496    //log(value);
26497    var found = false;
26498    if (value.remove != "yes") {
26499
26500        log("user data");
26501        log(value);
26502        var calltype = getType(value, domain, user);
26503        var monitorId = 'notmonitored';
26504        if (calltype == 'monitor')
26505        {
26506            monitorId = getMonitorId(value);
26507
26508            log("callid= "+value.orig_callid);
26509            log("monitorId= "+monitorId);
26510        }
26511        else
26512            {
26513                if (typeof value.orig_logi_uri != 'undefined' && typeof value.orig_from_name != 'undefined')
26514                    if (value.orig_from_name == "Bridge for Audio Monitoring" && value.orig_logi_uri.indexOf("adhoc.monitor") > -1)
26515                        {
26516                            log("pontenital inbound for listen. silence popup. track callid. ");
26517                            log(value.orig_logi_uri);
26518
26519                            if (value.time_answer != "0000-00-00 00:00:00")
26520                                audioMonitoringtoClearOnHangup.push(value.orig_logi_uri);
26521                            return;
26522                        }
26523
26524            }
26525
26526          if (typeof value.ani != 'undefined' &&  value.ani == 'Prompt-Callback-Retrieve')
26527          {
26528              callback_ids.push(value.by_callid);
26529          }
26530
26531
26532        //log("in single user add/modify");
26533        $('.dockcall-column').each(function() {
26534
26535            var thisId = $(this).attr('id');
26536            //log("in scan function, call type is "+ $(this).data('calltype'));
26537
26538            if ($(this).data('calltype')=='monitor' && $(this).data('monitorId') == monitorId) {
26539
26540                //log("calling dockModifyCallsameURI do to monitor update");
26541                dockModifyCallsameURI($(this), value, domain, user);
26542
26543                found = true;
26544            }
26545            else if (thisId == 'dockcall-column-' + rId.replace(/[^a-zA-Z0-9]/g, '-')) {
26546
26547                //log("calling dockModifyCallsameURI");
26548                //log(value);
26549                dockModifyCallsameURI($(this), value, domain, user);
26550
26551                found = true;
26552            } else if ($(this).attr('orig_callid') == value.orig_callid.replace(/[^a-zA-Z0-9]/g, '-')) {
26553
26554                //log("calling dockModifyCallnewURI");
26555                //log(value);
26556                var updateOk = true;
26557                for (var key in intendedAnsOrigId)
26558                {
26559                    if (intendedAnsOrigId[key] ==value.orig_callid)
26560                    {
26561                        if (value.time_answer == "0000-00-00 00:00:00")
26562                            updateOk = false;
26563                        else
26564                            intendedAnsOrigId.splice(key,1);
26565                    }
26566                }
26567
26568                if (updateOk)
26569                {
26570                    dockModifyCallsameURI($(this), value, domain, user);
26571
26572                }
26573
26574                found = true;
26575            }
26576
26577        });
26578        if (!found) {
26579
26580            console.log("calling dockShowCall possible type is "+calltype);
26581            console.log("possible monitring id is  "+monitorId);
26582            //debugger;
26583            var foundInIgnore =false;
26584            for (var key in ignoreOrigId)
26585            {
26586                if (ignoreOrigId[key] ==value.orig_callid)
26587                {
26588                    foundInIgnore=true;
26589
26590                }
26591            }
26592            for (var key in ignoreTermId)
26593            {
26594                if (ignoreTermId[key] ==value.term_callid)
26595                {
26596                    if(callback_ids.indexOf(value.term_callid) == -1)
26597                      foundInIgnore=true;
26598                }
26599            }
26600
26601            if(value.ani == sub_user && (value.term_to_uri == "Monitoring" || value.term_to_uri.includes("adhoc.monitor")))
26602            {
26603              foundInIgnore=true;
26604            }
26605
26606            if (!foundInIgnore) {
26607                console.log(455);
26608                console.log('execute dockShowCall');
26609                dockShowCall(value, domain, user);
26610                checkPopupWidth();
26611            }
26612        }
26613
26614        //log("done");
26615
26616    }
26617    else {
26618        // DELETE
26619        //log("running  remove");
26620        //log(value);
26621
26622        //log("in delete");
26623        //log(audioMonitoringtoClearOnHangup);
26624
26625        $('.dockcall-column').each(function() {
26626            for (var i = 0; i < audioMonitoringtoClearOnHangup.length; i++) {
26627                if (typeof $(this).data("confbridge_id") != "undefined")
26628                    if ($(this).data("confbridge_id") == audioMonitoringtoClearOnHangup[i])
26629                        {
26630                            $(this).remove();
26631                            checkPopupWidth();
26632                            return;
26633                        };
26634            }
26635
26636        });
26637
26638        $('.dockcall-column').each(function() {
26639            // highlightQueueRow(value.by_user, true);
26640            if ($(this).attr('orig_callid') == value.orig_callid.replace(/[^a-zA-Z0-9]/g, '-')) {
26641
26642
26643
26644                for (var key in ignoreOrigId)
26645                {
26646                    if (ignoreOrigId[key] ==$(this).attr('orig_callid'))
26647                    {
26648                      $(this).remove();
26649                        checkPopupWidth();
26650                        return;
26651                    }
26652                }
26653                for (var key in ignoreTermId)
26654                {
26655                    if (ignoreTermId[key] ==value.term_callid)
26656                        return;
26657                }
26658
26659
26660
26661                //log("match on removal of callid, call type is " + $(this).data('calltype'));
26662                if ($(this).data('calltype')=="monitor")
26663                {
26664                    return;
26665                }
26666
26667
26668                var termIds = $(this).data('termIds');
26669                //log("termIds   " + termIds);
26670                var termid = value.term_callid.replace(/[^a-zA-Z0-9]/g, '-');
26671                if (termid in termIds) {
26672                    //log("removing leg   " + termid);
26673                    termIds.remove(termid);
26674                    checkPopupWidth();
26675                }
26676
26677
26678                var number = cleanDevice(value.orig_user);
26679
26680                //$(this).data('termIds',termIds);
26681
26682                //if (Object.size(termIds)>0)
26683                //
26684                //    {
26685                //    log ("still has "+Object.size(termIds)+" legs");
26686                //    return;
26687                //    }
26688                var callId = $(this).attr('id');
26689                var columnId = '#' + callId;
26690                var dockBody = columnId + ' .dockcall-body';
26691                var callButtons = columnId + ' .dockcall-buttons';
26692                var callFields = columnId + ' .dockcall-fields';
26693                var durationField = columnId + ' .dockcall-timer';
26694                var completeButton = columnId + ' .dockcall-complete';
26695                var disposition = columnId + ' .dockcall-disposition';
26696                var notes = columnId + ' .dockcall-notes';
26697                var panelContent = columnId + ' .dockcall-panel-content';
26698                var callInfo = columnId + ' .dockcall-info';
26699
26700                var transferTest = columnId + ' .ui-autocomplete-input';
26701                log(transferTest)
26702                log($(transferTest).length)
26703                 if($(transferTest).length){
26704                     closeTransferMode();
26705                 }
26706
26707
26708                if ($(this).data('calltype')!="monitor")
26709                    $(dockBody).animate({
26710                        backgroundColor : '#fff'
26711                    }).stop();
26712
26713                $(durationField).attr('class', 'dockcall-timer pull-right');
26714
26715                $(panelContent + ' h4').remove();
26716                $(panelContent + ' h3').remove();
26717
26718                if ($(this).data('calltype')!="monitor")
26719                {
26720                    if ($(callInfo).length == 0) {
26721                        $(panelContent).prepend(
26722                        '<div class="dockcall-info">' + '<h5 class="dockcall-name">' + number + '<span gmt_answer="' + value.time_answer
26723                        + '" class="dockcall-timer duration_counter pull-right">00:00</span>' + '</h5>' + '</div>');
26724                    }
26725                }
26726
26727                if ($(this).data('calltype')!="monitor")
26728                    $(callFields).animate({
26729                        "height" : "show",
26730                        "opacity" : "show"
26731                    }, 400);
26732
26733                //log($(notes.text()));
26734                //log($(notes.value()));
26735                log($(notes).val().length);
26736                log($(notes).text());
26737                if (($(this).data('calltype')!="monitor" && popup_allow_complete) )
26738                    $(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
26739                else if ($(disposition).is(":visible") )
26740                    $(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
26741                else if ($(notes).is(":visible") && $(notes).val().length >0)
26742                    $(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
26743                else if ($(this).data('calltype')!="monitor" && !popup_allow_complete){
26744                  $(this).remove();
26745                    checkPopupWidth();
26746                }
26747
26748            }
26749
26750        }); //end dockcall-column each
26751
26752
26753        function refreshCalHistory() {
26754            callHistoryLookupScheduled = true;
26755            setTimeout(function() {
26756                callHistoryLookupScheduled = false;
26757                if ($('.modal').is(":visible") == true) {
26758                    refreshCalHistory();
26759                } else if (typeof homeCallhistory == 'function')
26760                    homeCallhistory(true);
26761
26762            }, 2000);
26763        }
26764
26765        function refreshVmails() {
26766            vMailLookupScheduled = true;
26767            setTimeout(function() {
26768                vMailLookupScheduled = false;
26769                if ($('.modal').is(":visible") == true) {
26770                    refreshVmails();
26771                    log("delaying vmail update do to modal");
26772                } else {
26773                    log(value);
26774                    if (value.term_to_uri == 'VMail')
26775                    {
26776                        log("is a vmail ending");
26777                        if (typeof homeVoicemail == 'function') {
26778                            log("running homeVoicemail");
26779                            homeVoicemail();
26780                        }
26781                        if (typeof getCount == 'function') {
26782                            log("running getCount");
26783                            getCount();
26784                        }
26785
26786                    }
26787                }
26788
26789            }, 2000);
26790        }
26791
26792        if (!callHistoryLookupScheduled) {
26793            refreshCalHistory();
26794        }
26795
26796        if (!vMailLookupScheduled) {
26797
26798            refreshVmails();
26799        }
26800
26801
26802
26803    } //end else
26804
26805
26806
26807
26808        var activeCalls = 0;
26809        myCalls= new Array();
26810        callToTransfer= new Object();
26811    $('.dockcall-column').each(function() {
26812
26813        myCalls[activeCalls]=$(this).data();
26814        activeCalls++;
26815    });
26816    if (activeCalls == 0) {
26817        $('.activecallonly').hide();
26818    } else {
26819        $('.activecallonly').show();
26820    }
26821    log(myCalls);
26822
26823
26824
26825}
26826var timeoutReference;
26827var myCalls = new Array();
26828
26829function updateNotes(callId){
26830    $.cookie("notes"+callId, $('#'+callId+" .dockcall-notes").val(), { expires : 1 });
26831
26832    if (!timeoutReference){
26833        return;
26834    }
26835    timeoutReference = null;
26836}
26837
26838function updateCallLineUserPopout(value, domain, user) {
26839
26840
26841    var orid_id = value.orig_callid;
26842    var term_id = value.term_callid;
26843    var term_uri = value.term_uri;
26844    var id = orid_id + "_" + term_id + "_" + term_uri;
26845    var rId = value.orig_callid + "_" + value.term_callid + "_" + value.term_uri;
26846
26847
26848
26849    //log(value);
26850    var found = false;
26851    if (value.remove != "yes") {
26852
26853        var calltype = getType(value, domain, user);
26854        var monitorId = 'notmonitored';
26855        if (calltype == 'monitor')
26856        {
26857            monitorId = getMonitorId(value);
26858        }
26859
26860        log("in single user add/modify");
26861        $('.popcall-popup').each(function() {
26862
26863            var thisId = $(this).attr('id');
26864
26865            log("in scan  function (.popcall-popup), call type is "+ $(this).data('calltype'));
26866
26867            log("in scan  function (.popcall-popup), thisId    is "+ thisId);
26868            log("in scan  function (.popcall-popup), comparing is "+ 'popcall-popup-' + rId.replace(/[^a-zA-Z0-9]/g, '-'));
26869            if ($(this).data('calltype')=='monitor' && $(this).data('monitorId') == monitorId) {
26870
26871                //nothing
26872            }
26873            else if (thisId == 'popcall-popup-' + rId.replace(/[^a-zA-Z0-9]/g, '-')) {
26874
26875                log("in scan  function (.popcall-popup), thisId    is "+ thisId);
26876                popoutModifyCallsameURI($(this), value, domain, user)
26877
26878                found = true;
26879            } else if ($(this).attr('orig_callid') == value.orig_callid.replace(/[^a-zA-Z0-9]/g, '-')) {
26880
26881                var updateOk = true;
26882                for (var key in intendedAnsOrigId)
26883                {
26884                    if (intendedAnsOrigId[key] ==value.orig_callid)
26885                    {
26886                        if (value.time_answer == "0000-00-00 00:00:00")
26887                            updateOk = false;
26888                        else
26889                            intendedAnsOrigId.splice(key,1);
26890                    }
26891                }
26892
26893                if (updateOk)
26894                {
26895                    popoutModifyCallsameURI($(this), value, domain, user);
26896                }
26897
26898                found = true;
26899            }
26900
26901        });
26902        if (!found) {
26903
26904            log("calling popup ShowCall possible type is "+calltype);
26905            log("possible monitring id is  "+monitorId);
26906            //log(value);
26907            var foundInIgnore =false;
26908            for (var key in ignoreOrigId)
26909            {
26910                if (ignoreOrigId[key] ==value.orig_callid)
26911                {
26912                    foundInIgnore=true;
26913
26914                }
26915            }
26916            for (var key in ignoreTermId)
26917            {
26918                if (ignoreTermId[key] ==value.term_callid)
26919                {
26920                    foundInIgnore=true;
26921                }
26922            }
26923            if (!foundInIgnore) {
26924                popoutShowCall(value, domain, user);
26925            }
26926        }
26927
26928        //log("done");
26929
26930    }
26931    else {
26932        // DELETE
26933        //log("running  remove");
26934        //log(value);
26935
26936
26937
26938
26939        $('.popcall-popup').each(function() {
26940            // highlightQueueRow(value.by_user, true);
26941            if ($(this).attr('orig_callid') == value.orig_callid.replace(/[^a-zA-Z0-9]/g, '-')) {
26942
26943
26944                for (var key in ignoreOrigId)
26945                {
26946                    if (ignoreOrigId[key] ==$(this).attr('orig_callid'))
26947                    {
26948                      $(this).remove();
26949                        checkPopupWidth();
26950                        return;
26951                    }
26952                }
26953                for (var key in ignoreTermId)
26954                {
26955                    if (ignoreTermId[key] ==value.term_callid)
26956                        return;
26957                }
26958
26959
26960
26961                //log("match on removal of callid, call type is " + $(this).data('calltype'));
26962                if ($(this).data('calltype')=="monitor")
26963                {
26964                    return;
26965                }
26966
26967
26968                var termIds = $(this).data('termIds');
26969                //log("termIds   " + termIds);
26970                var termid = value.term_callid.replace(/[^a-zA-Z0-9]/g, '-');
26971                if (termid in termIds) {
26972                    //log("removing leg   " + termid);
26973                    termIds.remove(termid);
26974                    checkPopupWidth();
26975                }
26976
26977
26978                var number = cleanDevice(value.orig_user);
26979
26980                //$(this).data('termIds',termIds);
26981
26982                //if (Object.size(termIds)>0)
26983                //
26984                //    {
26985                //    log ("still has "+Object.size(termIds)+" legs");
26986                //    return;
26987                //    }
26988                var callId = $(this).attr('id');
26989                var popoutId = '#popcall-popup' + callId;
26990                var dockBody = popoutId + ' .popcall-body';
26991                var callButtons = popoutId + ' .popcall-buttons';
26992                var callFields = popoutId + ' .popcall-fields';
26993                var durationField = popoutId + ' .popcall-timer';
26994                var completeButton = popoutId + ' .popcall-complete';
26995                var disposition = popoutId + ' .popcall-disposition';
26996                var notes = popoutId + ' .popcall-notes';
26997                var panelContent = popoutId + ' .popcall-panel-content';
26998                var callInfo = popoutId + ' .popcall-info';
26999
27000                if ($(this).data('calltype')!="monitor")
27001                    $(dockBody).animate({
27002                        backgroundColor : '#fff'
27003                    }).stop();
27004
27005                $(durationField).attr('class', 'popcall-timer pull-right');
27006
27007                $(panelContent + ' h4').remove();
27008                $(panelContent + ' h3').remove();
27009
27010                if ($(this).data('calltype')!="monitor")
27011                {
27012                    if ($(callInfo).length == 0) {
27013                        $(panelContent).prepend(
27014                        '<div class="popcall-info">' + '<h5 class="popcall-name">' + number + '<span gmt_answer="' + value.time_answer
27015                        + '" class="popcall-timer duration_counter pull-right">00:00</span>' + '</h5>' + '</div>');
27016                    }
27017                }
27018
27019                if ($(this).data('calltype')!="monitor")
27020                    $(callFields).animate({
27021                        "height" : "show",
27022                        "opacity" : "show"
27023                    }, 400);
27024
27025                //log($(notes.text()));
27026                //log($(notes.value()));
27027                //log($(notes).val().length);
27028                //log($(notes).text());
27029                if (($(this).data('calltype')!="monitor" && popup_allow_complete) )
27030                    $(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
27031                else if ($(disposition).is(":visible") )
27032                    $(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
27033                else if ($(notes).is(":visible") && $(notes).val().length >0)
27034                    $(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
27035                else if ($(this).data('calltype')!="monitor" && !popup_allow_complete)
27036                $(this).remove();
27037                    checkPopupWidth();
27038                }
27039
27040                //resize content scrollable area
27041                resizePopoutContent();
27042
27043            });
27044
27045
27046    }
27047
27048    //adding myCalls array to updateCallLineUserPopout() to match dock updateCallLineUser() for use in transfer method
27049        var activeCalls = 0;
27050        myCalls= new Array();
27051        callToTransfer= new Object();
27052    $('.popcall-popup').each(function() {
27053
27054        myCalls[activeCalls]=$(this).data();
27055        activeCalls++;
27056    });
27057    if (activeCalls == 0) {
27058        $('.activecallonly').hide();
27059    } else {
27060        $('.activecallonly').show();
27061    }
27062    log(myCalls);
27063
27064}
27065
27066function getType(value, domain, user) {
27067
27068    if (value.orig_callid.indexOf("adhoc.monitor") !== -1) {
27069        return "monitor";
27070    } else if (value.term_callid.indexOf("adhoc.monitor") !== -1) {
27071        return "monitor";
27072    } else if (value.term_uri.indexOf("adhoc.monitor") !== -1) {
27073        return "monitor";
27074    } else if (value.dnis.indexOf("adhoc.monitor") !== -1) {
27075        return "monitor";
27076    } else if (value.term_user == user && value.term_domain == domain) {
27077        return "inbound";
27078    } else if (value.by_user == user && value.by_domain == domain) {
27079        return "inbound";
27080    } else {
27081        return "outbound";
27082    }
27083
27084}
27085
27086function getMonitorId(value) {
27087
27088    var monId = "notmonitored";
27089    if (value.dnis.indexOf("adhoc.monitor") !== -1) {
27090        monId = value.dnis;
27091    } else if (value.orig_callid.indexOf("adhoc.monitor") !== -1) {
27092        monId = value.orig_callid;
27093    } else if (value.term_callid.indexOf("adhoc.monitor") !== -1) {
27094        monId = value.term_callid;
27095    } else if (value.term_uri.indexOf("adhoc.monitor") !== -1) {
27096        monId = value.term_uri;
27097    }
27098
27099    return monId.replace("callrequest.", "");
27100
27101}
27102
27103function isAdhocMonitor(value) {
27104    return value.orig_callid.includes("adhoc.monitor") || 
27105           value.term_callid.includes("adhoc.monitor") || 
27106           value.term_uri.includes("adhoc.monitor");
27107}
27108
27109function isDifferentDomain(value) {
27110    return value.orig_domain !== value.term_domain && 
27111           value.term_domain !== '*' && 
27112           value.term_domain !== '' && 
27113           value.orig_domain !== '*' && 
27114           value.orig_domain !== '';
27115}
27116
27117function getName(value, domain, user, number) {
27118    if (isAdhocMonitor(value)) {
27119        return "&nbsp;";
27120    }
27121
27122    number = cleanDevicePrep(number);
27123    if (number.length > 10) {
27124        number = number.replace(new RegExp("^[" + "1" + "]+"), "");
27125    }
27126
27127    if (typeof reversContactLookup !== 'undefined' && reversContactLookup[number]) {
27128        return reversContactLookup[number];
27129    }
27130    if (number.length === 10 && typeof reversContactLookup !== 'undefined' && reversContactLookup["1" + number]) {
27131        return reversContactLookup["1" + number];
27132    }
27133
27134    if (value.orig_domain !== value.term_domain) {
27135        if (domain === value.orig_domain && user === value.orig_user) {
27136            return cleanDevice(value.dnis) || "&nbsp;";
27137        }
27138        if (domain === value.term_domain && user === value.term_user) {
27139            return value.orig_name || "&nbsp;";
27140        }
27141    }
27142
27143    if (typeof reverseUserLookup !== 'undefined' && (reverseUserLookup[number] || reverseUserLookup[value.term_sub])) {
27144        return reverseUserLookup[number] || reverseUserLookup[value.term_sub];
27145    }
27146
27147    if (value.term_user === user && value.term_domain === domain) {
27148        return value.orig_name || value.orig_sub_name || cleanDevice(value.orig_id);
27149    }
27150    if (value.by_user === user && value.by_domain === domain) {
27151        return value.orig_name;
27152    }
27153    if (value.orig_from_user !== user) {
27154        return cleanDevice(value.dnis);
27155    }
27156    if (!value.by_user && value.orig_domain === domain) {
27157        return cleanDevice(value.term_id);
27158    }
27159
27160    return "&nbsp;";
27161}
27162
27163function getNumber(value, domain, user) {
27164    if (isAdhocMonitor(value) || isDifferentDomain(value)) {
27165        return "&nbsp;";
27166    }
27167
27168    if (value.term_user === user && value.term_domain === domain) {
27169        return cleanDevice(value.orig_domain === value.term_domain ? value.orig_match : value.orig_from_uri);
27170    }
27171
27172    if (value.by_user === user && value.by_domain === domain) {
27173        return cleanDevice(value.orig_from_uri);
27174    }
27175
27176    if (value.term_match.includes("sip:nms@")) {
27177        return cleanDevice(value.term_sub);
27178    }
27179
27180    return cleanDevice(value.term_uri);
27181}
27182
27183
27184function popoutShowCall(value, domain, user) {
27185    log("popoutShowCall");
27186    log("adding active call block");
27187    log(value);
27188    var tmpid = "" + value.orig_callid + "_" + value.term_callid + "_" + value.term_uri;
27189    var callId = tmpid.replace(/[^a-zA-Z0-9]/g, '-');
27190
27191    var popupId = '#popcall-popup-' + callId;
27192    var popoutBody = popupId + ' .popcall-body';
27193    var panelContent = popupId + ' .popcall-panel-content';
27194    var answerButton = popupId + ' .popcall-answer';
27195    var callButtons = popupId + ' .popcall-buttons';
27196    var holdButton = popupId + ' .popcall-hold';
27197    var holdLabel = popupId + ' .popcall-onhold';
27198    var endButton = popupId + ' .popcall-end';
27199    var rejectButton = popupId + ' .popcall-reject';
27200    var transButton = popupId + ' .popcall-transfer';
27201    var completeButton = popupId + ' .popcall-complete';
27202    var callFields = popupId + ' .popcall-fields';
27203
27204    var calltype = getType(value, domain, user);
27205    var number = getNumber(value, domain, user);
27206    var name = getName(value, domain, user,number);
27207
27208
27209    // log("popupId set calltype " +popupId);
27210
27211
27212    // log('calltype: ' + calltype);
27213    // log('number: ' + number);
27214    // log('name: ' + name);
27215
27216
27217
27218    // log(value);
27219    // log("test calltype " + $(popupId).data("calltype"));
27220
27221    if (calltype == "inbound") {
27222        if (value.term_match.indexOf("conference-bridge") !== -1)
27223            if (hideInboundConferencePopups)
27224                {
27225                    log('hiding popup because of hideInboundConferencePopups');
27226                    ignoreOrigId.push(value.orig_callid);
27227                    return;
27228                }
27229
27230
27231    }
27232    else
27233    {
27234        log()
27235        if (value.orig_match.indexOf("conference-bridge") !== -1)
27236        {
27237            if (hideInboundConferencePopups)
27238                {
27239                    log('hiding popup because of hideInboundConferencePopups');
27240                    ignoreOrigId.push(value.orig_callid);
27241                    return;
27242                }
27243        }
27244    }
27245    var popupHtml = "";
27246    popupHtml += '<div class="popcall-panel">';
27247
27248    if (calltype == "monitor") {
27249        popupHtml += '<div class="popcall-panel-content">' + '<h3 class="popcall-number">' ;
27250        number = "&nbsp;";
27251        name = "&nbsp;";
27252    }
27253    else if (calltype == "inbound") {
27254        popupHtml += '<div class="popcall-panel-content">' + '<h4>Incoming Call</h4>' + '<h3 class="popcall-number">' + number;
27255    } else {
27256        popupHtml += '<div class="popcall-panel-content">' + '<h4>Outbound Call</h4>' + '<h3 class="popcall-number">' + number;
27257        //popupHtml += '<div class="popcall-panel-content">' + '<h3 class="popcall-number">';
27258    }
27259
27260    if (calltype == "monitor") {
27261        popupHtml += '</h3>' + '<div class="loading-lg"></div>' + '<div class="popcall-monitor hide">'
27262        + '<h4 class="popcall-orignumber">' + number +'</h4>'
27263        + '<h5 class="popcall-origname">' + number +'</h5>'
27264        + '<h4>+</h4>'
27265        + '<h4 class="popcall-termnumber">' + number +'</h4>'
27266        + '<button class="btn barge-btn"  value="barge_in">' + _("Join Call") +'</button>'
27267        + '<button class="btn hide wisper-orig-btn" value="wisper_orig">' + _('Whisper Orig') + '</button>'
27268        + '<button class="btn hide wisper-term-btn" value="wisper_term">' + _("Whisper Term") + '</button>'
27269        + '<button class="btn listen-btn hide" value="listen">' + _("Listen Only") + '</button>'
27270
27271        '' + '</div>';
27272    }
27273    else
27274    {
27275    popupHtml += '</h3>' + '<form action="/portal/callhistory/notes" id="dispForm" ><div class="popcall-fields">' + '<select name="data[disposition]" class="popcall-disposition hide" id="disposition">'
27276        + '<option value="">Disposition</option>' + '</select>' + '<select name="data[reason]" class="popcall-reason hide" id="reason">'
27277        + '<option value="">Reason</option>' + '</select>' +
27278
27279        '<textarea name="data[notes]" class="popcall-notes hide" placeholder="' + _('Notes') + '"></textarea>' + '</div></form>';
27280    }
27281
27282    popupHtml += '</div> <!--/popcall-panel-content-->';
27283    popupHtml += '<div class="popcall-buttons">';
27284
27285    if (value.by_action=="ForwardSRing")
27286    {
27287        popupHtml += '<h5 class="forward-select hide">Answer using: <select></select></h5> ';
27288    }
27289
27290    if (calltype == "monitor") {
27291        //##TODO add in monitor options
27292        name = _("Audio Monitoring");
27293    }
27294    else if (calltype == "inbound")
27295        popupHtml += '<button class="popcall-reject btn btn-danger"><i class="end"></i>Reject</button><button class="popcall-answer btn btn-success"><i class="answer"></i>Answer</button>';
27296    else {
27297        popupHtml += '<button class="popcall-end end-outbound btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>';
27298    }
27299    popupHtml += '</div>';
27300    popupHtml += '</div> <!--/popcall-panel -->';
27301
27302    var toPrepend = '<div id="popcall-popup-' + callId + '"class="popcall-popup hide" orig_callid="'
27303        + value.orig_callid.replace(/[^a-zA-Z0-9]/g, '-') + '"  term_callid="' + value.term_callid.replace(/[^a-zA-Z0-9]/g, '-')
27304        + '" >'
27305        + '<div class="popcall-body">' + popupHtml + '</div>'
27306        + '</div>';
27307
27308    // prepend popout html
27309    $('.popcall-container').prepend(toPrepend);
27310
27311    var termIds = [value.term_callid.replace(/[^a-zA-Z0-9]/g, '-')];
27312
27313
27314    $(popupId).data('termIds',termIds);
27315    $(popupId).data("calltype",calltype);
27316    $(popupId).data("number",number);
27317    $(popupId).data("name",name);
27318    $(popupId).data("orig_callid",value.orig_callid);
27319    $(popupId).data("term_callid",value.term_callid);
27320
27321    if (value.by_action=="ForwardSRing")
27322    {
27323        log("is sim ring");
27324        var termDevices = [];
27325        if (value.term_domain == value.term_to_uri.substring( value.term_to_uri.indexOf('@')+1) )
27326            if (!$.inArray(value.term_to_uri, termDevices))
27327                termDevices.push(value.term_to_uri);
27328        $(popupId).data("termDevices",termDevices);
27329    }
27330
27331
27332    if (calltype == "monitor") {
27333        monitorIds.push(getMonitorId(value));
27334        $(popupId).data("monitorId", getMonitorId(value));
27335        $(popupId).data("legCount", 0);
27336        //$(popupId).hide();
27337    }
27338
27339    //hide dialpad
27340    if ($(".popcall-container .dial-pad").is(":visible"))
27341        $(".popcall-container .dial-pad").animate({
27342                    height:'hide'
27343                },{
27344                    complete: function(){
27345                        $('.dial-pad').remove();
27346                        $('#make-call').button('toggle');
27347                    }
27348                });
27349
27350    //reveal popout call section
27351    $(popupId).animate({
27352                height:'show'
27353            }, {
27354                progress: function(){
27355                    resizePopoutContent();
27356                },
27357                complete: function() {
27358                    //log("adding call");
27359                    // if (value.by_action == "MoveTo") {
27360                    // } else if (value.time_answer == "0000-00-00 00:00:00") {
27361                    //     if (calltype == "inbound")
27362                    //         pulse();
27363                    // } else {
27364                    // }
27365                    // function pulse() {
27366                    //
27367                    //     // pulsate active call content for user attention
27368                    //     $(popoutBody).animate({
27369                    //         backgroundColor : "#F3F781"
27370                    //     }, 700, function() {
27371                    //         $(this).animate({
27372                    //             backgroundColor : "#fff"
27373                    //         }, 700, pulse);
27374                    //     });
27375                    // }
27376                }
27377        });
27378
27379    // clicking answer stops pulse and shows button group
27380    $(document).on(
27381        'click',
27382        answerButton,
27383        function() {
27384            $(answerButton).prop("disabled", true);;
27385            $(rejectButton).prop("disabled", true);;
27386
27387
27388            var url =     "/portal/calls/answer/" + escapeCallid(value.term_callid) + "/" + cleanDevice(value.term_uri);
27389            log("url is " + url);
27390            $.post(url, function() {
27391            })
27392
27393            //ignoreOrigId.push(value.orig_callid);
27394            ignoreTermId.push(value.term_callid);
27395            intendedAnsOrigId.push(value.orig_callid);
27396
27397            // stop pulsing after clicking answer
27398//            $(popoutBody).animate({
27399//                backgroundColor : '#fff'
27400//            }).stop();
27401//
27402//            $(panelContent + ' h3').remove();
27403//
27404//            // if not showing disposition fields, show active call
27405//            // message
27406//            $(panelContent + ' h4').text('Active Call');
27407//
27408//            $(panelContent).prepend(
27409//                '<div class="popcall-info">' + '<h5 class="popcall-name">' + number + '<span gmt_answer="' + value.time_answer
27410//                    + '" class="popcall-timer duration_counter pull-right">00:00</span>' + '</h5>' + '</div>');
27411//
27412//            // slide reveal cdr fields
27413//            // $(callFields).slideDown(400);
27414//
27415//            // show call handling buttons after answering
27416//            $(callButtons).html(
27417//                '<div class="btn-group popcall-callactions"><button class="popcall-hold btn" data-toggle="button" title="' + _('Hold') + '"><i class="hold"></i></button>'
27418//                    + '<button class="popcall-end btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>'
27419//                    + '<button class="popcall-transfer btn" title="' + _('Transfer') + '"><i class="transfer"></i></button></div>');
27420
27421    });
27422
27423    // show complete button after clicking end
27424    $(document).on('click', endButton, function() {
27425        $.post("/portal/calls/terminate/" + escapeCallid(value.orig_callid), function() {
27426        })
27427
27428        ignoreOrigId.push(value.orig_callid);
27429
27430        $(endButton).prop("disabled", true);
27431        if (typeof holdButton!="undefined")
27432            $(holdButton).prop("disabled", true);
27433        if (typeof transButton!="undefined")
27434            $(transButton).prop("disabled", true);
27435
27436        // stop pulsing after clicking answer
27437        //$(popoutBody).animate({
27438        //    backgroundColor : '#fff'
27439        //}).stop();
27440        //
27441        //$(callButtons).html('<button class="popcall-complete btn btn-primary">Complete</button>');
27442    });
27443
27444    $(document).on('click', rejectButton, function() {
27445        if (value.by_action=="QueueSDispatch" || value.by_action=="QueueSDispatch")
27446        {
27447          $.post("/portal/calls/reject/" + escapeCallid(value.orig_callid)+"/"+value.term_to_uri.replace(":","COLLON"), function() {log('reject call');});
27448		}
27449        else
27450          $.post("/portal/calls/reject/" + escapeCallid(value.orig_callid), function() {log('reject call');});
27451
27452        $(answerButton).prop("disabled", true);;
27453        $(rejectButton).prop("disabled", true);;
27454
27455        ignoreOrigId.push(value.orig_callid);
27456
27457        // stop pulsing after clicking answer
27458        $(popoutBody).animate({
27459                backgroundColor : '#fff'
27460            }).stop();
27461
27462        // remove inline styles added by .animate() to reset
27463        $('.popcall-container').removeAttr('style');
27464
27465        //$(callButtons).html('<button class="popcall-complete btn btn-primary">Complete</button>');
27466
27467        //removes call popup completely
27468        $(popupId).remove();
27469
27470        //resize content scrollable area
27471        resizePopoutContent();
27472        checkPopupWidth();
27473    });
27474
27475    // show hold label after clicking hold button
27476    if (typeof holdButton!="undefined")
27477        $(document).on('click',holdButton, function() {
27478            if ($(holdLabel).is(':visible')) {
27479                $.post("/portal/calls/unhold/" + escapeCallid(value.orig_callid))
27480                .done(function(data) {
27481                    $(holdLabel).hide();
27482                });
27483            } else {
27484                log('should show hold label');
27485                if (calltype === "inbound") {
27486                    $.post("/portal/calls/hold_orig/" + escapeCallid(value.orig_callid))
27487                    .done(function(data) {
27488                        $(holdLabel).show();
27489                        log('should show hold label');
27490                    });
27491                } else {
27492                    $.post("/portal/calls/hold_term/" + escapeCallid(value.orig_callid))
27493                    .done(function () {
27494                        $(holdLabel).show();
27495                        log('should show hold label');
27496                    });
27497                }
27498            }
27499          });
27500
27501    // hide and remove call display after clicking complete
27502    $(document).on('click', completeButton, function() {
27503        sendDispostion(popupId);
27504        $(popupId).remove();
27505
27506        ignoreOrigId.push(value.orig_callid);
27507
27508        //resize content scrollable area
27509        resizePopoutContent();
27510        checkPopupWidth();
27511    });
27512
27513    if (value.time_answer != "0000-00-00 00:00:00")
27514        popoutModifyCallsameURI($(popupId), value, domain, user);
27515
27516} // end popoutShowCall function
27517
27518function escapeCallid(callid)
27519{
27520  return callid.replace(":","COLON").replace(":","COLON").replace(":","COLON").replace(":","COLON").replace(":","COLON").replace(":","COLON").replace(":","COLON").replace(":","COLON").replace(":","COLON");
27521}
27522
27523function startVideo(ext, session_id = null,type,isScreen, isPremiumVideo = null) {
27524    //send message over before starting video, for event type chat message
27525    if(!type)
27526      type = 'start';
27527    if(!isScreen)
27528      isScreen = false;
27529    
27530    // only make group dest format if needed
27531    if (ext.includes(',')) {
27532        var destArray = ext.split(',');
27533    } else {
27534        var destArray = ext;
27535    }
27536    var name = $("#namechange-input-"+session_id).val(); //need remote and such
27537    console.debug(`starVideo called ${PORTAL_VIDEO_ENABLED} ${PORTAL_PREMIUM_VIDEO_ENABLED} | ${PORTAL_VIDEO_ENABLED} ${ext} ${type} ${isScreen}`);
27538
27539    //OMP-5301 api v2 post for conference create to get meeting_url
27540    if(PORTAL_PREMIUM_VIDEO_ENABLED || isPremiumVideo) {
27541        netsapiens.api.v2({ object: 'video', action: 'get' }, `domains/${sub_domain}/users/${sub_user}/video`)
27542            .then((host) => {
27543            if( type == 'schedule' ) {
27544                if(host.iotum_domain){
27545                    var url = `https://${host.iotum_domain}/auth?host_id=${host.host_id}&login_token_public_key=${host.login_token_public_key}&redirect_url=conf/conferences/schedule`;
27546                    var options = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=1200,height=900';
27547                    var openWin = window.open(url,'_blank',options);
27548                } else {
27549                    console.log('Invalid host', host);
27550                }
27551                return;
27552            } else if ( type == 'start') {
27553                // take in placeholder of video session
27554                if (session_id == 'xx') {
27555                    session_id = null;
27556                }
27557
27558                if (session_id == null) {
27559                //generate session_id else API will create an arbitrary one that might not match existing session_id in portal cache message_sessions
27560                session_id = generateSessionId(sub_domain, null, sub_user+'@'+sub_domain, ext+'@'+sub_domain, null, null, session_id);
27561                }
27562
27563                netsapiens.api.v2({ object: 'video', action: 'post', data: { participants: ext } }, `domains/${sub_domain}/users/${sub_user}/video/conference`)
27564                .then((conference) => {
27565                    var meeting_room = conference.one_time_access_code ? `/conf/call/${conference.one_time_access_code}` : conference.room_url;
27566                    var rediect_to = isScreen ? `${meeting_room}?joinScreenShare=true` : meeting_room;
27567                    var url = `https://${host.iotum_domain}/auth?host_id=${host.host_id}&login_token_public_key=${host.login_token_public_key}&redirect_url=${rediect_to}`;
27568                    console.log('StartVideo url:', url);
27569                    var args = {
27570                        object: 'message',
27571                        action: 'create',
27572                        type: 'chat-video-invite',
27573                        domain: sub_domain,
27574                        user: sub_user,
27575                        session_id: session_id,
27576                        message: conference.room_url,
27577                        destination: destArray
27578                    }
27579
27580                    // do not send a self-message when starting a video conference with just yourself
27581                    if (ext == sub_user) {
27582                        var options = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=1200,height=900';
27583                        var openWin = window.open(url,'_blank',options);
27584
27585                        return;
27586                    }
27587
27588                    console.log('Video Invite session:', session_id);
27589                    netsapiens.api.post(args).then(function(){
27590                        var options = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=1200,height=900';
27591                        var openWin = window.open(url,'_blank',options);
27592                    });
27593                })
27594                .catch((e) => {
27595                    console.error(e);
27596                });
27597            }
27598            return;
27599            }).catch((e) => {
27600                console.error('startVideo error:',e);
27601                return;
27602            });
27603    } else if (PORTAL_VIDEO_ENABLED) {
27604        // this is video meeting with just myself
27605        if (ext && ext == sub_user) {
27606            if (type == 'start') {
27607                let url = 'https://' + server_name + '/video/start';
27608                var options = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=1200,height=900';
27609                var openWin = window.open(url,'_blank',options);
27610            } else if (type == 'schedule') {
27611                let url = 'https://' + server_name + '/video/'+type;
27612                var options = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=1200,height=900';
27613                var openWin = window.open(url,'_blank',options);
27614            }
27615            return;
27616        }
27617
27618        // keep the scheduling, should just open schedule url
27619        let url = 'https://' + server_name + '/video/'+type;
27620        if (ext && type == 'schedule')
27621        {
27622            url +='?users=' + ext;
27623            var options = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=1200,height=900';
27624            var openWin = window.open(url,'_blank',options);
27625            return;
27626        }
27627
27628        // take in placeholder of video session
27629        if (session_id == 'xx') {
27630            session_id = null;
27631        }
27632
27633        if (session_id == null) {
27634        //generate session_id else API will create an arbitrary one that might not match existing session_id in portal cache message_sessions
27635        session_id = generateSessionId(sub_domain, null, sub_user+'@'+sub_domain, ext+'@'+sub_domain, null, null, session_id);
27636        }
27637
27638        let meetingId = '';
27639        // get the meeting ID
27640        var argsCreateMeeting1 = {
27641            object: 'meeting',
27642            action: 'create',
27643            domain: sub_domain,
27644            user: sub_user,
27645            getId: 'yes',
27646
27647        }
27648        netsapiens.api.post(argsCreateMeeting1).then(function(getIdResObj){
27649            if (typeof getIdResObj == 'string')
27650            getIdResObj = JSON.parse(getIdResObj);
27651            meetingId = getIdResObj.id;
27652
27653            const attendees = [];
27654            attendees.push({
27655                name: sub_name,
27656                email: sub_email,
27657                role: 'host',
27658                uid: sub_user + '@' + sub_domain,
27659            });
27660            var createAttendee = {
27661                object: 'meeting',
27662                action: 'create',
27663                format: 'json',
27664                domain: sub_domain,
27665                user: sub_user,
27666                id: meetingId,
27667                name: '',
27668                attendees: JSON.stringify(attendees),
27669            }
27670
27671            netsapiens.api.post(createAttendee).then(function() {
27672                //send message for video invite
27673                var args = {
27674                    object: 'message',
27675                    action: 'create',
27676                    type: 'chat-video-invite',
27677                    domain: sub_domain,
27678                    user: sub_user,
27679                    session_id: session_id,
27680                    message: meetingId, //doesnt actually appear anywhere, just placeholder
27681                    destination: destArray
27682                }
27683                netsapiens.api.post(args).then(function(){
27684                    let url = 'https://' + server_name + '/video/?id='+meetingId;
27685                    if (ext) 
27686                        url +='&users=' + ext;
27687                    if (isScreen)
27688                        url += "&ss=1";
27689                    var options = 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,width=1200,height=900';
27690                    window.open(url,'_blank',options);
27691                });
27692            });
27693        });
27694    }
27695}
27696
27697function popupShowScreenshare(value, domain, user) {
27698    log("popupShowScreenshare");
27699
27700    if (value!=null)
27701        {
27702    log(value);
27703    log(value.getId());
27704    log(value.getRemoteFriendlyName());
27705    log(value.getRemoteUri());
27706}
27707    var box = '<div id="screenshare-layout-'+user+'" class="dock-column" style="height: 507px; width:480px"> ';
27708        box =box + '     <div class="dock-column-inner" style="height: 507px; width:470px"> ';
27709        box =box + '     <div class="dock-popup chat-popup" style="display: block;"> ';
27710        box =box + '     <div class="dock-head">';
27711        box =box + '       <div class="dock-head-buttons"> ';
27712        box =box + '        <i class="dock-minimize icon-minimize icon-white" title="' + _('Minimize') + '"> ';
27713        box =box + '        </i><i class="dock-close icon-remove icon-white"></i></div> ';
27714        box =box + '         <div class="dock-head-title">';
27715        box =box + '          <i class="icon-picture icon-white"></i><span class="dock-name">'+user+'</span> ';
27716        box =box + '       </div>';
27717        box =box + '     </div> ';
27718        box =box + '     <div class="dock-body " style="background-color: rgb(255, 255, 255);"> ';
27719        box =box + '<div id="divCallCtrl" class="inDock">';
27720
27721
27722//        box =box + '<div id="divCallCtrl" class=" well" >';
27723//        box =box + ' <table style="width: 100%;">';
27724//        box =box + '<tr><td id="tdVideo" class="tab-video">';
27725//        box =box + '<div id="divVideo" class="div-video"> ';
27726//        box =box + '  <div id="divVideoRemote" style="border:1px solid #000; height:100%; width:100%"> ';
27727//        box =box + '     <video class="video" width="240px" height="200px" id="video_remote" autoplay="autoplay" style="opacity: 0;  ';
27728//        box =box + '        background-color: #000000; -webkit-transition-property: opacity; -webkit-transition-duration: 2s;"> ';
27729//        box =box + '    </video> ';
27730//        box =box + '</div> ';
27731//        box =box + '<div id="divVideoLocal" style="border:0px solid #000"> ';
27732//        box =box + '    <video class="video" width="88px" height="72px" id="video_local" autoplay="autoplay" muted="true" style="opacity: 0; ';
27733//        box =box + '         margin-top: -80px; margin-left: 5px; background-color: #000000; -webkit-transition-property: opacity; ';
27734//        box =box + '         -webkit-transition-duration: 2s;"> ';
27735//        box =box + '    </video> ';
27736//        box =box + ' </div> ';
27737//        box =box + '  </div> ';
27738//        box =box + '  </td></tr> ';
27739//        box =box + ' </table >';
27740//        box =box + '  </div> ';
27741    box =box + '  </div> ';
27742        box =box + '';
27743        box =box + '</div> ';
27744//        box =box + '             <div class="chat-message-field input-append hide" style="display: block;"> ';
27745//        box =box + '             <input id="chat-new-message-box-'+user+'" class="chat-message-box" type="text" placeholder="Enter chat message"  > ';
27746//        box =box + '             <button type="button" class="btn" onclick="sendPrivateMessage(\''+user+'\')" title="' + _('Send') + '"> ';
27747//        box =box + '             <i class="icon-arrow-right" ></i></button></div> ';
27748//        box =box + '             </div>'  ;
27749        log(box);
27750
27751        $('.dock-popup-overlay').prepend(box);
27752
27753        $( ".divCallCtrlHidden" ).clone(true,true).appendTo( "#screenshare-layout-"+user+" .dock-body" );
27754        //$( ".divCallCtrlHidden" ).remove();
27755
27756        $( ".divBtnCallGroup" ).append( '<button id="btnFull" class="btn btn-primary"  onclick="toggleFullScreen();" value="Full Screen">Full Screen</button>' );
27757
27758
27759
27760        dockHeight();
27761
27762        $('#btnCall').click(function() {
27763              //alert( "Handler for .click() called." );
27764              sipCall("answer");
27765        });
27766
27767        $('#btnFullScreen').click(function() {
27768            toggleFullScreen();
27769              //alert( "Handler for .click() called." );
27770             // sipCall("answer");
27771        });
27772
27773
27774
27775//        uiBtnCallSetText('Answer');
27776//        btnHangUp.value = 'Reject';
27777//        btnCall.disabled = false;
27778//        btnHangUp.disabled = false;
27779//
27780//        startRingTone();
27781
27782
27783
27784        //trigger send button when pressing enter in chat message field
27785        // $('.chat-message-box').on("keyup", function(e) {
27786        //     if(e.which == 13)
27787        //         $(this).next().trigger("click");
27788        // });
27789
27790        dockHeight();
27791}
27792
27793function popupShowScreenshare2(value, domain, user) {
27794    log("popupShowScreenshare");
27795    log(value);
27796    log(value.getId());
27797    log(value.getRemoteFriendlyName());
27798    log(value.getRemoteUri());
27799
27800
27801
27802    //var tmpid = "" + value.orig_callid + "_" + value.term_callid + "_" + value.term_uri;
27803    var callId = value.getRemoteFriendlyName() +"_"+value.getId()+domain;
27804    //log(value);
27805
27806    var popupId = '#popcall-popup-' + callId;
27807    var popoutBody = popupId + ' .popcall-body';
27808    var panelContent = popupId + ' .popcall-panel-content';
27809    var answerButton = popupId + ' .popcall-answer';
27810    var callButtons = popupId + ' .popcall-buttons';
27811    var holdButton = popupId + ' .popcall-hold';
27812    var holdLabel = popupId + ' .popcall-onhold';
27813    var endButton = popupId + ' .popcall-end';
27814    var rejectButton = popupId + ' .popcall-reject';
27815    var transButton = popupId + ' .popcall-transfer';
27816    var completeButton = popupId + ' .popcall-complete';
27817    var callFields = popupId + ' .popcall-fields';
27818
27819    var calltype = "inbound";
27820    var number = user;
27821    var name = "no name yet";
27822
27823
27824
27825    var popupHtml = "";
27826    popupHtml += '<div class="popcall-panel">';
27827
27828    if (calltype == "monitor") {
27829
27830        popupHtml += '<div class="popcall-panel-content">' + '<h3 class="popcall-number">' ;
27831        number = "&nbsp;";
27832        name = "&nbsp;";
27833    }
27834    else if (calltype == "inbound") {
27835        popupHtml += '<div class="popcall-panel-content">' + '<h4>Incoming Call</h4>' + '<h3 class="popcall-number">' + number;
27836    } else {
27837        popupHtml += '<div class="popcall-panel-content">' + '<h4>Outbound Call</h4>' + '<h3 class="popcall-number">' + number;
27838        //popupHtml += '<div class="popcall-panel-content">' + '<h3 class="popcall-number">';
27839    }
27840
27841
27842    popupHtml += '</h3>' + '<form action="/portal/callhistory/notes" id="dispForm" ><div class="popcall-fields">' + '<select name="data[disposition]" class="popcall-disposition hide" id="disposition">'
27843        + '<option value="">Disposition</option>' + '</select>' + '<select name="data[reason]" class="popcall-reason hide" id="reason">'
27844        + '<option value="">Reason</option>' + '</select>' +
27845
27846        '<textarea name="data[notes]" class="popcall-notes hide" placeholder="' + _('Notes') + '"></textarea>' + '</div></form>';
27847
27848
27849    popupHtml += '</div> <!--/popcall-panel-content-->';
27850    popupHtml += '<div class="popcall-buttons">';
27851
27852    if (calltype == "inbound")
27853        popupHtml += '<button class="popcall-reject btn btn-danger"><i class="end"></i>Reject</button><button class="popcall-answer btn btn-success"><i class="answer"></i>Answer</button>';
27854    else {
27855        popupHtml += '<button class="popcall-end end-outbound btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>';
27856    }
27857    popupHtml += '</div>';
27858    popupHtml += '</div> <!--/popcall-panel -->';
27859
27860    var toPrepend = '<div id="popcall-popup-' + callId + '" class="popcall-popup"    >'
27861        + '<div class="popcall-body">' + popupHtml + '</div>'
27862        + '</div>';
27863
27864    // prepend popout html
27865    log(toPrepend)
27866    $('.popcall-container').prepend(toPrepend);
27867
27868    $(popupId).data("calltype",calltype);
27869    $(popupId).data("number",number);
27870    $(popupId).data("name",name);
27871
27872    //hide dialpad
27873    if ($(".popcall-container .dial-pad").is(":visible"))
27874        $(".popcall-container .dial-pad").animate({
27875                    height:'hide'
27876                },{
27877                    complete: function(){
27878                        $('.dial-pad').remove();
27879                        $('#make-call').button('toggle');
27880                    }
27881                });
27882
27883    //reveal popout call section
27884    $(popupId).animate({
27885                height:'show'
27886            }, {
27887                progress: function(){
27888                    resizePopoutContent();
27889                },
27890                complete: function() {
27891                    log("adding call");
27892
27893                    // function pulse() {
27894                    //
27895                    //     // pulsate active call content for user attention
27896                    //     $(popoutBody).animate({
27897                    //         backgroundColor : "#F3F781"
27898                    //     }, 700, function() {
27899                    //         $(this).animate({
27900                    //             backgroundColor : "#fff"
27901                    //         }, 700, pulse);
27902                    //     });
27903                    // }
27904                }
27905        });
27906
27907    ;
27908    //$(popupId).show():
27909
27910
27911    // clicking answer stops pulse and shows button group
27912    $(document).on(
27913        'click',
27914        answerButton,
27915        function() {
27916            $(answerButton).prop("disabled", true);;
27917            $(rejectButton).prop("disabled", true);;
27918
27919            $.post("/portal/calls/answer/" + escapeCallid(value.term_callid) + "/" + cleanDevice(value.term_uri), function() {
27920            });
27921
27922            //ignoreOrigId.push(value.orig_callid);
27923            ignoreTermId.push(value.term_callid);
27924            intendedAnsOrigId.push(value.orig_callid);
27925
27926
27927
27928        });
27929
27930    // show complete button after clicking end
27931    $(document).on('click', endButton, function() {
27932        $.post("/portal/calls/terminate/" + escapeCallid(value.orig_callid), function() {
27933        });
27934
27935        ignoreOrigId.push(value.orig_callid);
27936
27937        if (typeof endButton!="undefined")
27938            $(endButton).prop("disabled", true);
27939        if (typeof holdButton!="undefined")
27940            $(holdButton).prop("disabled", true);
27941        if (typeof transButton!="undefined")
27942            $(transButton).prop("disabled", true);
27943
27944
27945    });
27946
27947    $(document).on('click', rejectButton, function() {
27948if (value.by_action=="QueueSDispatch" || value.by_action=="QueueSDispatch")
27949      {
27950        $.post("/portal/calls/reject/" + escapeCallid(value.orig_callid)+"/"+value.term_to_uri.replace(":","COLLON"), function() {log('reject call');});
27951      }
27952      else
27953        $.post("/portal/calls/reject/" + escapeCallid(value.orig_callid), function() {log('reject call');});
27954
27955        $(answerButton).prop("disabled", true);;
27956        $(rejectButton).prop("disabled", true);;
27957
27958        ignoreOrigId.push(value.orig_callid);
27959
27960        // stop pulsing after clicking answer
27961        $(popoutBody).animate({
27962                backgroundColor : '#fff'
27963            }).stop();
27964
27965        // remove inline styles added by .animate() to reset
27966        $('.popcall-container').removeAttr('style');
27967
27968        //$(callButtons).html('<button class="popcall-complete btn btn-primary">Complete</button>');
27969
27970        //removes call popup completely
27971        $(popupId).remove();
27972
27973        //resize content scrollable area
27974        resizePopoutContent();
27975    });
27976
27977    // show hold label after clicking hold button
27978    if (typeof holdButton!="undefined")
27979        $(document).on('click',holdButton, function() {
27980            if ($(holdLabel).is(':visible')) {
27981                $.post("/portal/calls/unhold/" + escapeCallid(value.orig_callid), function() {
27982                }).done(function(data) {
27983                    $(holdLabel).hide();
27984                });
27985
27986            } else {
27987
27988                log('should show hold label');
27989                if (calltype == "inbound")
27990                    $.post("/portal/calls/hold_orig/" + escapeCallid(value.orig_callid), function() {
27991                    }).done(function(data) {
27992                        $(holdLabel).show();
27993                        log('should show hold label');
27994                    });
27995                else
27996                    $.post("/portal/calls/hold_term/" + escapeCallid(value.orig_callid), function() {
27997                    }).done(function(data) {
27998                        $(holdLabel).show();
27999                        log('should show hold label');
28000                    });
28001
28002            }
28003        });
28004
28005    // hide and remove call display after clicking complete
28006    $(document).on('click', completeButton, function() {
28007        sendDispostion(popupId);
28008        $(popupId).remove();
28009
28010        ignoreOrigId.push(value.orig_callid);
28011
28012        //resize content scrollable area
28013        resizePopoutContent();
28014    });
28015
28016
28017
28018    log("end popoutShowScreenshare function");
28019
28020    //if (value.time_answer != "0000-00-00 00:00:00")
28021    //    popoutModifyCallsameURI($(popupId), value, domain, user);
28022
28023} // end popoutShowCall function
28024
28025function dockShowCall(value, domain, user) {
28026    console.log("dockShowCall");
28027    console.log("adding active call block");
28028    console.log(value);
28029    // debugger;
28030    var tmpid = "" + value.orig_callid + "_" + value.term_callid + "_" + value.term_uri;
28031    var callId = tmpid.replace(/[^a-zA-Z0-9]/g, '-');
28032    //log(value);
28033    var panelId = '#dockcall-' + callId;
28034    var columnId = '#dockcall-column-' + callId;
28035    //log("columnId = " + columnId);
28036    var panelHome = $(panelId);
28037    var dockPopup = columnId + ' .dock-popup';
28038    var dockBody = columnId + ' .dockcall-body';
28039    var panelContent = columnId + ' .dockcall-panel-content';
28040    var answerButton = columnId + ' .dockcall-answer';
28041    var callButtons = columnId + ' .dockcall-buttons';
28042    var holdButton = columnId + ' .dockcall-hold';
28043    var holdLabel = columnId + ' .dockcall-onhold';
28044    var endButton = columnId + ' .dockcall-end';
28045    var rejectButton = columnId + ' .dockcall-reject';
28046    var transButton = columnId + ' .dockcall-transfer';
28047    var completeButton = columnId + ' .dockcall-complete';
28048    var callFields = columnId + ' .dockcall-fields';
28049
28050    var calltype = getType(value, domain, user);
28051    var number = getNumber(value, domain, user);
28052    var name = getName(value, domain, user,number);
28053
28054    //log("columnId set calltype " +columnId);
28055
28056    // if the orig_callid string doesn't contain 'CallToTalk' string but its from the
28057    // "Call-To-Talk app, then return out for the first call(s) executing dockShowCall
28058    // BUT show the active call popup when this string contains 'CallToTalk' -> its the actual active call
28059    var hasString = value.orig_callid.indexOf('CallToTalk') !== -1;
28060    if (value.orig_from_user == "Call-To-Talk" && hasString === false) {
28061        log('not showing dockcall because of Call-To-Talk');
28062        return;
28063    }
28064
28065
28066    var hasVideoBridge = value.term_to_uri.indexOf('video.bridge') !== -1;
28067
28068    if (hasVideoBridge) {
28069        log('video bridge!, ignoring');
28070        return;
28071    }
28072
28073    if (value.orig_from_user =="CallPlayAccount" || value.orig_from_user =="Call-Play-Account") {
28074        log('not showing dockcall because of CallPlayAccount');
28075        return;
28076    }
28077    if (value.orig_from_user =="PromptRetrieve" || value.orig_from_user =="PromptRetrieve") {
28078        log('not showing dockcall because of PromptRetrieve');
28079        return;
28080    }
28081    else if (name =="PromptRetrieve" || name =="PromptRetrieve") {
28082        log('not showing dockcall because of PromptRetrieve');
28083        return;
28084    }
28085    else if (number =="PromptRetrieve" || number =="PromptRetrieve") {
28086        log('not showing dockcall because of PromptRetrieve');
28087        return;
28088    }
28089
28090    else if (value.orig_to_user.startsWith("X") &&  value.orig_sub ==sub_user) {
28091        log('not showing dockcall because of of transfer completion');
28092        return;
28093    }
28094    else if (value.orig_to_user.startsWith("X") &&  value.by_sub ==sub_user && value.term_sub !=sub_user) {
28095        log('not showing dockcall because of of transfer completion');
28096        return;
28097    }
28098
28099
28100    if (value.term_to_uri == "VMail" && sub_user == value.term_sub) {
28101        ignoreOrigId.push(value.orig_callid);
28102        log('not showing dockcall because of VMail');
28103        return;
28104    }
28105
28106
28107
28108    //log('calltype: ' + calltype);
28109    //log('number: ' + number);
28110    //log('name: ' + name);
28111
28112
28113
28114    //log(value);
28115    //log("test calltype " + $(columnId).data("calltype"));
28116
28117    if (value.term_match.indexOf("w@") !== -1 && value.orig_match.indexOf("w@") !== -1)
28118    {
28119        if (value.media =="VP8"|| value.media =="H264"|| value.media =="H265" || value.media =="VP9")
28120        {
28121        log('not showing dockcall because of w@ and video codec');
28122        return;
28123        }
28124    }
28125    if (value.term_match.indexOf("vb@") !== -1 && value.orig_match.indexOf("vb@") !== -1)
28126    {
28127        if (value.media =="VP8"|| value.media =="H264"|| value.media =="H265"|| value.media =="VP9")
28128        {
28129        log('not showing dockcall because of vb@ and video codec');
28130        return;
28131        }
28132    }
28133    if (value.term_match.indexOf("sip:data") !== -1 && value.orig_match.indexOf("sip:data") !== -1)
28134    {
28135        log('not showing dockcall because of sip:data');
28136        ignoreOrigId.push(value.orig_callid);
28137        return;
28138    }
28139
28140    if (calltype == "inbound") {
28141
28142        if (value.term_match.indexOf("wp@") !== -1)
28143        {
28144            log('not showing dockcall because of wp@');
28145            //ignoreOrigId.push(value.orig_callid);
28146            return;
28147        }
28148
28149        if (value.term_match.indexOf("sip:data") !== -1)
28150        {
28151            log('not showing dockcall because of sip:data');
28152            ignoreOrigId.push(value.orig_callid);
28153            return;
28154        }
28155
28156        if (value.term_match.indexOf("vb@") !== -1)
28157        {
28158            log('not showing dockcall because of w@');
28159            ignoreTermId.push(value.term_callid);
28160            return;
28161        }
28162
28163        if (value.term_match.indexOf("conference-bridge") !== -1)
28164            if (hideInboundConferencePopups)
28165            {
28166                log('not showing dockcall because of conference-bridge');
28167                ignoreOrigId.push(value.orig_callid);
28168                return;
28169            }
28170
28171    }
28172    else
28173    {
28174        if (value.orig_match.indexOf("wp@") !== -1)
28175        {
28176            log('not showing dockcall because of wp@');
28177            ignoreOrigId.push(value.orig_callid);
28178            return;
28179        }
28180        if (value.orig_match.indexOf("vb@") !== -1)
28181        {
28182            log('not showing dockcall because of vb@');
28183            ignoreOrigId.push(value.orig_callid);
28184            return;
28185        }
28186        if (value.orig_match.indexOf("conference-bridge") !== -1)
28187        {
28188            if (hideInboundConferencePopups)
28189            {
28190                log('not showing dockcall because of conference-bridge');
28191                ignoreOrigId.push(value.orig_callid);
28192                return;
28193            }
28194        }
28195    }
28196
28197    var popupHtml = "";
28198    popupHtml += '<div id="dockcall-' + callId + '" orig_callid="' + value.orig_callid.replace(/[^a-zA-Z0-9]/g, '-') + '"  term_callid="'
28199        + value.term_callid.replace(/[^a-zA-Z0-9]/g, '-') + '"  class="dockcall-panel">';
28200
28201    if (calltype == "monitor") {
28202
28203        popupHtml += '<div class="dockcall-panel-content">' + '<h3 class="dockcall-number">' ;
28204        number = "&nbsp;";
28205        name = "&nbsp;";
28206    }
28207    else if (calltype == "inbound") {
28208        popupHtml += '<div class="dockcall-panel-content">' + '<h4>' + _('Incoming Call') + '</h4>' + '<h3 class="dockcall-number">' + number;
28209    } else {
28210        popupHtml += '<div class="dockcall-panel-content">' + '<h4>' + _('Outbound Call') + '</h4>' + '<h3 class="dockcall-number">' + number;
28211        //popupHtml += '<div class="dockcall-panel-content">' + '<h3 class="dockcall-number">';
28212    }
28213
28214    if (calltype == "monitor") {
28215        popupHtml += '</h3>' + '<div class="loading-lg"></div>' + '<div class="dockcall-monitor hide">'
28216        + '<h4 class="dockcall-orignumber">' + number +'</h4>'
28217        + '<h5 class="dockcall-origname">' + number +'</h5>'
28218        + '<h4>+</h4>'
28219        + '<h4 class="dockcall-termnumber">' + number +'</h4>'
28220        + '<button class="btn barge-btn"  value="barge_in">' +_("Join Call") +'</button>'
28221        + '<button class="btn hide wisper-orig-btn" value="wisper_orig">' + _('Whisper Orig') + '</button>'
28222        + '<button class="btn hide wisper-term-btn" value="wisper_term">' + _('Whisper Term') + '</button>'
28223        + '<button class="btn listen-btn hide" value="listen">' + _('Listen Only') + '</button>'
28224
28225        '' + '</div>';
28226    }
28227    else
28228    {
28229    popupHtml += '</h3>' + '<form action="/portal/callhistory/notes" id="dispForm" ><div class="dockcall-fields">' + '<select name="data[disposition]" class="dockcall-disposition hide" id="disposition">'
28230        + '<option value="">' + _('Disposition') + '</option>' + '</select>' + '<select name="data[reason]" class="dockcall-reason hide" id="reason">'
28231        + '<option value="">' + _('Reason') + '</option>' + '</select>' +
28232
28233        '<textarea name="data[notes]" class="dockcall-notes hide" placeholder="' + _('Notes') + '"></textarea>' + '</div></form>';
28234    }
28235
28236    popupHtml += '</div> <!--/dockcall-panel-content-->';
28237    popupHtml += '<div class="dockcall-buttons">';
28238
28239    if (value.by_action=="ForwardSRing")
28240    {
28241        popupHtml += '<h5 class="forward-select hide">' + _('Answer using:') + '<select></select></h5> ';
28242    }
28243
28244    if (calltype == "monitor") {
28245        //##TODO add in monitor options
28246        name = _("Audio Monitoring");
28247    }
28248    else if (value.orig_from_user =="Call-To-Talk")
28249    {
28250
28251    }
28252    else if (calltype == "inbound")
28253        popupHtml += '<button class="dockcall-reject btn btn-danger"><i class="end"></i>Reject</button><button class="dockcall-answer btn btn-success"><i class="answer"></i>Answer</button>';
28254    else {
28255        popupHtml += '<button class="dockcall-end end-outbound btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>';
28256    }
28257    popupHtml += '</div>';
28258    popupHtml += '</div> <!--/dockcall-panel -->';
28259
28260    var toPrepend = '<div id="dockcall-column-' + callId + '"class="dock-column dockcall-column" orig_callid="'
28261        + value.orig_callid.replace(/[^a-zA-Z0-9]/g, '-') + '"  term_callid="' + value.term_callid.replace(/[^a-zA-Z0-9]/g, '-')
28262        + '" >' + '<div class="dock-column-inner">' + '<div class="dock-popup">'
28263        + '<div class="dock-head">'
28264            + '<div class="dock-head-buttons">'
28265                + '<span class="dockcall-onhold label label-important hide">' + _('On Hold') + '</span>'
28266                + '<button class="dock-minimize dock-head-button" title="' + _('Minimize') + '"><i class="icon-minimize icon-white" title="Minimize"></i></button>'
28267                + '<button class="dock-close dock-head-button" title="' + _('Close') + '"><i class="icon-remove icon-white"></i></button>'
28268            + '</div>'
28269            + '<div class="dock-head-title">'
28270                + '<i class="icon-call icon-white"></i><span class="dock-name">' + name + '&nbsp;</span>'
28271            + '</div>'
28272        + '</div>'
28273        + '<div class="dock-body dockcall-body">' + popupHtml + '</div>'
28274        + '</div>' + '</div>' + '</div>';
28275
28276    // prepend dock html
28277    $('.dock-popup-overlay').prepend(toPrepend);
28278
28279    var termIds = [value.term_callid.replace(/[^a-zA-Z0-9]/g, '-')];
28280
28281    // adjust dock column height to show call popup
28282    dockHeight();
28283
28284
28285    setTimeout(function(columnId) {
28286        if($(columnId + " .dockcall-reject :visible").length)
28287        {
28288            ignoreTermId.push($(columnId).data("term_callid"));
28289            $(columnId).remove();
28290        }
28291    }, 60000,columnId);
28292
28293    $(columnId).data('termIds',termIds);
28294    $(columnId).data("calltype",calltype);
28295    $(columnId).data("number",number);
28296    $(columnId).data("name",name);
28297    $(columnId).data("orig_callid",value.orig_callid);
28298    $(columnId).data("term_callid",value.term_callid);
28299    $(columnId).data("batch_tim_beg",value.time_start);
28300
28301    if (value.by_action=="ForwardSRing")
28302    {
28303        log("is sim ring");
28304        var termDevices = [];
28305        if (value.term_domain == value.term_to_uri.substring( value.term_to_uri.indexOf('@')+1) )
28306            if (!$.inArray(value.term_to_uri, termDevices))
28307                termDevices.push(value.term_to_uri);
28308        $(columnId).data("termDevices",termDevices);
28309    }
28310
28311
28312    if (calltype == "monitor") {
28313        monitorIds.push(getMonitorId(value));
28314        $(columnId).data("monitorId", getMonitorId(value));
28315        $(columnId).data("legCount", 0);
28316        //$(columnId).hide();
28317    }
28318
28319
28320    // debugger;
28321    $(dockPopup).hide().show("slide", {
28322        direction : "down"
28323    }, 500, function() {
28324
28325
28326
28327        // if (value.by_action == "MoveTo") {
28328        // } else if (value.time_answer == "0000-00-00 00:00:00") {
28329        //     debugger;
28330        //     if (calltype == "inbound")
28331        //         pulse();
28332        // } else {
28333        //   debugger;
28334        // }
28335        // function pulse() {
28336        //     // pulsate active call content for user attention
28337        //     $(dockBody).animate({
28338        //         backgroundColor : "#F3F781"
28339        //     }, 700, function() {
28340        //         $(this).animate({
28341        //             backgroundColor : "#fff"
28342        //         }, 700, pulse);
28343        //     });
28344        // }
28345    });
28346
28347    // clicking answer stops pulse and shows button group
28348    $(document).on(
28349        'click',
28350        answerButton,
28351        function() {
28352            $(answerButton).prop("disabled", true);;
28353            $(rejectButton).prop("disabled", true);;
28354            var callID = value.term_callid;
28355//            if (typeof value.by_callid != 'undefined'
28356//                        && value.by_callid != "") {
28357//                    callID = value.by_callid;
28358//            }
28359
28360            $.post("/portal/calls/answer/" + escapeCallid(callID) + "/" + cleanDevice(value.term_uri), function() {
28361            });
28362
28363            //ignoreOrigId.push(value.orig_callid);
28364            ignoreTermId.push(value.term_callid);
28365            intendedAnsOrigId.push(value.orig_callid);
28366            //// stop pulsing after clicking answer
28367            //$(dockBody).animate({
28368            //    backgroundColor : '#fff'
28369            //}).stop();
28370            //
28371            //$(panelContent + ' h3').remove();
28372            //
28373            //// if not showing disposition fields, show active call
28374            //// message
28375            //$(panelContent + ' h4').text('Active Call');
28376            //
28377            //$(panelContent).prepend(
28378            //    '<div class="dockcall-info">' + '<h5 class="dockcall-name">' + number + '<span gmt_answer="' + value.time_answer
28379            //        + '" class="dockcall-timer duration_counter pull-right">00:00</span>' + '</h5>' + '</div>');
28380            //
28381            //// slide reveal cdr fields
28382            //// $(callFields).slideDown(400);
28383            //
28384            //// show call handling buttons after answering
28385            //$(callButtons).html(
28386            //    '<div class="btn-group dockcall-callactions"><button class="dockcall-hold btn" data-toggle="button" title="' + _('Hold') + '"><i class="hold"></i></button>'
28387            //        + '<button class="dockcall-end btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>'
28388            //        + '<button class="dockcall-transfer btn" title="' + _('Transfer') + '"><i class="transfer"></i></button></div>');
28389
28390        });
28391
28392    // show complete button after clicking end
28393    $(document).on('click', endButton, function() {
28394
28395        $.post("/portal/calls/terminate/" + escapeCallid(value.term_callid), function() {
28396        });
28397
28398        ignoreOrigId.push(value.orig_callid);
28399
28400        if (typeof endButton!="undefined")
28401            $(endButton).prop("disabled", true);
28402        if (typeof holdButton!="undefined")
28403            $(holdButton).prop("disabled", true);
28404        if (typeof transButton!="undefined")
28405            $(transButton).prop("disabled", true);
28406
28407        // stop pulsing after clicking answer
28408        //$(dockBody).animate({
28409        //    backgroundColor : '#fff'
28410        //}).stop();
28411        //
28412        //$(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
28413    });
28414
28415    $(document).on('click', rejectButton, function() {
28416      if (value.by_action=="QueueSDispatch" || value.by_action=="QueueSDispatch")
28417      {
28418        $.post("/portal/calls/reject/" + value.orig_callid+"/"+value.term_to_uri.replace(":","COLLON"), function() {log('reject call');});
28419      }
28420      else
28421        $.post("/portal/calls/reject/" + value.orig_callid, function() {});
28422
28423        $(answerButton).prop("disabled", true);;
28424        $(rejectButton).prop("disabled", true);;
28425
28426        ignoreOrigId.push(value.orig_callid);
28427
28428        // stop pulsing after clicking answer
28429        $(dockBody).animate({
28430            backgroundColor : '#fff'
28431        }).stop();
28432
28433        $(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
28434        $(columnId).remove();
28435    });
28436
28437    // show hold label after clicking hold button
28438    if (typeof holdButton!="undefined")
28439        $(document).on('click',holdButton, function() {
28440            if ($(holdLabel).is(':visible')) {
28441                $.post("/portal/calls/unhold/" + value.orig_callid, function() {
28442                }).done(function(data) {
28443                    $(holdLabel).hide();
28444                });
28445
28446            } else {
28447
28448                if (calltype == "inbound")
28449                    $.post("/portal/calls/hold_orig/" + value.orig_callid, function() {
28450                    }).done(function(data) {
28451                        $(holdLabel).show();
28452                    });
28453                else
28454                    $.post("/portal/calls/hold_term/" + value.orig_callid, function() {
28455                    }).done(function(data) {
28456                        $(holdLabel).show();
28457                    });
28458
28459            }
28460        });
28461
28462    // hide and remove call display after clicking complete
28463    $(document).on('click', completeButton, function() {
28464        sendDispostion(columnId);
28465        $(columnId).remove();
28466
28467        ignoreOrigId.push(value.orig_callid);
28468
28469        log(columnId.replace("#",""));
28470        $.removeCookie("notes"+columnId.replace("#",""));
28471
28472    });
28473
28474    if (value.time_answer != "0000-00-00 00:00:00")
28475        dockModifyCallsameURI($(columnId), value, domain, user);
28476
28477    if (calltype == "inbound" && PORTAL_HTML5_NOTIFICATIONS)
28478         notifyInbound(value.orig_callid.replace(/[^a-zA-Z0-9]/g, '-'),name,cleanDevicePrep(number),number);
28479
28480
28481} // end dockShowCall function
28482
28483function browser_support_notification()
28484{
28485       return window.webkitNotifications;
28486}
28487
28488function request_permission()
28489{
28490    if (window.webkitNotifications.checkPermission() == 0) {
28491        } else {
28492        window.webkitNotifications.requestPermission();
28493    }
28494}
28495
28496function plain_text_notification(image, title, content)
28497{
28498    if (window.webkitNotifications.checkPermission() == 0) {
28499           return window.webkitNotifications.createNotification(image, title, content);
28500       }
28501}
28502
28503var notifyArray = {};
28504function notifyInbound(callid, cname, number, clean) {
28505    if ($(window).data("prevType") !="blur")
28506        return;
28507    if (window.webkitNotifications) {
28508        if (typeof notifyArray[callid] != 'undefined')
28509            return;
28510        notifyArray[callid] = plain_text_notification("/portal/img/buttons/inbound.png", cname, clean);
28511        if (typeof notifyArray[callid] == 'undefined')
28512            return;
28513        notifyArray[callid].show();
28514        notifyArray[callid].ondisplay = function(event) {
28515            setTimeout(function() {
28516                event.currentTarget.cancel();
28517            }, 10000);
28518        };
28519        notifyArray[callid].onclick = function(event) {
28520            if (typeof PORTAL_AGENT_SCREEN_POP_URL != "undefined" && PORTAL_AGENT_SCREEN_POP_URL != "")
28521                window.open("http://www.google.com/?q=" + number, '_blank');
28522            notifyArray[callid].close();
28523            notifyArray.splice(callid,1);
28524        };
28525    } else {
28526        log("Notifications are not supported for this Browser/OS version yet.");
28527    }
28528}
28529
28530
28531$(window).on("blur focus", function(e) {
28532
28533    //log("prevType="+$(window).data("prevType"));
28534
28535    if ($(window).data("prevType") != e.type) {   //  reduce double fire issues
28536       switch (e.type) {
28537            case "blur":
28538                break;
28539            case "focus":
28540                // do work
28541                break;
28542        }
28543    }
28544
28545    $(window).data("prevType", e.type);
28546})
28547
28548function sendDispostion(columnId)
28549{
28550    log("sendDispostion");
28551    log(columnId);
28552    var disposition = columnId + ' .dockcall-disposition';
28553    var reason = columnId + ' .dockcall-reason';
28554    var notes = columnId + ' .dockcall-notes';
28555
28556
28557    var url = "/portal/callhistory/notes/"+escapeCallid($(columnId).data("orig_callid"))+"/"+$(columnId).data("term_callid");
28558    if ($(columnId).data("batch_tim_beg")!=null && $(columnId).data("batch_tim_beg")!="")
28559      url += "/"+escapeCallid($(columnId).data("batch_tim_beg"));
28560    var data = $('#dispForm').serialize();
28561    log(url);
28562    log(data);
28563    $.post(url, data)
28564    .done(function(data) {
28565            jsFlash(_("Notes Saved"));
28566    });
28567
28568
28569
28570
28571}
28572
28573/*
28574function dockModifyCallnewURI(dock, value,domain, user) {
28575    var thisId = dock.attr('id');
28576    log("dockmodify answer id: " +thisId)
28577    $(this).id = rId.replace(/[^a-zA-Z0-9]/g, '-');
28578    var columnId = '#' + thisId;
28579    var dockBody = columnId + ' .dockcall-body';
28580    var dockPopup = columnId + ' .dock-popup';
28581    var callButtons = columnId + ' .dockcall-buttons';
28582    var callFields = columnId + ' .dockcall-fields';
28583    var durationField = columnId + '.dockcall-timer';
28584
28585    $(durationField).attr('gmt_answer', value.time_answer);
28586    $(dockBody).animate({
28587        backgroundColor : '#fff'
28588    }).stop();
28589    $(callFields).slideDown(400);
28590    $(callButtons).html(
28591        '<div class="btn-group"><button class="dockcall-hold btn" data-toggle="button">Hold</button>'
28592            + '<button class="dockcall-end btn btn-danger">End</button>
28592' + '<button class="dockcall-transfer  btn">Transfer</button>'
28593            + '<button class="dockcall-complete btn btn-primary hide">Complete</button></div>');
28594
28595}*/
28596
28597function dockModifyCallsameURI(dock, value, domain, user) {
28598    var thisId = dock.attr('id');
28599
28600    var columnId = '#' + thisId;
28601    var dockBody = columnId     + ' .dockcall-body';
28602    var callButtons = columnId  + ' .dockcall-buttons';
28603    var callFields = columnId   + ' .dockcall-fields';
28604    var callMonitor = columnId  + ' .dockcall-monitor';
28605    var answerButton = columnId + ' .dockcall-answer';
28606    var orig_number = columnId  + ' .dockcall-orignumber';
28607    var orig_number = columnId  + ' .dockcall-orignumber';
28608    var disposition = columnId  + ' .dockcall-disposition';
28609    var endButton = columnId    + ' .dockcall-end';
28610    var reason = columnId + ' .dockcall-reason';
28611    var notes = columnId + ' .dockcall-notes';
28612
28613    var orig_name = columnId + ' .dockcall-origname';
28614    var term_number = columnId + ' .dockcall-termnumber';
28615    var panelContent = columnId + ' .dockcall-panel-content';
28616    var panelInfo = columnId + ' .dockcall-info';
28617    var monitorActions = columnId + ' .dockcall-action';
28618    var monitorActionsBarge = columnId + ' .barge-btn';
28619    var monitorActionsOrig = columnId + ' .wisper-orig-btn';
28620    var monitorActionsTerm = columnId + ' .wisper-term-btn';
28621    var monitorActionsListen = columnId + ' .listen-btn';
28622    var recordBtn = columnId + ' .dockcall-record';
28623    var transButton = columnId + ' .dockcall-transfer';
28624
28625    var calltype = getType(value, domain, user);
28626    var number = getNumber(value, domain, user);
28627    var name = getName(value, domain, user,number);
28628
28629    //log('calltype: ' + calltype);
28630    //log('number: ' + number);
28631    //log('name: ' + name);
28632
28633    //var number = ' ';
28634    var termIds = dock.data('termIds');
28635    //log(termIds);
28636    var termid = value.term_callid.replace(/[^a-zA-Z0-9]/g, '-');
28637
28638    var termIdFound  = false;
28639    for (var key in termIds)
28640        {
28641        if (termIds['key'] ==termid)
28642            {
28643            //log('found this termid already');
28644            termIdFound=true;
28645            }
28646
28647        }
28648
28649    if (value.orig_from_user =="PromptRetrieve" || value.orig_from_user =="PromptRetrieve")
28650    {
28651        if(typeof ignoreOrigId != 'undefined' )
28652          ignoreOrigId.push(value.orig_callid);
28653        $(columnId).remove();
28654        return;
28655    }
28656    else if (name =="PromptRetrieve" || name =="PromptRetrieve")
28657    {
28658        if(typeof ignoreOrigId != 'undefined' )
28659          ignoreOrigId.push(value.orig_callid);
28660        $(columnId).remove();
28661        return;
28662    }
28663    else if (value.by_action == "XferSup" && sub_user == value.by_sub )
28664    {
28665        if(typeof ignoreOrigId != 'undefined' )
28666          ignoreOrigId.push(value.orig_callid);
28667        $(columnId).remove();
28668        return;
28669    }
28670
28671    if (value.term_to_uri == "VMail" && sub_user == value.term_sub) {
28672        if(typeof ignoreOrigId != 'undefined' )
28673          ignoreOrigId.push(value.orig_callid);
28674        $(columnId).remove();
28675        return;
28676    }
28677
28678
28679
28680    $(columnId).data("term_callid",value.term_callid);
28681
28682    if (!termIdFound && typeof termIds.push == 'function')
28683        termIds.push(termid);
28684
28685
28686    var curLegCount = parseInt($(columnId).data("legCount"));
28687
28688    log("curLegCount="+curLegCount );
28689
28690    if (calltype =="monitor")
28691    {
28692        log('calltype monnitor searching : ' );
28693        log(value.orig_call_info );
28694
28695        if (value.term_logi_uri.indexOf("conference-bridge"))
28696            $(columnId).data("confbridge_id",value.term_logi_uri);
28697        //log(value.term_call_info );
28698        if  (value.orig_call_info.indexOf("orig") !== -1) {
28699            if (typeof $(columnId).data("orig_tap_callid") != 'undefined')
28700                $(columnId).data("legCount",curLegCount+1);
28701            $(columnId).data("orig_tap_callid",value.term_callid);
28702            $(columnId).data("tap_callid",value.by_callid);
28703
28704            log("origIsAgent?");
28705            log(value);
28706            $(columnId).data("origIsAgent",value.by_callid);
28707            log('found the orig leg '+$(columnId).data("orig_tap_callid"));
28708
28709
28710        }
28711        else if  (value.orig_call_info.indexOf("term") !== -1) {
28712            if (typeof $(columnId).data("term_tap_callid") != 'undefined')
28713                $(columnId).data("legCount",curLegCount+1);
28714            $(columnId).data("term_tap_callid",value.term_callid);
28715            $(columnId).data("tap_callid",value.by_callid);
28716            log('found the term leg '+$(columnId).data("term_tap_callid"));
28717        }
28718        else if  (value.orig_call_info.indexOf("tap-listen") !== -1) {
28719            if (typeof $(columnId).data("tap-listen1") != 'undefined')
28720            {
28721                if ($(columnId).data("tap-listen1")!=value.term_callid)
28722                    {
28723                        if ($(columnId).data("tap-listen2") != value.term_callid)
28724                            if ($(columnId).data("tap-listen1") != value.term_callid)
28725                                $(columnId).data("legCount",curLegCount+1);
28726                        $(columnId).data("tap-listen2",value.term_callid);
28727                        $(columnId).data("tap_callid",value.by_callid);
28728                        log('found a unknown leg 2 '+$(columnId).data("tap-listen2"));
28729                    }
28730            }
28731            else
28732            {
28733                if (typeof $(columnId).data("tap-listen1") == 'undefined')
28734                    $(columnId).data("legCount",curLegCount+1);
28735                $(columnId).data("tap-listen1",value.term_callid);
28736                $(columnId).data("tap_callid",value.by_callid);
28737                log('found a unknown leg 1 '+$(columnId).data("tap-listen1"));
28738
28739            }
28740
28741
28742        }
28743
28744
28745        log("active call legs for monitor is "+$(columnId).data("callLeg"));
28746        curLegCount = parseInt($(columnId).data("legCount"));
28747
28748        log("Two valid Legs check");
28749
28750        if ((typeof $(columnId).data("term_tap_callid") != 'undefined' && typeof $(columnId).data("orig_tap_callid") != 'undefined')
28751            || curLegCount == 2)
28752        {
28753            log("Two valid Legs");
28754            //alert("Two valid Legs");
28755
28756            var allowWisper = true;
28757            var allowWisperHalf = false;
28758            if (typeof $(columnId).data("tap-listen2") != 'undefined')
28759                allowWisper =false;
28760
28761            if (typeof $(columnId).data("term_tap_callid") != 'undefined' || typeof $(columnId).data("term_tap_callid") != 'undefined') {
28762                // have half a leg correct...
28763                allowWisperHalf = true;
28764            }
28765            if (typeof $(columnId).data("term_tap_callid") == 'undefined' || typeof $(columnId).data("orig_tap_callid") == 'undefined') {
28766                if (!allowWisperHalf)
28767                    allowWisper =false;
28768                // unknown orig/term.
28769                if (typeof $(columnId).data("orig_tap_callid") == 'undefined') {
28770                    $(columnId).data("orig_tap_callid", $(columnId).data("tap-listen1"));
28771                    if (typeof $(columnId).data("term_tap_callid") == 'undefined') {
28772                        $(columnId).data("term_tap_callid", $(columnId).data("tap-listen2"));
28773                    }
28774                } else if (typeof $(columnId).data("term_tap_callid") == 'undefined') {
28775                    $(columnId).data("term_tap_callid", $(columnId).data("tap-listen1"));
28776                    if (typeof $(columnId).data("orig_tap_callid") == 'undefined') {
28777                        $(columnId).data("orig_tap_callid", $(columnId).data("tap-listen2"));
28778                    }
28779                }
28780
28781
28782
28783            }
28784            if (allowWisper)
28785                log("allowing wisper");
28786            else
28787                log("no wisper");
28788
28789
28790            if (!allowWisper)
28791            {
28792                $(monitorActionsOrig).hide();
28793                $(monitorActionsTerm).hide();
28794                //delete $(monitorActionsOrig);
28795                //delete $(monitorActionsTerm);
28796            }
28797            else
28798                {
28799                    if ($(columnId).data("monitor-mode")!="barge")
28800                    {
28801                        $(monitorActionsOrig).show();
28802                        $(monitorActionsTerm).show();
28803                    }
28804
28805                }
28806
28807
28808            var url = '/portal/calls/getCallById/' + $(columnId).data("tap_callid")+"/term_callid";
28809            //log(url);
28810
28811
28812            if (!$(columnId).data("lookedupalready")) {
28813
28814                $.getJSON(
28815                    url,
28816                    function(data) {
28817                        log("data retruned. ");
28818                        log(data);
28819
28820                        if (allowWisper)
28821                            $(columnId).data("lookedupalready", true);
28822
28823                        if (!allowWisper)
28824                        {
28825                            $(monitorActionsOrig).hide();
28826                            $(monitorActionsTerm).hide();
28827                            //delete $(monitorActionsOrig);
28828                            //delete $(monitorActionsTerm);
28829                        }else
28830                        {
28831                            $(monitorActionsOrig).show();
28832                            $(monitorActionsTerm).show();
28833                        }
28834
28835                        $.each(data, function(key, val) {
28836                            log("key=" + key);
28837                            if (key == "orig_match") {
28838                                var containsStar =false;
28839                                if(val.indexOf("*") > -1)
28840                                    containsStar = true;
28841                                log("allowWisper" + "=" + allowWisper);
28842                                log(key + "=" + val);
28843                                log(key + "=" + cleanDevice(val).length );
28844                                log("containsStar" + "=" + containsStar );
28845
28846                                //debugger;
28847                                if (containsStar && typeof data.orig_uri != 'undefined' )
28848                                {
28849                                    val = data.orig_uri;
28850                                }
28851
28852                                if (allowWisper && cleanDevice(val).length <7 && !containsStar) {
28853
28854
28855                                    $(monitorActionsOrig).text(_("Whisper to ") + cleanDevice(val));
28856                                    $(monitorActionsOrig).data("devicename", cleanDevice(val));
28857                                }
28858                                else if (allowWisper)
28859                                    {
28860                                    log("REMOVING ORIG");
28861                                    log(data);
28862                                    $(monitorActionsOrig).remove();
28863                                    }
28864
28865                                $(orig_number).html(cleanDevice(val));
28866                            }
28867                            else if (key == "term_uri") {
28868                                log(key + "=" + val);
28869                                log(key + "=" + cleanDevice(val).length );
28870                                if (allowWisper && cleanDevice(val).length <7)
28871                                {
28872                                    $(monitorActionsTerm).text(_("Whisper to ") + cleanDevice(val))    ;
28873                                    $(monitorActionsTerm).data("devicename",cleanDevice(val));
28874                                }
28875                                else if (allowWisper)
28876                                {
28877                                    log("REMOVING TERM");
28878                                    log(data);
28879                                    $(monitorActionsTerm).remove();
28880                                }
28881
28882                                $(term_number).html(cleanDevice(val));
28883                            } else if (key == "orig_name") {
28884                                $(orig_name).html(val);
28885                            }
28886
28887                        });
28888
28889                    $(monitorActionsBarge).off('click');
28890                    $(monitorActionsBarge).on('click', function() {
28891                        $(columnId).data("monitor-mode","barge");
28892                        jsFlash(_("Joining Call..."));
28893                        var url = "/portal/calls/barge_in/"+escapeCallid($(columnId).data("orig_tap_callid"));
28894                        //log(url);
28895                        $.post(url).done(function(data) {
28896
28897
28898                        });
28899                        var url = "/portal/calls/barge_in/"+escapeCallid($(columnId).data("term_tap_callid"));
28900                        //log(url);
28901
28902                        $.post(url).done(function(data) {
28903
28904
28905                        });
28906
28907                        $(monitorActionsBarge).hide();
28908
28909                        $(monitorActionsOrig).hide();
28910                        $(monitorActionsTerm).hide();
28911                        $(monitorActionsListen).show();
28912                    });
28913                    $(monitorActionsOrig).off('click');
28914                    $(monitorActionsOrig).on('click', function() {
28915                        $(columnId).data("monitor-mode","wisper");
28916                        var url = "/portal/calls/barge_in/"+escapeCallid($(columnId).data("orig_tap_callid"));
28917                        log(url);
28918                        $.post(url).done(function(data) {
28919
28920                            jsFlash(String.format(_("Whispering to {0}"), $(monitorActionsOrig).data("devicename")));
28921
28922                        });
28923                        $(monitorActionsOrig).hide();
28924                        $(monitorActionsTerm).hide();
28925                        $(monitorActionsListen).show();
28926                    });
28927                    $(monitorActionsTerm).off('click');
28928                    $(monitorActionsTerm).on('click', function() {
28929                        $(columnId).data("monitor-mode","wisper");
28930                        var url = "/portal/calls/barge_in/"+escapeCallid($(columnId).data("term_tap_callid"));
28931                        log(url);
28932                        $.post(url).done(function(data) {
28933
28934                            jsFlash(String.format(_("Whispering to {0}"), $(monitorActionsTerm).data("devicename")));
28935
28936
28937                        });
28938                        $(monitorActionsOrig).hide();
28939                        $(monitorActionsTerm).hide();
28940                        $(monitorActionsListen).show();
28941
28942                    });
28943                    $(monitorActionsListen).off('click');
28944                    $(monitorActionsListen).on('click', function() {
28945                        $(columnId).data("monitor-mode","listen");
28946                        var url = "/portal/calls/listen/"+escapeCallid($(columnId).data("orig_tap_callid"));
28947                        log(url);
28948                        $.post(url).done(function(data) {
28949
28950                        });
28951                        var url = "/portal/calls/listen/"+escapeCallid($(columnId).data("term_tap_callid"));
28952                        log(url);
28953                        $.post(url).done(function(data) {
28954
28955                            jsFlash(_("Listening only..."));
28956
28957
28958                        });
28959                        $(monitorActionsBarge).show();
28960                        if (allowWisper)
28961                        {
28962                        $(monitorActionsOrig).show();
28963                        $(monitorActionsTerm).show();
28964                        }
28965                        $(monitorActionsListen).hide();
28966
28967                    });
28968                    $(dockBody).find('div.loading-lg').remove();
28969                    $(callMonitor).show();
28970
28971                    }).done(function(data) {
28972
28973
28974                        if (!allowWisper)
28975                        {
28976                            $(monitorActionsOrig).hide();
28977                            $(monitorActionsTerm).hide();
28978                            //delete $(monitorActionsOrig);
28979                            //delete $(monitorActionsTerm);
28980                        }
28981
28982                });
28983
28984            }
28985
28986        }
28987
28988
28989
28990
28991
28992
28993        //if ($(panelInfo).length ==0)
28994        //    $(panelContent).prepend(
28995        //        '<div class="dockcall-info">' + '<h5 class="dockcall-name">' + number + '<span gmt_answer="' + value.time_answer
28996        //            + '" class="dockcall-timer duration_counter pull-right">00:00</span>' + '</h5>' + '</div>');
28997
28998
28999
29000        //if (value.time_answer != "0000-00-00 00:00:00") {
29001        //    $(callButtons).html('<div class="btn-group dockcall-callactions"><button class="dockcall-hold btn" data-toggle="button" title="' + _('Hold') + '"><i class="hold"></i></button>'
29002        //        + '<button class="dockcall-end btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>');
29003
29004        //}
29005
29006    }
29007    else
29008        {
29009        if (value.time_answer != "0000-00-00 00:00:00") {
29010
29011            //stop incoming call flashing animation
29012            $(dockBody).animate({
29013                backgroundColor : '#fff'
29014            }).stop();
29015
29016
29017
29018            //remove incoming call info
29019            $(panelContent + ' h4').remove();
29020            $(panelContent + ' h3').remove();
29021            if (typeof PORTAL_AGENT_SCREEN_POP_URL != 'undefined' && PORTAL_AGENT_SCREEN_POP_URL !="" )
29022            {
29023                if (calltype =="inbound" && $(dockBody).data("popup")!= true )//
29024                    {
29025                        if (typeof number != 'undefined' &&  number.length>9)
29026                        {
29027                            //log($(columnId).data("term_callid"));
29028                            let cookie = $.cookie("popup"+$(columnId).data("term_callid"));
29029                            if (typeof cookie == 'undefined' || cookie == null)
29030                            {
29031                                var date = new Date();
29032                                date.setTime(date.getTime() + (120 * 60 * 1000));
29033                                $.cookie("popup"+$(columnId).data("term_callid"), "true", { expires : date });
29034                                var url = PORTAL_AGENT_SCREEN_POP_URL+cleanDevicePrep(number);
29035                                log(url);
29036                                var newwindow = window.open(url,'_blank');
29037                                if (newwindow && typeof newwindow != 'undefined'){
29038                                    newwindow.focus();
29039                                    $(dockBody).data("popup",true);
29040                                }
29041
29042                            }
29043
29044                        }
29045                    }
29046
29047            }
29048            if (value.term_uri === "Call-Queue") {
29049                $(panelInfo).remove();
29050            }
29051            if ($(panelInfo).length ==0) {
29052
29053                if (recordCallButton) {
29054                    $(panelContent).prepend(
29055                        '<div class="dockcall-info">'
29056                            + '<h5 class="dockcall-name extra-call-buttons">'
29057                                + '<button class="btn record dockcall-record" data-toggle="button" title="Record Call"><i class="record"></i></button>'
29058                                + '<span class="dockcall-calleri
29058d pull-right">' + number + '</span>'
29059                                + '<span gmt_answer="' + value.time_answer +'" class="dockcall-timer duration_counter pull-right">00:00</span>'
29060                            + '</h5>'
29061                        + '</div>');
29062                }
29063                else {
29064                    $(panelContent).prepend(
29065                        '<div class="dockcall-info">'
29066                            + '<h5 class="dockcall-name">'
29067                                + '<span class="dockcall-callerid">' + number + '</span>'
29068                                + '<span gmt_answer="' + value.time_answer +'" class="dockcall-timer duration_counter pull-right">00:00</span>'
29069                            + '</h5>'
29070                        + '</div>');
29071                }
29072            }
29073
29074            if (value.by_action == "QueueDispatch" || value.by_action == "QueueSDispatch" || value.by_action == "ForwardSRing")
29075            {
29076                log("QueueDispatch");
29077                if (popup_show_notes)
29078                {
29079                  $(notes).show();
29080                  if (typeof inbound_disp != 'undefined' && inbound_disp.length >0 )
29081                  {
29082                    if (!$(disposition).is(":visible") )
29083                    {
29084                        log("disposition not visible (googd)");
29085                        if (calltype == "inbound") {
29086                            $(disposition).empty().hide();
29087                            log("inbound match");
29088                            if (typeof inbound_disp != 'undefined') {
29089                                $(disposition).append($("<option />").val("").text(_("Select a Disposition")));
29090                                log("inbound_disp match");
29091                                for ( var i = 0; i < inbound_disp.length; i++) {
29092                                    log(inbound_disp[i]);
29093                                    $(disposition).append($("<option />").val(inbound_disp[i]).text(inbound_disp[i]))
29094                                                                .show();
29095                                }
29096                            }
29097                            //$(reason).hide();
29098                        }
29099                        else if (calltype == "outbound") {
29100                            $(disposition).empty().hide();
29101                            if (typeof outbound_disp != 'undefined') {
29102
29103                                for ( var i = 0; i < outbound_disp.length; i++) {
29104                                    $(disposition).append($("<option />").val(outbound_disp[i]).text(outbound_disp[i]))
29105                                                                .show();
29106                                }
29107                            }
29108                            //$(reason).hide();
29109                        }
29110                    }
29111
29112                    $(reason).empty();
29113                    if (typeof $(disposition).val() != 'undefined' && $(disposition).val()!= null && $(disposition).val()!="")
29114                    {
29115                      var dispVal = $(disposition).val().replace(/[ /-]/g, '');
29116                      if (calltype == "inbound") 
29117                          tmp_list = window['in_disp_' + dispVal] || [];
29118                      else
29119                          tmp_list = window['out_disp_' + dispVal] || [];
29120
29121                        if (typeof tmp_list != 'undefined' && tmp_list.length > 0) {
29122                            $(reason).append($("<option />").val("").text(_("Select a Disposition First")));
29123                            for ( var i = 0; i < tmp_list.length; i++) {
29124                                $(reason).append($("<option />").val(tmp_list[i]).text(tmp_list[i]));
29125                                $(reason).show();
29126                            }
29127                        }
29128                        else
29129                            $(reason).hide();
29130                    }
29131                  }
29132                }
29133            }
29134            $(disposition).on('change', function() {
29135                $(reason).empty();
29136                if (typeof $(this).val() != 'undefined' && $(this).val()!="" )
29137                {
29138                    var dispVal = $(this).val().replace(/[ /-]/g, '');
29139                    if (calltype == "inbound")
29140                        tmp_list = window['in_disp_' + dispVal] || [];
29141                    else
29142                        tmp_list = window['out_disp_' + dispVal] || [];
29143
29144                    if (typeof tmp_list != 'undefined' && tmp_list.length > 0) {
29145                        $(reason).append($("<option />").val("").text(_("Select a Reason")));
29146                        for ( var i = 0; i < tmp_list.length; i++) {
29147                            $(reason).append($("<option />").val(tmp_list[i]).text(tmp_list[i]));
29148                            $(reason).slideDown();
29149                        }
29150                    }
29151                    else
29152                        $(reason).slideUp();
29153                }
29154
29155
29156            });
29157
29158
29159            $(recordBtn).off();
29160            $(recordBtn).on('click', function() {
29161                if ($(recordBtn).data("recording"))
29162                    $(recordBtn).data("recording",false);
29163                else
29164                    $(recordBtn).data("recording",true);
29165
29166
29167
29168                var url = "/portal/calls/";
29169                if ($(recordBtn).data("recording"))
29170                    url = url+"record_on/";
29171                else
29172                    url = url+"record_off/";
29173
29174                if (calltype =='outbound')
29175                    url = url+ escapeCallid(value.term_callid);
29176                else
29177                    url = url+ escapeCallid(value.orig_callid);
29178
29179                log(url);
29180
29181
29182
29183                $.post(url, function() {})
29184                .fail(function() {
29185
29186                    if ($(recordBtn).data("recording"))
29187                    {
29188                        jsFlash(_("Call recording failed to start!"),"error");
29189                        $(recordBtn).data("recording",false);
29190                        $(recordBtn).removeClass('active');
29191                    }
29192                    else
29193                        {
29194                        jsFlash(_("Call recording failed to stop!"),"error");
29195                        $(recordBtn).data("recording",true);
29196                        $(recordBtn).addClass('active');
29197                        }
29198
29199                })
29200                .done(function(data) {
29201
29202                    if ($(recordBtn).data("recording"))
29203                        jsFlash(_("Call recording has started"), "success");
29204                    else
29205                        jsFlash(_("Call recording has stopped"), "success");
29206                });
29207
29208
29209            });
29210
29211            if ($(notes).val()=="")
29212                $(notes).val($.cookie("notes"+thisId));
29213
29214            if (popup_show_notes)
29215                $(notes).show();
29216
29217            $(notes).keypress(function() {
29218
29219                var el = this; // copy of this object for further usage
29220
29221                if (timeoutReference) clearTimeout(timeoutReference);
29222                timeoutReference = setTimeout(function() {
29223                    updateNotes.call(el,thisId);
29224                }, 1000);
29225            });
29226            $(notes).blur(function(){
29227                updateNotes.call(this,thisId);
29228            });
29229
29230
29231            /*
29232            // show call fields
29233            $(callFields).animate({
29234                "height" : "toggle",
29235                "opacity" : "toggle"
29236            }, 400);
29237
29238            */
29239
29240
29241
29242
29243            //generate call control buttons
29244            $(callButtons).html('<div class="btn-group dockcall-callactions"><button class="dockcall-hold btn" data-toggle="button" title="' + _('Hold') + '"><i class="hold"></i></button>'
29245                        + '<button class="dockcall-end btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>'
29246                        + '<button class="dockcall-transfer btn" data-toggle="button" title="' + _('Transfer') + '"><i class="transfer"></i></button>'
29247                        + '</div>'
29248                        + '<div class="transfer-field input-append hide"><input id="transfer-autocomplete" class="span2" type="text" placeholder="Enter extension or number">'
29249                        + '<button id="transfer' + thisId + '"  type="button" class="btn btn-success" disabled><i class="icon-arrow-right"></i></button></div>');
29250
29251            // show transfer field when transfer button is clicked
29252            $(transButton).click(function() {
29253                //log('transfer button clicked');
29254
29255                if ($(callButtons + ' .transfer-field').is(':visible')) {
29256                    closeTransferMode();
29257                    $(callButtons + ' .transfer-field').animate({
29258
29259                        "height" : "hide",
29260                        "opacity" : "hide"
29261                    }, 400);
29262                    //log('hiding transfer button');
29263                }
29264                else {
29265                    initTransferMode(value);
29266                    $(callButtons + ' .transfer-field').animate({
29267                        "height" : "show",
29268                        "opacity" : "show"
29269                    }, 400); //log('showing transfer button');
29270                }
29271            });
29272
29273            $('#transfer-autocomplete').on('focus', function() {
29274                if (typeof addAutoCompleteTransfer != 'undefined')
29275                    addAutoCompleteTransfer();
29276            });
29277
29278            $('#transfer-autocomplete').keyup(function() {
29279                    if($(this).val() != "") {
29280                         $('#transfer' + thisId).removeAttr('disabled');
29281                    } else {
29282                         $('#transfer' + thisId).prop("disabled", true);
29283                    }
29284            });
29285
29286            $('#transfer' + thisId).click( function() {
29287                var dest = $('#transfer-autocomplete').val() + "";
29288                var destArray = dest.split(" ");
29289
29290                ignoreOrigId.push(value.orig_callid);
29291                ignoreOrigId.push(value.term_callid);
29292
29293                var url = "/portal/calls/xfer/";
29294                $('#transfer' + thisId).prop("disabled",true);
29295                if (calltype =='outbound')
29296                    url = url+ escapeCallid(value.term_callid) + "/" + destArray[0];
29297                else
29298                    url = url+ escapeCallid(value.orig_callid) + "/" + destArray[0];
29299
29300                $.post(url).done(function(data) {
29301
29302                    jsFlash(String.format(_("Transferring call to {0}"), $('#transfer-autocomplete').val()), "success");
29303                    closeTransferMode();
29304                    $(columnId).remove();
29305                });
29306
29307            });
29308
29309            $(document).on('click', endButton, function(data) {
29310
29311                $.post("/portal/calls/terminate/" + escapeCallid(value.term_callid), function() {
29312                });
29313
29314                ignoreOrigId.push(value.orig_callid);
29315
29316                if (typeof endButton!="undefined")
29317                    $(endButton).prop("disabled", true);
29318                if (typeof holdButton!="undefined")
29319                    $(holdButton).prop("disabled", true);
29320                if (typeof transButton!="undefined")
29321                    $(transButton).prop("disabled", true);
29322
29323                // stop pulsing after clicking answer
29324                //$(dockBody).animate({
29325                //    backgroundColor : '#fff'
29326                //}).stop();
29327                //
29328                //$(callButtons).html('<button class="dockcall-complete btn btn-primary">Complete</button>');
29329            });
29330        }
29331        else
29332            {
29333                //Still ringing....
29334                if (value.by_action=="ForwardSRing")
29335                {
29336
29337                    var termDevices = $(columnId).data("termDevices");
29338                    if (value.term_domain == value.term_to_uri.substring( value.term_to_uri.indexOf('@')+1))
29339                        {
29340                            if ($.inArray(value.term_to_uri, termDevices)=== -1)
29341                                termDevices.push(value.term_to_uri);
29342                        }
29343
29344                    $(columnId).data("termDevices",termDevices);
29345                    //log($(columnId).data("termDevices"));
29346                    if (termDevices.length >1)
29347                        {
29348                            //$('.forward-select').empty();
29349                            //for (var key in termDevices)
29350                            //{
29351                            //    $('.forward-select select').append("<option>"+cleanDevice(termDevices[key])+"</option>");
29352                            //}
29353                            //
29354                            //$('.forward-select').show();
29355
29356
29357                            $(answerButton).prop("disabled",true);
29358                            $(answerButton).attr('title','Disabled on Sim Ring');
29359                        }
29360
29361                }
29362            }
29363
29364            //$(completeButton).on('click', function() {});
29365
29366
29367        }
29368
29369
29370
29371    // nsModifyRow($(this),value);
29372}
29373
29374function popoutModifyCallsameURI(popup, value, domain, user) {
29375    var thisId = popup.attr('id');
29376    var popupId = '#' + thisId;
29377    log('popoutModifyCallsameURI: popupId  ' + popupId);
29378    var dockBody = popupId + ' .popcall-body';
29379    var callButtons = popupId + ' .popcall-buttons';
29380    var callFields = popupId + ' .popcall-fields';
29381    var callMonitor = popupId + ' .popcall-monitor';
29382    var answerButton = popupId + ' .popcall-answer';
29383    var orig_number = popupId + ' .popcall-orignumber';
29384    var orig_number = popupId + ' .popcall-orignumber';
29385    var disposition = popupId + ' .popcall-disposition';
29386    var reason = popupId + ' .popcall-reason';
29387    var notes = popupId + ' .popcall-notes';
29388
29389    var orig_name = popupId + ' .popcall-origname';
29390    var term_number = popupId + ' .popcall-termnumber';
29391    var panelContent = popupId + ' .popcall-panel-content';
29392    var panelInfo = popupId + ' .popcall-info';
29393    var transButton = popupId + ' .popcall-transfer';
29394
29395    var calltype = getType(value, domain, user);
29396    var number = getNumber(value, domain, user);
29397    var name = getName(value, domain, user,number);
29398
29399    //log('calltype: ' + calltype);
29400    //log('number: ' + number);
29401    //log('name: ' + name);
29402
29403    //var number = ' ';
29404    var termIds = popup.data('termIds');
29405    //log(termIds);
29406    var termid = value.term_callid.replace(/[^a-zA-Z0-9]/g, '-');
29407
29408    var termIdFound  = false;
29409    for (var key in termIds)
29410        {
29411        if (termIds['key'] ==termid)
29412            {
29413            //log('found this termid already');
29414            termIdFound=true;
29415            }
29416
29417        }
29418
29419    $(popupId).data("term_callid",value.term_callid);
29420
29421    if (!termIdFound && typeof termIds.push == 'function')
29422        termIds.push(termid);
29423
29424
29425    var curLegCount = parseInt($(popupId).data("legCount"));
29426
29427    log("curLegCount="+curLegCount );
29428
29429    if (calltype =="monitor")
29430    {
29431        //do nothing...
29432
29433    }
29434    else
29435        {
29436        if (value.time_answer != "0000-00-00 00:00:00") {
29437
29438            log('should be answering: thisId  ' + thisId);
29439
29440            //stop incoming call flashing animation
29441            $(dockBody).animate({
29442                backgroundColor : '#fff'
29443            }).stop();
29444
29445            if ($(panelContent + ' .popcall-number' ).length == 0) {
29446                //replace inbound/outbound call message
29447                $(panelContent + ' h3').remove();
29448                $(panelContent + ' h4').html(name).after('<h4 class="popcall-number">' + number +'</h4>');
29449            }
29450            else {
29451                $(panelContent + ' h4').html(name);
29452                $(panelContent + ' .popcall-number' ).text(number);
29453            }
29454
29455
29456
29457            if ($(panelInfo).length ==0)
29458                $(panelContent).prepend(
29459                    '<div class="popcall-info">' + '<h5>Active Call <span class="popcall-onhold label label-important hide">' + _('On Hold') + '</span><span gmt_answer="' + value.time_answer
29460                        + '" class="popcall-timer duration_counter pull-right">00:00</span>' + '</h5>' + '</div>');
29461
29462
29463
29464
29465            if ($(callButtons + ' .popcall-callactions').length ==0) {
29466                //generate call control buttons
29467                $(callButtons).html('<div class="btn-group popcall-callactions"><button class="popcall-hold btn" data-toggle="button" title="' + _('Hold') + '"><i class="hold"></i></button>'
29468                            + '<button class="popcall-end btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>'
29469                            + '<button class="popcall-transfer btn" data-toggle="button" title="' + _('Transfer') + '"><i class="transfer"></i></button>'
29470                            + '</div>'
29471                            + '<div class="transfer-field input-append hide"><input id="transfer-autocomplete" class="span2" type="text" placeholder="Enter extension or number">'
29472                            + '<button id="transfer' + thisId + '"  type="button" class="btn btn-success" disabled><i class="icon-arrow-right"></i></button></div>');
29473            }
29474
29475            //resize scrollable content to fit with new call popup
29476            resizePopoutContent();
29477
29478            // show transfer field when transfer button is clicked
29479            $(transButton).off().on('click', function() {
29480                //log('transfer button clicked');
29481                if ($(callButtons + ' .transfer-field').is(':visible')) {
29482                    closeTransferMode();
29483                    $(callButtons + ' .transfer-field').animate({
29484                        "height" : "hide",
29485                        "opacity" : "hide"
29486                    }, {
29487                            progress: function(){
29488                                resizePopoutContent();
29489                            }
29490                        });
29491                    //log('hiding transfer button');
29492                }
29493                else {
29494                    initTransferMode(value);
29495                    $(callButtons + ' .transfer-field').animate({
29496                        "height" : "show",
29497                        "opacity" : "show"
29498                    }, {
29499                            progress: function(){
29500                                resizePopoutContent();
29501                            }
29502                    //log('showing transfer button');
29503                    });
29504                }
29505            });
29506
29507            $('#transfer-autocomplete').on('focus', function() {
29508                if (typeof addAutoCompleteTransfer != 'undefined')
29509                    addAutoCompleteTransfer();
29510            });
29511
29512            $('#transfer-autocomplete').keyup(function() {
29513                    if($(this).val() != "") {
29514                         $('#transfer' + thisId).removeAttr('disabled');
29515                    } else {
29516                         $('#transfer' + thisId).prop("disabled", true);
29517                    }
29518            });
29519
29520            $('#transfer' + thisId).click( function() {
29521                var dest = $('#transfer-autocomplete').val() + "";
29522                var destArray = dest.split(" ");
29523
29524                ignoreOrigId.push(value.orig_callid);
29525                ignoreOrigId.push(value.term_callid);
29526
29527                var url = "/portal/calls/xfer/";
29528                $('#transfer' + thisId).prop("disabled",true);
29529                if (calltype =='outbound')
29530                    url = url+ value.term_callid + "/" + destArray[0];
29531                else
29532                    url = url+ value.orig_callid + "/" + destArray[0];
29533
29534                $.post(url).done(function(data) {
29535
29536                    jsFlash(String.format(_("Transferring call to {0}"), $('#transfer-autocomplete').val()));
29537                    $(callButtons + ' .transfer-field').animate({
29538                        "height" : "hide",
29539                        "opacity" : "hide"
29540                    }, 400);
29541                    $(popupId).remove();
29542                    resizePopoutContent();
29543                });
29544
29545            });
29546        }
29547        else
29548            {
29549                //Still ringing....
29550                if (value.by_action=="ForwardSRing")
29551                {
29552
29553                    var termDevices = $(popupId).data("termDevices");
29554                    if (value.term_domain == value.term_to_uri.substring( value.term_to_uri.indexOf('@')+1))
29555                        {
29556                            if ($.inArray(value.term_to_uri, termDevices)=== -1)
29557                                termDevices.push(value.term_to_uri);
29558                        }
29559
29560                    $(popupId).data("termDevices",termDevices);
29561                    //log($(columnId).data("termDevices"));
29562                    if (termDevices.length >1)
29563                        {
29564                            //$('.forward-select').empty();
29565                            //for (var key in termDevices)
29566                            //{
29567                            //    $('.forward-select select').append("<option>"+cleanDevice(termDevices[key])+"</option>");
29568                            //}
29569                            //
29570                            //$('.forward-select').show();
29571
29572
29573                            $(answerButton).prop("disabled",true);
29574                            $(answerButton).attr('title','Disabled on Sim Ring');
29575                        }
29576
29577                }
29578            }
29579
29580            //$(completeButton).on('click', function() {});
29581
29582
29583        }
29584
29585
29586
29587    // nsModifyRow($(this),value);
29588}
29589
29590function delayedRemove(searchString,orid_id)
29591{
29592  var rows = $(searchString);
29593  rows.each(function(index) {
29594      if (rows[index].id == orid_id)
29595      {
29596        console.log("removing after delay " + orid_id);
29597        $(this).remove();
29598          $('.tooltip').hide();
29599      }
29600
29601  });
29602}
29603
29604function updateCallLineDomainFull(data) {
29605    if (PORTAL_HOME_OMP_SHOW_MEETING){
29606      if (data.term_to_uri.includes(".video.bridge") || data.orig_from_uri.includes(".video.bridge"))
29607        return;
29608      if (data.term_to_uri.includes("conference-bridge") || data.orig_from_uri.includes("conference-bridge"))
29609        return;
29610    }
29611
29612
29613    updateCallLineDomain(data);
29614
29615    if (data.orig_from_user =="Call-Record-Account" && data.remove == "yes"){
29616        log('Call to record ended');
29617        var greetingEnd = false;
29618        var greetingsModal;
29619        var path;
29620
29621        //check to see if any greetings modals are showing
29622        if ($('#greetings-modal').is(':visible')) {
29623            log('greetings-modal is visible');
29624            greetingsModal = $('#greetings-modal');
29625            path = '/portal/users/greetings/index/' + data.by_sub + '@' + data.by_domain;
29626            greetingEnd = true;
29627        }
29628        else if ($('#introgreeting-modal').is(':visible')) {
29629            log('introgreeting-modal is visible');
29630            greetingsModal = $('#introgreeting-modal');
29631            var callee_match = greetingsModal.data('callee-match');
29632            var starting = greetingsModal.data('starting');
29633            path = '/portal/attendants/intros/' + callee_match + '/' + starting;
29634            greetingEnd = true;
29635        }
29636        else if($('#write-queue').is(':visible')) {
29637            log('write queue modal is visible');
29638            var queue = $("#CallqueueName").val();
29639            log(queue);
29640            var jsonPath = '/portal/callqueues/messagecheck/'+queue;
29641
29642            //grab new recording uri, insert into play and download buttons
29643            setTimeout(function(){
29644                $.getJSON(jsonPath,function(data){
29645                    // log(data);
29646                    log('new remotepath for announce-to-agent.wav');
29647                    // log(data[0]['Music']['announce-to-agent.wav']['remotepath']);
29648
29649                    var remotePath = data[0]['Music']['announce-to-agent.wav']['remotepath'];
29650
29651                    if($('#audio-player-1').length) {
29652
29653                        //removes the HTML characters added
29654                        remotePath = remotePath.replace(/\bamp;\b/g, '');
29655
29656                        // for localhost testing
29657                        // remotePath = remotePath.replace('localhost', 'corp.netsapiens.com');
29658
29659                        $('#write-queue .download-audio').attr('href', remotePath);
29660
29661                        $('#audio-player-1 source').each(function(){
29662                            log('updating audio players source paths');
29663
29664                            var audioType = $(this).attr('type');
29665
29666                            // log(audioType);
29667
29668                            if(audioType == 'audio/x-wav')
29669                                remotePath += '&convert=signed';
29670                            else if(audioType == 'audio/ogg; codecs=vorbis')
29671                                remotePath += '&convert=ogg';
29672                            else if(audioType == 'audio/mp4')
29673                                remotePath += '&convert=aac';
29674                            else if(audioType == 'audio/aac')
29675                                remotePath += '&convert=aac';
29676
29677                            log(remotePath);
29678
29679                            $(this).attr('src', remotePath);
29680                        });
29681
29682                        //loads new sources to audio player
29683                        $('#audio-player-1')[0].load();
29684                        hideAgentMsgRecord();
29685                    } else {
29686                        log('no audio player found');
29687
29688                        // var html = AudioPlayer.build(remotePath, 1);
29689
29690                        // hideAgentMsgRecord();
29691                        // $('.audio-inline').prepend(html);
29692
29693                        // AudioPlayer.bind();
29694
29695                        //add delete button
29696                    }
29697
29698
29699
29700                }).fail(function(){
29701                    log('remotepath request failed');
29702                    jsFlash(_('Message to agent failed to record!'), 'danger');
29703                });
29704
29705            }, 2000);
29706
29707        }
29708        //check if edit answering rule is open
29709        else if($('#write-rule').is(':visible')){
29710          hideAgentMsgRecord();
29711        }
29712        //if ($('#introgreeting-modal').is(':visible')) {
29713        //    var greetingsModal = $('#introgreeting-modal');
29714        //    greetingEnd = true;
29715        //}
29716
29717        //after call to record ends, refresh greetings modal if it's visible
29718        if (greetingEnd) {
29719            log('a greetings modal is visible, reloading modal');
29720
29721            if (typeof path == 'undefined')
29722            path = greetingsModal.find("form").attr("action");
29723            greetingsModal.html('<span class=\"loading-lg\"></span>');
29724            greetingsModal.css('min-height', '0');
29725            modalResize(greetingsModal);
29726
29727            setTimeout(loadModal, 2000,"#"+greetingsModal[0].id,path);
29728        }
29729
29730        return;
29731    }
29732    else if (data.orig_from_user =="Call-Record-Account") {
29733      }
29734}
29735
29736function updateCallLineDomain( value) {
29737    //log ("updateCallLineDomain");
29738    //log (value);
29739    var searchString = "#calls_table tr:gt(0)";
29740
29741    var orid_id = value.orig_callid;
29742    var term_id = value.term_callid;
29743    var term_uri = value.term_uri;
29744    var id = orid_id + "_" + term_id + "_" + term_uri.split('@')[0] ;
29745    var rId = value.orig_callid + "_" + value.term_callid + "_" + value.term_uri.split('@')[0];
29746
29747    if ($('#calls_table.queues-table').length >0  )
29748    {
29749
29750        if (  $('#calls_table.queues-table').attr('queue')!=value.term_sub &&
29751                $('#calls_table.queues-table').attr('queue')!=value.by_sub)
29752            return;
29753        //log($('#calls_table.queues-table').attr('queue'));
29754        //log(value.term_sub);
29755
29756        if (value.remove != "yes") {
29757            //log("updateCallLineDomain QUEUE");
29758            //log(value);
29759            var found = false;
29760
29761            var trTag = "";
29762            var html = "";
29763            trTag += "<tr gmt_start='" + value.time_start + "' orig_id='" + orid_id + "' term_id='" + term_id + "' term_uri='" + term_uri + "' id='" + orid_id+ "' >";
29764            if (typeof value.orig_domain != 'undefined' && value.orig_domain != "" && value.orig_domain == current_domain)
29765            {
29766              // This shoudl be a "outbound" or on net call to this domain in question. Should use subscriber and orig_sub_name if available
29767              html += td(cleanDevice(value.orig_sub));
29768              if (value.orig_sub_name)
29769                html += td(value.orig_sub_name);
29770              else
29771                html += td(value.orig_name);
29772            }
29773            else {
29774              html += td(cleanDevice(value.ani));
29775              html += td(value.orig_name);
29776            }
29777
29778            html += td(cleanDevice(value.dnis));
29779            var status="";
29780            var term_uri=value.term_uri;
29781            if (value.term_uri=="Call-Queue" || value.term_uri=="Auto-Attendant" || value.term_uri==" ")
29782            {
29783                 term_uri="";
29784                 status =_("Waiting");
29785            }
29786            else if (value.term_uri.indexOf("nms") != -1 && value.term_uri.indexOf("corp") != -1 && value.term_uri.indexOf("sipbx") != -1)
29787            {
29788                 term_uri="";
29789                 status =_("Waiting");
29790            }
29791            else if (value.term_uri=="CallBack-Queue") {
29792              term_uri="";
29793              status =_("Waiting for Callback");
29794            }
29795            else
29796            {
29797                if (value.time_answer=="0000-00-00 00:00:00")
29798                    if (value.by_action && value.by_action == "QueueSDispatch")
29799                      status = _("Ringing Agent(s)");
29800                    else
29801                      status = _("Ringing Agent");
29802                else
29803                    status =_("Talking");
29804            }
29805
29806
29807            html += td(status);
29808            html += td(cleanDevice(term_uri));
29809            html += td("<span gmt_start='" + value.time_start + "' gmt_answer='" + value.time_answer + "' class='duration_counter' ></span>","text-right");
29810            html += getButtons(value);
29811            trTag += html;
29812            trTag += "</tr  >";
29813
29814
29815            var rows = $(searchString);
29816
29817            rows.each(function(index) {
29818                if (rows[index].id == orid_id) {
29819                    // MODIFY
29820                    $(this).html(html);
29821                    $('.tooltip').hide();
29822                    found = true;
29823                }
29824            });
29825            if (!found) {
29826                $('#calls_table > tbody:last').append(trTag);
29827            }
29828
29829        } else {
29830            // DELETE
29831            //log("updateCallLineDomain QUEUE DELETE");
29832            //log(value);
29833            var rows = $(searchString);
29834            rows.each(function(index) {
29835                if (rows[index].id == orid_id)
29836                {
29837                  $(this).remove();
29838                  $('.tooltip').hide();
29839                }
29840
29841            });
29842
29843
29844
29845        }
29846
29847    }
29848    else if ($('#calls_table.waiting-table').length >0 )
29849    {
29850        if (  $('#calls_table.waiting-table').attr('queue')!=value.term_sub &&
29851                $('#calls_table.waiting-table').attr('queue')!=value.by_sub)
29852        {
29853          return;
29854        }
29855
29856
29857            if (delayedRemoveMap.has(orid_id) && value.remove != "yes")
29858            {
29859              clearTimeout(delayedRemoveMap.get(orid_id));
29860              delayedRemoveMap.delete(orid_id);
29861            }
29862
29863            let queuedData = null;
29864            let earliestStart = value.time_start;
29865            if (queuedCallMap.has(value.orig_callid + value.by_sub))
29866              queuedData = queuedCallMap.get(value.orig_callid + value.by_sub);
29867            else if (queuedCallMap.has(value.oirg_callid + value.term_sub))
29868              queuedData = queuedCallMap.get(value.oirg_callid + value.term_sub).time_queued;
29869
29870            var prioritizedvalue = 1 ;
29871            priorityClass = 'hide';
29872            if (queuedData)
29873            {
29874              earliestStart = queuedData.time_queued;
29875              if (queuedData.prioritized =="yes")
29876              {
29877                prioritizedvalue = 0; //lower better for asc sort
29878                priorityClass = '';
29879              }
29880
29881            }
29882
29883
29884            log("updateCallLineDomain WAITING");
29885            //log(value);
29886            var found = false;
29887            id= orid_id;
29888            var trTag = "";
29889            var html = "";
29890            trTag += "<tr data-gmt_start='"+value.time_start+"' data-prioritizedvalue="+prioritizedvalue+" gmt_start='" +
29891                earliestStart + "' orig_id='" + orid_id + "' data-orig_id='" + orid_id + "'  id='" + orid_id+ "' >";
29892            if (typeof value.orig_domain != 'undefined' && value.orig_domain != "" && value.orig_domain == current_domain)
29893            {
29894              // This shoudl be a "outbound" or on net call to this domain in question. Should use subscriber and orig_sub_name if available
29895              html += td(cleanDevice(value.orig_sub));
29896              if (value.orig_sub_name)
29897                html += td(value.orig_sub_name);
29898              else
29899                html += td(value.orig_name);
29900            }
29901            else {
29902              html += td(cleanDevice(value.ani));
29903              html += td(value.orig_name);
29904            }
29905
29906            //html += td(cleanDevice(value.dnis));
29907            var status="";
29908            var term_uri=value.term_uri;
29909            if (value.term_uri=="CallBack-Queue") {
29910              term_uri="";
29911              status =_("Waiting for Callback");
29912            }
29913            else if (value.term_uri=="Call-Queue" || value.term_uri=="Auto-Attendant" || value.term_uri==" " || value.remove == "yes")
29914            {
29915                 term_uri="";
29916                 status =_("Waiting");
29917            }
29918            else
29919            {
29920                if (value.time_answer=="0000-00-00 00:00:00"){
29921                  if (value.by_action && value.by_action == "QueueSDispatch")
29922                    status = _("Ringing Agent(s)");
29923                  else
29924                    status = _("Ringing Agent");
29925                }
29926                else
29927                    status =_("Talking");
29928            }
29929
29930
29931
29932
29933
29934            //html += td(cleanDevice(term_uri));
29935
29936
29937
29938            priority = '&nbsp;<span data-sessionId="'+value.orig_callid+'" class="priority-label label label-info '+priorityClass+'">'+_("Priority")+'</span>';
29939
29940
29941            html += td(status + " "+ priority);
29942
29943            let timeAnswer = value.time_answer;
29944            if (timeAnswer != "0000-00-00 00:00:00" && value.term_to_uri == "Call-Queue")
29945              timeAnswer = "0000-00-00 00:00:00";
29946
29947            html += td("<span gmt_start='" + earliestStart + "' gmt_answer='0000-00-00 00:00:00'  class='duration_counter' ></span>","text-right"); // gmt_answer='" + timeAnswer + "'
29948
29949            html += getButtonsWaiting(value,queuedData);
29950            trTag += html;
29951            trTag += "</tr  >";
29952
29953
29954            var rows = $(searchString);
29955            rows.each(function(index) {
29956                if (rows[index].id == orid_id) {
29957
29958                    if (status==_("Talking"))
29959                        {
29960                          $('.tooltip').hide();
29961                          $(this).remove();
29962
29963                        }
29964                    else
29965                    {
29966                    // MODIFY
29967                      $('.tooltip').hide();
29968
29969                      const dropdownId = "#tranfer-dropdown-"+cleanId(orid_id)+".dropdown.open";
29970
29971                      if ($(dropdownId).length != 0)
29972                      {
29973                          //this means the dropdown dialog is open. Need to skip replacing the html
29974                      }
29975                      else
29976                      {
29977                        $(this).html(html);
29978
29979                        checkTransferType(null,orid_id);
29980                      }
29981
29982                      found = true;
29983                    }
29984                }
29985            });
29986
29987            if (!found) {
29988                // ADD
29989                if (status!=_("Talking") && value.remove != "yes")
29990                {
29991                  $('#calls_table.waiting-table > tbody:last').append(trTag);
29992                  checkTransferType(null,orid_id);
29993                }
29994
29995            }
29996            $('.dropdown-menu .optionsLi').click(function(e) {
29997                e.stopPropagation();
29998            });
29999
30000            getUserDevices(false, setWaitingPickupDevices);
30001
30002
30003            if(value.remove == "yes")
30004            {
30005              var rows = $(searchString);
30006              rows.each(function(index) {
30007                  if (rows[index].id == orid_id)
30008                  {
30009                    if (!delayedRemoveMap.has(orid_id))
30010                    {
30011
30012                      console.log("adding remove delay for " + orid_id);
30013                      let newTimeout = setTimeout(delayedRemove,180000,searchString,orid_id);
30014                      delayedRemoveMap.set(orid_id,newTimeout );
30015                    }
30016
30017                  }
30018
30019              });
30020            }
30021
30022        // } else {
30023        //
30024        // }
30025
30026        sortWaitingTable();
30027        initTooltips();
30028
30029    }
30030    else if (value.remove != "yes") {
30031        log("updateCallLineDomain");
30032        log(value);
30033        var found = false;
30034
30035    if (value.media =="VP8" || value.media =="VP9" || value.media =="H264" )
30036            if (value.term_to_uri.includes("w@"))
30037                return;
30038
30039
30040    if (value.dnis.includes("video.bridge"))
30041        value.dnis = "";
30042
30043
30044        var trTag = "";
30045        var html = "";
30046        trTag += "<tr gmt_start='" + value.time_start + "' orig_id='" + orid_id + "' term_id='" + term_id + "' term_uri='" + term_uri + "' id='" + id+ "' >";
30047        if (typeof value.orig_domain != 'undefined' && value.orig_domain != "" && value.orig_domain == current_domain)
30048        {
30049          // This shoudl be a "outbound" or on net call to this domain in question. Should use subscriber and orig_sub_name if available
30050          html += td(cleanDevice(value.orig_sub));
30051          if (value.orig_sub_name)
30052            html += td(value.orig_sub_name);
30053          else
30054            html += td(value.orig_name);
30055        }
30056        else {
30057          html += td(cleanDevice(value.ani));
30058          html += td(value.orig_name);
30059        }
30060        html += td(cleanDevice(value.dnis));
30061        html += td(cleanDevice(value.term_uri));
30062        html += td("<span gmt_start='" + value.time_start + "' gmt_answer='" + value.time_answer + "' class='duration_counter' ></span>","text-right");
30063        html += getButtons(value, true);
30064        trTag += html;
30065        trTag += "</tr  >";
30066
30067
30068        var rows = $(searchString);
30069
30070        rows.each(function(index) {
30071            if (rows[index].id == rId) {
30072                // MODIFY
30073                $(this).html(html);
30074                found = true;
30075            }
30076        });
30077        if (!found) {
30078            // ADD
30079            $('#calls_table > tbody:last').append(trTag);
30080        }
30081
30082    } else {
30083        // DELETE
30084        var rows = $(searchString);
30085        rows.each(function(index) {
30086            if (rows[index].id == rId)
30087                  $(this).remove();
30088        });
30089
30090    }
30091
30092
30093
30094    var rowCount = $(searchString).length;
30095    var statsCalls = $('#stats-calls')
30096    if (typeof statsCalls != 'undefined')
30097        statsCalls.html(""+rowCount);
30098
30099    if (rowCount>0)
30100        $('.nonecreated').hide();
30101    else
30102        $('.nonecreated').show();
30103
30104
30105    if ($('#agents-table').length != 0)
30106    {
30107        //log("checking agents table");
30108        //log(value);
30109        var listenButtonOrig =  '#listen-'+cleanId(value.orig_match);
30110        var listenButtonTerm =  '#listen-'+cleanId(value.term_uri);
30111        if (typeof value.term_uri != 'undefined')
30112            listenButtonTerm =  '#listen-'+cleanId(value.term_to_uri);
30113        var listenButtonTerm2 =  '#listen-'+cleanId(value.term_match);
30114
30115
30116        var listenButtonOrig2 =  '#listen-'+cleanId(value.orig_sub+"@"+value.orig_domain);
30117        var listenButtonTerm3 =  '#listen-'+cleanId(value.term_sub+"@"+value.term_domain);
30118
30119        listenButtonTerm = listenButtonTerm.replace(/\_/g, "-");
30120        listenButtonOrig = listenButtonOrig.replace(/\_/g, "-");
30121        listenButtonTerm2 = listenButtonTerm2.replace(/\_/g, "-");
30122
30123        listenButtonOrig2 = listenButtonOrig2.replace(/\_/g, "-");
30124        listenButtonTerm3 = listenButtonTerm3.replace(/\_/g, "-");
30125
30126        log("orig=" +listenButtonOrig);
30127        log("term=" +listenButtonTerm);
30128        log("term2=" +listenButtonTerm2);
30129
30130        log("listenButtonOrig2=" +listenButtonOrig2);
30131        log("listenButtonTerm3=" +listenButtonTerm3);
30132
30133        var callid = cleanId(value.orig_callid);
30134
30135        const listenButtons = [listenButtonTerm,listenButtonOrig,listenButtonTerm2,listenButtonOrig2,listenButtonTerm3];
30136
30137        if (value.remove =="yes")
30138        {
30139            for (var i = 0; i < listenButtons.length; i++) {
30140              if ($(listenButtons[i]).length!=0)
30141                $(listenButtons[i]).each(function (){
30142                    if ($(this).data('callidOut') == callid || $(this).data('callidIn') == callid) {
30143                        $(this).attr('onclick', '');
30144                        $(this).prop("disabled", true);
30145                    }
30146                });
30147
30148            }
30149
30150            return;
30151        }
30152
30153        if (value.time_answer != "0000-00-00 00:00:00")
30154        {
30155            for (var i = 0; i < listenButtons.length; i++) {
30156              if ($(listenButtons[i]).length!=0)
30157              {
30158                $(listenButtons[i]).attr('onclick', getListenButton(value))
30159                    .removeAttr('disabled')
30160                    .data('callidIn', callid);
30161              }
30162            }
30163        }
30164
30165    }
30166
30167    var monId = getMonitorId(value);
30168    $('.dockcall-column').each(function() {
30169
30170        var thisId = $(this).attr('id');
30171
30172        if ($(this).data('calltype')=='monitor' && $(this).data('monitorId') == monId)
30173            {
30174                dockModifyCallsameURI($(this),value,"Monitor","Monitor");
30175            }
30176    });
30177
30178
30179
30180
30181}
30182
30183function getListenButton(value) {
30184
30185    var vrb = 'activecall'+value.orig_callid.replace(/[^a-zA-Z0-9]/g, '')+""+value.term_callid.replace(/[^a-zA-Z0-9]/g, '')+""+value.term_uri.replace(/[^a-zA-Z0-9]/g, '');
30186    var jsInsert = "var "+vrb+"=[];";
30187    jsInsert += ""+vrb+".orig_id='"+value.orig_callid+"';";
30188    jsInsert += ""+vrb+".term_id='"+value.term_callid+"';";
30189    jsInsert += ""+vrb+".orig_uri='"+value.orig_uri+"';";
30190    jsInsert += ""+vrb+".ani='"+value.ani+"';";
30191    jsInsert += ""+vrb+".term_uri='"+value.term_uri+"';log("+vrb+");"; //hideModal(\'#view-calls\');
30192    jsInsert += "listenIn("+vrb+");$(this).prop('disabled',true);jsFlash('" + _('Monitoring the Call...') + "');";
30193
30194    //log(jsInsert);
30195
30196
30197    if ($('#agents-table').hasClass('allowmonitor')) {
30198        //log("monitoring allowed");
30199    }
30200    else {
30201        //log("monitoring NOT allowed");
30202        return "&nbsp;";
30203    }
30204
30205    if (value.term_uri == "Call-Queue" || value.term_uri == "Auto-Attendant") {
30206        return "&nbsp;";
30207    } else {
30208        if (value.time_answer == "0000-00-00 00:00:00")
30209            return "&nbsp;";
30210        else
30211            return jsInsert;
30212    }
30213}
30214
30215
30216
30217// function updateCallLineQueue( value) {
30218//
30219//     log('updateCallLineQueue');
30220//     var searchString = "#calls_table.queues-table";
30221//
30222//     var orid_id = value.orig_callid;
30223//     var term_id = value.term_callid;
30224//     var term_uri = value.term_uri;
30225//     var id = orid_id + "_" + term_id + "_" + term_uri;
30226//     var rId = value.orig_callid + "_" + value.term_callid + "_" + value.term_uri;
30227//
30228//     if (value.remove != "yes") {
30229//         var found = false;
30230//
30231//         var trTag = "";
30232//         var html = "";
30233//         trTag += "<tr gmt_start='" + value.time_begin + "' orig_id='" + orid_id + "' term_id='" + term_id + "' term_uri='" + term_uri + "' id='" + id
30234//             + "' >";
30235//
30236//         html += td(value.ani);
30237//         html += td(value.orig_name);
30238//         html += td(cleanDevice(value.dnis));
30239//         html += td(getStatus(value));
30240//         html += td(cleanDevice(value.term_uri));
30241//         html += td("<span gmt_start='" + value.time_begin + "' gmt_answer='" + value.time_answer + "' class='duration_counter' ></span>");
30242//         html += getButtons(value);
30243//         trTag += html;
30244//         trTag += "</tr  >";
30245//
30246//         var rows = $(searchString);
30247//         rows.each(function(index) {
30248//             if (rows[index].id == orig_callid) {
30249//                 // MODIFY
30250//                 $(this).html(html);
30251//                 found = true;
30252//             }
30253//         });
30254//         if (!found) {
30255//             // ADD
30256//             $('#calls_table > tbody:last').append(trTag);
30257//
30258//         }
30259//
30260//     } else {
30261//         // DELETE
30262//         var rows = $(searchString);
30263//         rows.each(function(index) {
30264//             if (rows[index].id == rId)
30265//                 $(this).remove();
30266//         });
30267//
30268//     }
30269//
30270// }
30271
30272// takes a call identifier to create a unique incoming call display
30273
30274function listenIn(value) {
30275    var toAppend = '<div class="dock-column">'
30276        + '<div class="dock-column-inner">'
30277        + '<div class="dock-popup">'
30278        + '<div class="dock-head">'
30279        + '<div class="dock-head-title">'
30280        + '<span class="dock-name">'
30281        + _('Audio Monitoring')
30282        + '</span>'
30283        + '<div class="dock-head-title">'
30284        + '<div class="dock-head-buttons">'
30285        +
30286        // '<i class="dock-minimize icon-minimize icon-white"
30287        // title="' + _('Minimize') + '"></i>' +
30288        '<i class="dock-close icon-remove icon-white"></i>'
30289        + '</div>'
30290        + '</div>'
30291        + '<div class="dock-body">'
30292        + '<div class="dockcall-panel-content">'
30293        + '<h3>Monitoring Call</h4>'
30294        + '<h4 class="dockcall-number">'
30295        + cleanDevice(value.ani)
30296        + '</h3>'
30297        + '<h6 class="dockcall-number">'
30298        + "talking to"
30299        + '</h1>'
30300        + '<h4 class="dockcall-number">'
30301        + cleanDevice(value.term_uri)
30302        + '</h3>'
30303        + '<div class="btn-group dockcall-callactions"><button class="dockcall-hold btn" data-toggle="button" title="' + _('Hold') + '"><i class="hold"></i></button>'
30304        + '<button class="dockcall-end btn btn-danger" title="' + _('End') + '"><i class="end"></i></button>'
30305        + '<button class="dockcall-transfer btn" title="' + _('Transfer') + '"><i class="transfer"></i></button></div>'
30306    '</div>' + '</div>' + '</div>' + '</div>' + '</div>';
30307
30308    // prepend dock html
30309
30310    var url = "/portal/calls/tap/"+escapeCallid(value.orig_id);
30311    log(url);
30312    $.post(url,function(data){
30313
30314        //log(data);
30315
30316     })
30317        .fail(function(){
30318            log("tap no good");
30319        })
30320        .done(function(data){
30321            log("tap good");
30322
30323            //$('.dock-popup-overlay').prepend(toAppend);
30324
30325            // sets height of dock column so it's displayed
30326            dockHeight();
30327        });
30328
30329};
30330
30331function td(str, classStr) {
30332    if (typeof classStr == 'undefined')
30333        classStr="";
30334    return "<td class='"+classStr+"' >" + str + "</td>";
30335}
30336
30337function durrationCounter() {
30338    $('.duration_counter').each(
30339
30340    function() {
30341        var gmt_start = $(this).attr('gmt_start');
30342        var gmt_answer = $(this).attr('gmt_answer');
30343        if (typeof gmt_answer == "undefined" || gmt_answer == "0000-00-00 00:00:00") {
30344            if (typeof gmt_start == "undefined" || gmt_start == "0000-00-00 00:00:00" || gmt_start == "") {
30345                $(this).text("");
30346            } else
30347                $(this).text(getDuration(gmt_start, timeOffset));
30348        } else if (gmt_answer == "ignore")
30349            $(this).text(getDuration(gmt_start, timeOffset));
30350        else
30351            $(this).text(getDuration(gmt_answer, timeOffset));
30352    });
30353    return;
30354
30355}
30356
30357function highlightQueueRow(value, remove) {
30358    var rows = $('#agent_queues tr:gt(0)');
30359    rows.each(function(index) {
30360        if (rows[index].id == "queue" + value) {
30361            if (remove)
30362                $('#' + rows[index].id).removeClass("highlight");
30363            else {
30364                $('#' + rows[index].id).addClass("highlight");
30365                // url = "http://google.com/search?btnI=1&q="+name+"%20"+number;
30366                // open_in_new_tab(url);
30367            }
30368            //log(rows[index].class);
30369        }
30370    });
30371
30372}
30373
30374// calculates height of dock columns and overlay based on window height
30375function dockHeight() {
30376    var dockDivs = $('.dock-overlay-inner, .dock-column, .dock-column-inner');
30377
30378    dockDivs.height($(window).height());
30379}
30380
30381//checks the width of the window and dock-popup-overlay to show or hide popups
30382function checkPopupWidth() {
30383    var overlayWidth = $('.dock-popup-overlay').outerWidth(true);
30384    var windowWidth = $(window).width();
30385
30386    if(overlayWidth == windowWidth) {
30387        // hide the last chatbox -- should this only hide chat boxes and not calls?
30388        $('.dock-popup-overlay .dock-column:visible').last().hide();
30389    }
30390    //check if overlay has room to show another chat box
30391    else if ((overlayWidth + 270) <  windowWidth) {
30392        $('.dock-popup-overlay .dock-column:hidden').first().show();
30393    }
30394}
30395
30396/**
30397 * shows the dial pad in the portal either as a dock popup or in the contacts popout
30398 *
30399 * @param {boolean} popout indicates whether we're showing the dial pad in the dock popup or popout
30400 **/
30401function showDialPad(popout) {
30402    if ($('.dial-pad').is(':visible')) {
30403        if(popout) {
30404            $('.dial-pad').remove();
30405            resizePopoutContent();
30406            return;
30407        }
30408        else
30409            return;
30410    }
30411
30412    //if needed, add unique id to "dock-column-dialpad" div in the dockHtml str
30412ing below
30413    var dialPadHtml = '<div class="dial-pad">'
30414            + '<div class="number-field-group input-append">'
30415                + '<input class="number-field" type="text" placeholder="'+ _('Extension or phone number') +'">'
30416                + '<button class="btn clear" title="' + _('Clear') + '"><i class="icon-remove"></i></button>'
30417            + '</div>'
30418            + '<div class="btn-group dial-pad-keys">'
30419                    + '<button id="pad-1" class="btn" data-keycode="49" data-char="1">1<p>&nbsp;</p></button>'
30420                    + '<button id="pad-2" class="btn" data-keycode="50" data-char="2">2<p>ABC</p></button>'
30421                    + '<button id="pad-3" class="btn" data-keycode="51" data-char="3">3<p>DEF</p></button>'
30422            + '</div>'
30423            + '<div class="btn-group dial-pad-keys">'
30424                    + '<button id="pad-4" class="btn" data-keycode="52" data-char="4">4<p>GHI</p></button>'
30425                    + '<button id="pad-5" class="btn" data-keycode="53" data-char="5">5<p>JKL</p></button>'
30426                    + '<button id="pad-6" class="btn" data-keycode="54" data-char="6">6<p>MNO</p></button>'
30427            + '</div>'
30428            + '<div class="btn-group dial-pad-keys">'
30429                    + '<button id="pad-7" class="btn" data-keycode="55" data-char="7">7<p>PQRS</p></button>'
30430                    + '<button id="pad-8" class="btn" data-keycode="56" data-char="8">8<p>TUV</p></button>'
30431                    + '<button id="pad-9" class="btn" data-keycode="57" data-char="9">9<p>WXYZ</p></button>'
30432            + '</div>'
30433            + '<div class="btn-group dial-pad-keys last">'
30434                    + '<button id="pad-star" class="btn" data-keycode="42" data-char="*">*<p>&nbsp;</p></button>'
30435                    + '<button id="pad-0" class="btn" data-keycode="48" data-char="0">0<p>&nbsp;</p></button>'
30436                    + '<button id="pad-pound" class="btn" data-keycode="35" data-char="#">#<p>&nbsp;</p></button>'
30437            + '</div>'
30438            + '<div class="btn-group dial-pad-actions">'
30439                + '<button class="btn btn-success dial-pad-call"><i class="answer"></i>'+ _('Call') +'</button>'
30440                + '<button class="btn btn-success dial-pad-from-btn" data-toggle="button" title="'+ _('Choose Phone') +'"><span class="caret"></span></button>'
30441            + '</div>'
30442            + '<div class="dial-pad-from hide">'
30443                + '<p class="muted"><small>' + _('Call using:') + '</small></p>'
30444                + '<p><select id="dial-pad-phone-option-select" class="device-select isCallDropboxCheckbox" onchange="uncheckDefaultDeviceBox(\'dial-pad-phone-option-select-checkbox\')"></select><p>'
30445                + '<p class="isCallTextbox hide "><input id="dial-pad-phone-option-text"  type="text" value="" placeholder="'+_('Enter a phone number')+'"></p>'
30446                + '<p class="isCallDropboxCheckbox muted"><input id="dial-pad-phone-option-select-checkbox" type="checkbox" class=" click2callphonedefault" value="isDefault" checked=""><span class=""><small>' + _('Use this phone by default') + '</small></span></p>'
30447                + '<p class="isCallTextboxReset hide"><span id="changePhones" class="bluetext " onclick="setCustom(false)" >'+_("Choose another phone")+'</span></p>'
30448            + '</div>'
30449
30450
30451    + '</div>';
30452
30453    if(popout) {
30454        // prepend popout html
30455        $('.popcall-container').prepend(dialPadHtml);
30456
30457        $('.dial-pad').hide().animate({
30458                height: "show"
30459            },{
30460                progress: function(){
30461                    resizePopoutContent();
30462                    $('.number-field').focus();
30463                }
30464            });
30465    }
30466    else {
30467        var dockHtml = '<div id="dock-column-dialpad" class="dock-column dockcall-column">'
30468        + '<div class="dock-column-inner">' + '<div class="dock-popup">'
30469            + '<div class="dock-head">'
30470                + '<div class="dock-head-buttons">'
30471                    + '<span class="dockcall-onhold label label-important hide">' + _('On Hold') + '</span>'
30472                    + '<button class="dock-minimize dock-head-button"><i class="icon-minimize icon-white" title="' + _('Minimize') + '"></i></button>'
30473                    + '<button class="dock-close dock-head-button"><i class="icon-remove icon-white"></i></button>'
30474                + '</div>'
30475                + '<div class="dock-head-title">'
30476                    + '<i class="icon-call icon-white"></i><span class="dock-name">' + _('Make a Call') + '</span>'
30477                + '</div>'
30478            + '</div>'
30479            + '<div class="dock-body dockcall-body">' + dialPadHtml + '</div>'
30480            + '</div>' + '</div>' + '</div>';
30481
30482        // prepend dock html
30483        $('.dock-popup-overlay').prepend(dockHtml);
30484
30485        dockHeight();
30486        $('.number-field').focus();
30487    }
30488
30489    var $numfield = $(".number-field");
30490
30491    $numfield[0].onkeypress = function(e){
30492        keyPress(e)
30493    };
30494
30495    $(".dial-pad-keys button").on('click',function(){
30496
30497        var ch = $(this).data('char');
30498
30499        //var e = $.Event('keyup');
30500        //e.which = ch;
30501        //e.keyCode = ch;
30502        //numfield.trigger(e);
30503
30504        $numfield.insertAtCaret(ch);
30505    });
30506
30507    $(".clear").on('click',function(){
30508        //change numfield jquery object to DOM element
30509        var e = $numfield[0];
30510
30511        //remove selected part of string at cursor
30512        if (e.selectionStart || e.selectionStart == '0') {
30513            var startPos = e.selectionStart;
30514            var endPos = e.selectionEnd;
30515
30516            if (startPos != endPos) {
30517                e.value = e.value.substring(0, startPos) + e.value.substring(endPos,e.value.length);
30518                e.focus();
30519                e.selectionStart = startPos;
30520                e.selectionEnd = startPos;
30521            }
30522            else {
30523                e.value = e.value.substring(0, startPos-1) + e.value.substring(endPos,e.value.length);
30524                e.focus();
30525                e.selectionStart = startPos - 1;
30526                e.selectionEnd = startPos - 1;
30527            }
30528        }
30529        //or clear entire field if can't find selection/cursor
30530        else {
30531            e.value = '';
30532        }
30533    });
30534
30535    $(".dial-pad-call").on('click',function(){
30536        var number = $numfield.val();
30537        number = number.replace(/\./g,"");
30538
30539        if (number.length > 0) {
30540            dialWithPhoneOption('dial-pad-phone-option-select', number)
30541            // var selection = $('#dial-pad-phone-option-select option:selected').val();
30542            // if (selection == "webphone")
30543            //     launchWebPhone(number);
30544            // else
30545            //     clickToDial(sub_user + "@" + sub_domain, cleanDevicePrep(number), cleanDevicePrep(number), cleanDevicePrep(selection), true);
30546            //
30547            // if ($(".dial-pad-from .click2callphonedefault").is(':checked')) {
30548            //     localStorage.setItem("click2callphonedefaultvalue", cleanDevicePrep(selection));
30549            // }
30550        }
30551    });
30552
30553    // show call from field when button is clicked
30554    $(".dial-pad-from-btn").click(function() {
30555        if ($('.dial-pad-from').is(':visible')) {
30556            $('.dial-pad-from').animate({
30557                height: "hide",
30558                opacity: "hide"
30559            },{
30560                progress: function(){
30561                if(popout)
30562                    resizePopoutContent();
30563                }
30564            });
30565        }
30566        else {
30567            $('.dial-pad-from').animate({
30568                height: "show",
30569                opacity: "show"
30570            },{
30571                progress: function(){
30572                if(popout)
30573                    resizePopoutContent();
30574                }
30575            });
30576        }
30577    });
30578
30579    $('#dial-pad-phone-option-select').change(function() {
30580        $('#dial-pad-phone-option-select-checkbox').prop('checked', false);
30581    });
30582
30583    if($('#dial-pad-phone-option-select').length)
30584        getUserDevices(false, setDialPadOptions);
30585
30586    function keyPress(e) {
30587        var keyToggle = function(key){
30588            var $keyObj = $('#pad-'+ key);
30589
30590            $keyObj.addClass('active');
30591
30592            setTimeout(function(){
30593                $keyObj.removeClass('active');
30594            }, 100);
30595        }
30596
30597        switch (e.code){
30598            case "Digit1":case "Numpad1":
30599                if(!e.shiftKey) keyToggle(1);
30600                break;
30601            case "Digit2":case "Numpad2":
30602                if(!e.shiftKey) keyToggle(2);
30603                break;
30604            case "Digit3":
30605                if(e.which == 35)
30606                    keyToggle('pound');
30607                else
30608                    keyToggle(3);
30609                break;
30610            case "Numpad3":
30611                if(!e.shiftKey) keyToggle(3);
30612                break;
30613            case "Digit4":case "Numpad4":
30614                if(!e.shiftKey) keyToggle(4);
30615                break;
30616            case "Digit5":case "Numpad5":
30617                if(!e.shiftKey) keyToggle(5);
30618                break;
30619            case "Digit6":case "Numpad6":
30620                if(!e.shiftKey) keyToggle(6);
30621                break;
30622            case "Digit7":case "Numpad7":
30623                if(!e.shiftKey) keyToggle(7);
30624                break;
30625            case "Digit8":
30626                if(e.which == 42)
30627                    keyToggle('star');
30628                else
30629                    keyToggle(8);
30630                break;
30631            case "Numpad8":
30632                if(!e.shiftKey) keyToggle(8);
30633                break;
30634            case "Digit9":case "Numpad9":
30635                if(!e.shiftKey) keyToggle(9);
30636                break;
30637            case "Digit0":case "Numpad0":
30638                if(!e.shiftKey) keyToggle(0);
30639                break;
30640            case 13:
30641                if (!keydown)
30642                    $(".dial-pad-call").trigger('click');
30643                break;
30644            default:
30645                break;
30646        }
30647    }
30648}
30649
30650/**
30651 * sets the phone options for the phone select in the dial pad
30652 *
30653 * @param {object} devices is an object with all the user devices/phones
30654 **/
30655function setDialPadOptions(devices){
30656    var deviceOptions = generateDeviceOptions(devices);
30657
30658    if(deviceOptions.length) {
30659        $('#dial-pad-phone-option-select').html(deviceOptions);
30660        onchange="allowCustomNumber();";
30661    }
30662    else {
30663      //  $('.dial-pad-from').removeClass('hide').html('<p class="text-error">' + _('You cannot call because you have no registered phones!') + '</p>');
30664      //  $('.dial-pad-from-btn').remove();
30665      //  $('.dial-pad-call').prop('disabled', true).css('width', '100%');
30666    }
30667
30668
30669}
30670
30671function setWaitingPickupDevices(devices){
30672    var deviceOptions = generateDeviceOptions(devices);
30673
30674    if(deviceOptions.length) {
30675        $('.pickupLi select').html(deviceOptions);
30676
30677    }
30678}
30679
30680
30681
30682/**
30683 * compare current and default devices in the phone options select and get dropdown direction
30684 *
30685 * @param {object} el is the button element that triggers the phone option dropdown
30686 **/
30687function clickedCallDropdownToggle(el) {
30688    //reset phone select and default checkbox
30689    var defaultDevice = lookupDefaultDevice();
30690    var $select = $(el).next('.dropdown-menu').find('.device-select');
30691    var selectedDevice = $select.val();
30692
30693    if(selectedDevice != defaultDevice) {
30694        $select.val(defaultDevice);
30695        $(el).next('.dropdown-menu').find('.click2callphonedefault').prop('checked', true);
30696    }
30697
30698    //determine if dropdown goes up or down
30699    getDropdownDirection(el);
30700}
30701
30702/**
30703 * initialize confirm call popover on elements with 'make-call' class
30704 *
30705 **/
30706function initConfirmCall() {
30707    log('adding confirm call');
30708    if ($('a.make-call').length > 0 && typeof $(document).confirmCall == 'function') {
30709        $('a.make-call').each(function() {
30710            var num = $(this).text();
30711
30712            $(this).confirmCall({
30713                message: num
30714            });
30715        });
30716    } else if ($('.make-call-options').length > 0 && typeof $(document).popover == 'function') {
30717        getUserDevices(false, createConfirmCallPopover);
30718    }
30719}
30720
30721/**
30722 * create and bind the confirm call popovers that have phone options
30723 *
30724 * @param {object} devices is an object with all the user devices/phones
30725 **/
30726function createConfirmCallPopover(devices) {
30727    if (typeof devices == "string")
30728        devices = JSON.parse(devices);
30729
30730    var triggerEvent = devices[0] != null || isWebrtc ? 'click' : 'hover';
30731
30732    $('.make-call-options').each(function(){
30733        //remove 'call' tooltips if you can't call
30734        if(triggerEvent == 'hover')
30735            $(this).removeClass('helpsy').tooltip('destroy');
30736
30737        $(this).popover({
30738            trigger: triggerEvent,
30739            toggle: 'popover',
30740            placement: $(this).attr('data-placement') ? $(this).data('placement') : 'right',
30741            container: 'body',
30742            html: true,
30743            template: '<div class="popover call-options-popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>',
30744            content: generateDeviceOptionsPopoverContent(this, devices),
30745            delay: {
30746                show: 200,
30747                hide: 0
30748            }
30749        });
30750    })
30751
30752}
30753
30754/**
30755 * generate the content for the confirm call popover
30756 *
30757 * @param {object} el is the popover trigger element
30758 * @param {object} devices is an object with all the user devices/phones
30759 **/
30760function generateDeviceOptionsPopoverContent(el, devices) {
30761    var num = $(el).attr('data-number') ? $(el).data('number') : $(el).text();
30762    var contentTitle = '<p>' + _('Call {0} using', num) + ':</p>';
30763    var rand = Math.floor(Math.random() * 99999);
30764    var content;
30765    var deviceOptions = generateDeviceOptions(devices);
30766
30767    if(deviceOptions.length) {
30768      var contentDrop = '<p class="isCallDropbox"><select id="device-select-popover-'+ rand +'" class="device-select" onchange="uncheckDefaultDeviceBox(\'device-select-popover-'+ rand +'-checkbox\')">' + deviceOptions + '</select></p>';
30769      var contentText = '<p class="isCallTextbox hide"><input id="device-text-popover-'+ rand +'"  type="text" value="" placeholder="'+_('Enter a phone number')+'"></p>';
30770      var contentCheck = '<p class="isCallDropboxCheckbox" ><input id="device-select-popover-'+ rand +'-checkbox" type="checkbox" name="isDefault" class="click2callphonedefault" value="isDefault" checked> <span class="muted table-smaller"> ' + _('Use this phone by default') + '<span></p>';
30771      var contentTextReset = '<p><span id="changePhones" style="display: none" class="bluetext isnumberreset" onclick="setCustom(false)" >'+_("Choose another phone")+'</span></p>';
30772    }
30773    else {
30774      var contentDrop = '<p class="isCallDropbox hide"><select id="device-select-popover-'+ rand +'" class="device-select" onchange="uncheckDefaultDeviceBox(\'device-select-popover-'+ rand +'-checkbox\')">' + deviceOptions + '</select></p>';
30775      var contentText = '<p class="isCallTextbox "><input id="device-text-popover-'+ rand +'"  type="text" value="" placeholder="'+_('Enter a phone number')+'"></p>';
30776      var contentCheck = '<p  class="isCallDropboxCheckbox hide" ><input id="device-select-popover-'+ rand +'-checkbox" type="checkbox" name="isDefault" class="click2callphonedefault" value="isDefault" checked> <span class="muted table-smaller"> ' + _('Use this phone by default') + '<span></p>';
30777      var contentTextReset = '<p><span id="changePhones"  class="bluetext isnumberreset" onclick="setCustom(false)" >'+_("Choose another phone")+'</span></p>';
30778
30779    }
30780    var isAuto = "false";
30781    if (PORTAL_CLICK_TO_CALL_USE_AUTO)
30782      isAuto = "true";
30783    var contentBtn1 = '<button class="btn btn-primary btn-small small" onclick="dialWithPhoneOption(\'device-select-popover-' + rand + '\',\'' + num + '\',\'' + isAuto + '\')" data-number="' + num + '">' + _('Call') + '</button>';
30784    var contentBtn2 = '<button class="btn btn-small small" onclick="$(\'.make-call-options\').popover(\'hide\');">' + _('Cancel') + '</button>';
30785    var contentBtns = '<p>' + contentBtn1 + contentBtn2 + '</p>';
30786    content = contentTitle + contentDrop +contentText+ contentCheck + contentTextReset + contentBtns;
30787
30788    return content;
30789}
30790
30791function setCustom(enable) {
30792  if (enable)
30793  {
30794    $('.isCallTextbox').show();
30795    $('.isCallTextboxReset').show();
30796    $('.isCallDropbox').hide();
30797    $('.isCallDropboxCheckbox').hide();
30798    $('.isnumberreset').show();
30799
30800  }
30801  else {
30802    $('.isCallTextbox').hide();
30803    $('.isCallTextboxReset').hide();
30804    $('.isCallDropbox').show();
30805    $('.isCallDropboxCheckbox').show();
30806    $('.isnumberreset').hide();
30807
30808    $('.isCallTextbox input').val("");
30809
30810    $( ".device-select" ).val($( ".device-select" ).first().find('option').first().val());
30811
30812
30813
30814  }
30815
30816}
30817
30818/**
30819 * set default device checkbox to false
30820 *
30821 * @param {string} id is the id of a default device checkbox
30822 **/
30823function uncheckDefaultDeviceBox(id) {
30824    if ($('#'+ id.replace("-checkbox","")).val() == null || $('#'+ id.replace("-checkbox","")).val() == "" )
30825    {
30826      setCustom(true);
30827    }
30828
30829    $('#'+ id).prop('checked', false);
30830}
30831
30832/**
30833 * generate and append the options for the phone/devices select
30834 *
30835 * @param {object} devices is an object with all the user devices/phones
30836 **/
30837function createConfirmCallOptionsDock(devices) {
30838    var deviceOptions = generateDeviceOptions(devices);
30839    var defaultDeviceChecked = false;
30840
30841    if(deviceOptions.length) {
30842        //majority of phone options html is php generated and we just insert the options here
30843        $('.device-select-dock').each(function(){
30844          $(this).html(deviceOptions);
30845        });
30846        $('.device-select-dock').on("click", function() {
30847          if ($(this).val()=="")
30848          {
30849          }
30850        });
30851    }
30852    //there are no devices to make calls with
30853    else {
30854        //$('.dropdown-menu-phone-option').remove();
30855        //$('.dropdown-menu-phone-select').append('<li class="dropdown-menu-phone-option"><p class="text-error">' + _('You cannot call because you have no registered phones!') + '</p></li>');
30856        //$('.dropdown-menu-phone-select-number').addClass('disabled').find('a').attr('onclick', '');
30857    }
30858
30859    // if(deviceOptions.length) {
30860    //   var contentDrop = '<p class="isCallDropbox"><select id="device-select-popover-'+ rand +'" class="device-select" onchange="uncheckDefaultDeviceBox(\'device-select-popover-'+ rand +'-checkbox\')">' + deviceOptions + '</select></p>';
30861    //   var contentText = '<p class="isCallTextbox hide"><input id="device-text-popover-'+ rand +'"  type="text" value="" placeholder="'+_('Enter a phone number')+'"></p>';
30862    //   var contentCheck = '<p class="isCallDropboxCheckbox" ><input id="device-select-popover-'+ rand +'-checkbox" type="checkbox" name="isDefault" class="click2callphonedefault" value="isDefault" checked> <span class="muted table-smaller"> ' + _('Use this phone by default') + '<span></p>';
30863    //   var contentTextReset = '<p><span id="changePhones" class="hide bluetext" onclick="setCustom(false)" >'+_("Choose another phone")+'</span></p>';
30864    // }
30865    // else {
30866    //   var contentDrop = '<p class="isCallDropbox hide"><select id="device-select-popover-'+ rand +'" class="device-select" onchange="uncheckDefaultDeviceBox(\'device-select-popover-'+ rand +'-checkbox\')">' + deviceOptions + '</select></p>';
30867    //   var contentText = '<p class="isCallTextbox "><input id="device-text-popover-'+ rand +'"  type="text" value="" placeholder="'+_('Enter a phone number')+'"></p>';
30868    //   var contentCheck = '<p  class="isCallDropboxCheckbox hide" ><input id="device-select-popover-'+ rand +'-checkbox" type="checkbox" name="isDefault" class="click2callphonedefault" value="isDefault" checked> <span class="muted table-smaller"> ' + _('Use this phone by default') + '<span></p>';
30869    //   var contentTextReset = '<p><span id="changePhones" class="bluetext" onclick="setCustom(false)" >'+_("Choose another phone")+'</span></p>';
30870    //
30871    // }
30872    // var contentBtn1 = '<button class="btn btn-primary btn-small small" onclick="dialWithPhoneOption(\'device-select-popover-' + rand + '\',\'' + num + '\')" data-number="' + num + '">' + _('Call') + '</button>';
30873    // var contentBtn2 = '<button class="btn btn-small small" onclick="$(\'.make-call-options\').popover(\'hide\');">' + _('Cancel') + '</button>';
30874    // var contentBtns = '<p>' + contentBtn1 + contentBtn2 + '</p>';
30875    // content = contentTitle + contentDrop +contentText+ contentCheck + contentTextReset + contentBtns;
30876    //
30877
30878    //prevent dropdown from closing when selecting option or checkbox
30879    $('.dropdown-menu-phone-select').click(function(e){
30880        e.stopPropagation();
30881    });
30882}
30883
30884/**
30885 * dial a number using the selected phone. set the default phone if selected
30886 *
30887 * @param {string} id is the id of a phones/devices select
30888 * @param {string} num is the number to be dialed
30889 * @param {string} isAuto whether call will be auto answered on click-to-call
30890 **/
30891function dialWithPhoneOption(id, num, isAuto = "false")
30892{
30893  //device-select-dock-51
30894    var isAutoTrue = (isAuto == "true");
30895
30896    console.log('dialWithPhoneOption');
30897    var selection = cleanDevicePrep($('#' + id).val());
30898    if (selection =="" && $('#' + id.replace("select","text")).val() )
30899      selection= $('#' + id.replace("select","text")).val();
30900    if (selection =="" && !$('#' + id.replace("select","text")).is(':hidden'))
30901      selection= cleanDevicePrep($('#' + id.replace("select","text")).val());
30902
30903
30904    var defaultDevice = lookupDefaultDevice();
30905    num = cleanDevicePrep(num);
30906
30907    console.log(selection);
30908
30909    if (selection == "webphone")
30910        launchWebPhone(num);
30911    else
30912        clickToDial(sub_user + "@" + sub_domain, num, num, selection, isAutoTrue);
30913
30914    if ($('#' + id + '-checkbox').is(':checked') && defaultDevice != selection) {
30915        $('.device-select').val(selection);
30916        localStorage.setItem("click2callphonedefaultvalue", selection);
30917
30918        //timeout to let any visible popover hide first before destroying it and rebuilding
30919        setTimeout(function(){
30920            //have to rebuild the popover content if the default device is changed
30921            $('.make-call-options').popover('destroy');
30922            getUserDevices(false, createConfirmCallPopover);
30923        },200);
30924    }
30925    $('.make-call-options').popover('hide');
30926}
30927
30928/**
30929 * get the default device from local storage if it exists
30930 *
30931 * @returns {string} defaultDevice is the name/identifier of the default phone
30932 **/
30933function lookupDefaultDevice() {
30934    var defaultDevice = sub_user;
30935
30936    if (localStorage.getItem("click2callphonedefaultvalue") != null)
30937        defaultDevice = localStorage.getItem("click2callphonedefaultvalue");
30938
30939    return defaultDevice;
30940}
30941
30942/**
30943 * generate the options html for the phone/devices select
30944 *
30945 * @param {object} devices is an object with all the user devices/phones
30946 * @returns {string} html is a string of html for the select options
30947 **/
30948function generateDeviceOptions(devices) {
30949    if (typeof devices == "string")
30950        devices = JSON.parse(devices);
30951
30952    var defaultDevice = lookupDefaultDevice();
30953    var html = '';
30954
30955    if (isWebrtc && typeof SNAPmobileWebenabled !="undefined" && SNAPmobileWebenabled) {
30956        if(defaultDevice == 'webphone')
30957            html += '<option selected value="webphone">' + SNAPmobileWebName + '</option>';
30958        else
30959            html += '<option value="webphone">' + SNAPmobileWebName + '</option>';
30960    }
30961
30962    for (item in devices) {
30963        if (typeof devices[item] == 'undefined' || typeof devices[item].user_agent == 'undefined' || devices[item].user_agent == "")
30964            continue;
30965        if (devices[item].user_agent.includes("SNAPscreenShare") || devices[item].user_agent.includes("SNAPdataChannel") || devices[item].user_agent.includes("SNAPvideo"))
30966            continue;
30967        if (devices[item].aor.includes("conference-bridge") || devices[item].aor.includes("wp@") || devices[item].aor.includes("vb@"))
30968            continue;
30969
30970        var device = cleanDevicePrep(devices[item].aor);
30971
30972        if (defaultDevice == device)
30973            html += '<option selected value="' + device + '">' + devices[item].user_agent + '</option>';
30974        else
30975            html += '<option value="' + device + '">' + devices[item].user_agent + '</option>';
30976    }
30977
30978    html += '<option value="" >'+_('Enter Phone number')+'</option>';
30979    return html;
30980}
30981
30982/**
30983 * get object of user devices from local storage or API
30984 *
30985 * @param {boolean} force will force the retrieval of devices from the API instead of local storage
30986 * @param {function} callback is the function that will be executed after retrieving the user devices
30987 **/
30988function getUserDevices(force, callback) {
30989    var userDevices = JSON.parse(localStorage.getItem("userDevices"));
30990    if (!force && userDevices != null && typeof userDevices != 'undefined' && typeof userDevices.timestamp != 'undefined') {
30991        var ts = userDevices.timestamp;
30992        var now = new Date().getTime();
30993        var diff = now - ts;
30994
30995        if ((diff / 1000) > 120) //120s
30996        {
30997            userDevices = null;
30998            if (!force)
30999                setTimeout(function() {
31000                    getUserDevices(true, callback);
31001                }, 1500);
31002        } else {
31003            callback(userDevices.devices);
31004
31005        }
31006    }
31007    if (typeof userDevices == 'undefined' || userDevices == null || force) {
31008
31009        var arg = {
31010            object: "device",
31011            action: "list",
31012            user: sub_user,
31013            domain: sub_domain,
31014            noNDP: "yes",
31015            format: "json",
31016            mode: "registered_endpoint"
31017        };
31018        netsapiens.api.post(arg).then(function(data) {
31019            var userDevices = {
31020                value: "value",
31021                timestamp: new Date().getTime(),
31022                devices: data
31023            }
31024            callback(data);
31025            localStorage.setItem("userDevices", JSON.stringify(userDevices));
31026        });
31027    } else {
31028        callback(userDevices.devices);
31029    }
31030}
31031
31032function initTransferMode(call) {
31033    $('.transfermode').show();
31034    $('.nontransfermode').hide();
31035    //log(call);
31036    callToTransfer = call;
31037
31038}
31039
31040function closeTransferMode(call) {
31041    $('.transfermode').hide();
31042    $('.nontransfermode').show();
31043}
31044
31045function transferCallDirect(toUser) {
31046
31047    if (typeof callToTransfer.orig_callid)
31048        {
31049        log(callToTransfer);
31050        var calltype = getType(callToTransfer, sub_domain, sub_user);
31051        //calltype = "inbound"
31052        }
31053    else
31054        return;
31055    if(typeof ignoreOrigId != 'undefined' )
31056    {
31057    ignoreOrigId.push(callToTransfer.orig_callid);
31058    ignoreOrigId.push(callToTransfer.term_callid);
31059    }
31060
31061    var url = "/portal/calls/xfer/";
31062    $(this).prop("disabled",true);
31063    if (calltype =='outbound')
31064        url = url+ myCalls[0].term_callid + "/" + toUser;
31065    else
31066        url = url+ myCalls[0].orig_callid + "/" + toUser;
31067
31068    log(url);
31069    $.post(url).done(function(data) {
31070        closeTransferMode();
31071        jsFlash(_("Transferring call to {0}", toUser), "success");
31072        //$(callButtons + ' .transfer-field').animate({
31073        //    "height" : "hide",
31074        //    "opacity" : "hide"
31075        //}, 400);
31076        //$(popupId).remove();
31077        //resizePopoutContent();
31078    });
31079
31080}
31081
31082//create a call object so i can test call popups
31083//function callObject(number) {
31084//    this.orig_id = "orig_id-" + number;
31085//    this.orig_user = "5555555555";
31086//    this.orig_name = "Name-" + number;
31087//    this.orig_callid = "orig_callid-" + number;
31088//    this.term_callid = "term_callid-" + number;
31089//    this.term_uri = "term-uri-" + number;
31090//    this.term_user = "<?php echo $this->Session->read('sub_user')?>";
31091//    this.term_domain = "<?php echo $this->Session->read('sub_domain')?>";
31092//    this.by_action = "";
31093//    this.time_answer = "0000-00-00 00:00:00";
31094//}
31095
31096�/*!***************************************************
31097* mark.js v9.0.0
31098* https://markjs.io/
31099* Copyright (c) 2014–2018, Julian Kühnel
31100* Released under the MIT license https://git.io/vwTVl
31101*****************************************************/
31102!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Mark=t()}(this,function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var i=
31103/* */
31104function(){function e(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=i}return r(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach(function(t){var n=e.filter(function(e){return e.contains(t)}).length>0;-1!==e.indexOf(t)||n||e.push(t)}),e}},{key:"getIframeContents",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};try{var o=e.contentWindow;if(n=o.document,!o||!n)throw new Error("iframe inaccessible")}catch(e){r()}n&&t(n)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,i=null,a=function a(){if(!o){o=!0,clearTimeout(i);try{r.isIframeBlank(e)||(e.removeEventListener("load",a),r.getIframeContents(e,t,n
31104))}catch(e){n()}}};e.addEventListener("load",a),i=setTimeout(a,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,function(){return!0},function(e){r++,n.waitForIframes(e.querySelector("html"),function(){--r||t()})},function(e){e||t()})}},{key:"forEachIframe",value:function(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll("iframe"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&i(c)};s||u(),a.forEach(function(t){e.matches(t,o.exclude)?u():o.onIframeReady(t,function(e){n(t)&&(c++,r(e)),u()},u)})}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:null===t?e.nextNode():e.nextNode()&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,i=!1;return r.forEach(function(e,t){e.val===n&&(o=t,i=e.handled)}),this.compareNodeIframe(e,t,n)?(!1!==o||i?!1===o||i||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach(function(e){e.handled||o.getIframeContents(e.val,function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)})})}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var i,a,s,c=this,u=this.createIterator(t,e,r),l=[],h=[];s=void 0,s=c.getIteratorNode(u),a=s.prevNode,i=s.node;)this.iframes&&this.forEachIframe(t,function(e){return c.checkIframeFilter(i,a,e,l)},function(t){c.createInstanceOnIframe(t).forEachNode(e,function(e){return h.push(e)},r)}),h.push(i);h.forEach(function(e){n(e)}),this.iframes&&this.handleOpenIframes(l,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=this.getContexts(),a=i.length;a||o(),i.forEach(function(i){var s=function(){r.iterateThroughNodes(e,i,t,n,function(){--a<=0&&o()})};r.iframes?r.waitForIframes(i,s):s()})}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every(function(t){return!r.call(e,t)||(o=!0,!1)}),o}return!1}}]),e}(),a=
31105/* */
31106function(){function e(n){t(this,e),this.opt=o({},{diacritics:!0,synonyms:{},accuracy:"partially",caseSensitive:!1,ignoreJoiners:!1,ignorePunctuation:[],wildcards:"disabled"},n)}return r(e,[{key:"create",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),new RegExp(e,"gm".concat(this.opt.caseSensitive?"":"i"))}},{key:"sortByLength",value:function(e){return e.sort(function(e,t){return e.length===t.length?e>t?1:-1:t.length-e.length})}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createSynonymsRegExp",value:function(e){var t=this,n=this.opt.synonyms,r=this.opt.caseSensitive?"":"i",o=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var i in n)if(n.hasOwnProperty(i)){var a=Array.isArray(n[i])?n[i]:[n[i]];a.unshift(i),(a=this.sortByLength(a).map(function(e){return"disabled"!==t.opt.wildcards&&(e=t.setupWildcardsRegExp(e)),e=t.escapeStr(e)}).filter(function(e){return""!==e})).length>1&&(e=e.replace(new RegExp("(".concat(a.map(function(e){return t.escapeStr(e)}).join("|"),")"),"gm".concat(r)),o+"(".concat(a.map(function(e){return t.processSynonyms(e)}).join("|"),")")+o))}return e}},{key:"processSynonyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,function(e){return"\\"===e.charAt(0)?"?":"�"})).replace(/(?:\\)*\*/g,function(e){return"\\"===e.charAt(0)?"*":"�"})}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"})}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.pu
31106sh("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("[".concat(t.join(""),"]*")):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"],r=[];return e.split("").forEach(function(o){n.every(function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("[".concat(n,"]"),"gm".concat(t)),"[".concat(n,"]")),r.push(n)}return!0})}),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n=this.opt.accuracy,r="string"==typeof n?n:n.value,o="string"==typeof n?[]:n.limiters,i="";
31106switch(o.forEach(function(e){i+="|".concat(t.escapeStr(e))}),r){case"partially":default:return"()(".concat(e,")");case"complementary":return i="\\s"+(i||this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿")),"()([^".concat(i,"]*").concat(e,"[^").concat(i,"]*)");case"exactly":return"(^|\\s".concat(i,")(").concat(e,")(?=$|\\s").concat(i,")")}}}]),e}(),s=
31107/* */
31108function(){function n(e){t(this,n),this.ctx=e,this.ie=!1;var r=window.navigator.userAgent;(r.indexOf("MSIE")>-1||r.indexOf("Trident")>-1)&&(this.ie=!0)}return r(n,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===e(r)&&"function"==typeof r[n]&&r[n]("mark.js: ".concat(t))}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach(function(e){t.opt.separateWordSearch?e.split(" ").forEach(function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)}):e.trim()&&-1===n.indexOf(e)&&n.push(e)}),{keywords:n.sort(function(e,t){return t.length-e.length}),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort(function(e,t){return e.start-t.start}).forEach(function(e){var o=t.callNoMatchOnInvalidRanges(e,r),i=o.start,a=o.end;o.valid&&(e.start=i,e.length=a-i,n.push(e),r=a)}),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n,r,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+"".concat(JSON.stringify(e))),this.opt.noMatch(e))):(this.log("Ignoring invalid range: ".concat(JSON.stringify(e))),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r,o=!0,i=n.length,a=t-i,s=parseInt(e.start,10)-a;return(r=(s=s>i?i:s)+parseInt(e.length,10))>i&&(r=i,this.log("End range automatically set to the max value of ".concat(i))),s<0||r-s<0||s>i||r>i?(o=!1,this.log("Invalid range: ".concat(JSON.stringify(e))),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})},function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){e({value:n,nodes:r})})}},{key:"matchesExclude",value:function(e){return i.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),i=o.splitText(n-t),a=document.createElement(r);return a.setAttribute("data-markjs","true"),this.opt.className&&a.setAttribute("class",this.opt.className),a.textContent=o.textContent,o.parentNode.replaceChild(a,o),i}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var i=this;e.nodes.every(function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=i.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach(function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)}),n-=l,o(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0})}},{key:"wrapGroups",value:function(e,t,n,r){return r((e=this.wrapRangeInTextNode(e,t,t+n)).previousSibling),e}},{key:"separateGroups",value:function(e,t,n,r,o){for(var i=t.length,a=1;a<i;a++){var s=e.textContent.indexOf(t[a]);t[a]&&s>-1&&r(t[a],e)&&(e=this.wrapGroups(e,s,t[a].length,o))}return e}},{key:"wrapMatches",value:function(e,t,n,r,o){var i=this,a=0===t?0:t+1;
31108this.getTextNodes(function(t){t.nodes.forEach(function(t){var o;for(t=t.node;null!==(o=e.exec(t.textContent))&&""!==o[a];){if(i.opt.separateGroups)t=i.separateGroups(t,o,a,n,r);else{if(!n(o[a],t))continue;var s=o.index;if(0!==a)for(var c=1;c<a;c++)s+=o[c].length;t=i.wrapGroups(t,s,o[a].length,r)}e.lastIndex=0}}),o()})}},{key:"wrapMatchesAcrossElements",value:function(e,t,n,r,o){var i=this,a=0===t?0:t+1;this.getTextNodes(function(t){for(var s;null!==(s=e.exec(t.value))&&""!==s[a];){var c=s.index;if(0!==a)for(var u=1;u<a;u++)c+=s[u].length;var l=c+s[a].length;i.wrapRangeInMappedTextNode(t,c,l,function(e){return n(s[a],e)},function(t,n){e.lastIndex=n,r(t)})}o()})}},{key:"wrapRangeFromIndex",value:function(e,t,n,r){var o=this;this.getTextNodes(function(i){var a=i.value.length;e.forEach(function(e,r){var s=o.checkWhitespaceRanges(e,a,i.value),c=s.start,u=s.end;s.valid&&o.wrapRangeInMappedTextNode(i,c,u,function(n){return t(n,e,i.value.substring(c,u),r)},function(t){n(t,e)})}),r()})}},{key:"unwrapMatches",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:"normalizeTextNode",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:"markRegExp",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression "'.concat(e,'"'));var r=0,o="wrapMatches";this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),this[o](e,this.opt.ignoreGroups,function(e,t){return n.opt.filter(t,e,r)},function(e){r++,n.opt.each(e)},function(){0===r&&n.opt.noMatch(e),n.opt.done(r)})}},{key:"mark",value:function(e,t){var n=this;this.opt=t;var r=0,o="wrapMatches",i=this.getSeparatedKeywords("string"==typeof e?[e]:e),s=i.keywords,c=i.length;this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),0===c?this.opt.done(r):function e(t){var i=new a(n.opt).create(t),u=0;n.log('Searching with expression "'.concat(i,'"')),n[o](i,1,function(e,o){return n.opt.filter(o,t,r,u)},function(e){u++,r++,n.opt.each(e)},function(){0===u&&n.opt.noMatch(t),s[c-1]===t?n.opt.done(r):e(s[s.indexOf(t)+1])})}(s[0])}},{key:"markRanges",value:function(e,t){var n=this;this.opt=t;var r=0,o=this.checkRanges(e);o&&o.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(o)),this.wrapRangeFromIndex(o,function(e,t,r,o){return n.opt.filter(e,t,r,o)},function(e,t){r++,n.opt.each(e,t)},function(){n.opt.done(r)})):this.opt.done(r)}},{key:"unmark",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:"*";n+="[data-markjs]",this.opt.className&&(n+=".".concat(this.opt.className)),this.log('Removal selector "'.concat(n,'"')),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,function(e){t.unwrapMatches(e)},function(e){var r=i.matches(e,n),o=t.matchesExclude(e);return!r||o?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}},{key:"opt",set:function(e){this._opt=o({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,acrossElements:!1,ignoreGroups:0,each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:"iterator",get:function(){return new i(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),n}();return function(e){var t=this,n=new s(e);return this.mark=function(e,r){return n.mark(e,r),t},this.markRegExp=function(e,r){return n.markRegExp(e,r),t},this.markRanges=function(e,r){return n.markRanges(e,r),t},this.unmark=function(e){return n.unmark(e),t},this}});
31109
31110�/*!
31111 * jQuery & Zepto Lazy - v1.7.10
31112 * http://jquery.eisbehr.de/lazy/
31113 *
31114 * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern
31115 *
31116 * Dual licensed under the MIT and GPL-2.0 licenses:
31117 * http://www.opensource.org/licenses/mit-license.php
31118 * http://www.gnu.org/licenses/gpl-2.0.html
31119 *
31120 * $("img.lazy").lazy();
31121 */
31122
31123;(function(window, undefined) {
31124    "use strict";
31125
31126    // noinspection JSUnresolvedVariable
31127    /**
31128     * library instance - here and not in construct to be shorter in minimization
31129     * @return void
31130     */
31131    var $ = window.jQuery || window.Zepto,
31132
31133    /**
31134     * unique plugin instance id counter
31135     * @type {number}
31136     */
31137    lazyInstanceId = 0,
31138
31139    /**
31140     * helper to register window load for jQuery 3
vendor: 30,084 bytes, lines 31141-31983
31141     * @type {boolean}
31142     */    
31143    windowLoaded = false;
31144
31145    /**
31146     * make lazy available to jquery - and make it a bit more case-insensitive :)
31147     * @access public
31148     * @type {function}
31149     * @param {object} settings
31150     * @return {LazyPlugin}
31151     */
31152    $.fn.Lazy = $.fn.lazy = function(settings) {
31153        return new LazyPlugin(this, settings);
31154    };
31155
31156    /**
31157     * helper to add plugins to lazy prototype configuration
31158     * @access public
31159     * @type {function}
31160     * @param {string|Array} names
31161     * @param {string|Array|function} [elements]
31162     * @param {function} loader
31163     * @return void
31164     */
31165    $.Lazy = $.lazy = function(names, elements, loader) {
31166        // make second parameter optional
31167        if ($.isFunction(elements)) {
31168            loader = elements;
31169            elements = [];
31170        }
31171
31172        // exit here if parameter is not a callable function
31173        if (!$.isFunction(loader)) {
31174            return;
31175        }
31176
31177        // make parameters an array of names to be sure
31178        names = $.isArray(names) ? names : [names];
31179        elements = $.isArray(elements) ? elements : [elements];
31180
31181        var config = LazyPlugin.prototype.config,
31182            forced = config._f || (config._f = {});
31183
31184        // add the loader plugin for every name
31185        for (var i = 0, l = names.length; i < l; i++) {
31186            if (config[names[i]] === undefined || $.isFunction(config[names[i]])) {
31187                config[names[i]] = loader;
31188            }
31189        }
31190
31191        // add forced elements loader
31192        for (var c = 0, a = elements.length; c < a; c++) {
31193            forced[elements[c]] = names[0];
31194        }
31195    };
31196
31197    /**
31198     * contains all logic and the whole element handling
31199     * is packed in a private function outside class to reduce memory usage, because it will not be created on every plugin instance
31200     * @access private
31201     * @type {function}
31202     * @param {LazyPlugin} instance
31203     * @param {object} config
31204     * @param {object|Array} items
31205     * @param {object} events
31206     * @param {string} namespace
31207     * @return void
31208     */
31209    function _executeLazy(instance, config, items, events, namespace) {
31210        /**
31211         * a helper to trigger the 'onFinishedAll' callback after all other events
31212         * @access private
31213         * @type {number}
31214         */
31215        var _awaitingAfterLoad = 0,
31216
31217        /**
31218         * visible content width
31219         * @access private
31220         * @type {number}
31221         */
31222        _actualWidth = -1,
31223
31224        /**
31225         * visible content height
31226         * @access private
31227         * @type {number}
31228         */
31229        _actualHeight = -1,
31230
31231        /**
31232         * determine possibly detected high pixel density
31233         * @access private
31234         * @type {boolean}
31235         */
31236        _isRetinaDisplay = false, 
31237
31238        /**
31239         * dictionary entry for better minimization
31240         * @access private
31241         * @type {string}
31242         */
31243        _afterLoad = 'afterLoad',
31244
31245        /**
31246         * dictionary entry for better minimization
31247         * @access private
31248         * @type {string}
31249         */
31250        _load = 'load',
31251
31252        /**
31253         * dictionary entry for better minimization
31254         * @access private
31255         * @type {string}
31256         */
31257        _error = 'error',
31258
31259        /**
31260         * dictionary entry for better minimization
31261         * @access private
31262         * @type {string}
31263         */
31264        _img = 'img',
31265
31266        /**
31267         * dictionary entry for better minimization
31268         * @access private
31269         * @type {string}
31270         */
31271        _src = 'src',
31272
31273        /**
31274         * dictionary entry for better minimization
31275         * @access private
31276         * @type {string}
31277         */
31278        _srcset = 'srcset',
31279
31280        /**
31281         * dictionary entry for better minimization
31282         * @access private
31283         * @type {string}
31284         */
31285        _sizes = 'sizes',
31286
31287        /**
31288         * dictionary entry for better minimization
31289         * @access private
31290         * @type {string}
31291         */
31292        _backgroundImage = 'background-image';
31293
31294        /**
31295         * initialize plugin
31296         * bind loading to events or set delay time to load all items at once
31297         * @access private
31298         * @return void
31299         */
31300        function _initialize() {
31301            // detect actual device pixel ratio
31302            // noinspection JSUnresolvedVariable
31303            _isRetinaDisplay = window.devicePixelRatio > 1;
31304
31305            // prepare all initial items
31306            items = _prepareItems(items);
31307
31308            // if delay time is set load all items at once after delay time
31309            if (config.delay >= 0) {
31310                setTimeout(function() {
31311                    _lazyLoadItems(true);
31312                }, config.delay);
31313            }
31314
31315            // if no delay is set or combine usage is active bind events
31316            if (config.delay < 0 || config.combined) {
31317                // create unique event function
31318                events.e = _throttle(config.throttle, function(event) {
31319                    // reset detected window size on resize event
31320                    if (event.type === 'resize') {
31321                        _actualWidth = _actualHeight = -1;
31322                    }
31323
31324                    // execute 'lazy magic'
31325                    _lazyLoadItems(event.all);
31326                });
31327
31328                // create function to add new items to instance
31329                events.a = function(additionalItems) {
31330                    additionalItems = _prepareItems(additionalItems);
31331                    items.push.apply(items, additionalItems);
31332                };
31333
31334                // create function to get all instance items left
31335                events.g = function() {
31336                    // filter loaded items before return in case internal filter was not running until now
31337                    return (items = $(items).filter(function() {
31338                        return !$(this).data(config.loadedName);
31339                    }));
31340                };
31341
31342                // create function to force loading elements
31343                events.f = function(forcedItems) {
31344                    for (var i = 0; i < forcedItems.length; i++) {
31345                        // only handle item if available in current instance
31346                        // use a compare function, because Zepto can't handle object parameter for filter
31347                        // var item = items.filter(forcedItems[i]);
31348                        /* jshint loopfunc: true */
31349                        var item = items.filter(function() {
31350                            return this === forcedItems[i];
31351                        });
31352
31353                        if (item.length) {
31354                            _lazyLoadItems(false, item);   
31355                        }
31356                    }
31357                };
31358
31359                // load initial items
31360                _lazyLoadItems();
31361
31362                // bind lazy load functions to scroll and resize event
31363                // noinspection JSUnresolvedVariable
31364                $(config.appendScroll).on('scroll.' + namespace + ' resize.' + namespace, events.e);
31365            }
31366        }
31367
31368        /**
31369         * prepare items before handle them
31370         * @access private
31371         * @param {Array|object|jQuery} items
31372         * @return {Array|object|jQuery}
31373         */
31374        function _prepareItems(items) {
31375            // fetch used configurations before loops
31376            var defaultImage = config.defaultImage,
31377                placeholder = config.placeholder,
31378                imageBase = config.imageBase,
31379                srcsetAttribute = config.srcsetAttribute,
31380                loaderAttribute = config.loaderAttribute,
31381                forcedTags = config._f || {};
31382
31383            // filter items and only add those who not handled yet and got needed attributes available
31384            items = $(items).filter(function() {
31385                var element = $(this),
31386                    tag = _getElementTagName(this);
31387
31388                return !element.data(config.handledName) && 
31389                       (element.attr(config.attribute) || element.attr(srcsetAttribute) || element.attr(loaderAttribute) || forcedTags[tag] !== undefined);
31390            })
31391
31392            // append plugin instance to all elements
31393            .data('plugin_' + config.name, instance);
31394
31395            for (var i = 0, l = items.length; i < l; i++) {
31396                var element = $(items[i]),
31397                    tag = _getElementTagName(items[i]),
31398                    elementImageBase = element.attr(config.imageBaseAttribute) || imageBase;
31399
31400                // generate and update source set if an image base is set
31401                if (tag === _img && elementImageBase && element.attr(srcsetAttribute)) {
31402                    element.attr(srcsetAttribute, _getCorrectedSrcSet(element.attr(srcsetAttribute), elementImageBase));
31403                }
31404
31405                // add loader to forced element types
31406                if (forcedTags[tag] !== undefined && !element.attr(loaderAttribute)) {
31407                    element.attr(loaderAttribute, forcedTags[tag]);
31408                }
31409
31410                // set default image on every element without source
31411                if (tag === _img && defaultImage && !element.attr(_src)) {
31412                    element.attr(_src, defaultImage);
31413                }
31414
31415                // set placeholder on every element without background image
31416                else if (tag !== _img && placeholder && (!element.css(_backgroundImage) || element.css(_backgroundImage) === 'none')) {
31417                    element.css(_backgroundImage, "url('" + placeholder + "')");
31418                }
31419            }
31420
31421            return items;
31422        }
31423
31424        /**
31425         * the 'lazy magic' - check all items
31426         * @access private
31427         * @param {boolean} [allItems]
31428         * @param {object} [forced]
31429         * @return void
31430         */
31431        function _lazyLoadItems(allItems, forced) {
31432            // skip if no items where left
31433            if (!items.length) {
31434                // destroy instance if option is enabled
31435                if (config.autoDestroy) {
31436                    // noinspection JSUnresolvedFunction
31437                    instance.destroy();
31438                }
31439
31440                return;
31441            }
31442
31443            var elements = forced || items,
31444                loadTriggered = false,
31445                imageBase = config.imageBase || '',
31446                srcsetAttribute = config.srcsetAttribute,
31447                handledName = config.handledName;
31448
31449            // loop all available items
31450            for (var i = 0; i < elements.length; i++) {
31451                // item is at least in loadable area
31452                if (allItems || forced || _isInLoadableArea(elements[i])) {
31453                    var element = $(elements[i]),
31454                        tag = _getElementTagName(elements[i]),
31455                        attribute = element.attr(config.attribute),
31456                        elementImageBase = element.attr(config.imageBaseAttribute) || imageBase,
31457                        customLoader = element.attr(config.loaderAttribute);
31458
31459                        // is not already handled 
31460                    if (!element.data(handledName) &&
31461                        // and is visible or visibility doesn't matter
31462                        (!config.visibleOnly || element.is(':visible')) && (
31463                        // and image source or source set attribute is available
31464                        (attribute || element.attr(srcsetAttribute)) && (
31465                            // and is image tag where attribute is not equal source or source set
31466                            (tag === _img && (elementImageBase + attribute !== element.attr(_src) || element.attr(srcsetAttribute) !== element.attr(_srcset))) ||
31467                            // or is non image tag where attribute is not equal background
31468                            (tag !== _img && elementImageBase + attribute !== element.css(_backgroundImage))
31469                        ) ||
31470                        // or custom loader is available
31471                        customLoader))
31472                    {
31473                        // mark element always as handled as this point to prevent double handling
31474                        loadTriggered = true;
31475                        element.data(handledName, true);
31476
31477                        // load item
31478                        _handleItem(element, tag, elementImageBase, customLoader);
31479                    }
31480                }
31481            }
31482
31483            // when something was loaded remove them from remaining items
31484            if (loadTriggered) {
31485                items = $(items).filter(function() {
31486                    return !$(this).data(handledName);
31487                });
31488            }
31489        }
31490
31491        /**
31492         * load the given element the lazy way
31493         * @access private
31494         * @param {object} element
31495         * @param {string} tag
31496         * @param {string} imageBase
31497         * @param {function} [customLoader]
31498         * @return void
31499         */
31500        function _handleItem(element, tag, imageBase, customLoader) {
31501            // increment count of items waiting for after load
31502            ++_awaitingAfterLoad;
31503
31504            // extended error callback for correct 'onFinishedAll' handling
31505            var errorCallback = function() {
31506                _triggerCallback('onError', element);
31507                _reduceAwaiting();
31508
31509                // prevent further callback calls
31510                errorCallback = $.noop;
31511            };
31512
31513            // trigger function before loading image
31514            _triggerCallback('beforeLoad', element);
31515
31516            // fetch all double used data here for better code minimization
31517            var srcAttribute = config.attribute,
31518                srcsetAttribute = config.srcsetAttribute,
31519                sizesAttribute = config.sizesAttribute,
31520                retinaAttribute = config.retinaAttribute,
31521                removeAttribute = config.removeAttribute,
31522                loadedName = config.loadedName,
31523                elementRetina = element.attr(retinaAttribute);
31524
31525            // handle custom loader
31526            if (customLoader) {
31527                // on load callback
31528                var loadCallback = function() {
31529                    // remove attribute from element
31530                    if (removeAttribute) {
31531                        element.removeAttr(config.loaderAttribute);
31532                    }
31533
31534                    // mark element as loaded
31535                    element.data(loadedName, true);
31536
31537                    // call after load event
31538                    _triggerCallback(_afterLoad, element);
31539
31540                    // remove item from waiting queue and possibly trigger finished event
31541                    // it's needed to be asynchronous to run after filter was in _lazyLoadItems
31542                    setTimeout(_reduceAwaiting, 1);
31543
31544                    // prevent further callback calls
31545                    loadCallback = $.noop;
31546                };
31547
31548                // bind error event to trigger callback and reduce waiting amount
31549                element.off(_error).one(_error, errorCallback)
31550
31551                // bind after load callback to element
31552                .one(_load, loadCallback);
31553
31554                // trigger custom loader and handle response
31555                if (!_triggerCallback(customLoader, element, function(response) {
31556                    if(response) {
31557                        element.off(_load);
31558                        loadCallback();
31559                    }
31560                    else {
31561                        element.off(_error);
31562                        errorCallback();
31563                    }
31564                })) {
31565                    element.trigger(_error);
31566                }
31567            }
31568
31569            // handle images
31570            else {
31571                // create image object
31572                var imageObj = $(new Image());
31573
31574                // bind error event to trigger callback and reduce waiting amount
31575                imageObj.one(_error, errorCallback)
31576
31577                // bind after load callback to image
31578                .one(_load, function() {
31579                    // remove element from view
31580                    element.hide();
31581
31582                    // set image back to element
31583                    // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'
31584                    if (tag === _img) {
31585                        element.attr(_sizes, imageObj.attr(_sizes))
31586                               .attr(_srcset, imageObj.attr(_srcset))
31587                               .attr(_src, imageObj.attr(_src));
31588                    }
31589                    else {
31590                        element.css(_backgroundImage, "url('" + imageObj.attr(_src) + "')");
31591                    }
31592
31593                    // bring it back with some effect!
31594                    element[config.effect](config.effectTime);
31595
31596                    // remove attribute from element
31597                    if (removeAttribute) {
31598                        element.removeAttr(srcAttribute + ' ' + srcsetAttribute + ' ' + retinaAttribute + ' ' + config.imageBaseAttribute);
31599
31600                        // only remove 'sizes' attribute, if it was a custom one
31601                        if (sizesAttribute !== _sizes) {
31602                            element.removeAttr(sizesAttribute);
31603                        }
31604                    }
31605
31606                    // mark element as loaded
31607                    element.data(loadedName, true);
31608
31609                    // call after load event
31610                    _triggerCallback(_afterLoad, element);
31611
31612                    // cleanup image object
31613                    imageObj.remove();
31614
31615                    // remove item from waiting queue and possibly trigger finished event
31616                    _reduceAwaiting();
31617                });
31618
31619                // set sources
31620                // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'
31621                var imageSrc = (_isRetinaDisplay && elementRetina ? elementRetina : element.attr(srcAttribute)) || '';
31622                imageObj.attr(_sizes, element.attr(sizesAttribute))
31623                        .attr(_srcset, element.attr(srcsetAttribute))
31624                        .attr(_src, imageSrc ? imageBase + imageSrc : null);
31625
31626                // call after load even on cached image
31627                imageObj.complete && imageObj.trigger(_load); // jshint ignore : line
31628            }
31629        }
31630
31631        /**
31632         * check if the given element is inside the current viewport or threshold
31633         * @access private
31634         * @param {object} element
31635         * @return {boolean}
31636         */
31637        function _isInLoadableArea(element) {
31638            var elementBound = element.getBoundingClientRect(),
31639                direction    = config.scrollDirection,
31640                threshold    = config.threshold,
31641                vertical     = // check if element is in loadable area from top
31642                               ((_getActualHeight() + threshold) > elementBound.top) &&
31643                               // check if element is even in loadable are from bottom
31644                               (-threshold < elementBound.bottom),
31645                horizontal   = // check if element is in loadable area from left
31646                               ((_getActualWidth() + threshold) > elementBound.left) &&
31647                               // check if element is even in loadable area from right
31648                               (-threshold < elementBound.right);
31649
31650            if (direction === 'vertical') {
31651                return vertical;
31652            }
31653            else if (direction === 'horizontal') {
31654                return horizontal;
31655            }
31656
31657            return vertical && horizontal;
31658        }
31659
31660        /**
31661         * receive the current viewed width of the browser
31662         * @access private
31663         * @return {number}
31664         */
31665        function _getActualWidth() {
31666            return _actualWidth >= 0 ? _actualWidth : (_actualWidth = $(window).width());
31667        }
31668
31669        /**
31670         * receive the current viewed height of the browser
31671         * @access private
31672         * @return {number}
31673         */
31674        function _getActualHeight() {
31675            return _actualHeight >= 0 ? _actualHeight : (_actualHeight = $(window).height());
31676        }
31677
31678        /**
31679         * get lowercase tag name of an element
31680         * @access private
31681         * @param {object} element
31682         * @returns {string}
31683         */
31684        function _getElementTagName(element) {
31685            return element.tagName.toLowerCase();
31686        }
31687
31688        /**
31689         * prepend image base to all srcset entries
31690         * @access private
31691         * @param {string} srcset
31692         * @param {string} imageBase
31693         * @returns {string}
31694         */
31695        function _getCorrectedSrcSet(srcset, imageBase) {
31696            if (imageBase) {
31697                // trim, remove unnecessary spaces and split entries
31698                var entries = srcset.split(',');
31699                srcset = '';
31700
31701                for (var i = 0, l = entries.length; i < l; i++) {
31702                    srcset += imageBase + entries[i].trim() + (i !== l - 1 ? ',' : '');
31703                }
31704            }
31705
31706            return srcset;
31707        }
31708
31709        /**
31710         * helper function to throttle down event triggering
31711         * @access private
31712         * @param {number} delay
31713         * @param {function} callback
31714         * @return {function}
31715         */
31716        function _throttle(delay, callback) {
31717            var timeout,
31718                lastExecute = 0;
31719
31720            return function(event, ignoreThrottle) {
31721                var elapsed = +new Date() - lastExecute;
31722
31723                function run() {
31724                    lastExecute = +new Date();
31725                    // noinspection JSUnresolvedFunction
31726                    callback.call(instance, event);
31727                }
31728
31729                timeout && clearTimeout(timeout); // jshint ignore : line
31730
31731                if (elapsed > delay || !config.enableThrottle || ignoreThrottle) {
31732                    run();
31733                }
31734                else {
31735                    timeout = setTimeout(run, delay - elapsed);
31736                }
31737            };
31738        }
31739
31740        /**
31741         * reduce count of awaiting elements to 'afterLoad' event and fire 'onFinishedAll' if reached zero
31742         * @access private
31743         * @return void
31744         */
31745        function _reduceAwaiting() {
31746            --_awaitingAfterLoad;
31747
31748            // if no items were left trigger finished event
31749            if (!items.length && !_awaitingAfterLoad) {
31750                _triggerCallback('onFinishedAll');
31751            }
31752        }
31753
31754        /**
31755         * single implementation to handle callbacks, pass element and set 'this' to current instance
31756         * @access private
31757         * @param {string|function} callback
31758         * @param {object} [element]
31759         * @param {*} [args]
31760         * @return {boolean}
31761         */
31762        function _triggerCallback(callback, element, args) {
31763            if ((callback = config[callback])) {
31764                // jQuery's internal '$(arguments).slice(1)' are causing problems at least on old iPads
31765                // below is shorthand of 'Array.prototype.slice.call(arguments, 1)'
31766                callback.apply(instance, [].slice.call(arguments, 1));
31767                return true;
31768            }
31769
31770            return false;
31771        }
31772
31773        // if event driven or window is already loaded don't wait for page loading
31774        if (config.bind === 'event' || windowLoaded) {
31775            _initialize();
31776        }
31777
31778        // otherwise load initial items and start lazy after page load
31779        else {
31780            // noinspection JSUnresolvedVariable
31781            $(window).on(_load + '.' + namespace, _initialize);
31782        }  
31783    }
31784
31785    /**
31786     * lazy plugin class constructor
31787     * @constructor
31788     * @access private
31789     * @param {object} elements
31790     * @param {object} settings
31791     * @return {object|LazyPlugin}
31792     */
31793    function LazyPlugin(elements, settings) {
31794        /**
31795         * this lazy plugin instance
31796         * @access private
31797         * @type {object|LazyPlugin|LazyPlugin.prototype}
31798         */
31799        var _instance = this,
31800
31801        /**
31802         * this lazy plugin instance configuration
31803         * @access private
31804         * @type {object}
31805         */
31806        _config = $.extend({}, _instance.config, settings),
31807
31808        /**
31809         * instance generated event executed on container scroll or resize
31810         * packed in an object to be referenceable and short named because properties will not be minified
31811         * @access private
31812         * @type {object}
31813         */
31814        _events = {},
31815
31816        /**
31817         * unique namespace for instance related events
31818         * @access private
31819         * @type {string}
31820         */
31821        _namespace = _config.name + '-' + (++lazyInstanceId);
31822
31823        // noinspection JSUndefinedPropertyAssignment
31824        /**
31825         * wrapper to get or set an entry from plugin instance configuration
31826         * much smaller on minify as direct access
31827         * @access public
31828         * @type {function}
31829         * @param {string} entryName
31830         * @param {*} [value]
31831         * @return {LazyPlugin|*}
31832         */
31833        _instance.config = function(entryName, value) {
31834            if (value === undefined) {
31835                return _config[entryName];
31836            }
31837
31838            _config[entryName] = value;
31839            return _instance;
31840        };
31841
31842        // noinspection JSUndefinedPropertyAssignment
31843        /**
31844         * add additional items to current instance
31845         * @access public
31846         * @param {Array|object|string} items
31847         * @return {LazyPlugin}
31848         */
31849        _instance.addItems = function(items) {
31850            _events.a && _events.a($.type(items) === 'string' ? $(items) : items); // jshint ignore : line
31851            return _instance;
31852        };
31853
31854        // noinspection JSUndefinedPropertyAssignment
31855        /**
31856         * get all left items of this instance
31857         * @access public
31858         * @returns {object}
31859         */
31860        _instance.getItems = function() {
31861            return _events.g ? _events.g() : {};
31862        };
31863
31864        // noinspection JSUndefinedPropertyAssignment
31865        /**
31866         * force lazy to load all items in loadable area right now
31867         * by default without throttle
31868         * @access public
31869         * @type {function}
31870         * @param {boolean} [useThrottle]
31871         * @return {LazyPlugin}
31872         */
31873        _instance.update = function(useThrottle) {
31874            _events.e && _events.e({}, !useThrottle); // jshint ignore : line
31875            return _instance;
31876        };
31877
31878        // noinspection JSUndefinedPropertyAssignment
31879        /**
31880         * force element(s) to load directly, ignoring the viewport
31881         * @access public
31882         * @param {Array|object|string} items
31883         * @return {LazyPlugin}
31884         */
31885        _instance.force = function(items) {
31886            _events.f && _events.f($.type(items) === 'string' ? $(items) : items); // jshint ignore : line
31887            return _instance;
31888        };
31889
31890        // noinspection JSUndefinedPropertyAssignment
31891        /**
31892         * force lazy to load all available items right now
31893         * this call ignores throttling
31894         * @access public
31895         * @type {function}
31896         * @return {LazyPlugin}
31897         */
31898        _instance.loadAll = function() {
31899            _events.e && _events.e({all: true}, true); // jshint ignore : line
31900            return _instance;
31901        };
31902
31903        // noinspection JSUndefinedPropertyAssignment
31904        /**
31905         * destroy this plugin instance
31906         * @access public
31907         * @type {function}
31908         * @return undefined
31909         */
31910        _instance.destroy = function() {
31911            // unbind instance generated events
31912            // noinspection JSUnresolvedFunction, JSUnresolvedVariable
31913            $(_config.appendScroll).off('.' + _namespace, _events.e);
31914            // noinspection JSUnresolvedVariable
31915            $(window).off('.' + _namespace);
31916
31917            // clear events
31918            _events = {};
31919
31920            return undefined;
31921        };
31922
31923        // start using lazy and return all elements to be chainable or instance for further use
31924        // noinspection JSUnresolvedVariable
31925        _executeLazy(_instance, _config, elements, _events, _namespace);
31926        return _config.chainable ? elements : _instance;
31927    }
31928
31929    /**
31930     * settings and configuration data
31931     * @access public
31932     * @type {object|*}
31933     */
31934    LazyPlugin.prototype.config = {
31935        // general
31936        name               : 'lazy',
31937        chainable          : true,
31938        autoDestroy        : true,
31939        bind               : 'load',
31940        threshold          : 500,
31941        visibleOnly        : false,
31942        appendScroll       : window,
31943        scrollDirection    : 'both',
31944        imageBase          : null,
31945        defaultImage       : 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',
31946        placeholder        : null,
31947        delay              : -1,
31948        combined           : false,
31949
31950        // attributes
31951        attribute          : 'data-src',
31952        srcsetAttribute    : 'data-srcset',
31953        sizesAttribute     : 'data-sizes',
31954        retinaAttribute    : 'data-retina',
31955        loaderAttribute    : 'data-loader',
31956        imageBaseAttribute : 'data-imagebase',
31957        removeAttribute    : true,
31958        handledName        : 'handled',
31959        loadedName         : 'loaded',
31960
31961        // effect
31962        effect             : 'show',
31963        effectTime         : 0,
31964
31965        // throttle
31966        enableThrottle     : true,
31967        throttle           : 250,
31968
31969        // callbacks
31970        beforeLoad         : undefined,
31971        afterLoad          : undefined,
31972        onError            : undefined,
31973        onFinishedAll      : undefined
31974    };
31975
31976    // register window load event globally to prevent not loading elements
31977    // since jQuery 3.X ready state is fully async and may be executed after 'load' 
31978    $(window).on('load', function() {
31979        windowLoaded = true;
31980    });
31981})(window);
31982
31983�

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.