From f6c85f1aa333b46d1c351963aa3cfac7913f40e0 Mon Sep 17 00:00:00 2001 From: Victor Bjelkholm Date: Tue, 1 Dec 2015 16:46:08 +0100 Subject: [PATCH] Fix self reference issue --- Makefile.inc | 2 +- modern/pubnub.js | 73 +------------------ modern/pubnub.min.js | 123 --------------------------------- modern/unassembled/platform.js | 2 +- phonegap/pubnub.js | 2 +- phonegap/pubnub.min.js | 102 +++++++++++++-------------- sencha/pubnub.js | 2 +- sencha/pubnub.min.js | 102 +++++++++++++-------------- webos/pubnub.js | 2 +- webos/pubnub.min.js | 102 +++++++++++++-------------- 10 files changed, 159 insertions(+), 353 deletions(-) diff --git a/Makefile.inc b/Makefile.inc index 18305499a..2a7006c09 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -1,7 +1,7 @@ REPOS_DIR=.. TOOLS_DIR=$(REPOS_DIR)/tools VERSION=$(shell cat $(REPOS_DIR)/VERSION) -GOOGLE_MINIFY=/opt/minify/compiler.jar +GOOGLE_MINIFY=/Users/victor/Downloads/compiler-latest/compiler.jar CORE_DIR=$(REPOS_DIR)/core ECHO=/bin/echo PACKAGE_JSON=$(REPOS_DIR)/package.json diff --git a/modern/pubnub.js b/modern/pubnub.js index e3ca4515d..0dc8a7425 100644 --- a/modern/pubnub.js +++ b/modern/pubnub.js @@ -2469,7 +2469,7 @@ function CREATE_PUBNUB(setup) { setup['crypto_obj'] = crypto_obj(); setup['params'] = { 'pnsdk' : PNSDK } - SELF = function(setup) { + var SELF = function(setup) { return CREATE_PUBNUB(setup); } var PN = PN_API(setup); @@ -2628,74 +2628,3 @@ WS.prototype.close = function() { }; })(); -/* -CryptoJS v3.1.2 -code.google.com/p/crypto-js -(c) 2009-2013 by Jeff Mott. All rights reserved. -code.google.com/p/crypto-js/wiki/License -*/ -var CryptoJS=CryptoJS||function(h,s){var f={},g=f.lib={},q=function(){},m=g.Base={extend:function(a){q.prototype=this;var c=new q;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}}, -r=g.WordArray=m.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=s?c:4*a.length},toString:function(a){return(a||k).stringify(this)},concat:function(a){var c=this.words,d=a.words,b=this.sigBytes;a=a.sigBytes;this.clamp();if(b%4)for(var e=0;e>>2]|=(d[e>>>2]>>>24-8*(e%4)&255)<<24-8*((b+e)%4);else if(65535>>2]=d[e>>>2];else c.push.apply(c,d);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<< -32-8*(c%4);a.length=h.ceil(c/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],d=0;d>>2]>>>24-8*(b%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b>>3]|=parseInt(a.substr(b, -2),16)<<24-4*(b%8);return new r.init(d,c/2)}},n=l.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b>>2]>>>24-8*(b%4)&255));return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b>>2]|=(a.charCodeAt(b)&255)<<24-8*(b%4);return new r.init(d,c)}},j=l.Utf8={stringify:function(a){try{return decodeURIComponent(escape(n.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return n.parse(unescape(encodeURIComponent(a)))}}, -u=g.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=j.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,d=c.words,b=c.sigBytes,e=this.blockSize,f=b/(4*e),f=a?h.ceil(f):h.max((f|0)-this._minBufferSize,0);a=f*e;b=h.min(4*a,b);if(a){for(var g=0;gn;){var j;a:{j=k;for(var u=h.sqrt(j),t=2;t<=u;t++)if(!(j%t)){j=!1;break a}j=!0}j&&(8>n&&(m[n]=l(h.pow(k,0.5))),r[n]=l(h.pow(k,1/3)),n++);k++}var a=[],f=f.SHA256=q.extend({_doReset:function(){this._hash=new g.init(m.slice(0))},_doProcessBlock:function(c,d){for(var b=this._hash.words,e=b[0],f=b[1],g=b[2],j=b[3],h=b[4],m=b[5],n=b[6],q=b[7],p=0;64>p;p++){if(16>p)a[p]= -c[d+p]|0;else{var k=a[p-15],l=a[p-2];a[p]=((k<<25|k>>>7)^(k<<14|k>>>18)^k>>>3)+a[p-7]+((l<<15|l>>>17)^(l<<13|l>>>19)^l>>>10)+a[p-16]}k=q+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&m^~h&n)+r[p]+a[p];l=((e<<30|e>>>2)^(e<<19|e>>>13)^(e<<10|e>>>22))+(e&f^e&g^f&g);q=n;n=m;m=h;h=j+k|0;j=g;g=f;f=e;e=k+l|0}b[0]=b[0]+e|0;b[1]=b[1]+f|0;b[2]=b[2]+g|0;b[3]=b[3]+j|0;b[4]=b[4]+h|0;b[5]=b[5]+m|0;b[6]=b[6]+n|0;b[7]=b[7]+q|0},_doFinalize:function(){var a=this._data,d=a.words,b=8*this._nDataBytes,e=8*a.sigBytes; -d[e>>>5]|=128<<24-e%32;d[(e+64>>>9<<4)+14]=h.floor(b/4294967296);d[(e+64>>>9<<4)+15]=b;a.sigBytes=4*d.length;this._process();return this._hash},clone:function(){var a=q.clone.call(this);a._hash=this._hash.clone();return a}});s.SHA256=q._createHelper(f);s.HmacSHA256=q._createHmacHelper(f)})(Math); - -// HMAC SHA256 -(function(){var h=CryptoJS,s=h.enc.Utf8;h.algo.HMAC=h.lib.Base.extend({init:function(f,g){f=this._hasher=new f.init;"string"==typeof g&&(g=s.parse(g));var h=f.blockSize,m=4*h;g.sigBytes>m&&(g=f.finalize(g));g.clamp();for(var r=this._oKey=g.clone(),l=this._iKey=g.clone(),k=r.words,n=l.words,j=0;j>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w< -l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})(); - -// BlockCipher -(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])}, -_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]), -f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f, -m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m, -E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/ -4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math); -(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a, -this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684, -1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, -decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d, -b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); - -// AES -(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8, -16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;dd||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>> -8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t= -d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})(); - -// Mode ECB -CryptoJS.mode.ECB = (function () { - var ECB = CryptoJS.lib.BlockCipherMode.extend(); - - ECB.Encryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.encryptBlock(words, offset); - } - }); - - ECB.Decryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.decryptBlock(words, offset); - } - }); - - return ECB; -}());// Moved to hmac-sha-256.js \ No newline at end of file diff --git a/modern/pubnub.min.js b/modern/pubnub.min.js index eed55e70b..6dee8f13a 100644 --- a/modern/pubnub.min.js +++ b/modern/pubnub.min.js @@ -1,125 +1,2 @@ // Version: 3.7.18 (function(){ -var p=!0,x=null,y=!1;function z(){return function(){}}function aa(){return"x"+ ++da+""+ +new Date}function C(){return+new Date}function fa(b,d){var c=b.join(ga),e=[];if(!d)return c;S(d,function(b,c){var d="object"==typeof c?JSON.stringify(c):c;"undefined"!=typeof c&&(c!=x&&0C()?(clearTimeout(e),e=setTimeout(c,d)):(f=C(),b())}var e,f=0;return c} -function sa(b,d){var c=[];S(b||[],function(b){d(b)&&c.push(b)});return c}function wa(b,d){return b.replace(xa,function(b,e){return d[e]||b})}function ya(b){var d="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var d=16*Math.random()|0;return("x"==b?d:d&3|8).toString(16)});b&&b(d);return d}function Ha(b){return!!b&&"string"!==typeof b&&(Array.isArray&&Array.isArray(b)||"number"===typeof b.length)} -function S(b,d){if(b&&d)if(Ha(b))for(var c=0,e=b.length;cb.search("-pnpres")&&f.e&&c.push(b):f.e&&c.push(b)});return c.sort()} -function Ka(b,d){var c=[];S(b,function(b,f){d?0>b.search("-pnpres")&&f.e&&c.push(b):f.e&&c.push(b)});return c.sort()}function La(){setTimeout(function(){Ma||(Ma=1,S(Na,function(b){b()}))},Y)} -function Qa(){function b(b){b=b||{};b.hasOwnProperty("encryptKey")||(b.encryptKey=l.encryptKey);b.hasOwnProperty("keyEncoding")||(b.keyEncoding=l.keyEncoding);b.hasOwnProperty("keyLength")||(b.keyLength=l.keyLength);b.hasOwnProperty("mode")||(b.mode=l.mode);-1==G.indexOf(b.keyEncoding.toLowerCase())&&(b.keyEncoding=l.keyEncoding);-1==K.indexOf(parseInt(b.keyLength,10))&&(b.keyLength=l.keyLength);-1==m.indexOf(b.mode.toLowerCase())&&(b.mode=l.mode);return b}function d(b,c){b="base64"==c.keyEncoding? -CryptoJS.enc.Base64.parse(b):"hex"==c.keyEncoding?CryptoJS.enc.Hex.parse(b):b;return c.encryptKey?CryptoJS.enc.Utf8.parse(CryptoJS.SHA256(b).toString(CryptoJS.enc.Hex).slice(0,32)):b}function c(b){return"ecb"==b.mode?CryptoJS.mode.ECB:CryptoJS.mode.CBC}function e(b){return"cbc"==b.mode?CryptoJS.enc.Utf8.parse(f):x}var f="0123456789012345",G=["hex","utf8","base64","binary"],K=[128,256],m=["ecb","cbc"],l={encryptKey:p,keyEncoding:"utf8",keyLength:256,mode:"cbc"};return{encrypt:function(f,l,t){if(!l)return f; -var t=b(t),m=e(t),G=c(t),l=d(l,t),t=JSON.stringify(f);return CryptoJS.AES.encrypt(t,l,{iv:m,mode:G}).ciphertext.toString(CryptoJS.enc.Base64)||f},decrypt:function(f,l,m){if(!l)return f;var m=b(m),G=e(m),O=c(m),l=d(l,m);try{var K=CryptoJS.enc.Base64.parse(f),oa=CryptoJS.AES.decrypt({ciphertext:K},l,{iv:G,mode:O}).toString(CryptoJS.enc.Utf8);return JSON.parse(oa)}catch(Aa){}}}} -function Ya(b){function d(b,c){f||(f=1,clearTimeout(m),e&&(e.onerror=e.onload=x,e.abort&&e.abort(),e=x),b&&ha(c))}function c(){if(!G){G=1;clearTimeout(m);try{response=JSON.parse(e.responseText)}catch(b){return d(1)}ma(response)}}var e,f=0,G=0,K=b.timeout||Za,m=setTimeout(function(){d(1)},K),l=b.data||{},ha=b.b||z(),ma=b.c||z(),t="undefined"===typeof b.k;try{e="undefined"!==typeof XDomainRequest&&new XDomainRequest||new XMLHttpRequest,e.onerror=e.onabort=function(){d(1,e.responseText||{error:"Network Connection Error"})}, -e.onload=e.onloadend=c,e.onreadystatechange=function(){if(4==e.readyState)switch(e.status){case 200:break;default:try{response=JSON.parse(e.responseText),d(1,response)}catch(b){return d(1,{status:e.status,q:x,message:e.responseText})}}},l.pnsdk=$a,url=fa(b.url,l),e.open("GET",url,t),t&&(e.timeout=K),e.send()}catch(za){return d(0),Ya(b)}return d} -function ab(b,d,c){S(b.split(","),function(b){function f(b){b||(b=window.event);c(b)||(b.cancelBubble=p,b.returnValue=y,b.preventDefault&&b.preventDefault(),b.stopPropagation&&b.stopPropagation())}d.addEventListener?d.addEventListener(b,f,y):d.attachEvent?d.attachEvent("on"+b,f):d["on"+b]=f})}function bb(b){console.error(b)}function cb(b,d,c){if(c)b.setAttribute(d,c);else return b&&b.getAttribute&&b.getAttribute(d)}function db(b){return document.getElementById(b)} -function eb(b,d){var c=[];S(b.split(/\s+/),function(b){S((d||document).getElementsByTagName(b),function(b){c.push(b)})});return c}function fb(b,d){for(var c in d)if(d.hasOwnProperty(c))try{b.style[c]=d[c]+(0<"|width|height|top|left|".indexOf(c)&&"number"==typeof d[c]?"px":"")}catch(e){}}function gb(b){return document.createElement(b)}function hb(b,d){return CryptoJS.HmacSHA256(b,d).toString(CryptoJS.enc.Base64)} -function Z(b){function d(){}function c(a,b){function s(b){b&&(Ba=C()-(b/1E4+(C()-c)/2),a&&a(Ba))}var c=C();b&&s(b)||u.time(s)}function e(a,b){qa&&qa(a,b);qa=x;clearTimeout(U);clearTimeout(V)}function f(){ob&&u.time(function(a){c(z(),a);a||e(1,{error:"Heartbeat failed to connect to Pubnub Servers.Please check your network settings."});V&&clearTimeout(V);V=setTimeout(f,Oa)})}function G(){pb()||e(1,{error:"Offline. Please check your network settings. "});U&&clearTimeout(U);U=setTimeout(G,Y)}function K(a, -b,s,c){var b=a.callback||b,d=a.error||i,h=F(),c=c||{};c.auth||(c.auth=a.auth_key||A);a=[H,"v1","channel-registration","sub-key",r];a.push.apply(a,s);h&&(c.callback=h);E({a:h,data:B(c),c:function(a){l(a,b,d)},b:function(a){m(a,d)},url:a})}function m(a,b){if("object"==typeof a&&a.error){var s={};a.message&&(s.message=a.message);a.payload&&(s.payload=a.payload);b&&b(s)}else b&&b(a)}function l(a,b,s){if("object"==typeof a){if(a.error){b={};a.message&&(b.message=a.message);a.payload&&(b.payload=a.payload); -s&&s(b);return}if(a.payload){a.next_page?b&&b(a.payload,a.next_page):b&&b(a.payload);return}}b&&b(a)}function ha(a){var b=0;S(Ja(j),function(s){if(s=j[s])b++,(a||z())(s)});return b}function ma(a){var b=0;S(Ka(J),function(s){if(s=J[s])b++,(a||z())(s)})}function t(a){if(qb){if(!L.length)return}else{a&&(L.l=0);if(L.l||!L.length)return;L.l=1}E(L.shift())}function za(){!Ca&&O()}function O(){clearTimeout(ia);!I||500<=I||1>I||!Ja(j,p).length&&!Ka(J,p).length?Ca=y:(Ca=p,u.presence_heartbeat({callback:function(){ia= -setTimeout(O,I*Y)},error:function(a){i&&i("Presence Heartbeat unable to reach Pubnub servers."+JSON.stringify(a));ia=setTimeout(O,I*Y)}}))}function na(a,b){return ra.decrypt(a,b||W)||ra.decrypt(a,W)||a}function oa(a,b,s){var c=y;if("undefined"===typeof a)return b;if("number"===typeof a)c=a>ib||0==a?y:p;else{if("boolean"===typeof a)return a?jb:0;c=p}return c?(s&&s("Presence Heartbeat value invalid. Valid range ( x > "+ib+" or x = 0). Current Value : "+(b||ib)),b||ib):a}function Aa(a){var b="",c=[]; -S(a,function(a){c.push(a)});var q=c.sort(),d;for(d in q){var h=q[d],b=b+(h+"="+Ia(a[h]));d!=q.length-1&&(b+="&")}return b}function B(a){a||(a={});S(Pa,function(b,c){b in a||(a[b]=c)});return a}b.db=kb;b.xdr=Ya;b.error=b.error||bb;b.hmac_SHA256=hb;b.crypto_obj=Qa();b.params={pnsdk:$a};SELF=function(a){return Z(a)};var ta,tb=+b.windowing||lb,vb=(+b.timeout||mb)*Y,Oa=(+b.keepalive||nb)*Y,ob=b.timecheck||0,Ra=b.noleave||0,Q=b.publish_key,r=b.subscribe_key,A=b.auth_key||"",ua=b.secret_key||"",Sa=b.hmac_SHA256, -ja=b.ssl?"s":"",ea="http"+ja+"://"+(b.origin||"pubsub.pubnub.com"),H=rb(ea),Ta=rb(ea),L=[],Da=p,Ba=0,Ea=0,Ua=0,qa=0,ka=b.restore||0,ba=0,Fa=y,j={},J={},R={},ia=x,M=oa(b.heartbeat||b.pnexpires||0,b.error),I=b.heartbeat_interval||M/2-1,Ca=y,qb=b.no_wait_for_pending,Va=b["compatible_3.5"]||y,E=b.xdr,Pa=b.params||{},i=b.error||z(),pb=b._is_online||function(){return 1},F=b.jsonp_cb||function(){return 0},ca=b.db||{get:z(),set:z()},W=b.cipher_key,w=b.uuid||!b.unique_uuid&&ca&&ca.get(r+"uuid")||"",X=b.instance_id|| -y,N="",Wa=b.shutdown,va=("undefined"!=typeof b.use_send_beacon?b.use_send_beacon:1)?b.sendBeacon:x,U,V;2===M&&(I=1);var ra=b.crypto_obj||{encrypt:function(a){return a},decrypt:function(a){return a}},u={LEAVE:function(a,b,c,q,d){var c={uuid:w,auth:c||A},h=rb(ea),q=q||z(),v=d||z(),d=F();if(0b.indexOf("-pnpres"))&&(b+="-pnpres"),c=J[b]||j[b]||{callback:z()}):c=j[a];a=[c.a||Ea,a.split($)[0]];b&&a.push(b.split($)[0]);return a};var s=C()-Ba-+a[1]/1E4;S(a[0],function(c){var d=b(),c=na(c,j[d[1]]?j[d[1]].cipher_key:x);d[0]&&d[0](c,a,d[2]||d[1],s,d[1])})}setTimeout(q,O)}})}}var P=a.channel,h=a.channel_group,b=(b=b||a.callback)||a.message, -v=a.connect||z(),g=a.reconnect||z(),D=a.disconnect||z(),f=a.error||f||z(),l=a.idle||z(),t=a.presence||0,G=a.noheresync||0,I=a.backfill||0,K=a.timetoken||0,Q=a.timeout||vb,O=a.windowing||tb,L=a.state,U=a.heartbeat||a.pnexpires,V=a.heartbeat_interval,W=a.restore||ka;A=a.auth_key||A;ka=W;ba=K;if(!P&&!h)return i("Missing Channel");if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");(U||0===U||V||0===V)&&u.set_heartbeat(U,V);P&&S((P.join?P.join(","):""+P).split(","),function(c){var d= -j[c]||{};j[Ua=c]={name:c,f:d.f,d:d.d,e:1,a:Ea=b,cipher_key:a.cipher_key,h:v,i:D,j:g};L&&(R[c]=c in L?L[c]:L);t&&(u.subscribe({channel:c+$,callback:t,restore:W}),!d.e&&!G&&u.here_now({channel:c,data:B({uuid:w,auth:A}),callback:function(a){S("uuids"in a?a.uuids:[],function(b){t({action:"join",uuid:b,timestamp:Math.floor(C()/1E3),occupancy:a.occupancy||1},a,c)})}}))});h&&S((h.join?h.join(","):""+h).split(","),function(c){var d=J[c]||{};J[c]={name:c,f:d.f,d:d.d,e:1,a:Ea=b,cipher_key:a.cipher_key,h:v, -i:D,j:g};t&&(u.subscribe({channel_group:c+$,callback:t,restore:W,auth_key:A}),!d.e&&!G&&u.here_now({channel_group:c,data:B({uuid:w,auth:A}),callback:function(a){S("uuids"in a?a.uuids:[],function(b){t({action:"join",uuid:b,timestamp:Math.floor(C()/1E3),occupancy:a.occupancy||1},a,c)})}}))});d=function(){e();setTimeout(q,O)};if(!Ma)return Na.push(d);d()},here_now:function(a,b){var b=a.callback||b,c=a.debug,d=a.error||z(),e=a.auth_key||A,h=a.channel,v=a.channel_group,g=F(),f=a.state,e={uuid:w,auth:e}; -if(!("uuids"in a?a.uuids:1))e.disable_uuids=1;f&&(e.state=1);if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");f=[H,"v2","presence","sub_key",r];h&&f.push("channel")&&f.push(encodeURIComponent(h));"0"!=g&&(e.callback=g);v&&(e["channel-group"]=v,!h&&f.push("channel")&&f.push(","));X&&(e.instanceid=N);E({a:g,data:B(e),c:function(a){l(a,b,d)},b:function(a){m(a,d)},debug:c,url:f})},where_now:function(a,b){var b=a.callback||b,c=a.error||z(),d=a.auth_key||A,e=F(),h=a.uuid||w,d= -{auth:d};if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");"0"!=e&&(d.callback=e);X&&(d.instanceid=N);E({a:e,data:B(d),c:function(a){l(a,b,c)},b:function(a){m(a,c)},url:[H,"v2","presence","sub_key",r,"uuid",encodeURIComponent(h)]})},state:function(a,b){var b=a.callback||b||z(),c=a.error||z(),d=a.auth_key||A,e=F(),h=a.state,f=a.uuid||w,g=a.channel,D=a.channel_group,d=B({auth:d});if(!r)return i("Missing Subscribe Key");if(!f)return i("Missing UUID");if(!g&&!D)return i("Missing Channel"); -"0"!=e&&(d.callback=e);"undefined"!=typeof g&&j[g]&&j[g].e&&h&&(R[g]=h);"undefined"!=typeof D&&(J[D]&&J[D].e)&&(h&&(R[D]=h),d["channel-group"]=D,g||(g=","));d.state=JSON.stringify(h);X&&(d.instanceid=N);h=h?[H,"v2","presence","sub-key",r,"channel",g,"uuid",f,"data"]:[H,"v2","presence","sub-key",r,"channel",g,"uuid",encodeURIComponent(f)];E({a:e,data:B(d),c:function(a){l(a,b,c)},b:function(a){m(a,c)},url:h})},grant:function(a,b){var b=a.callback||b,c=a.error||z(),d=a.channel||a.channels,e=a.channel_group, -h=F(),f=a.ttl,g=a.read?"1":"0",j=a.write?"1":"0",u=a.manage?"1":"0",t=a.auth_key||a.auth_keys;if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");if(!Q)return i("Missing Publish Key");if(!ua)return i("Missing Secret Key");var w=r+"\n"+Q+"\ngrant\n",g={w:j,r:g,timestamp:Math.floor((new Date).getTime()/1E3)};a.manage&&(g.m=u);Ha(d)&&(d=d.join(","));Ha(t)&&(t=t.join(","));"undefined"!=typeof d&&(d!=x&&0M&&(d.heartbeat=M);"0"!=a&&(d.callback=a);var e;e=Ja(j,p).join(",");e=encodeURIComponent(e);var f=Ka(J, -p).join(",");e||(e=",");f&&(d["channel-group"]=f);X&&(d.instanceid=N);E({a:a,data:B(d),url:[H,"v2","presence","sub-key",r,"channel",e,"heartbeat"],c:function(a){l(a,b,c)},b:function(a){m(a,c)}})},stop_timers:function(){clearTimeout(U);clearTimeout(V);clearTimeout(ia)},shutdown:function(){u.stop_timers();Wa&&Wa()},xdr:E,ready:La,db:ca,uuid:ya,map:T,each:S,"each-channel":ha,grep:sa,offline:function(){e(1,{message:"Offline. Please check your network settings."})},supplant:wa,now:C,unique:aa,updater:pa}; -w||(w=u.uuid());N||(N=u.uuid());ca.set(r+"uuid",w);U=setTimeout(G,Y);V=setTimeout(f,Oa);ia=setTimeout(za,(I-3)*Y);c();ta=u;for(var Ga in ta)ta.hasOwnProperty(Ga)&&(SELF[Ga]=ta[Ga]);SELF.init=SELF;SELF.$=db;SELF.attr=cb;SELF.search=eb;SELF.bind=ab;SELF.css=fb;SELF.create=gb;SELF.crypto_obj=Qa();"undefined"!==typeof window&&ab("beforeunload",window,function(){SELF["each-channel"](function(a){SELF.LEAVE(a.name,1)});return p});if(b.notest)return SELF;"undefined"!==typeof window&&ab("offline",window,SELF._reset_offline); -"undefined"!==typeof document&&ab("offline",document,SELF._reset_offline);SELF.ready();return SELF}var da=1,Ma=y,Na=[],$="-pnpres",lb=10,Za=15E3,mb=310,nb=60,Y=1E3,ga="/",la="&",ib=5,jb=30,sb="3.7.18",xa=/{([\w\-]+)}/g,rb,ub=Math.floor(20*Math.random());rb=function(b,d){return 0++ub?ub:ub=1))||b};var da=1,$a="PubNub-JS-Modern/3.7.18",kb,wb="undefined"!=typeof localStorage&&localStorage; -kb={get:function(b){try{return wb?wb.getItem(b):-1==document.cookie.indexOf(b)?x:((document.cookie||"").match(RegExp(b+"=([^;]+)"))||[])[1]||x}catch(d){}},set:function(b,d){try{if(wb)return wb.setItem(b,d)&&0;document.cookie=b+"="+d+"; expires=Thu, 1 Aug 2030 20:00:00 UTC; path=/"}catch(c){}}};Z.init=Z;Z.secure=Z;Z.crypto_obj=Qa();PUBNUB=Z({});"undefined"!==typeof module&&(module.p=Z)||"undefined"!==typeof exports&&(exports.o=Z)||(PUBNUB=Z); -var xb=PUBNUB.ws=function(b,d){if(!(this instanceof xb))return new xb(b,d);var c=this,b=c.url=b||"";c.protocol=d||"Sec-WebSocket-Protocol";var e=b.split("/"),e={ssl:"wss:"===e[0],origin:e[2],publish_key:e[3],subscribe_key:e[4],channel:e[5]};c.CONNECTING=0;c.OPEN=1;c.CLOSING=2;c.CLOSED=3;c.CLOSE_NORMAL=1E3;c.CLOSE_GOING_AWAY=1001;c.CLOSE_PROTOCOL_ERROR=1002;c.CLOSE_UNSUPPORTED=1003;c.CLOSE_TOO_LARGE=1004;c.CLOSE_NO_STATUS=1005;c.CLOSE_ABNORMAL=1006;c.onclose=c.onerror=c.onmessage=c.onopen=c.onsend= -z();c.binaryType="";c.extensions="";c.bufferedAmount=0;c.trasnmitting=y;c.buffer=[];c.readyState=c.CONNECTING;if(!b)return c.readyState=c.CLOSED,c.onclose({code:c.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:p}),c;c.g=PUBNUB.init(e);c.g.n=e;c.n=e;c.g.subscribe({restore:y,channel:e.channel,disconnect:c.onerror,reconnect:c.onopen,error:function(){c.onclose({code:c.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:y})},callback:function(b){c.onmessage({data:b})},connect:function(){c.readyState=c.OPEN;c.onopen()}})}; -xb.prototype.send=function(b){var d=this;d.g.publish({channel:d.g.n.channel,message:b,callback:function(b){d.onsend({data:b})}})}; -})(); -/* -CryptoJS v3.1.2 -code.google.com/p/crypto-js -(c) 2009-2013 by Jeff Mott. All rights reserved. -code.google.com/p/crypto-js/wiki/License -*/ -var CryptoJS=CryptoJS||function(h,s){var f={},g=f.lib={},q=function(){},m=g.Base={extend:function(a){q.prototype=this;var c=new q;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}}, -r=g.WordArray=m.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=s?c:4*a.length},toString:function(a){return(a||k).stringify(this)},concat:function(a){var c=this.words,d=a.words,b=this.sigBytes;a=a.sigBytes;this.clamp();if(b%4)for(var e=0;e>>2]|=(d[e>>>2]>>>24-8*(e%4)&255)<<24-8*((b+e)%4);else if(65535>>2]=d[e>>>2];else c.push.apply(c,d);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<< -32-8*(c%4);a.length=h.ceil(c/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],d=0;d>>2]>>>24-8*(b%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b>>3]|=parseInt(a.substr(b, -2),16)<<24-4*(b%8);return new r.init(d,c/2)}},n=l.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b>>2]>>>24-8*(b%4)&255));return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b>>2]|=(a.charCodeAt(b)&255)<<24-8*(b%4);return new r.init(d,c)}},j=l.Utf8={stringify:function(a){try{return decodeURIComponent(escape(n.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return n.parse(unescape(encodeURIComponent(a)))}}, -u=g.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=j.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,d=c.words,b=c.sigBytes,e=this.blockSize,f=b/(4*e),f=a?h.ceil(f):h.max((f|0)-this._minBufferSize,0);a=f*e;b=h.min(4*a,b);if(a){for(var g=0;gn;){var j;a:{j=k;for(var u=h.sqrt(j),t=2;t<=u;t++)if(!(j%t)){j=!1;break a}j=!0}j&&(8>n&&(m[n]=l(h.pow(k,0.5))),r[n]=l(h.pow(k,1/3)),n++);k++}var a=[],f=f.SHA256=q.extend({_doReset:function(){this._hash=new g.init(m.slice(0))},_doProcessBlock:function(c,d){for(var b=this._hash.words,e=b[0],f=b[1],g=b[2],j=b[3],h=b[4],m=b[5],n=b[6],q=b[7],p=0;64>p;p++){if(16>p)a[p]= -c[d+p]|0;else{var k=a[p-15],l=a[p-2];a[p]=((k<<25|k>>>7)^(k<<14|k>>>18)^k>>>3)+a[p-7]+((l<<15|l>>>17)^(l<<13|l>>>19)^l>>>10)+a[p-16]}k=q+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&m^~h&n)+r[p]+a[p];l=((e<<30|e>>>2)^(e<<19|e>>>13)^(e<<10|e>>>22))+(e&f^e&g^f&g);q=n;n=m;m=h;h=j+k|0;j=g;g=f;f=e;e=k+l|0}b[0]=b[0]+e|0;b[1]=b[1]+f|0;b[2]=b[2]+g|0;b[3]=b[3]+j|0;b[4]=b[4]+h|0;b[5]=b[5]+m|0;b[6]=b[6]+n|0;b[7]=b[7]+q|0},_doFinalize:function(){var a=this._data,d=a.words,b=8*this._nDataBytes,e=8*a.sigBytes; -d[e>>>5]|=128<<24-e%32;d[(e+64>>>9<<4)+14]=h.floor(b/4294967296);d[(e+64>>>9<<4)+15]=b;a.sigBytes=4*d.length;this._process();return this._hash},clone:function(){var a=q.clone.call(this);a._hash=this._hash.clone();return a}});s.SHA256=q._createHelper(f);s.HmacSHA256=q._createHmacHelper(f)})(Math); - -// HMAC SHA256 -(function(){var h=CryptoJS,s=h.enc.Utf8;h.algo.HMAC=h.lib.Base.extend({init:function(f,g){f=this._hasher=new f.init;"string"==typeof g&&(g=s.parse(g));var h=f.blockSize,m=4*h;g.sigBytes>m&&(g=f.finalize(g));g.clamp();for(var r=this._oKey=g.clone(),l=this._iKey=g.clone(),k=r.words,n=l.words,j=0;j>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w< -l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})(); - -// BlockCipher -(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])}, -_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]), -f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f, -m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m, -E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/ -4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math); -(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a, -this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684, -1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, -decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d, -b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); - -// AES -(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8, -16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;dd||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>> -8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t= -d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})(); - -// Mode ECB -CryptoJS.mode.ECB = (function () { - var ECB = CryptoJS.lib.BlockCipherMode.extend(); - - ECB.Encryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.encryptBlock(words, offset); - } - }); - - ECB.Decryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.decryptBlock(words, offset); - } - }); - - return ECB; -}());// Moved to hmac-sha-256.js \ No newline at end of file diff --git a/modern/unassembled/platform.js b/modern/unassembled/platform.js index bf4307bce..a22be8a38 100644 --- a/modern/unassembled/platform.js +++ b/modern/unassembled/platform.js @@ -261,7 +261,7 @@ function CREATE_PUBNUB(setup) { setup['crypto_obj'] = crypto_obj(); setup['params'] = { 'pnsdk' : PNSDK } - SELF = function(setup) { + var SELF = function(setup) { return CREATE_PUBNUB(setup); } var PN = PN_API(setup); diff --git a/phonegap/pubnub.js b/phonegap/pubnub.js index 2a4691da0..cb43b0829 100644 --- a/phonegap/pubnub.js +++ b/phonegap/pubnub.js @@ -2469,7 +2469,7 @@ function CREATE_PUBNUB(setup) { setup['crypto_obj'] = crypto_obj(); setup['params'] = { 'pnsdk' : PNSDK } - SELF = function(setup) { + var SELF = function(setup) { return CREATE_PUBNUB(setup); } var PN = PN_API(setup); diff --git a/phonegap/pubnub.min.js b/phonegap/pubnub.min.js index e7ecbbe43..c3d6a5b49 100644 --- a/phonegap/pubnub.min.js +++ b/phonegap/pubnub.min.js @@ -70,55 +70,55 @@ CryptoJS.mode.ECB = (function () { }); return ECB; -}());// Moved to hmac-sha-256.jsvar p=!0,x=null,y=!1;function z(){return function(){}}function aa(){return"x"+ ++da+""+ +new Date}function C(){return+new Date}function fa(b,d){var c=b.join(ga),e=[];if(!d)return c;S(d,function(b,c){var d="object"==typeof c?JSON.stringify(c):c;"undefined"!=typeof c&&(c!=x&&0C()?(clearTimeout(e),e=setTimeout(c,d)):(f=C(),b())}var e,f=0;return c} -function sa(b,d){var c=[];S(b||[],function(b){d(b)&&c.push(b)});return c}function wa(b,d){return b.replace(xa,function(b,e){return d[e]||b})}function ya(b){var d="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var d=16*Math.random()|0;return("x"==b?d:d&3|8).toString(16)});b&&b(d);return d}function Ha(b){return!!b&&"string"!==typeof b&&(Array.isArray&&Array.isArray(b)||"number"===typeof b.length)} -function S(b,d){if(b&&d)if(Ha(b))for(var c=0,e=b.length;cb.search("-pnpres")&&f.e&&c.push(b):f.e&&c.push(b)});return c.sort()} -function Ka(b,d){var c=[];S(b,function(b,f){d?0>b.search("-pnpres")&&f.e&&c.push(b):f.e&&c.push(b)});return c.sort()}function La(){setTimeout(function(){Ma||(Ma=1,S(Na,function(b){b()}))},Y)} -function Qa(){function b(b){b=b||{};b.hasOwnProperty("encryptKey")||(b.encryptKey=l.encryptKey);b.hasOwnProperty("keyEncoding")||(b.keyEncoding=l.keyEncoding);b.hasOwnProperty("keyLength")||(b.keyLength=l.keyLength);b.hasOwnProperty("mode")||(b.mode=l.mode);-1==G.indexOf(b.keyEncoding.toLowerCase())&&(b.keyEncoding=l.keyEncoding);-1==K.indexOf(parseInt(b.keyLength,10))&&(b.keyLength=l.keyLength);-1==m.indexOf(b.mode.toLowerCase())&&(b.mode=l.mode);return b}function d(b,c){b="base64"==c.keyEncoding? -CryptoJS.enc.Base64.parse(b):"hex"==c.keyEncoding?CryptoJS.enc.Hex.parse(b):b;return c.encryptKey?CryptoJS.enc.Utf8.parse(CryptoJS.SHA256(b).toString(CryptoJS.enc.Hex).slice(0,32)):b}function c(b){return"ecb"==b.mode?CryptoJS.mode.ECB:CryptoJS.mode.CBC}function e(b){return"cbc"==b.mode?CryptoJS.enc.Utf8.parse(f):x}var f="0123456789012345",G=["hex","utf8","base64","binary"],K=[128,256],m=["ecb","cbc"],l={encryptKey:p,keyEncoding:"utf8",keyLength:256,mode:"cbc"};return{encrypt:function(f,l,t){if(!l)return f; -var t=b(t),m=e(t),G=c(t),l=d(l,t),t=JSON.stringify(f);return CryptoJS.AES.encrypt(t,l,{iv:m,mode:G}).ciphertext.toString(CryptoJS.enc.Base64)||f},decrypt:function(f,l,m){if(!l)return f;var m=b(m),G=e(m),O=c(m),l=d(l,m);try{var K=CryptoJS.enc.Base64.parse(f),oa=CryptoJS.AES.decrypt({ciphertext:K},l,{iv:G,mode:O}).toString(CryptoJS.enc.Utf8);return JSON.parse(oa)}catch(Aa){}}}} -function Ya(b){function d(b,c){f||(f=1,clearTimeout(m),e&&(e.onerror=e.onload=x,e.abort&&e.abort(),e=x),b&&ha(c))}function c(){if(!G){G=1;clearTimeout(m);try{response=JSON.parse(e.responseText)}catch(b){return d(1)}ma(response)}}var e,f=0,G=0,K=b.timeout||Za,m=setTimeout(function(){d(1)},K),l=b.data||{},ha=b.b||z(),ma=b.c||z(),t="undefined"===typeof b.k;try{e="undefined"!==typeof XDomainRequest&&new XDomainRequest||new XMLHttpRequest,e.onerror=e.onabort=function(){d(1,e.responseText||{error:"Network Connection Error"})}, -e.onload=e.onloadend=c,e.onreadystatechange=function(){if(4==e.readyState)switch(e.status){case 200:break;default:try{response=JSON.parse(e.responseText),d(1,response)}catch(b){return d(1,{status:e.status,q:x,message:e.responseText})}}},l.pnsdk=$a,url=fa(b.url,l),e.open("GET",url,t),t&&(e.timeout=K),e.send()}catch(za){return d(0),Ya(b)}return d} -function ab(b,d,c){S(b.split(","),function(b){function f(b){b||(b=window.event);c(b)||(b.cancelBubble=p,b.returnValue=y,b.preventDefault&&b.preventDefault(),b.stopPropagation&&b.stopPropagation())}d.addEventListener?d.addEventListener(b,f,y):d.attachEvent?d.attachEvent("on"+b,f):d["on"+b]=f})}function bb(b){console.error(b)}function cb(b,d,c){if(c)b.setAttribute(d,c);else return b&&b.getAttribute&&b.getAttribute(d)}function db(b){return document.getElementById(b)} -function eb(b,d){var c=[];S(b.split(/\s+/),function(b){S((d||document).getElementsByTagName(b),function(b){c.push(b)})});return c}function fb(b,d){for(var c in d)if(d.hasOwnProperty(c))try{b.style[c]=d[c]+(0<"|width|height|top|left|".indexOf(c)&&"number"==typeof d[c]?"px":"")}catch(e){}}function gb(b){return document.createElement(b)}function hb(b,d){return CryptoJS.HmacSHA256(b,d).toString(CryptoJS.enc.Base64)} -function Z(b){function d(){}function c(a,b){function s(b){b&&(Ba=C()-(b/1E4+(C()-c)/2),a&&a(Ba))}var c=C();b&&s(b)||u.time(s)}function e(a,b){qa&&qa(a,b);qa=x;clearTimeout(U);clearTimeout(V)}function f(){ob&&u.time(function(a){c(z(),a);a||e(1,{error:"Heartbeat failed to connect to Pubnub Servers.Please check your network settings."});V&&clearTimeout(V);V=setTimeout(f,Oa)})}function G(){pb()||e(1,{error:"Offline. Please check your network settings. "});U&&clearTimeout(U);U=setTimeout(G,Y)}function K(a, -b,s,c){var b=a.callback||b,d=a.error||i,h=F(),c=c||{};c.auth||(c.auth=a.auth_key||A);a=[H,"v1","channel-registration","sub-key",r];a.push.apply(a,s);h&&(c.callback=h);E({a:h,data:B(c),c:function(a){l(a,b,d)},b:function(a){m(a,d)},url:a})}function m(a,b){if("object"==typeof a&&a.error){var s={};a.message&&(s.message=a.message);a.payload&&(s.payload=a.payload);b&&b(s)}else b&&b(a)}function l(a,b,s){if("object"==typeof a){if(a.error){b={};a.message&&(b.message=a.message);a.payload&&(b.payload=a.payload); -s&&s(b);return}if(a.payload){a.next_page?b&&b(a.payload,a.next_page):b&&b(a.payload);return}}b&&b(a)}function ha(a){var b=0;S(Ja(j),function(s){if(s=j[s])b++,(a||z())(s)});return b}function ma(a){var b=0;S(Ka(J),function(s){if(s=J[s])b++,(a||z())(s)})}function t(a){if(qb){if(!L.length)return}else{a&&(L.l=0);if(L.l||!L.length)return;L.l=1}E(L.shift())}function za(){!Ca&&O()}function O(){clearTimeout(ia);!I||500<=I||1>I||!Ja(j,p).length&&!Ka(J,p).length?Ca=y:(Ca=p,u.presence_heartbeat({callback:function(){ia= -setTimeout(O,I*Y)},error:function(a){i&&i("Presence Heartbeat unable to reach Pubnub servers."+JSON.stringify(a));ia=setTimeout(O,I*Y)}}))}function na(a,b){return ra.decrypt(a,b||W)||ra.decrypt(a,W)||a}function oa(a,b,s){var c=y;if("undefined"===typeof a)return b;if("number"===typeof a)c=a>ib||0==a?y:p;else{if("boolean"===typeof a)return a?jb:0;c=p}return c?(s&&s("Presence Heartbeat value invalid. Valid range ( x > "+ib+" or x = 0). Current Value : "+(b||ib)),b||ib):a}function Aa(a){var b="",c=[]; -S(a,function(a){c.push(a)});var q=c.sort(),d;for(d in q){var h=q[d],b=b+(h+"="+Ia(a[h]));d!=q.length-1&&(b+="&")}return b}function B(a){a||(a={});S(Pa,function(b,c){b in a||(a[b]=c)});return a}b.db=kb;b.xdr=Ya;b.error=b.error||bb;b.hmac_SHA256=hb;b.crypto_obj=Qa();b.params={pnsdk:$a};SELF=function(a){return Z(a)};var ta,tb=+b.windowing||lb,vb=(+b.timeout||mb)*Y,Oa=(+b.keepalive||nb)*Y,ob=b.timecheck||0,Ra=b.noleave||0,Q=b.publish_key,r=b.subscribe_key,A=b.auth_key||"",ua=b.secret_key||"",Sa=b.hmac_SHA256, -ja=b.ssl?"s":"",ea="http"+ja+"://"+(b.origin||"pubsub.pubnub.com"),H=rb(ea),Ta=rb(ea),L=[],Da=p,Ba=0,Ea=0,Ua=0,qa=0,ka=b.restore||0,ba=0,Fa=y,j={},J={},R={},ia=x,M=oa(b.heartbeat||b.pnexpires||0,b.error),I=b.heartbeat_interval||M/2-1,Ca=y,qb=b.no_wait_for_pending,Va=b["compatible_3.5"]||y,E=b.xdr,Pa=b.params||{},i=b.error||z(),pb=b._is_online||function(){return 1},F=b.jsonp_cb||function(){return 0},ca=b.db||{get:z(),set:z()},W=b.cipher_key,w=b.uuid||!b.unique_uuid&&ca&&ca.get(r+"uuid")||"",X=b.instance_id|| -y,N="",Wa=b.shutdown,va=("undefined"!=typeof b.use_send_beacon?b.use_send_beacon:1)?b.sendBeacon:x,U,V;2===M&&(I=1);var ra=b.crypto_obj||{encrypt:function(a){return a},decrypt:function(a){return a}},u={LEAVE:function(a,b,c,q,d){var c={uuid:w,auth:c||A},h=rb(ea),q=q||z(),v=d||z(),d=F();if(0b.indexOf("-pnpres"))&&(b+="-pnpres"),c=J[b]||j[b]||{callback:z()}):c=j[a];a=[c.a||Ea,a.split($)[0]];b&&a.push(b.split($)[0]);return a};var s=C()-Ba-+a[1]/1E4;S(a[0],function(c){var d=b(),c=na(c,j[d[1]]?j[d[1]].cipher_key:x);d[0]&&d[0](c,a,d[2]||d[1],s,d[1])})}setTimeout(q,O)}})}}var P=a.channel,h=a.channel_group,b=(b=b||a.callback)||a.message, -v=a.connect||z(),g=a.reconnect||z(),D=a.disconnect||z(),f=a.error||f||z(),l=a.idle||z(),t=a.presence||0,G=a.noheresync||0,I=a.backfill||0,K=a.timetoken||0,Q=a.timeout||vb,O=a.windowing||tb,L=a.state,U=a.heartbeat||a.pnexpires,V=a.heartbeat_interval,W=a.restore||ka;A=a.auth_key||A;ka=W;ba=K;if(!P&&!h)return i("Missing Channel");if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");(U||0===U||V||0===V)&&u.set_heartbeat(U,V);P&&S((P.join?P.join(","):""+P).split(","),function(c){var d= -j[c]||{};j[Ua=c]={name:c,f:d.f,d:d.d,e:1,a:Ea=b,cipher_key:a.cipher_key,h:v,i:D,j:g};L&&(R[c]=c in L?L[c]:L);t&&(u.subscribe({channel:c+$,callback:t,restore:W}),!d.e&&!G&&u.here_now({channel:c,data:B({uuid:w,auth:A}),callback:function(a){S("uuids"in a?a.uuids:[],function(b){t({action:"join",uuid:b,timestamp:Math.floor(C()/1E3),occupancy:a.occupancy||1},a,c)})}}))});h&&S((h.join?h.join(","):""+h).split(","),function(c){var d=J[c]||{};J[c]={name:c,f:d.f,d:d.d,e:1,a:Ea=b,cipher_key:a.cipher_key,h:v, -i:D,j:g};t&&(u.subscribe({channel_group:c+$,callback:t,restore:W,auth_key:A}),!d.e&&!G&&u.here_now({channel_group:c,data:B({uuid:w,auth:A}),callback:function(a){S("uuids"in a?a.uuids:[],function(b){t({action:"join",uuid:b,timestamp:Math.floor(C()/1E3),occupancy:a.occupancy||1},a,c)})}}))});d=function(){e();setTimeout(q,O)};if(!Ma)return Na.push(d);d()},here_now:function(a,b){var b=a.callback||b,c=a.debug,d=a.error||z(),e=a.auth_key||A,h=a.channel,v=a.channel_group,g=F(),f=a.state,e={uuid:w,auth:e}; -if(!("uuids"in a?a.uuids:1))e.disable_uuids=1;f&&(e.state=1);if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");f=[H,"v2","presence","sub_key",r];h&&f.push("channel")&&f.push(encodeURIComponent(h));"0"!=g&&(e.callback=g);v&&(e["channel-group"]=v,!h&&f.push("channel")&&f.push(","));X&&(e.instanceid=N);E({a:g,data:B(e),c:function(a){l(a,b,d)},b:function(a){m(a,d)},debug:c,url:f})},where_now:function(a,b){var b=a.callback||b,c=a.error||z(),d=a.auth_key||A,e=F(),h=a.uuid||w,d= -{auth:d};if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");"0"!=e&&(d.callback=e);X&&(d.instanceid=N);E({a:e,data:B(d),c:function(a){l(a,b,c)},b:function(a){m(a,c)},url:[H,"v2","presence","sub_key",r,"uuid",encodeURIComponent(h)]})},state:function(a,b){var b=a.callback||b||z(),c=a.error||z(),d=a.auth_key||A,e=F(),h=a.state,f=a.uuid||w,g=a.channel,D=a.channel_group,d=B({auth:d});if(!r)return i("Missing Subscribe Key");if(!f)return i("Missing UUID");if(!g&&!D)return i("Missing Channel"); -"0"!=e&&(d.callback=e);"undefined"!=typeof g&&j[g]&&j[g].e&&h&&(R[g]=h);"undefined"!=typeof D&&(J[D]&&J[D].e)&&(h&&(R[D]=h),d["channel-group"]=D,g||(g=","));d.state=JSON.stringify(h);X&&(d.instanceid=N);h=h?[H,"v2","presence","sub-key",r,"channel",g,"uuid",f,"data"]:[H,"v2","presence","sub-key",r,"channel",g,"uuid",encodeURIComponent(f)];E({a:e,data:B(d),c:function(a){l(a,b,c)},b:function(a){m(a,c)},url:h})},grant:function(a,b){var b=a.callback||b,c=a.error||z(),d=a.channel||a.channels,e=a.channel_group, -h=F(),f=a.ttl,g=a.read?"1":"0",j=a.write?"1":"0",u=a.manage?"1":"0",t=a.auth_key||a.auth_keys;if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");if(!Q)return i("Missing Publish Key");if(!ua)return i("Missing Secret Key");var w=r+"\n"+Q+"\ngrant\n",g={w:j,r:g,timestamp:Math.floor((new Date).getTime()/1E3)};a.manage&&(g.m=u);Ha(d)&&(d=d.join(","));Ha(t)&&(t=t.join(","));"undefined"!=typeof d&&(d!=x&&0M&&(d.heartbeat=M);"0"!=a&&(d.callback=a);var e;e=Ja(j,p).join(",");e=encodeURIComponent(e);var f=Ka(J, -p).join(",");e||(e=",");f&&(d["channel-group"]=f);X&&(d.instanceid=N);E({a:a,data:B(d),url:[H,"v2","presence","sub-key",r,"channel",e,"heartbeat"],c:function(a){l(a,b,c)},b:function(a){m(a,c)}})},stop_timers:function(){clearTimeout(U);clearTimeout(V);clearTimeout(ia)},shutdown:function(){u.stop_timers();Wa&&Wa()},xdr:E,ready:La,db:ca,uuid:ya,map:T,each:S,"each-channel":ha,grep:sa,offline:function(){e(1,{message:"Offline. Please check your network settings."})},supplant:wa,now:C,unique:aa,updater:pa}; -w||(w=u.uuid());N||(N=u.uuid());ca.set(r+"uuid",w);U=setTimeout(G,Y);V=setTimeout(f,Oa);ia=setTimeout(za,(I-3)*Y);c();ta=u;for(var Ga in ta)ta.hasOwnProperty(Ga)&&(SELF[Ga]=ta[Ga]);SELF.init=SELF;SELF.$=db;SELF.attr=cb;SELF.search=eb;SELF.bind=ab;SELF.css=fb;SELF.create=gb;SELF.crypto_obj=Qa();"undefined"!==typeof window&&ab("beforeunload",window,function(){SELF["each-channel"](function(a){SELF.LEAVE(a.name,1)});return p});if(b.notest)return SELF;"undefined"!==typeof window&&ab("offline",window,SELF._reset_offline); -"undefined"!==typeof document&&ab("offline",document,SELF._reset_offline);SELF.ready();return SELF}var da=1,Ma=y,Na=[],$="-pnpres",lb=10,Za=15E3,mb=310,nb=60,Y=1E3,ga="/",la="&",ib=5,jb=30,sb="3.7.18",xa=/{([\w\-]+)}/g,rb,ub=Math.floor(20*Math.random());rb=function(b,d){return 0++ub?ub:ub=1))||b};var da=1,$a="PubNub-JS-Phonegap/3.7.18",kb,wb="undefined"!=typeof localStorage&&localStorage; -kb={get:function(b){try{return wb?wb.getItem(b):-1==document.cookie.indexOf(b)?x:((document.cookie||"").match(RegExp(b+"=([^;]+)"))||[])[1]||x}catch(d){}},set:function(b,d){try{if(wb)return wb.setItem(b,d)&&0;document.cookie=b+"="+d+"; expires=Thu, 1 Aug 2030 20:00:00 UTC; path=/"}catch(c){}}};Z.init=Z;Z.secure=Z;Z.crypto_obj=Qa();PUBNUB=Z({});"undefined"!==typeof module&&(module.p=Z)||"undefined"!==typeof exports&&(exports.o=Z)||(PUBNUB=Z); -var xb=PUBNUB.ws=function(b,d){if(!(this instanceof xb))return new xb(b,d);var c=this,b=c.url=b||"";c.protocol=d||"Sec-WebSocket-Protocol";var e=b.split("/"),e={ssl:"wss:"===e[0],origin:e[2],publish_key:e[3],subscribe_key:e[4],channel:e[5]};c.CONNECTING=0;c.OPEN=1;c.CLOSING=2;c.CLOSED=3;c.CLOSE_NORMAL=1E3;c.CLOSE_GOING_AWAY=1001;c.CLOSE_PROTOCOL_ERROR=1002;c.CLOSE_UNSUPPORTED=1003;c.CLOSE_TOO_LARGE=1004;c.CLOSE_NO_STATUS=1005;c.CLOSE_ABNORMAL=1006;c.onclose=c.onerror=c.onmessage=c.onopen=c.onsend= -z();c.binaryType="";c.extensions="";c.bufferedAmount=0;c.trasnmitting=y;c.buffer=[];c.readyState=c.CONNECTING;if(!b)return c.readyState=c.CLOSED,c.onclose({code:c.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:p}),c;c.g=PUBNUB.init(e);c.g.n=e;c.n=e;c.g.subscribe({restore:y,channel:e.channel,disconnect:c.onerror,reconnect:c.onopen,error:function(){c.onclose({code:c.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:y})},callback:function(b){c.onmessage({data:b})},connect:function(){c.readyState=c.OPEN;c.onopen()}})}; -xb.prototype.send=function(b){var d=this;d.g.publish({channel:d.g.n.channel,message:b,callback:function(b){d.onsend({data:b})}})}; +}());// Moved to hmac-sha-256.js(function(){function da(){return"x"+ ++ea+""+ +new Date}function w(){return+new Date}function t(b,c){var l=b.join("/"),e=[];if(!c)return l;g(c,function(b,c){var l="object"==typeof c?JSON.stringify(c):c;"undefined"!=typeof c&&null!=c&&0w()?(clearTimeout(e),e=setTimeout(l,c)):(d=w(),b())}var e,d=0;return l}function E(b,c){var l=[];g(b||[],function(b){c(b)&&l.push(b)});return l} +function Ua(b,c){return b.replace(ta,function(b,e){return c[e]||b})}function ua(b,c){return setTimeout(b,c)}function Fa(b){var c="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var c=16*Math.random()|0;return("x"==b?c:c&3|8).toString(16)});b&&b(c);return c}function fa(b){return!!b&&"string"!==typeof b&&(Array.isArray&&Array.isArray(b)||"number"===typeof b.length)}function g(b,c){if(b&&c)if(fa(b))for(var l=0,e=b.length;lb.search("-pnpres")&&d.g&&l.push(b):d.g&&l.push(b)});return l.sort()}function na(b,c){var l=[];g(b,function(b,d){c?0>b.search("-pnpres")&&d.g&&l.push(b):d.g&&l.push(b)}); +return l.sort()}function Xa(){ua(function(){ga||(ga=1,g(Ga,function(b){b()}))},1E3)}function va(b){function c(){}function l(a){a||(a={});g(Ha,function(Ia,b){Ia in a||(a[Ia]=b)});return a}function e(a){var b=[];g(a,function(a){b.push(a)});return b}function W(a){var b="",h=e(a).sort(),f;for(f in h){var c=h[f],b=b+(c+"="+Va(a[c]));f!=h.length-1&&(b+="&")}return b}function J(a,b,h){var f=!1;if("undefined"===typeof a)return b;if("number"===typeof a)f=5 5 or x = 0). Current Value : "+(b||5)),b||5):a}function A(a,b){return wa.encrypt(a,b||ha)||a}function oa(a,b){return wa.decrypt(a,b||ha)||wa.decrypt(a,ha)||a}function r(){clearTimeout(ia);!G||500<=G||1>G||!X(x,!0).length&&!na(M,!0).length?xa=!1:(xa=!0,u.presence_heartbeat({callback:function(){ia=setTimeout(r,1E3*G)},error:function(a){p&&p("Presence Heartbeat unable to reach Pubnub servers."+JSON.stringify(a));ia=setTimeout(r, +1E3*G)}}))}function Ja(){!xa&&r()}function q(a){if(Da){if(!Q.length)return}else{a&&(Q.l=0);if(Q.l||!Q.length)return;Q.l=1}F(Q.shift())}function Ka(a){var b=0;g(na(M),function(h){if(h=M[h])b++,(a||function(){})(h)})}function pa(a){var b=0;g(X(x),function(h){if(h=x[h])b++,(a||function(){})(h)});return b}function C(a,b,h){if("object"==typeof a){if(a.error){b={};a.message&&(b.message=a.message);a.payload&&(b.payload=a.payload);h&&h(b);return}if(a.payload){a.next_page?b&&b(a.payload,a.next_page):b&&b(a.payload); +return}}b&&b(a)}function K(a,b){if("object"==typeof a&&a.error){var h={};a.message&&(h.message=a.message);a.payload&&(h.payload=a.payload);b&&b(h)}else b&&b(a)}function I(a,b,h,f){b=a.callback||b;var c=a.error||p,d=H();f=f||{};f.auth||(f.auth=a.auth_key||y);a=[L,"v1","channel-registration","sub-key",v];a.push.apply(a,h);d&&(f.callback=d);F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:a})}function ca(){Ea()||ja(1,{error:"Offline. Please check your network settings. "});Y&&clearTimeout(Y); +Y=setTimeout(ca,1E3)}function ea(){Ca&&u.time(function(a){ma(function(){},a);a||ja(1,{error:"Heartbeat failed to connect to Pubnub Servers.Please check your network settings."});Z&&clearTimeout(Z);Z=setTimeout(ea,La)})}function ja(a,b){qa&&qa(a,b);qa=null;clearTimeout(Y);clearTimeout(Z)}function ma(a,b){function h(b){b&&(ya=w()-(b/1E4+(w()-f)/2),a&&a(ya))}var f=w();b&&h(b)||u.time(h)}var ta=+b.windowing||10,va=1E3*(+b.timeout||310),La=1E3*(+b.keepalive||60),Ca=b.timecheck||0,Ma=b.noleave||0,N=b.publish_key, +v=b.subscribe_key,y=b.auth_key||"",ra=b.secret_key||"",Na=b.hmac_SHA256,ka=b.ssl?"s":"",aa="http"+ka+"://"+(b.origin||"pubsub.pubnub.com"),L=ba(aa),Oa=ba(aa),Q=[],za=!0,ya=0,Aa=0,Pa=0,qa=0,la=b.restore||0,U=0,Ba=!1,x={},M={},R={},ia=null,O=J(b.heartbeat||b.pnexpires||0,b.error),G=b.heartbeat_interval||O/2-1,xa=!1,Da=b.no_wait_for_pending,Qa=b["compatible_3.5"]||!1,F=b.xdr,Ha=b.params||{},p=b.error||function(){},Ea=b._is_online||function(){return 1},H=b.jsonp_cb||function(){return 0},V=b.db||{get:function(){}, +set:function(){}},ha=b.cipher_key,D=b.uuid||!b.unique_uuid&&V&&V.get(v+"uuid")||"",S=b.instance_id||!1,P="",Ra=b.shutdown,sa=("undefined"!=typeof b.use_send_beacon?b.use_send_beacon:1)?b.sendBeacon:null,Y,Z;2===O&&(G=1);var wa=b.crypto_obj||{encrypt:function(a){return a},decrypt:function(a){return a}},u={LEAVE:function(a,b,h,f,c){h={uuid:D,auth:h||y};var d=ba(aa);f=f||function(){};var z=c||function(){};c=H();if(0b.indexOf("-pnpres")&& +(b+="-pnpres"),c=M[b]||x[b]||{callback:function(){}}):c=x[a];a=[c.a||Aa,a.split("-pnpres")[0]];b&&a.push(b.split("-pnpres")[0]);return a}}(),d=w()-ya-+a[1]/1E4;g(a[0],function(c){var f=b();c=oa(c,x[f[1]]?x[f[1]].cipher_key:null);f[0]&&f[0](c,a,f[2]||f[1],d,f[1])})}setTimeout(f,G)}})}}var d=a.channel,e=a.channel_group;b=(b=b||a.callback)||a.message;var r=a.connect||function(){},m=a.reconnect||function(){},Sa=a.disconnect||function(){},q=a.error||q||function(){},W=a.idle||function(){},B=a.presence|| +0,J=a.noheresync||0,C=a.backfill||0,A=a.timetoken||0,E=a.timeout||va,G=a.windowing||ta,t=a.state,N=a.heartbeat||a.pnexpires,I=a.heartbeat_interval,Q=a.restore||la;y=a.auth_key||y;la=Q;U=A;if(!d&&!e)return p("Missing Channel");if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");(N||0===N||I||0===I)&&u.set_heartbeat(N,I);d&&g((d.join?d.join(","):""+d).split(","),function(c){var f=x[c]||{};x[Pa=c]={name:c,h:f.h,f:f.f,g:1,a:Aa=b,cipher_key:a.cipher_key,connect:r,disconnect:Sa,j:m}; +t&&(R[c]=c in t?t[c]:t);B&&(u.subscribe({channel:c+"-pnpres",callback:B,restore:Q}),f.g||J||u.here_now({channel:c,data:l({uuid:D,auth:y}),callback:function(a){g("uuids"in a?a.uuids:[],function(b){B({action:"join",uuid:b,timestamp:Math.floor(w()/1E3),occupancy:a.occupancy||1},a,c)})}}))});e&&g((e.join?e.join(","):""+e).split(","),function(c){var f=M[c]||{};M[c]={name:c,h:f.h,f:f.f,g:1,a:Aa=b,cipher_key:a.cipher_key,connect:r,disconnect:Sa,j:m};B&&(u.subscribe({channel_group:c+"-pnpres",callback:B, +restore:Q,auth_key:y}),f.g||J||u.here_now({channel_group:c,data:l({uuid:D,auth:y}),callback:function(a){g("uuids"in a?a.uuids:[],function(b){B({action:"join",uuid:b,timestamp:Math.floor(w()/1E3),occupancy:a.occupancy||1},a,c)})}}))});c=function(){ja();setTimeout(f,G)};if(!ga)return Ga.push(c);c()},here_now:function(a,b){b=a.callback||b;var c=a.debug,f=a.error||function(){},d=a.auth_key||y,e=a.channel,r=a.channel_group,m=H(),g=a.state,d={uuid:D,auth:d};("uuids"in a?a.uuids:1)||(d.disable_uuids=1); +g&&(d.state=1);if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");g=[L,"v2","presence","sub_key",v];e&&g.push("channel")&&g.push(encodeURIComponent(e));"0"!=m&&(d.callback=m);r&&(d["channel-group"]=r,!e&&g.push("channel")&&g.push(","));S&&(d.instanceid=P);F({a:m,data:l(d),c:function(a){C(a,b,f)},b:function(a){K(a,f)},debug:c,url:g})},where_now:function(a,b){b=a.callback||b;var c=a.error||function(){},f=a.auth_key||y,d=H(),e=a.uuid||D,f={auth:f};if(!b)return p("Missing Callback"); +if(!v)return p("Missing Subscribe Key");"0"!=d&&(f.callback=d);S&&(f.instanceid=P);F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:[L,"v2","presence","sub_key",v,"uuid",encodeURIComponent(e)]})},state:function(a,b){b=a.callback||b||function(){};var c=a.error||function(){},f=a.auth_key||y,d=H(),e=a.state,r=a.uuid||D,m=a.channel,g=a.channel_group,f=l({auth:f});if(!v)return p("Missing Subscribe Key");if(!r)return p("Missing UUID");if(!m&&!g)return p("Missing Channel");"0"!=d&&(f.callback= +d);"undefined"!=typeof m&&x[m]&&x[m].g&&e&&(R[m]=e);"undefined"!=typeof g&&M[g]&&M[g].g&&(e&&(R[g]=e),f["channel-group"]=g,m||(m=","));f.state=JSON.stringify(e);S&&(f.instanceid=P);e=e?[L,"v2","presence","sub-key",v,"channel",m,"uuid",r,"data"]:[L,"v2","presence","sub-key",v,"channel",m,"uuid",encodeURIComponent(r)];F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:e})},grant:function(a,b){b=a.callback||b;var c=a.error||function(){},f=a.channel||a.channels,d=a.channel_group,e=H(), +r=a.ttl,m=a.read?"1":"0",g=a.write?"1":"0",u=a.manage?"1":"0",q=a.auth_key||a.auth_keys;if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");if(!N)return p("Missing Publish Key");if(!ra)return p("Missing Secret Key");var x=v+"\n"+N+"\ngrant\n",m={w:g,r:m,timestamp:Math.floor((new Date).getTime()/1E3)};a.manage&&(m.m=u);fa(f)&&(f=f.join(","));fa(q)&&(q=q.join(","));"undefined"!=typeof f&&null!=f&&0O&&(d.heartbeat=O);"0"!=a&& +(d.callback=a);var e=Wa(X(x,!0).join(",")),r=na(M,!0).join(",");e||(e=",");r&&(d["channel-group"]=r);S&&(d.instanceid=P);F({a:a,data:l(d),url:[L,"v2","presence","sub-key",v,"channel",e,"heartbeat"],c:function(a){C(a,b,c)},b:function(a){K(a,c)}})},stop_timers:function(){clearTimeout(Y);clearTimeout(Z);clearTimeout(ia)},shutdown:function(){u.stop_timers();Ra&&Ra()},xdr:F,ready:Xa,db:V,uuid:Fa,map:T,each:g,"each-channel":pa,grep:E,offline:function(){ja(1,{message:"Offline. Please check your network settings."})}, +supplant:Ua,now:w,unique:da,updater:d};D||(D=u.uuid());P||(P=u.uuid());V.set(v+"uuid",D);Y=setTimeout(ca,1E3);Z=setTimeout(ea,La);ia=setTimeout(Ja,1E3*(G-3));ma();return u}function ca(){function b(b){b=b||{};b.hasOwnProperty("encryptKey")||(b.encryptKey=t.encryptKey);b.hasOwnProperty("keyEncoding")||(b.keyEncoding=t.keyEncoding);b.hasOwnProperty("keyLength")||(b.keyLength=t.keyLength);b.hasOwnProperty("mode")||(b.mode=t.mode);-1==g.indexOf(b.keyEncoding.toLowerCase())&&(b.keyEncoding=t.keyEncoding); +-1==J.indexOf(parseInt(b.keyLength,10))&&(b.keyLength=t.keyLength);-1==w.indexOf(b.mode.toLowerCase())&&(b.mode=t.mode);return b}function c(b,c){var d=b;b="base64"==c.keyEncoding?CryptoJS.enc.Base64.parse(d):"hex"==c.keyEncoding?CryptoJS.enc.Hex.parse(d):d;return c.encryptKey?CryptoJS.enc.Utf8.parse(CryptoJS.SHA256(b).toString(CryptoJS.enc.Hex).slice(0,32)):b}function d(b){return"ecb"==b.mode?CryptoJS.mode.ECB:CryptoJS.mode.CBC}function e(b){return"cbc"==b.mode?CryptoJS.enc.Utf8.parse("0123456789012345"): +null}var g=["hex","utf8","base64","binary"],J=[128,256],w=["ecb","cbc"],t={encryptKey:!0,keyEncoding:"utf8",keyLength:256,mode:"cbc"};return{encrypt:function(g,t,q){if(!t)return g;q=b(q);var J=e(q),w=d(q);t=c(t,q);q=JSON.stringify(g);return CryptoJS.AES.encrypt(q,t,{iv:J,mode:w}).ciphertext.toString(CryptoJS.enc.Base64)||g},decrypt:function(g,t,q){if(!t)return g;q=b(q);var J=e(q),w=d(q);t=c(t,q);try{var C=CryptoJS.enc.Base64.parse(g),W=CryptoJS.AES.decrypt({ciphertext:C},t,{iv:J,mode:w}).toString(CryptoJS.enc.Utf8); +return JSON.parse(W)}catch(A){}}}}function ma(b){function c(b,c){g||(g=1,clearTimeout(A),e&&(e.onerror=e.onload=null,e.abort&&e.abort(),e=null),b&&E(c))}function d(){if(!J){J=1;clearTimeout(A);try{response=JSON.parse(e.responseText)}catch(b){return c(1)}q(response)}}var e,g=0,J=0,w=b.timeout||15E3,A=ua(function(){c(1)},w),r=b.data||{},E=b.b||function(){},q=b.c||function(){},I="undefined"===typeof b.o;try{e="undefined"!==typeof XDomainRequest&&new XDomainRequest||new XMLHttpRequest,e.onerror=e.onabort= +function(){c(1,e.responseText||{error:"Network Connection Error"})},e.onload=e.onloadend=d,e.onreadystatechange=function(){if(4==e.readyState)switch(e.status){case 200:break;default:try{response=JSON.parse(e.responseText),c(1,response)}catch(b){return c(1,{status:e.status,A:null,message:e.responseText})}}},r.pnsdk="PubNub-JS-Phonegap/3.7.18",url=t(b.url,r),e.open("GET",url,I),I&&(e.timeout=w),e.send()}catch(pa){return c(0),ma(b)}return c}function I(b,c,d){g(b.split(","),function(b){function g(b){b|| +(b=window.event);d(b)||(b.cancelBubble=!0,b.returnValue=!1,b.preventDefault&&b.preventDefault(),b.stopPropagation&&b.stopPropagation())}c.addEventListener?c.addEventListener(b,g,!1):c.attachEvent?c.attachEvent("on"+b,g):c["on"+b]=g})}function Ca(b){console.error(b)}function Da(b,c,d){if(d)b.setAttribute(c,d);else return b&&b.getAttribute&&b.getAttribute(c)}function Ea(b){return document.getElementById(b)}function Ya(b,c){var d=[];g(b.split(/\s+/),function(b){g((c||document).getElementsByTagName(b), +function(b){d.push(b)})});return d}function Za(b,c){for(var d in c)if(c.hasOwnProperty(d))try{b.style[d]=c[d]+(0<"|width|height|top|left|".indexOf(d)&&"number"==typeof c[d]?"px":"")}catch(e){}}function $a(b){return document.createElement(b)}function ab(b,c){return CryptoJS.HmacSHA256(b,c).toString(CryptoJS.enc.Base64)}function A(b){function c(b){return A(b)}b.db=bb;b.xdr=ma;b.error=b.error||Ca;b.hmac_SHA256=ab;b.crypto_obj=ca();b.params={pnsdk:"PubNub-JS-Phonegap/3.7.18"};var d=va(b),e;for(e in d)d.hasOwnProperty(e)&& +(c[e]=d[e]);c.init=c;c.$=Ea;c.attr=Da;c.search=Ya;c.bind=I;c.css=Za;c.create=$a;c.crypto_obj=ca();"undefined"!==typeof window&&I("beforeunload",window,function(){c["each-channel"](function(b){c.LEAVE(b.name,1)});return!0});if(b.notest)return c;"undefined"!==typeof window&&I("offline",window,c._reset_offline);"undefined"!==typeof document&&I("offline",document,c._reset_offline);c.ready();return c}var ea=1,ga=!1,Ga=[],ta=/{([\w\-]+)}/g,ba=function(){var b=Math.floor(20*Math.random());return function(c, +d){return 0++b?b:b=1))||c}}(),ea=1,bb=function(){var b="undefined"!=typeof localStorage&&localStorage;return{get:function(c){try{return b?b.getItem(c):-1==document.cookie.indexOf(c)?null:((document.cookie||"").match(RegExp(c+"=([^;]+)"))||[])[1]||null}catch(d){}},set:function(c,d){try{if(b)return b.setItem(c,d)&&0;document.cookie=c+"="+d+"; expires=Thu, 1 Aug 2030 20:00:00 UTC; path=/"}catch(e){}}}}();A.init=A;A.secure=A;A.crypto_obj= +ca();PUBNUB=A({});"undefined"!==typeof module&&(module.v=A)||"undefined"!==typeof exports&&(exports.u=A)||(PUBNUB=A)})(); +(function(){var da=PUBNUB.ws=function(w,t){if(!(this instanceof da))return new da(w,t);var d=this;w=d.url=w||"";d.protocol=t||"Sec-WebSocket-Protocol";var E=w.split("/"),E={ssl:"wss:"===E[0],origin:E[2],publish_key:E[3],subscribe_key:E[4],channel:E[5]};d.CONNECTING=0;d.OPEN=1;d.CLOSING=2;d.CLOSED=3;d.CLOSE_NORMAL=1E3;d.CLOSE_GOING_AWAY=1001;d.CLOSE_PROTOCOL_ERROR=1002;d.CLOSE_UNSUPPORTED=1003;d.CLOSE_TOO_LARGE=1004;d.CLOSE_NO_STATUS=1005;d.CLOSE_ABNORMAL=1006;d.onclose=d.onerror=d.onmessage=d.onopen= +d.onsend=function(){};d.binaryType="";d.extensions="";d.bufferedAmount=0;d.trasnmitting=!1;d.buffer=[];d.readyState=d.CONNECTING;if(!w)return d.readyState=d.CLOSED,d.onclose({code:d.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:!0}),d;d.i=PUBNUB.init(E);d.i.s=E;d.s=E;d.i.subscribe({restore:!1,channel:E.channel,disconnect:d.onerror,reconnect:d.onopen,error:function(){d.onclose({code:d.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:!1})},callback:function(t){d.onmessage({data:t})},connect:function(){d.readyState= +d.OPEN;d.onopen()}})};da.prototype.send=function(w){var t=this;t.i.publish({channel:t.i.s.channel,message:w,callback:function(d){t.onsend({data:d})}})}})(); })(); diff --git a/sencha/pubnub.js b/sencha/pubnub.js index fce17678e..c41bdf7bb 100644 --- a/sencha/pubnub.js +++ b/sencha/pubnub.js @@ -2469,7 +2469,7 @@ function CREATE_PUBNUB(setup) { setup['crypto_obj'] = crypto_obj(); setup['params'] = { 'pnsdk' : PNSDK } - SELF = function(setup) { + var SELF = function(setup) { return CREATE_PUBNUB(setup); } var PN = PN_API(setup); diff --git a/sencha/pubnub.min.js b/sencha/pubnub.min.js index 525b7feff..0ef577041 100644 --- a/sencha/pubnub.min.js +++ b/sencha/pubnub.min.js @@ -70,55 +70,55 @@ CryptoJS.mode.ECB = (function () { }); return ECB; -}());// Moved to hmac-sha-256.jsvar p=!0,x=null,y=!1;function z(){return function(){}}function aa(){return"x"+ ++da+""+ +new Date}function C(){return+new Date}function fa(b,d){var c=b.join(ga),e=[];if(!d)return c;S(d,function(b,c){var d="object"==typeof c?JSON.stringify(c):c;"undefined"!=typeof c&&(c!=x&&0C()?(clearTimeout(e),e=setTimeout(c,d)):(f=C(),b())}var e,f=0;return c} -function sa(b,d){var c=[];S(b||[],function(b){d(b)&&c.push(b)});return c}function wa(b,d){return b.replace(xa,function(b,e){return d[e]||b})}function ya(b){var d="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var d=16*Math.random()|0;return("x"==b?d:d&3|8).toString(16)});b&&b(d);return d}function Ha(b){return!!b&&"string"!==typeof b&&(Array.isArray&&Array.isArray(b)||"number"===typeof b.length)} -function S(b,d){if(b&&d)if(Ha(b))for(var c=0,e=b.length;cb.search("-pnpres")&&f.e&&c.push(b):f.e&&c.push(b)});return c.sort()} -function Ka(b,d){var c=[];S(b,function(b,f){d?0>b.search("-pnpres")&&f.e&&c.push(b):f.e&&c.push(b)});return c.sort()}function La(){setTimeout(function(){Ma||(Ma=1,S(Na,function(b){b()}))},Y)} -function Qa(){function b(b){b=b||{};b.hasOwnProperty("encryptKey")||(b.encryptKey=l.encryptKey);b.hasOwnProperty("keyEncoding")||(b.keyEncoding=l.keyEncoding);b.hasOwnProperty("keyLength")||(b.keyLength=l.keyLength);b.hasOwnProperty("mode")||(b.mode=l.mode);-1==G.indexOf(b.keyEncoding.toLowerCase())&&(b.keyEncoding=l.keyEncoding);-1==K.indexOf(parseInt(b.keyLength,10))&&(b.keyLength=l.keyLength);-1==m.indexOf(b.mode.toLowerCase())&&(b.mode=l.mode);return b}function d(b,c){b="base64"==c.keyEncoding? -CryptoJS.enc.Base64.parse(b):"hex"==c.keyEncoding?CryptoJS.enc.Hex.parse(b):b;return c.encryptKey?CryptoJS.enc.Utf8.parse(CryptoJS.SHA256(b).toString(CryptoJS.enc.Hex).slice(0,32)):b}function c(b){return"ecb"==b.mode?CryptoJS.mode.ECB:CryptoJS.mode.CBC}function e(b){return"cbc"==b.mode?CryptoJS.enc.Utf8.parse(f):x}var f="0123456789012345",G=["hex","utf8","base64","binary"],K=[128,256],m=["ecb","cbc"],l={encryptKey:p,keyEncoding:"utf8",keyLength:256,mode:"cbc"};return{encrypt:function(f,l,t){if(!l)return f; -var t=b(t),m=e(t),G=c(t),l=d(l,t),t=JSON.stringify(f);return CryptoJS.AES.encrypt(t,l,{iv:m,mode:G}).ciphertext.toString(CryptoJS.enc.Base64)||f},decrypt:function(f,l,m){if(!l)return f;var m=b(m),G=e(m),O=c(m),l=d(l,m);try{var K=CryptoJS.enc.Base64.parse(f),oa=CryptoJS.AES.decrypt({ciphertext:K},l,{iv:G,mode:O}).toString(CryptoJS.enc.Utf8);return JSON.parse(oa)}catch(Aa){}}}} -function Ya(b){function d(b,c){f||(f=1,clearTimeout(m),e&&(e.onerror=e.onload=x,e.abort&&e.abort(),e=x),b&&ha(c))}function c(){if(!G){G=1;clearTimeout(m);try{response=JSON.parse(e.responseText)}catch(b){return d(1)}ma(response)}}var e,f=0,G=0,K=b.timeout||Za,m=setTimeout(function(){d(1)},K),l=b.data||{},ha=b.b||z(),ma=b.c||z(),t="undefined"===typeof b.k;try{e="undefined"!==typeof XDomainRequest&&new XDomainRequest||new XMLHttpRequest,e.onerror=e.onabort=function(){d(1,e.responseText||{error:"Network Connection Error"})}, -e.onload=e.onloadend=c,e.onreadystatechange=function(){if(4==e.readyState)switch(e.status){case 200:break;default:try{response=JSON.parse(e.responseText),d(1,response)}catch(b){return d(1,{status:e.status,q:x,message:e.responseText})}}},l.pnsdk=$a,url=fa(b.url,l),e.open("GET",url,t),t&&(e.timeout=K),e.send()}catch(za){return d(0),Ya(b)}return d} -function ab(b,d,c){S(b.split(","),function(b){function f(b){b||(b=window.event);c(b)||(b.cancelBubble=p,b.returnValue=y,b.preventDefault&&b.preventDefault(),b.stopPropagation&&b.stopPropagation())}d.addEventListener?d.addEventListener(b,f,y):d.attachEvent?d.attachEvent("on"+b,f):d["on"+b]=f})}function bb(b){console.error(b)}function cb(b,d,c){if(c)b.setAttribute(d,c);else return b&&b.getAttribute&&b.getAttribute(d)}function db(b){return document.getElementById(b)} -function eb(b,d){var c=[];S(b.split(/\s+/),function(b){S((d||document).getElementsByTagName(b),function(b){c.push(b)})});return c}function fb(b,d){for(var c in d)if(d.hasOwnProperty(c))try{b.style[c]=d[c]+(0<"|width|height|top|left|".indexOf(c)&&"number"==typeof d[c]?"px":"")}catch(e){}}function gb(b){return document.createElement(b)}function hb(b,d){return CryptoJS.HmacSHA256(b,d).toString(CryptoJS.enc.Base64)} -function Z(b){function d(){}function c(a,b){function s(b){b&&(Ba=C()-(b/1E4+(C()-c)/2),a&&a(Ba))}var c=C();b&&s(b)||u.time(s)}function e(a,b){qa&&qa(a,b);qa=x;clearTimeout(U);clearTimeout(V)}function f(){ob&&u.time(function(a){c(z(),a);a||e(1,{error:"Heartbeat failed to connect to Pubnub Servers.Please check your network settings."});V&&clearTimeout(V);V=setTimeout(f,Oa)})}function G(){pb()||e(1,{error:"Offline. Please check your network settings. "});U&&clearTimeout(U);U=setTimeout(G,Y)}function K(a, -b,s,c){var b=a.callback||b,d=a.error||i,h=F(),c=c||{};c.auth||(c.auth=a.auth_key||A);a=[H,"v1","channel-registration","sub-key",r];a.push.apply(a,s);h&&(c.callback=h);E({a:h,data:B(c),c:function(a){l(a,b,d)},b:function(a){m(a,d)},url:a})}function m(a,b){if("object"==typeof a&&a.error){var s={};a.message&&(s.message=a.message);a.payload&&(s.payload=a.payload);b&&b(s)}else b&&b(a)}function l(a,b,s){if("object"==typeof a){if(a.error){b={};a.message&&(b.message=a.message);a.payload&&(b.payload=a.payload); -s&&s(b);return}if(a.payload){a.next_page?b&&b(a.payload,a.next_page):b&&b(a.payload);return}}b&&b(a)}function ha(a){var b=0;S(Ja(j),function(s){if(s=j[s])b++,(a||z())(s)});return b}function ma(a){var b=0;S(Ka(J),function(s){if(s=J[s])b++,(a||z())(s)})}function t(a){if(qb){if(!L.length)return}else{a&&(L.l=0);if(L.l||!L.length)return;L.l=1}E(L.shift())}function za(){!Ca&&O()}function O(){clearTimeout(ia);!I||500<=I||1>I||!Ja(j,p).length&&!Ka(J,p).length?Ca=y:(Ca=p,u.presence_heartbeat({callback:function(){ia= -setTimeout(O,I*Y)},error:function(a){i&&i("Presence Heartbeat unable to reach Pubnub servers."+JSON.stringify(a));ia=setTimeout(O,I*Y)}}))}function na(a,b){return ra.decrypt(a,b||W)||ra.decrypt(a,W)||a}function oa(a,b,s){var c=y;if("undefined"===typeof a)return b;if("number"===typeof a)c=a>ib||0==a?y:p;else{if("boolean"===typeof a)return a?jb:0;c=p}return c?(s&&s("Presence Heartbeat value invalid. Valid range ( x > "+ib+" or x = 0). Current Value : "+(b||ib)),b||ib):a}function Aa(a){var b="",c=[]; -S(a,function(a){c.push(a)});var q=c.sort(),d;for(d in q){var h=q[d],b=b+(h+"="+Ia(a[h]));d!=q.length-1&&(b+="&")}return b}function B(a){a||(a={});S(Pa,function(b,c){b in a||(a[b]=c)});return a}b.db=kb;b.xdr=Ya;b.error=b.error||bb;b.hmac_SHA256=hb;b.crypto_obj=Qa();b.params={pnsdk:$a};SELF=function(a){return Z(a)};var ta,tb=+b.windowing||lb,vb=(+b.timeout||mb)*Y,Oa=(+b.keepalive||nb)*Y,ob=b.timecheck||0,Ra=b.noleave||0,Q=b.publish_key,r=b.subscribe_key,A=b.auth_key||"",ua=b.secret_key||"",Sa=b.hmac_SHA256, -ja=b.ssl?"s":"",ea="http"+ja+"://"+(b.origin||"pubsub.pubnub.com"),H=rb(ea),Ta=rb(ea),L=[],Da=p,Ba=0,Ea=0,Ua=0,qa=0,ka=b.restore||0,ba=0,Fa=y,j={},J={},R={},ia=x,M=oa(b.heartbeat||b.pnexpires||0,b.error),I=b.heartbeat_interval||M/2-1,Ca=y,qb=b.no_wait_for_pending,Va=b["compatible_3.5"]||y,E=b.xdr,Pa=b.params||{},i=b.error||z(),pb=b._is_online||function(){return 1},F=b.jsonp_cb||function(){return 0},ca=b.db||{get:z(),set:z()},W=b.cipher_key,w=b.uuid||!b.unique_uuid&&ca&&ca.get(r+"uuid")||"",X=b.instance_id|| -y,N="",Wa=b.shutdown,va=("undefined"!=typeof b.use_send_beacon?b.use_send_beacon:1)?b.sendBeacon:x,U,V;2===M&&(I=1);var ra=b.crypto_obj||{encrypt:function(a){return a},decrypt:function(a){return a}},u={LEAVE:function(a,b,c,q,d){var c={uuid:w,auth:c||A},h=rb(ea),q=q||z(),v=d||z(),d=F();if(0b.indexOf("-pnpres"))&&(b+="-pnpres"),c=J[b]||j[b]||{callback:z()}):c=j[a];a=[c.a||Ea,a.split($)[0]];b&&a.push(b.split($)[0]);return a};var s=C()-Ba-+a[1]/1E4;S(a[0],function(c){var d=b(),c=na(c,j[d[1]]?j[d[1]].cipher_key:x);d[0]&&d[0](c,a,d[2]||d[1],s,d[1])})}setTimeout(q,O)}})}}var P=a.channel,h=a.channel_group,b=(b=b||a.callback)||a.message, -v=a.connect||z(),g=a.reconnect||z(),D=a.disconnect||z(),f=a.error||f||z(),l=a.idle||z(),t=a.presence||0,G=a.noheresync||0,I=a.backfill||0,K=a.timetoken||0,Q=a.timeout||vb,O=a.windowing||tb,L=a.state,U=a.heartbeat||a.pnexpires,V=a.heartbeat_interval,W=a.restore||ka;A=a.auth_key||A;ka=W;ba=K;if(!P&&!h)return i("Missing Channel");if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");(U||0===U||V||0===V)&&u.set_heartbeat(U,V);P&&S((P.join?P.join(","):""+P).split(","),function(c){var d= -j[c]||{};j[Ua=c]={name:c,f:d.f,d:d.d,e:1,a:Ea=b,cipher_key:a.cipher_key,h:v,i:D,j:g};L&&(R[c]=c in L?L[c]:L);t&&(u.subscribe({channel:c+$,callback:t,restore:W}),!d.e&&!G&&u.here_now({channel:c,data:B({uuid:w,auth:A}),callback:function(a){S("uuids"in a?a.uuids:[],function(b){t({action:"join",uuid:b,timestamp:Math.floor(C()/1E3),occupancy:a.occupancy||1},a,c)})}}))});h&&S((h.join?h.join(","):""+h).split(","),function(c){var d=J[c]||{};J[c]={name:c,f:d.f,d:d.d,e:1,a:Ea=b,cipher_key:a.cipher_key,h:v, -i:D,j:g};t&&(u.subscribe({channel_group:c+$,callback:t,restore:W,auth_key:A}),!d.e&&!G&&u.here_now({channel_group:c,data:B({uuid:w,auth:A}),callback:function(a){S("uuids"in a?a.uuids:[],function(b){t({action:"join",uuid:b,timestamp:Math.floor(C()/1E3),occupancy:a.occupancy||1},a,c)})}}))});d=function(){e();setTimeout(q,O)};if(!Ma)return Na.push(d);d()},here_now:function(a,b){var b=a.callback||b,c=a.debug,d=a.error||z(),e=a.auth_key||A,h=a.channel,v=a.channel_group,g=F(),f=a.state,e={uuid:w,auth:e}; -if(!("uuids"in a?a.uuids:1))e.disable_uuids=1;f&&(e.state=1);if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");f=[H,"v2","presence","sub_key",r];h&&f.push("channel")&&f.push(encodeURIComponent(h));"0"!=g&&(e.callback=g);v&&(e["channel-group"]=v,!h&&f.push("channel")&&f.push(","));X&&(e.instanceid=N);E({a:g,data:B(e),c:function(a){l(a,b,d)},b:function(a){m(a,d)},debug:c,url:f})},where_now:function(a,b){var b=a.callback||b,c=a.error||z(),d=a.auth_key||A,e=F(),h=a.uuid||w,d= -{auth:d};if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");"0"!=e&&(d.callback=e);X&&(d.instanceid=N);E({a:e,data:B(d),c:function(a){l(a,b,c)},b:function(a){m(a,c)},url:[H,"v2","presence","sub_key",r,"uuid",encodeURIComponent(h)]})},state:function(a,b){var b=a.callback||b||z(),c=a.error||z(),d=a.auth_key||A,e=F(),h=a.state,f=a.uuid||w,g=a.channel,D=a.channel_group,d=B({auth:d});if(!r)return i("Missing Subscribe Key");if(!f)return i("Missing UUID");if(!g&&!D)return i("Missing Channel"); -"0"!=e&&(d.callback=e);"undefined"!=typeof g&&j[g]&&j[g].e&&h&&(R[g]=h);"undefined"!=typeof D&&(J[D]&&J[D].e)&&(h&&(R[D]=h),d["channel-group"]=D,g||(g=","));d.state=JSON.stringify(h);X&&(d.instanceid=N);h=h?[H,"v2","presence","sub-key",r,"channel",g,"uuid",f,"data"]:[H,"v2","presence","sub-key",r,"channel",g,"uuid",encodeURIComponent(f)];E({a:e,data:B(d),c:function(a){l(a,b,c)},b:function(a){m(a,c)},url:h})},grant:function(a,b){var b=a.callback||b,c=a.error||z(),d=a.channel||a.channels,e=a.channel_group, -h=F(),f=a.ttl,g=a.read?"1":"0",j=a.write?"1":"0",u=a.manage?"1":"0",t=a.auth_key||a.auth_keys;if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");if(!Q)return i("Missing Publish Key");if(!ua)return i("Missing Secret Key");var w=r+"\n"+Q+"\ngrant\n",g={w:j,r:g,timestamp:Math.floor((new Date).getTime()/1E3)};a.manage&&(g.m=u);Ha(d)&&(d=d.join(","));Ha(t)&&(t=t.join(","));"undefined"!=typeof d&&(d!=x&&0M&&(d.heartbeat=M);"0"!=a&&(d.callback=a);var e;e=Ja(j,p).join(",");e=encodeURIComponent(e);var f=Ka(J, -p).join(",");e||(e=",");f&&(d["channel-group"]=f);X&&(d.instanceid=N);E({a:a,data:B(d),url:[H,"v2","presence","sub-key",r,"channel",e,"heartbeat"],c:function(a){l(a,b,c)},b:function(a){m(a,c)}})},stop_timers:function(){clearTimeout(U);clearTimeout(V);clearTimeout(ia)},shutdown:function(){u.stop_timers();Wa&&Wa()},xdr:E,ready:La,db:ca,uuid:ya,map:T,each:S,"each-channel":ha,grep:sa,offline:function(){e(1,{message:"Offline. Please check your network settings."})},supplant:wa,now:C,unique:aa,updater:pa}; -w||(w=u.uuid());N||(N=u.uuid());ca.set(r+"uuid",w);U=setTimeout(G,Y);V=setTimeout(f,Oa);ia=setTimeout(za,(I-3)*Y);c();ta=u;for(var Ga in ta)ta.hasOwnProperty(Ga)&&(SELF[Ga]=ta[Ga]);SELF.init=SELF;SELF.$=db;SELF.attr=cb;SELF.search=eb;SELF.bind=ab;SELF.css=fb;SELF.create=gb;SELF.crypto_obj=Qa();"undefined"!==typeof window&&ab("beforeunload",window,function(){SELF["each-channel"](function(a){SELF.LEAVE(a.name,1)});return p});if(b.notest)return SELF;"undefined"!==typeof window&&ab("offline",window,SELF._reset_offline); -"undefined"!==typeof document&&ab("offline",document,SELF._reset_offline);SELF.ready();return SELF}var da=1,Ma=y,Na=[],$="-pnpres",lb=10,Za=15E3,mb=310,nb=60,Y=1E3,ga="/",la="&",ib=5,jb=30,sb="3.7.18",xa=/{([\w\-]+)}/g,rb,ub=Math.floor(20*Math.random());rb=function(b,d){return 0++ub?ub:ub=1))||b};var da=1,$a="PubNub-JS-Sencha/3.7.18",kb,wb="undefined"!=typeof localStorage&&localStorage; -kb={get:function(b){try{return wb?wb.getItem(b):-1==document.cookie.indexOf(b)?x:((document.cookie||"").match(RegExp(b+"=([^;]+)"))||[])[1]||x}catch(d){}},set:function(b,d){try{if(wb)return wb.setItem(b,d)&&0;document.cookie=b+"="+d+"; expires=Thu, 1 Aug 2030 20:00:00 UTC; path=/"}catch(c){}}};Z.init=Z;Z.secure=Z;Z.crypto_obj=Qa();PUBNUB=Z({});"undefined"!==typeof module&&(module.p=Z)||"undefined"!==typeof exports&&(exports.o=Z)||(PUBNUB=Z); -var xb=PUBNUB.ws=function(b,d){if(!(this instanceof xb))return new xb(b,d);var c=this,b=c.url=b||"";c.protocol=d||"Sec-WebSocket-Protocol";var e=b.split("/"),e={ssl:"wss:"===e[0],origin:e[2],publish_key:e[3],subscribe_key:e[4],channel:e[5]};c.CONNECTING=0;c.OPEN=1;c.CLOSING=2;c.CLOSED=3;c.CLOSE_NORMAL=1E3;c.CLOSE_GOING_AWAY=1001;c.CLOSE_PROTOCOL_ERROR=1002;c.CLOSE_UNSUPPORTED=1003;c.CLOSE_TOO_LARGE=1004;c.CLOSE_NO_STATUS=1005;c.CLOSE_ABNORMAL=1006;c.onclose=c.onerror=c.onmessage=c.onopen=c.onsend= -z();c.binaryType="";c.extensions="";c.bufferedAmount=0;c.trasnmitting=y;c.buffer=[];c.readyState=c.CONNECTING;if(!b)return c.readyState=c.CLOSED,c.onclose({code:c.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:p}),c;c.g=PUBNUB.init(e);c.g.n=e;c.n=e;c.g.subscribe({restore:y,channel:e.channel,disconnect:c.onerror,reconnect:c.onopen,error:function(){c.onclose({code:c.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:y})},callback:function(b){c.onmessage({data:b})},connect:function(){c.readyState=c.OPEN;c.onopen()}})}; -xb.prototype.send=function(b){var d=this;d.g.publish({channel:d.g.n.channel,message:b,callback:function(b){d.onsend({data:b})}})}; +}());// Moved to hmac-sha-256.js(function(){function da(){return"x"+ ++ea+""+ +new Date}function w(){return+new Date}function t(b,c){var l=b.join("/"),e=[];if(!c)return l;g(c,function(b,c){var l="object"==typeof c?JSON.stringify(c):c;"undefined"!=typeof c&&null!=c&&0w()?(clearTimeout(e),e=setTimeout(l,c)):(d=w(),b())}var e,d=0;return l}function E(b,c){var l=[];g(b||[],function(b){c(b)&&l.push(b)});return l} +function Ua(b,c){return b.replace(ta,function(b,e){return c[e]||b})}function ua(b,c){return setTimeout(b,c)}function Fa(b){var c="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var c=16*Math.random()|0;return("x"==b?c:c&3|8).toString(16)});b&&b(c);return c}function fa(b){return!!b&&"string"!==typeof b&&(Array.isArray&&Array.isArray(b)||"number"===typeof b.length)}function g(b,c){if(b&&c)if(fa(b))for(var l=0,e=b.length;lb.search("-pnpres")&&d.g&&l.push(b):d.g&&l.push(b)});return l.sort()}function na(b,c){var l=[];g(b,function(b,d){c?0>b.search("-pnpres")&&d.g&&l.push(b):d.g&&l.push(b)}); +return l.sort()}function Xa(){ua(function(){ga||(ga=1,g(Ga,function(b){b()}))},1E3)}function va(b){function c(){}function l(a){a||(a={});g(Ha,function(Ia,b){Ia in a||(a[Ia]=b)});return a}function e(a){var b=[];g(a,function(a){b.push(a)});return b}function W(a){var b="",h=e(a).sort(),f;for(f in h){var c=h[f],b=b+(c+"="+Va(a[c]));f!=h.length-1&&(b+="&")}return b}function J(a,b,h){var f=!1;if("undefined"===typeof a)return b;if("number"===typeof a)f=5 5 or x = 0). Current Value : "+(b||5)),b||5):a}function A(a,b){return wa.encrypt(a,b||ha)||a}function oa(a,b){return wa.decrypt(a,b||ha)||wa.decrypt(a,ha)||a}function r(){clearTimeout(ia);!G||500<=G||1>G||!X(x,!0).length&&!na(M,!0).length?xa=!1:(xa=!0,u.presence_heartbeat({callback:function(){ia=setTimeout(r,1E3*G)},error:function(a){p&&p("Presence Heartbeat unable to reach Pubnub servers."+JSON.stringify(a));ia=setTimeout(r, +1E3*G)}}))}function Ja(){!xa&&r()}function q(a){if(Da){if(!Q.length)return}else{a&&(Q.l=0);if(Q.l||!Q.length)return;Q.l=1}F(Q.shift())}function Ka(a){var b=0;g(na(M),function(h){if(h=M[h])b++,(a||function(){})(h)})}function pa(a){var b=0;g(X(x),function(h){if(h=x[h])b++,(a||function(){})(h)});return b}function C(a,b,h){if("object"==typeof a){if(a.error){b={};a.message&&(b.message=a.message);a.payload&&(b.payload=a.payload);h&&h(b);return}if(a.payload){a.next_page?b&&b(a.payload,a.next_page):b&&b(a.payload); +return}}b&&b(a)}function K(a,b){if("object"==typeof a&&a.error){var h={};a.message&&(h.message=a.message);a.payload&&(h.payload=a.payload);b&&b(h)}else b&&b(a)}function I(a,b,h,f){b=a.callback||b;var c=a.error||p,d=H();f=f||{};f.auth||(f.auth=a.auth_key||y);a=[L,"v1","channel-registration","sub-key",v];a.push.apply(a,h);d&&(f.callback=d);F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:a})}function ca(){Ea()||ja(1,{error:"Offline. Please check your network settings. "});Y&&clearTimeout(Y); +Y=setTimeout(ca,1E3)}function ea(){Ca&&u.time(function(a){ma(function(){},a);a||ja(1,{error:"Heartbeat failed to connect to Pubnub Servers.Please check your network settings."});Z&&clearTimeout(Z);Z=setTimeout(ea,La)})}function ja(a,b){qa&&qa(a,b);qa=null;clearTimeout(Y);clearTimeout(Z)}function ma(a,b){function h(b){b&&(ya=w()-(b/1E4+(w()-f)/2),a&&a(ya))}var f=w();b&&h(b)||u.time(h)}var ta=+b.windowing||10,va=1E3*(+b.timeout||310),La=1E3*(+b.keepalive||60),Ca=b.timecheck||0,Ma=b.noleave||0,N=b.publish_key, +v=b.subscribe_key,y=b.auth_key||"",ra=b.secret_key||"",Na=b.hmac_SHA256,ka=b.ssl?"s":"",aa="http"+ka+"://"+(b.origin||"pubsub.pubnub.com"),L=ba(aa),Oa=ba(aa),Q=[],za=!0,ya=0,Aa=0,Pa=0,qa=0,la=b.restore||0,U=0,Ba=!1,x={},M={},R={},ia=null,O=J(b.heartbeat||b.pnexpires||0,b.error),G=b.heartbeat_interval||O/2-1,xa=!1,Da=b.no_wait_for_pending,Qa=b["compatible_3.5"]||!1,F=b.xdr,Ha=b.params||{},p=b.error||function(){},Ea=b._is_online||function(){return 1},H=b.jsonp_cb||function(){return 0},V=b.db||{get:function(){}, +set:function(){}},ha=b.cipher_key,D=b.uuid||!b.unique_uuid&&V&&V.get(v+"uuid")||"",S=b.instance_id||!1,P="",Ra=b.shutdown,sa=("undefined"!=typeof b.use_send_beacon?b.use_send_beacon:1)?b.sendBeacon:null,Y,Z;2===O&&(G=1);var wa=b.crypto_obj||{encrypt:function(a){return a},decrypt:function(a){return a}},u={LEAVE:function(a,b,h,f,c){h={uuid:D,auth:h||y};var d=ba(aa);f=f||function(){};var z=c||function(){};c=H();if(0b.indexOf("-pnpres")&& +(b+="-pnpres"),c=M[b]||x[b]||{callback:function(){}}):c=x[a];a=[c.a||Aa,a.split("-pnpres")[0]];b&&a.push(b.split("-pnpres")[0]);return a}}(),d=w()-ya-+a[1]/1E4;g(a[0],function(c){var f=b();c=oa(c,x[f[1]]?x[f[1]].cipher_key:null);f[0]&&f[0](c,a,f[2]||f[1],d,f[1])})}setTimeout(f,G)}})}}var d=a.channel,e=a.channel_group;b=(b=b||a.callback)||a.message;var r=a.connect||function(){},m=a.reconnect||function(){},Sa=a.disconnect||function(){},q=a.error||q||function(){},W=a.idle||function(){},B=a.presence|| +0,J=a.noheresync||0,C=a.backfill||0,A=a.timetoken||0,E=a.timeout||va,G=a.windowing||ta,t=a.state,N=a.heartbeat||a.pnexpires,I=a.heartbeat_interval,Q=a.restore||la;y=a.auth_key||y;la=Q;U=A;if(!d&&!e)return p("Missing Channel");if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");(N||0===N||I||0===I)&&u.set_heartbeat(N,I);d&&g((d.join?d.join(","):""+d).split(","),function(c){var f=x[c]||{};x[Pa=c]={name:c,h:f.h,f:f.f,g:1,a:Aa=b,cipher_key:a.cipher_key,connect:r,disconnect:Sa,j:m}; +t&&(R[c]=c in t?t[c]:t);B&&(u.subscribe({channel:c+"-pnpres",callback:B,restore:Q}),f.g||J||u.here_now({channel:c,data:l({uuid:D,auth:y}),callback:function(a){g("uuids"in a?a.uuids:[],function(b){B({action:"join",uuid:b,timestamp:Math.floor(w()/1E3),occupancy:a.occupancy||1},a,c)})}}))});e&&g((e.join?e.join(","):""+e).split(","),function(c){var f=M[c]||{};M[c]={name:c,h:f.h,f:f.f,g:1,a:Aa=b,cipher_key:a.cipher_key,connect:r,disconnect:Sa,j:m};B&&(u.subscribe({channel_group:c+"-pnpres",callback:B, +restore:Q,auth_key:y}),f.g||J||u.here_now({channel_group:c,data:l({uuid:D,auth:y}),callback:function(a){g("uuids"in a?a.uuids:[],function(b){B({action:"join",uuid:b,timestamp:Math.floor(w()/1E3),occupancy:a.occupancy||1},a,c)})}}))});c=function(){ja();setTimeout(f,G)};if(!ga)return Ga.push(c);c()},here_now:function(a,b){b=a.callback||b;var c=a.debug,f=a.error||function(){},d=a.auth_key||y,e=a.channel,r=a.channel_group,m=H(),g=a.state,d={uuid:D,auth:d};("uuids"in a?a.uuids:1)||(d.disable_uuids=1); +g&&(d.state=1);if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");g=[L,"v2","presence","sub_key",v];e&&g.push("channel")&&g.push(encodeURIComponent(e));"0"!=m&&(d.callback=m);r&&(d["channel-group"]=r,!e&&g.push("channel")&&g.push(","));S&&(d.instanceid=P);F({a:m,data:l(d),c:function(a){C(a,b,f)},b:function(a){K(a,f)},debug:c,url:g})},where_now:function(a,b){b=a.callback||b;var c=a.error||function(){},f=a.auth_key||y,d=H(),e=a.uuid||D,f={auth:f};if(!b)return p("Missing Callback"); +if(!v)return p("Missing Subscribe Key");"0"!=d&&(f.callback=d);S&&(f.instanceid=P);F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:[L,"v2","presence","sub_key",v,"uuid",encodeURIComponent(e)]})},state:function(a,b){b=a.callback||b||function(){};var c=a.error||function(){},f=a.auth_key||y,d=H(),e=a.state,r=a.uuid||D,m=a.channel,g=a.channel_group,f=l({auth:f});if(!v)return p("Missing Subscribe Key");if(!r)return p("Missing UUID");if(!m&&!g)return p("Missing Channel");"0"!=d&&(f.callback= +d);"undefined"!=typeof m&&x[m]&&x[m].g&&e&&(R[m]=e);"undefined"!=typeof g&&M[g]&&M[g].g&&(e&&(R[g]=e),f["channel-group"]=g,m||(m=","));f.state=JSON.stringify(e);S&&(f.instanceid=P);e=e?[L,"v2","presence","sub-key",v,"channel",m,"uuid",r,"data"]:[L,"v2","presence","sub-key",v,"channel",m,"uuid",encodeURIComponent(r)];F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:e})},grant:function(a,b){b=a.callback||b;var c=a.error||function(){},f=a.channel||a.channels,d=a.channel_group,e=H(), +r=a.ttl,m=a.read?"1":"0",g=a.write?"1":"0",u=a.manage?"1":"0",q=a.auth_key||a.auth_keys;if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");if(!N)return p("Missing Publish Key");if(!ra)return p("Missing Secret Key");var x=v+"\n"+N+"\ngrant\n",m={w:g,r:m,timestamp:Math.floor((new Date).getTime()/1E3)};a.manage&&(m.m=u);fa(f)&&(f=f.join(","));fa(q)&&(q=q.join(","));"undefined"!=typeof f&&null!=f&&0O&&(d.heartbeat=O);"0"!=a&& +(d.callback=a);var e=Wa(X(x,!0).join(",")),r=na(M,!0).join(",");e||(e=",");r&&(d["channel-group"]=r);S&&(d.instanceid=P);F({a:a,data:l(d),url:[L,"v2","presence","sub-key",v,"channel",e,"heartbeat"],c:function(a){C(a,b,c)},b:function(a){K(a,c)}})},stop_timers:function(){clearTimeout(Y);clearTimeout(Z);clearTimeout(ia)},shutdown:function(){u.stop_timers();Ra&&Ra()},xdr:F,ready:Xa,db:V,uuid:Fa,map:T,each:g,"each-channel":pa,grep:E,offline:function(){ja(1,{message:"Offline. Please check your network settings."})}, +supplant:Ua,now:w,unique:da,updater:d};D||(D=u.uuid());P||(P=u.uuid());V.set(v+"uuid",D);Y=setTimeout(ca,1E3);Z=setTimeout(ea,La);ia=setTimeout(Ja,1E3*(G-3));ma();return u}function ca(){function b(b){b=b||{};b.hasOwnProperty("encryptKey")||(b.encryptKey=t.encryptKey);b.hasOwnProperty("keyEncoding")||(b.keyEncoding=t.keyEncoding);b.hasOwnProperty("keyLength")||(b.keyLength=t.keyLength);b.hasOwnProperty("mode")||(b.mode=t.mode);-1==g.indexOf(b.keyEncoding.toLowerCase())&&(b.keyEncoding=t.keyEncoding); +-1==J.indexOf(parseInt(b.keyLength,10))&&(b.keyLength=t.keyLength);-1==w.indexOf(b.mode.toLowerCase())&&(b.mode=t.mode);return b}function c(b,c){var d=b;b="base64"==c.keyEncoding?CryptoJS.enc.Base64.parse(d):"hex"==c.keyEncoding?CryptoJS.enc.Hex.parse(d):d;return c.encryptKey?CryptoJS.enc.Utf8.parse(CryptoJS.SHA256(b).toString(CryptoJS.enc.Hex).slice(0,32)):b}function d(b){return"ecb"==b.mode?CryptoJS.mode.ECB:CryptoJS.mode.CBC}function e(b){return"cbc"==b.mode?CryptoJS.enc.Utf8.parse("0123456789012345"): +null}var g=["hex","utf8","base64","binary"],J=[128,256],w=["ecb","cbc"],t={encryptKey:!0,keyEncoding:"utf8",keyLength:256,mode:"cbc"};return{encrypt:function(g,t,q){if(!t)return g;q=b(q);var J=e(q),w=d(q);t=c(t,q);q=JSON.stringify(g);return CryptoJS.AES.encrypt(q,t,{iv:J,mode:w}).ciphertext.toString(CryptoJS.enc.Base64)||g},decrypt:function(g,t,q){if(!t)return g;q=b(q);var J=e(q),w=d(q);t=c(t,q);try{var C=CryptoJS.enc.Base64.parse(g),W=CryptoJS.AES.decrypt({ciphertext:C},t,{iv:J,mode:w}).toString(CryptoJS.enc.Utf8); +return JSON.parse(W)}catch(A){}}}}function ma(b){function c(b,c){g||(g=1,clearTimeout(A),e&&(e.onerror=e.onload=null,e.abort&&e.abort(),e=null),b&&E(c))}function d(){if(!J){J=1;clearTimeout(A);try{response=JSON.parse(e.responseText)}catch(b){return c(1)}q(response)}}var e,g=0,J=0,w=b.timeout||15E3,A=ua(function(){c(1)},w),r=b.data||{},E=b.b||function(){},q=b.c||function(){},I="undefined"===typeof b.o;try{e="undefined"!==typeof XDomainRequest&&new XDomainRequest||new XMLHttpRequest,e.onerror=e.onabort= +function(){c(1,e.responseText||{error:"Network Connection Error"})},e.onload=e.onloadend=d,e.onreadystatechange=function(){if(4==e.readyState)switch(e.status){case 200:break;default:try{response=JSON.parse(e.responseText),c(1,response)}catch(b){return c(1,{status:e.status,A:null,message:e.responseText})}}},r.pnsdk="PubNub-JS-Sencha/3.7.18",url=t(b.url,r),e.open("GET",url,I),I&&(e.timeout=w),e.send()}catch(pa){return c(0),ma(b)}return c}function I(b,c,d){g(b.split(","),function(b){function g(b){b|| +(b=window.event);d(b)||(b.cancelBubble=!0,b.returnValue=!1,b.preventDefault&&b.preventDefault(),b.stopPropagation&&b.stopPropagation())}c.addEventListener?c.addEventListener(b,g,!1):c.attachEvent?c.attachEvent("on"+b,g):c["on"+b]=g})}function Ca(b){console.error(b)}function Da(b,c,d){if(d)b.setAttribute(c,d);else return b&&b.getAttribute&&b.getAttribute(c)}function Ea(b){return document.getElementById(b)}function Ya(b,c){var d=[];g(b.split(/\s+/),function(b){g((c||document).getElementsByTagName(b), +function(b){d.push(b)})});return d}function Za(b,c){for(var d in c)if(c.hasOwnProperty(d))try{b.style[d]=c[d]+(0<"|width|height|top|left|".indexOf(d)&&"number"==typeof c[d]?"px":"")}catch(e){}}function $a(b){return document.createElement(b)}function ab(b,c){return CryptoJS.HmacSHA256(b,c).toString(CryptoJS.enc.Base64)}function A(b){function c(b){return A(b)}b.db=bb;b.xdr=ma;b.error=b.error||Ca;b.hmac_SHA256=ab;b.crypto_obj=ca();b.params={pnsdk:"PubNub-JS-Sencha/3.7.18"};var d=va(b),e;for(e in d)d.hasOwnProperty(e)&& +(c[e]=d[e]);c.init=c;c.$=Ea;c.attr=Da;c.search=Ya;c.bind=I;c.css=Za;c.create=$a;c.crypto_obj=ca();"undefined"!==typeof window&&I("beforeunload",window,function(){c["each-channel"](function(b){c.LEAVE(b.name,1)});return!0});if(b.notest)return c;"undefined"!==typeof window&&I("offline",window,c._reset_offline);"undefined"!==typeof document&&I("offline",document,c._reset_offline);c.ready();return c}var ea=1,ga=!1,Ga=[],ta=/{([\w\-]+)}/g,ba=function(){var b=Math.floor(20*Math.random());return function(c, +d){return 0++b?b:b=1))||c}}(),ea=1,bb=function(){var b="undefined"!=typeof localStorage&&localStorage;return{get:function(c){try{return b?b.getItem(c):-1==document.cookie.indexOf(c)?null:((document.cookie||"").match(RegExp(c+"=([^;]+)"))||[])[1]||null}catch(d){}},set:function(c,d){try{if(b)return b.setItem(c,d)&&0;document.cookie=c+"="+d+"; expires=Thu, 1 Aug 2030 20:00:00 UTC; path=/"}catch(e){}}}}();A.init=A;A.secure=A;A.crypto_obj= +ca();PUBNUB=A({});"undefined"!==typeof module&&(module.v=A)||"undefined"!==typeof exports&&(exports.u=A)||(PUBNUB=A)})(); +(function(){var da=PUBNUB.ws=function(w,t){if(!(this instanceof da))return new da(w,t);var d=this;w=d.url=w||"";d.protocol=t||"Sec-WebSocket-Protocol";var E=w.split("/"),E={ssl:"wss:"===E[0],origin:E[2],publish_key:E[3],subscribe_key:E[4],channel:E[5]};d.CONNECTING=0;d.OPEN=1;d.CLOSING=2;d.CLOSED=3;d.CLOSE_NORMAL=1E3;d.CLOSE_GOING_AWAY=1001;d.CLOSE_PROTOCOL_ERROR=1002;d.CLOSE_UNSUPPORTED=1003;d.CLOSE_TOO_LARGE=1004;d.CLOSE_NO_STATUS=1005;d.CLOSE_ABNORMAL=1006;d.onclose=d.onerror=d.onmessage=d.onopen= +d.onsend=function(){};d.binaryType="";d.extensions="";d.bufferedAmount=0;d.trasnmitting=!1;d.buffer=[];d.readyState=d.CONNECTING;if(!w)return d.readyState=d.CLOSED,d.onclose({code:d.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:!0}),d;d.i=PUBNUB.init(E);d.i.s=E;d.s=E;d.i.subscribe({restore:!1,channel:E.channel,disconnect:d.onerror,reconnect:d.onopen,error:function(){d.onclose({code:d.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:!1})},callback:function(t){d.onmessage({data:t})},connect:function(){d.readyState= +d.OPEN;d.onopen()}})};da.prototype.send=function(w){var t=this;t.i.publish({channel:t.i.s.channel,message:w,callback:function(d){t.onsend({data:d})}})}})(); })(); diff --git a/webos/pubnub.js b/webos/pubnub.js index 0282402b8..b9fc87381 100644 --- a/webos/pubnub.js +++ b/webos/pubnub.js @@ -2469,7 +2469,7 @@ function CREATE_PUBNUB(setup) { setup['crypto_obj'] = crypto_obj(); setup['params'] = { 'pnsdk' : PNSDK } - SELF = function(setup) { + var SELF = function(setup) { return CREATE_PUBNUB(setup); } var PN = PN_API(setup); diff --git a/webos/pubnub.min.js b/webos/pubnub.min.js index 0f0c5fcf1..fc07fee3a 100644 --- a/webos/pubnub.min.js +++ b/webos/pubnub.min.js @@ -70,55 +70,55 @@ CryptoJS.mode.ECB = (function () { }); return ECB; -}());// Moved to hmac-sha-256.jsvar p=!0,x=null,y=!1;function z(){return function(){}}function aa(){return"x"+ ++da+""+ +new Date}function C(){return+new Date}function fa(b,d){var c=b.join(ga),e=[];if(!d)return c;S(d,function(b,c){var d="object"==typeof c?JSON.stringify(c):c;"undefined"!=typeof c&&(c!=x&&0C()?(clearTimeout(e),e=setTimeout(c,d)):(f=C(),b())}var e,f=0;return c} -function sa(b,d){var c=[];S(b||[],function(b){d(b)&&c.push(b)});return c}function wa(b,d){return b.replace(xa,function(b,e){return d[e]||b})}function ya(b){var d="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var d=16*Math.random()|0;return("x"==b?d:d&3|8).toString(16)});b&&b(d);return d}function Ha(b){return!!b&&"string"!==typeof b&&(Array.isArray&&Array.isArray(b)||"number"===typeof b.length)} -function S(b,d){if(b&&d)if(Ha(b))for(var c=0,e=b.length;cb.search("-pnpres")&&f.e&&c.push(b):f.e&&c.push(b)});return c.sort()} -function Ka(b,d){var c=[];S(b,function(b,f){d?0>b.search("-pnpres")&&f.e&&c.push(b):f.e&&c.push(b)});return c.sort()}function La(){setTimeout(function(){Ma||(Ma=1,S(Na,function(b){b()}))},Y)} -function Qa(){function b(b){b=b||{};b.hasOwnProperty("encryptKey")||(b.encryptKey=l.encryptKey);b.hasOwnProperty("keyEncoding")||(b.keyEncoding=l.keyEncoding);b.hasOwnProperty("keyLength")||(b.keyLength=l.keyLength);b.hasOwnProperty("mode")||(b.mode=l.mode);-1==G.indexOf(b.keyEncoding.toLowerCase())&&(b.keyEncoding=l.keyEncoding);-1==K.indexOf(parseInt(b.keyLength,10))&&(b.keyLength=l.keyLength);-1==m.indexOf(b.mode.toLowerCase())&&(b.mode=l.mode);return b}function d(b,c){b="base64"==c.keyEncoding? -CryptoJS.enc.Base64.parse(b):"hex"==c.keyEncoding?CryptoJS.enc.Hex.parse(b):b;return c.encryptKey?CryptoJS.enc.Utf8.parse(CryptoJS.SHA256(b).toString(CryptoJS.enc.Hex).slice(0,32)):b}function c(b){return"ecb"==b.mode?CryptoJS.mode.ECB:CryptoJS.mode.CBC}function e(b){return"cbc"==b.mode?CryptoJS.enc.Utf8.parse(f):x}var f="0123456789012345",G=["hex","utf8","base64","binary"],K=[128,256],m=["ecb","cbc"],l={encryptKey:p,keyEncoding:"utf8",keyLength:256,mode:"cbc"};return{encrypt:function(f,l,t){if(!l)return f; -var t=b(t),m=e(t),G=c(t),l=d(l,t),t=JSON.stringify(f);return CryptoJS.AES.encrypt(t,l,{iv:m,mode:G}).ciphertext.toString(CryptoJS.enc.Base64)||f},decrypt:function(f,l,m){if(!l)return f;var m=b(m),G=e(m),O=c(m),l=d(l,m);try{var K=CryptoJS.enc.Base64.parse(f),oa=CryptoJS.AES.decrypt({ciphertext:K},l,{iv:G,mode:O}).toString(CryptoJS.enc.Utf8);return JSON.parse(oa)}catch(Aa){}}}} -function Ya(b){function d(b,c){f||(f=1,clearTimeout(m),e&&(e.onerror=e.onload=x,e.abort&&e.abort(),e=x),b&&ha(c))}function c(){if(!G){G=1;clearTimeout(m);try{response=JSON.parse(e.responseText)}catch(b){return d(1)}ma(response)}}var e,f=0,G=0,K=b.timeout||Za,m=setTimeout(function(){d(1)},K),l=b.data||{},ha=b.b||z(),ma=b.c||z(),t="undefined"===typeof b.k;try{e="undefined"!==typeof XDomainRequest&&new XDomainRequest||new XMLHttpRequest,e.onerror=e.onabort=function(){d(1,e.responseText||{error:"Network Connection Error"})}, -e.onload=e.onloadend=c,e.onreadystatechange=function(){if(4==e.readyState)switch(e.status){case 200:break;default:try{response=JSON.parse(e.responseText),d(1,response)}catch(b){return d(1,{status:e.status,q:x,message:e.responseText})}}},l.pnsdk=$a,url=fa(b.url,l),e.open("GET",url,t),t&&(e.timeout=K),e.send()}catch(za){return d(0),Ya(b)}return d} -function ab(b,d,c){S(b.split(","),function(b){function f(b){b||(b=window.event);c(b)||(b.cancelBubble=p,b.returnValue=y,b.preventDefault&&b.preventDefault(),b.stopPropagation&&b.stopPropagation())}d.addEventListener?d.addEventListener(b,f,y):d.attachEvent?d.attachEvent("on"+b,f):d["on"+b]=f})}function bb(b){console.error(b)}function cb(b,d,c){if(c)b.setAttribute(d,c);else return b&&b.getAttribute&&b.getAttribute(d)}function db(b){return document.getElementById(b)} -function eb(b,d){var c=[];S(b.split(/\s+/),function(b){S((d||document).getElementsByTagName(b),function(b){c.push(b)})});return c}function fb(b,d){for(var c in d)if(d.hasOwnProperty(c))try{b.style[c]=d[c]+(0<"|width|height|top|left|".indexOf(c)&&"number"==typeof d[c]?"px":"")}catch(e){}}function gb(b){return document.createElement(b)}function hb(b,d){return CryptoJS.HmacSHA256(b,d).toString(CryptoJS.enc.Base64)} -function Z(b){function d(){}function c(a,b){function s(b){b&&(Ba=C()-(b/1E4+(C()-c)/2),a&&a(Ba))}var c=C();b&&s(b)||u.time(s)}function e(a,b){qa&&qa(a,b);qa=x;clearTimeout(U);clearTimeout(V)}function f(){ob&&u.time(function(a){c(z(),a);a||e(1,{error:"Heartbeat failed to connect to Pubnub Servers.Please check your network settings."});V&&clearTimeout(V);V=setTimeout(f,Oa)})}function G(){pb()||e(1,{error:"Offline. Please check your network settings. "});U&&clearTimeout(U);U=setTimeout(G,Y)}function K(a, -b,s,c){var b=a.callback||b,d=a.error||i,h=F(),c=c||{};c.auth||(c.auth=a.auth_key||A);a=[H,"v1","channel-registration","sub-key",r];a.push.apply(a,s);h&&(c.callback=h);E({a:h,data:B(c),c:function(a){l(a,b,d)},b:function(a){m(a,d)},url:a})}function m(a,b){if("object"==typeof a&&a.error){var s={};a.message&&(s.message=a.message);a.payload&&(s.payload=a.payload);b&&b(s)}else b&&b(a)}function l(a,b,s){if("object"==typeof a){if(a.error){b={};a.message&&(b.message=a.message);a.payload&&(b.payload=a.payload); -s&&s(b);return}if(a.payload){a.next_page?b&&b(a.payload,a.next_page):b&&b(a.payload);return}}b&&b(a)}function ha(a){var b=0;S(Ja(j),function(s){if(s=j[s])b++,(a||z())(s)});return b}function ma(a){var b=0;S(Ka(J),function(s){if(s=J[s])b++,(a||z())(s)})}function t(a){if(qb){if(!L.length)return}else{a&&(L.l=0);if(L.l||!L.length)return;L.l=1}E(L.shift())}function za(){!Ca&&O()}function O(){clearTimeout(ia);!I||500<=I||1>I||!Ja(j,p).length&&!Ka(J,p).length?Ca=y:(Ca=p,u.presence_heartbeat({callback:function(){ia= -setTimeout(O,I*Y)},error:function(a){i&&i("Presence Heartbeat unable to reach Pubnub servers."+JSON.stringify(a));ia=setTimeout(O,I*Y)}}))}function na(a,b){return ra.decrypt(a,b||W)||ra.decrypt(a,W)||a}function oa(a,b,s){var c=y;if("undefined"===typeof a)return b;if("number"===typeof a)c=a>ib||0==a?y:p;else{if("boolean"===typeof a)return a?jb:0;c=p}return c?(s&&s("Presence Heartbeat value invalid. Valid range ( x > "+ib+" or x = 0). Current Value : "+(b||ib)),b||ib):a}function Aa(a){var b="",c=[]; -S(a,function(a){c.push(a)});var q=c.sort(),d;for(d in q){var h=q[d],b=b+(h+"="+Ia(a[h]));d!=q.length-1&&(b+="&")}return b}function B(a){a||(a={});S(Pa,function(b,c){b in a||(a[b]=c)});return a}b.db=kb;b.xdr=Ya;b.error=b.error||bb;b.hmac_SHA256=hb;b.crypto_obj=Qa();b.params={pnsdk:$a};SELF=function(a){return Z(a)};var ta,tb=+b.windowing||lb,vb=(+b.timeout||mb)*Y,Oa=(+b.keepalive||nb)*Y,ob=b.timecheck||0,Ra=b.noleave||0,Q=b.publish_key,r=b.subscribe_key,A=b.auth_key||"",ua=b.secret_key||"",Sa=b.hmac_SHA256, -ja=b.ssl?"s":"",ea="http"+ja+"://"+(b.origin||"pubsub.pubnub.com"),H=rb(ea),Ta=rb(ea),L=[],Da=p,Ba=0,Ea=0,Ua=0,qa=0,ka=b.restore||0,ba=0,Fa=y,j={},J={},R={},ia=x,M=oa(b.heartbeat||b.pnexpires||0,b.error),I=b.heartbeat_interval||M/2-1,Ca=y,qb=b.no_wait_for_pending,Va=b["compatible_3.5"]||y,E=b.xdr,Pa=b.params||{},i=b.error||z(),pb=b._is_online||function(){return 1},F=b.jsonp_cb||function(){return 0},ca=b.db||{get:z(),set:z()},W=b.cipher_key,w=b.uuid||!b.unique_uuid&&ca&&ca.get(r+"uuid")||"",X=b.instance_id|| -y,N="",Wa=b.shutdown,va=("undefined"!=typeof b.use_send_beacon?b.use_send_beacon:1)?b.sendBeacon:x,U,V;2===M&&(I=1);var ra=b.crypto_obj||{encrypt:function(a){return a},decrypt:function(a){return a}},u={LEAVE:function(a,b,c,q,d){var c={uuid:w,auth:c||A},h=rb(ea),q=q||z(),v=d||z(),d=F();if(0b.indexOf("-pnpres"))&&(b+="-pnpres"),c=J[b]||j[b]||{callback:z()}):c=j[a];a=[c.a||Ea,a.split($)[0]];b&&a.push(b.split($)[0]);return a};var s=C()-Ba-+a[1]/1E4;S(a[0],function(c){var d=b(),c=na(c,j[d[1]]?j[d[1]].cipher_key:x);d[0]&&d[0](c,a,d[2]||d[1],s,d[1])})}setTimeout(q,O)}})}}var P=a.channel,h=a.channel_group,b=(b=b||a.callback)||a.message, -v=a.connect||z(),g=a.reconnect||z(),D=a.disconnect||z(),f=a.error||f||z(),l=a.idle||z(),t=a.presence||0,G=a.noheresync||0,I=a.backfill||0,K=a.timetoken||0,Q=a.timeout||vb,O=a.windowing||tb,L=a.state,U=a.heartbeat||a.pnexpires,V=a.heartbeat_interval,W=a.restore||ka;A=a.auth_key||A;ka=W;ba=K;if(!P&&!h)return i("Missing Channel");if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");(U||0===U||V||0===V)&&u.set_heartbeat(U,V);P&&S((P.join?P.join(","):""+P).split(","),function(c){var d= -j[c]||{};j[Ua=c]={name:c,f:d.f,d:d.d,e:1,a:Ea=b,cipher_key:a.cipher_key,h:v,i:D,j:g};L&&(R[c]=c in L?L[c]:L);t&&(u.subscribe({channel:c+$,callback:t,restore:W}),!d.e&&!G&&u.here_now({channel:c,data:B({uuid:w,auth:A}),callback:function(a){S("uuids"in a?a.uuids:[],function(b){t({action:"join",uuid:b,timestamp:Math.floor(C()/1E3),occupancy:a.occupancy||1},a,c)})}}))});h&&S((h.join?h.join(","):""+h).split(","),function(c){var d=J[c]||{};J[c]={name:c,f:d.f,d:d.d,e:1,a:Ea=b,cipher_key:a.cipher_key,h:v, -i:D,j:g};t&&(u.subscribe({channel_group:c+$,callback:t,restore:W,auth_key:A}),!d.e&&!G&&u.here_now({channel_group:c,data:B({uuid:w,auth:A}),callback:function(a){S("uuids"in a?a.uuids:[],function(b){t({action:"join",uuid:b,timestamp:Math.floor(C()/1E3),occupancy:a.occupancy||1},a,c)})}}))});d=function(){e();setTimeout(q,O)};if(!Ma)return Na.push(d);d()},here_now:function(a,b){var b=a.callback||b,c=a.debug,d=a.error||z(),e=a.auth_key||A,h=a.channel,v=a.channel_group,g=F(),f=a.state,e={uuid:w,auth:e}; -if(!("uuids"in a?a.uuids:1))e.disable_uuids=1;f&&(e.state=1);if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");f=[H,"v2","presence","sub_key",r];h&&f.push("channel")&&f.push(encodeURIComponent(h));"0"!=g&&(e.callback=g);v&&(e["channel-group"]=v,!h&&f.push("channel")&&f.push(","));X&&(e.instanceid=N);E({a:g,data:B(e),c:function(a){l(a,b,d)},b:function(a){m(a,d)},debug:c,url:f})},where_now:function(a,b){var b=a.callback||b,c=a.error||z(),d=a.auth_key||A,e=F(),h=a.uuid||w,d= -{auth:d};if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");"0"!=e&&(d.callback=e);X&&(d.instanceid=N);E({a:e,data:B(d),c:function(a){l(a,b,c)},b:function(a){m(a,c)},url:[H,"v2","presence","sub_key",r,"uuid",encodeURIComponent(h)]})},state:function(a,b){var b=a.callback||b||z(),c=a.error||z(),d=a.auth_key||A,e=F(),h=a.state,f=a.uuid||w,g=a.channel,D=a.channel_group,d=B({auth:d});if(!r)return i("Missing Subscribe Key");if(!f)return i("Missing UUID");if(!g&&!D)return i("Missing Channel"); -"0"!=e&&(d.callback=e);"undefined"!=typeof g&&j[g]&&j[g].e&&h&&(R[g]=h);"undefined"!=typeof D&&(J[D]&&J[D].e)&&(h&&(R[D]=h),d["channel-group"]=D,g||(g=","));d.state=JSON.stringify(h);X&&(d.instanceid=N);h=h?[H,"v2","presence","sub-key",r,"channel",g,"uuid",f,"data"]:[H,"v2","presence","sub-key",r,"channel",g,"uuid",encodeURIComponent(f)];E({a:e,data:B(d),c:function(a){l(a,b,c)},b:function(a){m(a,c)},url:h})},grant:function(a,b){var b=a.callback||b,c=a.error||z(),d=a.channel||a.channels,e=a.channel_group, -h=F(),f=a.ttl,g=a.read?"1":"0",j=a.write?"1":"0",u=a.manage?"1":"0",t=a.auth_key||a.auth_keys;if(!b)return i("Missing Callback");if(!r)return i("Missing Subscribe Key");if(!Q)return i("Missing Publish Key");if(!ua)return i("Missing Secret Key");var w=r+"\n"+Q+"\ngrant\n",g={w:j,r:g,timestamp:Math.floor((new Date).getTime()/1E3)};a.manage&&(g.m=u);Ha(d)&&(d=d.join(","));Ha(t)&&(t=t.join(","));"undefined"!=typeof d&&(d!=x&&0M&&(d.heartbeat=M);"0"!=a&&(d.callback=a);var e;e=Ja(j,p).join(",");e=encodeURIComponent(e);var f=Ka(J, -p).join(",");e||(e=",");f&&(d["channel-group"]=f);X&&(d.instanceid=N);E({a:a,data:B(d),url:[H,"v2","presence","sub-key",r,"channel",e,"heartbeat"],c:function(a){l(a,b,c)},b:function(a){m(a,c)}})},stop_timers:function(){clearTimeout(U);clearTimeout(V);clearTimeout(ia)},shutdown:function(){u.stop_timers();Wa&&Wa()},xdr:E,ready:La,db:ca,uuid:ya,map:T,each:S,"each-channel":ha,grep:sa,offline:function(){e(1,{message:"Offline. Please check your network settings."})},supplant:wa,now:C,unique:aa,updater:pa}; -w||(w=u.uuid());N||(N=u.uuid());ca.set(r+"uuid",w);U=setTimeout(G,Y);V=setTimeout(f,Oa);ia=setTimeout(za,(I-3)*Y);c();ta=u;for(var Ga in ta)ta.hasOwnProperty(Ga)&&(SELF[Ga]=ta[Ga]);SELF.init=SELF;SELF.$=db;SELF.attr=cb;SELF.search=eb;SELF.bind=ab;SELF.css=fb;SELF.create=gb;SELF.crypto_obj=Qa();"undefined"!==typeof window&&ab("beforeunload",window,function(){SELF["each-channel"](function(a){SELF.LEAVE(a.name,1)});return p});if(b.notest)return SELF;"undefined"!==typeof window&&ab("offline",window,SELF._reset_offline); -"undefined"!==typeof document&&ab("offline",document,SELF._reset_offline);SELF.ready();return SELF}var da=1,Ma=y,Na=[],$="-pnpres",lb=10,Za=15E3,mb=310,nb=60,Y=1E3,ga="/",la="&",ib=5,jb=30,sb="3.7.18",xa=/{([\w\-]+)}/g,rb,ub=Math.floor(20*Math.random());rb=function(b,d){return 0++ub?ub:ub=1))||b};var da=1,$a="PubNub-JS-Webos/3.7.18",kb,wb="undefined"!=typeof localStorage&&localStorage; -kb={get:function(b){try{return wb?wb.getItem(b):-1==document.cookie.indexOf(b)?x:((document.cookie||"").match(RegExp(b+"=([^;]+)"))||[])[1]||x}catch(d){}},set:function(b,d){try{if(wb)return wb.setItem(b,d)&&0;document.cookie=b+"="+d+"; expires=Thu, 1 Aug 2030 20:00:00 UTC; path=/"}catch(c){}}};Z.init=Z;Z.secure=Z;Z.crypto_obj=Qa();PUBNUB=Z({});"undefined"!==typeof module&&(module.p=Z)||"undefined"!==typeof exports&&(exports.o=Z)||(PUBNUB=Z); -var xb=PUBNUB.ws=function(b,d){if(!(this instanceof xb))return new xb(b,d);var c=this,b=c.url=b||"";c.protocol=d||"Sec-WebSocket-Protocol";var e=b.split("/"),e={ssl:"wss:"===e[0],origin:e[2],publish_key:e[3],subscribe_key:e[4],channel:e[5]};c.CONNECTING=0;c.OPEN=1;c.CLOSING=2;c.CLOSED=3;c.CLOSE_NORMAL=1E3;c.CLOSE_GOING_AWAY=1001;c.CLOSE_PROTOCOL_ERROR=1002;c.CLOSE_UNSUPPORTED=1003;c.CLOSE_TOO_LARGE=1004;c.CLOSE_NO_STATUS=1005;c.CLOSE_ABNORMAL=1006;c.onclose=c.onerror=c.onmessage=c.onopen=c.onsend= -z();c.binaryType="";c.extensions="";c.bufferedAmount=0;c.trasnmitting=y;c.buffer=[];c.readyState=c.CONNECTING;if(!b)return c.readyState=c.CLOSED,c.onclose({code:c.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:p}),c;c.g=PUBNUB.init(e);c.g.n=e;c.n=e;c.g.subscribe({restore:y,channel:e.channel,disconnect:c.onerror,reconnect:c.onopen,error:function(){c.onclose({code:c.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:y})},callback:function(b){c.onmessage({data:b})},connect:function(){c.readyState=c.OPEN;c.onopen()}})}; -xb.prototype.send=function(b){var d=this;d.g.publish({channel:d.g.n.channel,message:b,callback:function(b){d.onsend({data:b})}})}; +}());// Moved to hmac-sha-256.js(function(){function da(){return"x"+ ++ea+""+ +new Date}function w(){return+new Date}function t(b,c){var l=b.join("/"),e=[];if(!c)return l;g(c,function(b,c){var l="object"==typeof c?JSON.stringify(c):c;"undefined"!=typeof c&&null!=c&&0w()?(clearTimeout(e),e=setTimeout(l,c)):(d=w(),b())}var e,d=0;return l}function E(b,c){var l=[];g(b||[],function(b){c(b)&&l.push(b)});return l} +function Ua(b,c){return b.replace(ta,function(b,e){return c[e]||b})}function ua(b,c){return setTimeout(b,c)}function Fa(b){var c="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(b){var c=16*Math.random()|0;return("x"==b?c:c&3|8).toString(16)});b&&b(c);return c}function fa(b){return!!b&&"string"!==typeof b&&(Array.isArray&&Array.isArray(b)||"number"===typeof b.length)}function g(b,c){if(b&&c)if(fa(b))for(var l=0,e=b.length;lb.search("-pnpres")&&d.g&&l.push(b):d.g&&l.push(b)});return l.sort()}function na(b,c){var l=[];g(b,function(b,d){c?0>b.search("-pnpres")&&d.g&&l.push(b):d.g&&l.push(b)}); +return l.sort()}function Xa(){ua(function(){ga||(ga=1,g(Ga,function(b){b()}))},1E3)}function va(b){function c(){}function l(a){a||(a={});g(Ha,function(Ia,b){Ia in a||(a[Ia]=b)});return a}function e(a){var b=[];g(a,function(a){b.push(a)});return b}function W(a){var b="",h=e(a).sort(),f;for(f in h){var c=h[f],b=b+(c+"="+Va(a[c]));f!=h.length-1&&(b+="&")}return b}function J(a,b,h){var f=!1;if("undefined"===typeof a)return b;if("number"===typeof a)f=5 5 or x = 0). Current Value : "+(b||5)),b||5):a}function A(a,b){return wa.encrypt(a,b||ha)||a}function oa(a,b){return wa.decrypt(a,b||ha)||wa.decrypt(a,ha)||a}function r(){clearTimeout(ia);!G||500<=G||1>G||!X(x,!0).length&&!na(M,!0).length?xa=!1:(xa=!0,u.presence_heartbeat({callback:function(){ia=setTimeout(r,1E3*G)},error:function(a){p&&p("Presence Heartbeat unable to reach Pubnub servers."+JSON.stringify(a));ia=setTimeout(r, +1E3*G)}}))}function Ja(){!xa&&r()}function q(a){if(Da){if(!Q.length)return}else{a&&(Q.l=0);if(Q.l||!Q.length)return;Q.l=1}F(Q.shift())}function Ka(a){var b=0;g(na(M),function(h){if(h=M[h])b++,(a||function(){})(h)})}function pa(a){var b=0;g(X(x),function(h){if(h=x[h])b++,(a||function(){})(h)});return b}function C(a,b,h){if("object"==typeof a){if(a.error){b={};a.message&&(b.message=a.message);a.payload&&(b.payload=a.payload);h&&h(b);return}if(a.payload){a.next_page?b&&b(a.payload,a.next_page):b&&b(a.payload); +return}}b&&b(a)}function K(a,b){if("object"==typeof a&&a.error){var h={};a.message&&(h.message=a.message);a.payload&&(h.payload=a.payload);b&&b(h)}else b&&b(a)}function I(a,b,h,f){b=a.callback||b;var c=a.error||p,d=H();f=f||{};f.auth||(f.auth=a.auth_key||y);a=[L,"v1","channel-registration","sub-key",v];a.push.apply(a,h);d&&(f.callback=d);F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:a})}function ca(){Ea()||ja(1,{error:"Offline. Please check your network settings. "});Y&&clearTimeout(Y); +Y=setTimeout(ca,1E3)}function ea(){Ca&&u.time(function(a){ma(function(){},a);a||ja(1,{error:"Heartbeat failed to connect to Pubnub Servers.Please check your network settings."});Z&&clearTimeout(Z);Z=setTimeout(ea,La)})}function ja(a,b){qa&&qa(a,b);qa=null;clearTimeout(Y);clearTimeout(Z)}function ma(a,b){function h(b){b&&(ya=w()-(b/1E4+(w()-f)/2),a&&a(ya))}var f=w();b&&h(b)||u.time(h)}var ta=+b.windowing||10,va=1E3*(+b.timeout||310),La=1E3*(+b.keepalive||60),Ca=b.timecheck||0,Ma=b.noleave||0,N=b.publish_key, +v=b.subscribe_key,y=b.auth_key||"",ra=b.secret_key||"",Na=b.hmac_SHA256,ka=b.ssl?"s":"",aa="http"+ka+"://"+(b.origin||"pubsub.pubnub.com"),L=ba(aa),Oa=ba(aa),Q=[],za=!0,ya=0,Aa=0,Pa=0,qa=0,la=b.restore||0,U=0,Ba=!1,x={},M={},R={},ia=null,O=J(b.heartbeat||b.pnexpires||0,b.error),G=b.heartbeat_interval||O/2-1,xa=!1,Da=b.no_wait_for_pending,Qa=b["compatible_3.5"]||!1,F=b.xdr,Ha=b.params||{},p=b.error||function(){},Ea=b._is_online||function(){return 1},H=b.jsonp_cb||function(){return 0},V=b.db||{get:function(){}, +set:function(){}},ha=b.cipher_key,D=b.uuid||!b.unique_uuid&&V&&V.get(v+"uuid")||"",S=b.instance_id||!1,P="",Ra=b.shutdown,sa=("undefined"!=typeof b.use_send_beacon?b.use_send_beacon:1)?b.sendBeacon:null,Y,Z;2===O&&(G=1);var wa=b.crypto_obj||{encrypt:function(a){return a},decrypt:function(a){return a}},u={LEAVE:function(a,b,h,f,c){h={uuid:D,auth:h||y};var d=ba(aa);f=f||function(){};var z=c||function(){};c=H();if(0b.indexOf("-pnpres")&& +(b+="-pnpres"),c=M[b]||x[b]||{callback:function(){}}):c=x[a];a=[c.a||Aa,a.split("-pnpres")[0]];b&&a.push(b.split("-pnpres")[0]);return a}}(),d=w()-ya-+a[1]/1E4;g(a[0],function(c){var f=b();c=oa(c,x[f[1]]?x[f[1]].cipher_key:null);f[0]&&f[0](c,a,f[2]||f[1],d,f[1])})}setTimeout(f,G)}})}}var d=a.channel,e=a.channel_group;b=(b=b||a.callback)||a.message;var r=a.connect||function(){},m=a.reconnect||function(){},Sa=a.disconnect||function(){},q=a.error||q||function(){},W=a.idle||function(){},B=a.presence|| +0,J=a.noheresync||0,C=a.backfill||0,A=a.timetoken||0,E=a.timeout||va,G=a.windowing||ta,t=a.state,N=a.heartbeat||a.pnexpires,I=a.heartbeat_interval,Q=a.restore||la;y=a.auth_key||y;la=Q;U=A;if(!d&&!e)return p("Missing Channel");if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");(N||0===N||I||0===I)&&u.set_heartbeat(N,I);d&&g((d.join?d.join(","):""+d).split(","),function(c){var f=x[c]||{};x[Pa=c]={name:c,h:f.h,f:f.f,g:1,a:Aa=b,cipher_key:a.cipher_key,connect:r,disconnect:Sa,j:m}; +t&&(R[c]=c in t?t[c]:t);B&&(u.subscribe({channel:c+"-pnpres",callback:B,restore:Q}),f.g||J||u.here_now({channel:c,data:l({uuid:D,auth:y}),callback:function(a){g("uuids"in a?a.uuids:[],function(b){B({action:"join",uuid:b,timestamp:Math.floor(w()/1E3),occupancy:a.occupancy||1},a,c)})}}))});e&&g((e.join?e.join(","):""+e).split(","),function(c){var f=M[c]||{};M[c]={name:c,h:f.h,f:f.f,g:1,a:Aa=b,cipher_key:a.cipher_key,connect:r,disconnect:Sa,j:m};B&&(u.subscribe({channel_group:c+"-pnpres",callback:B, +restore:Q,auth_key:y}),f.g||J||u.here_now({channel_group:c,data:l({uuid:D,auth:y}),callback:function(a){g("uuids"in a?a.uuids:[],function(b){B({action:"join",uuid:b,timestamp:Math.floor(w()/1E3),occupancy:a.occupancy||1},a,c)})}}))});c=function(){ja();setTimeout(f,G)};if(!ga)return Ga.push(c);c()},here_now:function(a,b){b=a.callback||b;var c=a.debug,f=a.error||function(){},d=a.auth_key||y,e=a.channel,r=a.channel_group,m=H(),g=a.state,d={uuid:D,auth:d};("uuids"in a?a.uuids:1)||(d.disable_uuids=1); +g&&(d.state=1);if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");g=[L,"v2","presence","sub_key",v];e&&g.push("channel")&&g.push(encodeURIComponent(e));"0"!=m&&(d.callback=m);r&&(d["channel-group"]=r,!e&&g.push("channel")&&g.push(","));S&&(d.instanceid=P);F({a:m,data:l(d),c:function(a){C(a,b,f)},b:function(a){K(a,f)},debug:c,url:g})},where_now:function(a,b){b=a.callback||b;var c=a.error||function(){},f=a.auth_key||y,d=H(),e=a.uuid||D,f={auth:f};if(!b)return p("Missing Callback"); +if(!v)return p("Missing Subscribe Key");"0"!=d&&(f.callback=d);S&&(f.instanceid=P);F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:[L,"v2","presence","sub_key",v,"uuid",encodeURIComponent(e)]})},state:function(a,b){b=a.callback||b||function(){};var c=a.error||function(){},f=a.auth_key||y,d=H(),e=a.state,r=a.uuid||D,m=a.channel,g=a.channel_group,f=l({auth:f});if(!v)return p("Missing Subscribe Key");if(!r)return p("Missing UUID");if(!m&&!g)return p("Missing Channel");"0"!=d&&(f.callback= +d);"undefined"!=typeof m&&x[m]&&x[m].g&&e&&(R[m]=e);"undefined"!=typeof g&&M[g]&&M[g].g&&(e&&(R[g]=e),f["channel-group"]=g,m||(m=","));f.state=JSON.stringify(e);S&&(f.instanceid=P);e=e?[L,"v2","presence","sub-key",v,"channel",m,"uuid",r,"data"]:[L,"v2","presence","sub-key",v,"channel",m,"uuid",encodeURIComponent(r)];F({a:d,data:l(f),c:function(a){C(a,b,c)},b:function(a){K(a,c)},url:e})},grant:function(a,b){b=a.callback||b;var c=a.error||function(){},f=a.channel||a.channels,d=a.channel_group,e=H(), +r=a.ttl,m=a.read?"1":"0",g=a.write?"1":"0",u=a.manage?"1":"0",q=a.auth_key||a.auth_keys;if(!b)return p("Missing Callback");if(!v)return p("Missing Subscribe Key");if(!N)return p("Missing Publish Key");if(!ra)return p("Missing Secret Key");var x=v+"\n"+N+"\ngrant\n",m={w:g,r:m,timestamp:Math.floor((new Date).getTime()/1E3)};a.manage&&(m.m=u);fa(f)&&(f=f.join(","));fa(q)&&(q=q.join(","));"undefined"!=typeof f&&null!=f&&0O&&(d.heartbeat=O);"0"!=a&& +(d.callback=a);var e=Wa(X(x,!0).join(",")),r=na(M,!0).join(",");e||(e=",");r&&(d["channel-group"]=r);S&&(d.instanceid=P);F({a:a,data:l(d),url:[L,"v2","presence","sub-key",v,"channel",e,"heartbeat"],c:function(a){C(a,b,c)},b:function(a){K(a,c)}})},stop_timers:function(){clearTimeout(Y);clearTimeout(Z);clearTimeout(ia)},shutdown:function(){u.stop_timers();Ra&&Ra()},xdr:F,ready:Xa,db:V,uuid:Fa,map:T,each:g,"each-channel":pa,grep:E,offline:function(){ja(1,{message:"Offline. Please check your network settings."})}, +supplant:Ua,now:w,unique:da,updater:d};D||(D=u.uuid());P||(P=u.uuid());V.set(v+"uuid",D);Y=setTimeout(ca,1E3);Z=setTimeout(ea,La);ia=setTimeout(Ja,1E3*(G-3));ma();return u}function ca(){function b(b){b=b||{};b.hasOwnProperty("encryptKey")||(b.encryptKey=t.encryptKey);b.hasOwnProperty("keyEncoding")||(b.keyEncoding=t.keyEncoding);b.hasOwnProperty("keyLength")||(b.keyLength=t.keyLength);b.hasOwnProperty("mode")||(b.mode=t.mode);-1==g.indexOf(b.keyEncoding.toLowerCase())&&(b.keyEncoding=t.keyEncoding); +-1==J.indexOf(parseInt(b.keyLength,10))&&(b.keyLength=t.keyLength);-1==w.indexOf(b.mode.toLowerCase())&&(b.mode=t.mode);return b}function c(b,c){var d=b;b="base64"==c.keyEncoding?CryptoJS.enc.Base64.parse(d):"hex"==c.keyEncoding?CryptoJS.enc.Hex.parse(d):d;return c.encryptKey?CryptoJS.enc.Utf8.parse(CryptoJS.SHA256(b).toString(CryptoJS.enc.Hex).slice(0,32)):b}function d(b){return"ecb"==b.mode?CryptoJS.mode.ECB:CryptoJS.mode.CBC}function e(b){return"cbc"==b.mode?CryptoJS.enc.Utf8.parse("0123456789012345"): +null}var g=["hex","utf8","base64","binary"],J=[128,256],w=["ecb","cbc"],t={encryptKey:!0,keyEncoding:"utf8",keyLength:256,mode:"cbc"};return{encrypt:function(g,t,q){if(!t)return g;q=b(q);var J=e(q),w=d(q);t=c(t,q);q=JSON.stringify(g);return CryptoJS.AES.encrypt(q,t,{iv:J,mode:w}).ciphertext.toString(CryptoJS.enc.Base64)||g},decrypt:function(g,t,q){if(!t)return g;q=b(q);var J=e(q),w=d(q);t=c(t,q);try{var C=CryptoJS.enc.Base64.parse(g),W=CryptoJS.AES.decrypt({ciphertext:C},t,{iv:J,mode:w}).toString(CryptoJS.enc.Utf8); +return JSON.parse(W)}catch(A){}}}}function ma(b){function c(b,c){g||(g=1,clearTimeout(A),e&&(e.onerror=e.onload=null,e.abort&&e.abort(),e=null),b&&E(c))}function d(){if(!J){J=1;clearTimeout(A);try{response=JSON.parse(e.responseText)}catch(b){return c(1)}q(response)}}var e,g=0,J=0,w=b.timeout||15E3,A=ua(function(){c(1)},w),r=b.data||{},E=b.b||function(){},q=b.c||function(){},I="undefined"===typeof b.o;try{e="undefined"!==typeof XDomainRequest&&new XDomainRequest||new XMLHttpRequest,e.onerror=e.onabort= +function(){c(1,e.responseText||{error:"Network Connection Error"})},e.onload=e.onloadend=d,e.onreadystatechange=function(){if(4==e.readyState)switch(e.status){case 200:break;default:try{response=JSON.parse(e.responseText),c(1,response)}catch(b){return c(1,{status:e.status,A:null,message:e.responseText})}}},r.pnsdk="PubNub-JS-Webos/3.7.18",url=t(b.url,r),e.open("GET",url,I),I&&(e.timeout=w),e.send()}catch(pa){return c(0),ma(b)}return c}function I(b,c,d){g(b.split(","),function(b){function g(b){b|| +(b=window.event);d(b)||(b.cancelBubble=!0,b.returnValue=!1,b.preventDefault&&b.preventDefault(),b.stopPropagation&&b.stopPropagation())}c.addEventListener?c.addEventListener(b,g,!1):c.attachEvent?c.attachEvent("on"+b,g):c["on"+b]=g})}function Ca(b){console.error(b)}function Da(b,c,d){if(d)b.setAttribute(c,d);else return b&&b.getAttribute&&b.getAttribute(c)}function Ea(b){return document.getElementById(b)}function Ya(b,c){var d=[];g(b.split(/\s+/),function(b){g((c||document).getElementsByTagName(b), +function(b){d.push(b)})});return d}function Za(b,c){for(var d in c)if(c.hasOwnProperty(d))try{b.style[d]=c[d]+(0<"|width|height|top|left|".indexOf(d)&&"number"==typeof c[d]?"px":"")}catch(e){}}function $a(b){return document.createElement(b)}function ab(b,c){return CryptoJS.HmacSHA256(b,c).toString(CryptoJS.enc.Base64)}function A(b){function c(b){return A(b)}b.db=bb;b.xdr=ma;b.error=b.error||Ca;b.hmac_SHA256=ab;b.crypto_obj=ca();b.params={pnsdk:"PubNub-JS-Webos/3.7.18"};var d=va(b),e;for(e in d)d.hasOwnProperty(e)&& +(c[e]=d[e]);c.init=c;c.$=Ea;c.attr=Da;c.search=Ya;c.bind=I;c.css=Za;c.create=$a;c.crypto_obj=ca();"undefined"!==typeof window&&I("beforeunload",window,function(){c["each-channel"](function(b){c.LEAVE(b.name,1)});return!0});if(b.notest)return c;"undefined"!==typeof window&&I("offline",window,c._reset_offline);"undefined"!==typeof document&&I("offline",document,c._reset_offline);c.ready();return c}var ea=1,ga=!1,Ga=[],ta=/{([\w\-]+)}/g,ba=function(){var b=Math.floor(20*Math.random());return function(c, +d){return 0++b?b:b=1))||c}}(),ea=1,bb=function(){var b="undefined"!=typeof localStorage&&localStorage;return{get:function(c){try{return b?b.getItem(c):-1==document.cookie.indexOf(c)?null:((document.cookie||"").match(RegExp(c+"=([^;]+)"))||[])[1]||null}catch(d){}},set:function(c,d){try{if(b)return b.setItem(c,d)&&0;document.cookie=c+"="+d+"; expires=Thu, 1 Aug 2030 20:00:00 UTC; path=/"}catch(e){}}}}();A.init=A;A.secure=A;A.crypto_obj= +ca();PUBNUB=A({});"undefined"!==typeof module&&(module.v=A)||"undefined"!==typeof exports&&(exports.u=A)||(PUBNUB=A)})(); +(function(){var da=PUBNUB.ws=function(w,t){if(!(this instanceof da))return new da(w,t);var d=this;w=d.url=w||"";d.protocol=t||"Sec-WebSocket-Protocol";var E=w.split("/"),E={ssl:"wss:"===E[0],origin:E[2],publish_key:E[3],subscribe_key:E[4],channel:E[5]};d.CONNECTING=0;d.OPEN=1;d.CLOSING=2;d.CLOSED=3;d.CLOSE_NORMAL=1E3;d.CLOSE_GOING_AWAY=1001;d.CLOSE_PROTOCOL_ERROR=1002;d.CLOSE_UNSUPPORTED=1003;d.CLOSE_TOO_LARGE=1004;d.CLOSE_NO_STATUS=1005;d.CLOSE_ABNORMAL=1006;d.onclose=d.onerror=d.onmessage=d.onopen= +d.onsend=function(){};d.binaryType="";d.extensions="";d.bufferedAmount=0;d.trasnmitting=!1;d.buffer=[];d.readyState=d.CONNECTING;if(!w)return d.readyState=d.CLOSED,d.onclose({code:d.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:!0}),d;d.i=PUBNUB.init(E);d.i.s=E;d.s=E;d.i.subscribe({restore:!1,channel:E.channel,disconnect:d.onerror,reconnect:d.onopen,error:function(){d.onclose({code:d.CLOSE_ABNORMAL,reason:"Missing URL",wasClean:!1})},callback:function(t){d.onmessage({data:t})},connect:function(){d.readyState= +d.OPEN;d.onopen()}})};da.prototype.send=function(w){var t=this;t.i.publish({channel:t.i.s.channel,message:w,callback:function(d){t.onsend({data:d})}})}})(); })();