{"version":3,"file":"js/3683-f1f1fb6447bba4103ef2.js","mappings":"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","sources":["webpack://shop-ware-development/./node_modules/pusher-js/dist/web/pusher-with-encryption.js","webpack://shop-ware-development/./node_modules/pusher-js/with-encryption/index.js"],"sourcesContent":["/*!\n * Pusher JavaScript Library v7.4.0\n * https://pusher.com/\n *\n * Copyright 2020, Pusher\n * Released under the MIT licence.\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Pusher\"] = factory();\n\telse\n\t\troot[\"Pusher\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package base64 implements Base64 encoding and decoding.\n */\n// Invalid character used in decoding to indicate\n// that the character to decode is out of range of\n// alphabet and cannot be decoded.\nvar INVALID_BYTE = 256;\n/**\n * Implements standard Base64 encoding.\n *\n * Operates in constant time.\n */\nvar Coder = /** @class */ (function () {\n // TODO(dchest): methods to encode chunk-by-chunk.\n function Coder(_paddingCharacter) {\n if (_paddingCharacter === void 0) { _paddingCharacter = \"=\"; }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder.prototype.encodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder.prototype.encode = function (data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n out += this._encodeByte((c >>> 1 * 6) & 63);\n out += this._encodeByte((c >>> 0 * 6) & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n if (left === 2) {\n out += this._encodeByte((c >>> 1 * 6) & 63);\n }\n else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder.prototype.maxDecodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder.prototype.decodedLength = function (s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder.prototype.decode = function (s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n out[op++] = (v1 << 4) | (v2 >>> 2);\n out[op++] = (v2 << 6) | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = (v1 << 4) | (v2 >>> 2);\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v2 << 6) | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n // Standard encoding have the following encoded/decoded ranges,\n // which we need to convert between.\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + /\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 43 47\n //\n // Encode 6 bits in b into a new character.\n Coder.prototype._encodeByte = function (b) {\n // Encoding uses constant time operations as follows:\n //\n // 1. Define comparison of A with B using (A - B) >>> 8:\n // if A > B, then result is positive integer\n // if A <= B, then result is 0\n //\n // 2. Define selection of C or 0 using bitwise AND: X & C:\n // if X == 0, then result is 0\n // if X != 0, then result is C\n //\n // 3. Start with the smallest comparison (b >= 0), which is always\n // true, so set the result to the starting ASCII value (65).\n //\n // 4. Continue comparing b to higher ASCII values, and selecting\n // zero if comparison isn't true, otherwise selecting a value\n // to add to result, which:\n //\n // a) undoes the previous addition\n // b) provides new value to add\n //\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47);\n return String.fromCharCode(result);\n };\n // Decode a character code into a byte.\n // Must return 256 if character is out of alphabet range.\n Coder.prototype._decodeChar = function (c) {\n // Decoding works similar to encoding: using the same comparison\n // function, but now it works on ranges: result is always incremented\n // by value, but this value becomes zero if the range is not\n // satisfied.\n //\n // Decoding starts with invalid value, 256, which is then\n // subtracted when the range is satisfied. If none of the ranges\n // apply, the function returns 256, which is then checked by\n // the caller to throw error.\n var result = INVALID_BYTE; // start with invalid character\n // c == 43 (c > 42 and c < 44)\n result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62);\n // c == 47 (c > 46 and c < 48)\n result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n Coder.prototype._getPaddingLength = function (s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder;\n}());\nexports.Coder = Coder;\nvar stdCoder = new Coder();\nfunction encode(data) {\n return stdCoder.encode(data);\n}\nexports.encode = encode;\nfunction decode(s) {\n return stdCoder.decode(s);\n}\nexports.decode = decode;\n/**\n * Implements URL-safe Base64 encoding.\n * (Same as Base64, but '+' is replaced with '-', and '/' with '_').\n *\n * Operates in constant time.\n */\nvar URLSafeCoder = /** @class */ (function (_super) {\n __extends(URLSafeCoder, _super);\n function URLSafeCoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // URL-safe encoding have the following encoded/decoded ranges:\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 45 95\n //\n URLSafeCoder.prototype._encodeByte = function (b) {\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95);\n return String.fromCharCode(result);\n };\n URLSafeCoder.prototype._decodeChar = function (c) {\n var result = INVALID_BYTE;\n // c == 45 (c > 44 and c < 46)\n result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62);\n // c == 95 (c > 94 and c < 96)\n result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n return URLSafeCoder;\n}(Coder));\nexports.URLSafeCoder = URLSafeCoder;\nvar urlSafeCoder = new URLSafeCoder();\nfunction encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n}\nexports.encodeURLSafe = encodeURLSafe;\nfunction decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n}\nexports.decodeURLSafe = decodeURLSafe;\nexports.encodedLength = function (length) {\n return stdCoder.encodedLength(length);\n};\nexports.maxDecodedLength = function (length) {\n return stdCoder.maxDecodedLength(length);\n};\nexports.decodedLength = function (s) {\n return stdCoder.decodedLength(s);\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package utf8 implements UTF-8 encoding and decoding.\n */\nvar INVALID_UTF16 = \"utf8: invalid string\";\nvar INVALID_UTF8 = \"utf8: invalid source encoding\";\n/**\n * Encodes the given string into UTF-8 byte array.\n * Throws if the source string has invalid UTF-16 encoding.\n */\nfunction encode(s) {\n // Calculate result length and allocate output array.\n // encodedLength() also validates string and throws errors,\n // so we don't need repeat validation here.\n var arr = new Uint8Array(encodedLength(s));\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n var c = s.charCodeAt(i);\n if (c < 0x80) {\n arr[pos++] = c;\n }\n else if (c < 0x800) {\n arr[pos++] = 0xc0 | c >> 6;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n else if (c < 0xd800) {\n arr[pos++] = 0xe0 | c >> 12;\n arr[pos++] = 0x80 | (c >> 6) & 0x3f;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n else {\n i++; // get one more character\n c = (c & 0x3ff) << 10;\n c |= s.charCodeAt(i) & 0x3ff;\n c += 0x10000;\n arr[pos++] = 0xf0 | c >> 18;\n arr[pos++] = 0x80 | (c >> 12) & 0x3f;\n arr[pos++] = 0x80 | (c >> 6) & 0x3f;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n }\n return arr;\n}\nexports.encode = encode;\n/**\n * Returns the number of bytes required to encode the given string into UTF-8.\n * Throws if the source string has invalid UTF-16 encoding.\n */\nfunction encodedLength(s) {\n var result = 0;\n for (var i = 0; i < s.length; i++) {\n var c = s.charCodeAt(i);\n if (c < 0x80) {\n result += 1;\n }\n else if (c < 0x800) {\n result += 2;\n }\n else if (c < 0xd800) {\n result += 3;\n }\n else if (c <= 0xdfff) {\n if (i >= s.length - 1) {\n throw new Error(INVALID_UTF16);\n }\n i++; // \"eat\" next character\n result += 4;\n }\n else {\n throw new Error(INVALID_UTF16);\n }\n }\n return result;\n}\nexports.encodedLength = encodedLength;\n/**\n * Decodes the given byte array from UTF-8 into a string.\n * Throws if encoding is invalid.\n */\nfunction decode(arr) {\n var chars = [];\n for (var i = 0; i < arr.length; i++) {\n var b = arr[i];\n if (b & 0x80) {\n var min = void 0;\n if (b < 0xe0) {\n // Need 1 more byte.\n if (i >= arr.length) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n if ((n1 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x1f) << 6 | (n1 & 0x3f);\n min = 0x80;\n }\n else if (b < 0xf0) {\n // Need 2 more bytes.\n if (i >= arr.length - 1) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n var n2 = arr[++i];\n if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x0f) << 12 | (n1 & 0x3f) << 6 | (n2 & 0x3f);\n min = 0x800;\n }\n else if (b < 0xf8) {\n // Need 3 more bytes.\n if (i >= arr.length - 2) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n var n2 = arr[++i];\n var n3 = arr[++i];\n if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80 || (n3 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x0f) << 18 | (n1 & 0x3f) << 12 | (n2 & 0x3f) << 6 | (n3 & 0x3f);\n min = 0x10000;\n }\n else {\n throw new Error(INVALID_UTF8);\n }\n if (b < min || (b >= 0xd800 && b <= 0xdfff)) {\n throw new Error(INVALID_UTF8);\n }\n if (b >= 0x10000) {\n // Surrogate pair.\n if (b > 0x10ffff) {\n throw new Error(INVALID_UTF8);\n }\n b -= 0x10000;\n chars.push(String.fromCharCode(0xd800 | (b >> 10)));\n b = 0xdc00 | (b & 0x3ff);\n }\n }\n chars.push(String.fromCharCode(b));\n }\n return chars.join(\"\");\n}\nexports.decode = decode;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (true) {\n // Node.js.\n crypto = __webpack_require__(4);\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})( true && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(5).default;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/script_receiver_factory.ts\nvar ScriptReceiverFactory = (function () {\n function ScriptReceiverFactory(prefix, name) {\n this.lastId = 0;\n this.prefix = prefix;\n this.name = name;\n }\n ScriptReceiverFactory.prototype.create = function (callback) {\n this.lastId++;\n var number = this.lastId;\n var id = this.prefix + number;\n var name = this.name + '[' + number + ']';\n var called = false;\n var callbackWrapper = function () {\n if (!called) {\n callback.apply(null, arguments);\n called = true;\n }\n };\n this[number] = callbackWrapper;\n return { number: number, id: id, name: name, callback: callbackWrapper };\n };\n ScriptReceiverFactory.prototype.remove = function (receiver) {\n delete this[receiver.number];\n };\n return ScriptReceiverFactory;\n}());\n\nvar ScriptReceivers = new ScriptReceiverFactory('_pusher_script_', 'Pusher.ScriptReceivers');\n\n// CONCATENATED MODULE: ./src/core/defaults.ts\nvar Defaults = {\n VERSION: \"7.4.0\",\n PROTOCOL: 7,\n wsPort: 80,\n wssPort: 443,\n wsPath: '',\n httpHost: 'sockjs.pusher.com',\n httpPort: 80,\n httpsPort: 443,\n httpPath: '/pusher',\n stats_host: 'stats.pusher.com',\n authEndpoint: '/pusher/auth',\n authTransport: 'ajax',\n activityTimeout: 120000,\n pongTimeout: 30000,\n unavailableTimeout: 10000,\n cluster: 'mt1',\n userAuthentication: {\n endpoint: '/pusher/user-auth',\n transport: 'ajax'\n },\n channelAuthorization: {\n endpoint: '/pusher/auth',\n transport: 'ajax'\n },\n cdn_http: \"http://js.pusher.com\",\n cdn_https: \"https://js.pusher.com\",\n dependency_suffix: \"\"\n};\n/* harmony default export */ var defaults = (Defaults);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/dependency_loader.ts\n\n\nvar dependency_loader_DependencyLoader = (function () {\n function DependencyLoader(options) {\n this.options = options;\n this.receivers = options.receivers || ScriptReceivers;\n this.loading = {};\n }\n DependencyLoader.prototype.load = function (name, options, callback) {\n var self = this;\n if (self.loading[name] && self.loading[name].length > 0) {\n self.loading[name].push(callback);\n }\n else {\n self.loading[name] = [callback];\n var request = runtime.createScriptRequest(self.getPath(name, options));\n var receiver = self.receivers.create(function (error) {\n self.receivers.remove(receiver);\n if (self.loading[name]) {\n var callbacks = self.loading[name];\n delete self.loading[name];\n var successCallback = function (wasSuccessful) {\n if (!wasSuccessful) {\n request.cleanup();\n }\n };\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](error, successCallback);\n }\n }\n });\n request.send(receiver);\n }\n };\n DependencyLoader.prototype.getRoot = function (options) {\n var cdn;\n var protocol = runtime.getDocument().location.protocol;\n if ((options && options.useTLS) || protocol === 'https:') {\n cdn = this.options.cdn_https;\n }\n else {\n cdn = this.options.cdn_http;\n }\n return cdn.replace(/\\/*$/, '') + '/' + this.options.version;\n };\n DependencyLoader.prototype.getPath = function (name, options) {\n return this.getRoot(options) + '/' + name + this.options.suffix + '.js';\n };\n return DependencyLoader;\n}());\n/* harmony default export */ var dependency_loader = (dependency_loader_DependencyLoader);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/dependencies.ts\n\n\n\nvar DependenciesReceivers = new ScriptReceiverFactory('_pusher_dependencies', 'Pusher.DependenciesReceivers');\nvar Dependencies = new dependency_loader({\n cdn_http: defaults.cdn_http,\n cdn_https: defaults.cdn_https,\n version: defaults.VERSION,\n suffix: defaults.dependency_suffix,\n receivers: DependenciesReceivers\n});\n\n// CONCATENATED MODULE: ./src/core/utils/url_store.ts\nvar urlStore = {\n baseUrl: 'https://pusher.com',\n urls: {\n authenticationEndpoint: {\n path: '/docs/channels/server_api/authenticating_users'\n },\n authorizationEndpoint: {\n path: '/docs/channels/server_api/authorizing-users/'\n },\n javascriptQuickStart: {\n path: '/docs/javascript_quick_start'\n },\n triggeringClientEvents: {\n path: '/docs/client_api_guide/client_events#trigger-events'\n },\n encryptedChannelSupport: {\n fullUrl: 'https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support'\n }\n }\n};\nvar buildLogSuffix = function (key) {\n var urlPrefix = 'See:';\n var urlObj = urlStore.urls[key];\n if (!urlObj)\n return '';\n var url;\n if (urlObj.fullUrl) {\n url = urlObj.fullUrl;\n }\n else if (urlObj.path) {\n url = urlStore.baseUrl + urlObj.path;\n }\n if (!url)\n return '';\n return urlPrefix + \" \" + url;\n};\n/* harmony default export */ var url_store = ({ buildLogSuffix: buildLogSuffix });\n\n// CONCATENATED MODULE: ./src/core/auth/options.ts\nvar AuthRequestType;\n(function (AuthRequestType) {\n AuthRequestType[\"UserAuthentication\"] = \"user-authentication\";\n AuthRequestType[\"ChannelAuthorization\"] = \"channel-authorization\";\n})(AuthRequestType || (AuthRequestType = {}));\n\n// CONCATENATED MODULE: ./src/core/errors.ts\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar BadEventName = (function (_super) {\n __extends(BadEventName, _super);\n function BadEventName(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return BadEventName;\n}(Error));\n\nvar BadChannelName = (function (_super) {\n __extends(BadChannelName, _super);\n function BadChannelName(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return BadChannelName;\n}(Error));\n\nvar RequestTimedOut = (function (_super) {\n __extends(RequestTimedOut, _super);\n function RequestTimedOut(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return RequestTimedOut;\n}(Error));\n\nvar TransportPriorityTooLow = (function (_super) {\n __extends(TransportPriorityTooLow, _super);\n function TransportPriorityTooLow(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return TransportPriorityTooLow;\n}(Error));\n\nvar TransportClosed = (function (_super) {\n __extends(TransportClosed, _super);\n function TransportClosed(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return TransportClosed;\n}(Error));\n\nvar UnsupportedFeature = (function (_super) {\n __extends(UnsupportedFeature, _super);\n function UnsupportedFeature(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedFeature;\n}(Error));\n\nvar UnsupportedTransport = (function (_super) {\n __extends(UnsupportedTransport, _super);\n function UnsupportedTransport(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedTransport;\n}(Error));\n\nvar UnsupportedStrategy = (function (_super) {\n __extends(UnsupportedStrategy, _super);\n function UnsupportedStrategy(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedStrategy;\n}(Error));\n\nvar HTTPAuthError = (function (_super) {\n __extends(HTTPAuthError, _super);\n function HTTPAuthError(status, msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n _this.status = status;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return HTTPAuthError;\n}(Error));\n\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/auth/xhr_auth.ts\n\n\n\n\nvar ajax = function (context, query, authOptions, authRequestType, callback) {\n var xhr = runtime.createXHR();\n xhr.open('POST', authOptions.endpoint, true);\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n for (var headerName in authOptions.headers) {\n xhr.setRequestHeader(headerName, authOptions.headers[headerName]);\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n var data = void 0;\n var parsed = false;\n try {\n data = JSON.parse(xhr.responseText);\n parsed = true;\n }\n catch (e) {\n callback(new HTTPAuthError(200, \"JSON returned from \" + authRequestType.toString() + \" endpoint was invalid, yet status code was 200. Data was: \" + xhr.responseText), null);\n }\n if (parsed) {\n callback(null, data);\n }\n }\n else {\n var suffix = '';\n switch (authRequestType) {\n case AuthRequestType.UserAuthentication:\n suffix = url_store.buildLogSuffix('authenticationEndpoint');\n break;\n case AuthRequestType.ChannelAuthorization:\n suffix = \"Clients must be authenticated to join private or presence channels. \" + url_store.buildLogSuffix('authorizationEndpoint');\n break;\n }\n callback(new HTTPAuthError(xhr.status, \"Unable to retrieve auth string from \" + authRequestType.toString() + \" endpoint - \" +\n (\"received status: \" + xhr.status + \" from \" + authOptions.endpoint + \". \" + suffix)), null);\n }\n }\n };\n xhr.send(query);\n return xhr;\n};\n/* harmony default export */ var xhr_auth = (ajax);\n\n// CONCATENATED MODULE: ./src/core/base64.ts\nfunction encode(s) {\n return btoa(utob(s));\n}\nvar fromCharCode = String.fromCharCode;\nvar b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nvar b64tab = {};\nfor (var base64_i = 0, l = b64chars.length; base64_i < l; base64_i++) {\n b64tab[b64chars.charAt(base64_i)] = base64_i;\n}\nvar cb_utob = function (c) {\n var cc = c.charCodeAt(0);\n return cc < 0x80\n ? c\n : cc < 0x800\n ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))\n : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) +\n fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) +\n fromCharCode(0x80 | (cc & 0x3f));\n};\nvar utob = function (u) {\n return u.replace(/[^\\x00-\\x7F]/g, cb_utob);\n};\nvar cb_encode = function (ccc) {\n var padlen = [0, 2, 1][ccc.length % 3];\n var ord = (ccc.charCodeAt(0) << 16) |\n ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |\n (ccc.length > 2 ? ccc.charCodeAt(2) : 0);\n var chars = [\n b64chars.charAt(ord >>> 18),\n b64chars.charAt((ord >>> 12) & 63),\n padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n padlen >= 1 ? '=' : b64chars.charAt(ord & 63)\n ];\n return chars.join('');\n};\nvar btoa = window.btoa ||\n function (b) {\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n\n// CONCATENATED MODULE: ./src/core/utils/timers/abstract_timer.ts\nvar Timer = (function () {\n function Timer(set, clear, delay, callback) {\n var _this = this;\n this.clear = clear;\n this.timer = set(function () {\n if (_this.timer) {\n _this.timer = callback(_this.timer);\n }\n }, delay);\n }\n Timer.prototype.isRunning = function () {\n return this.timer !== null;\n };\n Timer.prototype.ensureAborted = function () {\n if (this.timer) {\n this.clear(this.timer);\n this.timer = null;\n }\n };\n return Timer;\n}());\n/* harmony default export */ var abstract_timer = (Timer);\n\n// CONCATENATED MODULE: ./src/core/utils/timers/index.ts\nvar timers_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nfunction timers_clearTimeout(timer) {\n window.clearTimeout(timer);\n}\nfunction timers_clearInterval(timer) {\n window.clearInterval(timer);\n}\nvar OneOffTimer = (function (_super) {\n timers_extends(OneOffTimer, _super);\n function OneOffTimer(delay, callback) {\n return _super.call(this, setTimeout, timers_clearTimeout, delay, function (timer) {\n callback();\n return null;\n }) || this;\n }\n return OneOffTimer;\n}(abstract_timer));\n\nvar PeriodicTimer = (function (_super) {\n timers_extends(PeriodicTimer, _super);\n function PeriodicTimer(delay, callback) {\n return _super.call(this, setInterval, timers_clearInterval, delay, function (timer) {\n callback();\n return timer;\n }) || this;\n }\n return PeriodicTimer;\n}(abstract_timer));\n\n\n// CONCATENATED MODULE: ./src/core/util.ts\n\nvar Util = {\n now: function () {\n if (Date.now) {\n return Date.now();\n }\n else {\n return new Date().valueOf();\n }\n },\n defer: function (callback) {\n return new OneOffTimer(0, callback);\n },\n method: function (name) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var boundArguments = Array.prototype.slice.call(arguments, 1);\n return function (object) {\n return object[name].apply(object, boundArguments.concat(arguments));\n };\n }\n};\n/* harmony default export */ var util = (Util);\n\n// CONCATENATED MODULE: ./src/core/utils/collections.ts\n\n\nfunction extend(target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n for (var i = 0; i < sources.length; i++) {\n var extensions = sources[i];\n for (var property in extensions) {\n if (extensions[property] &&\n extensions[property].constructor &&\n extensions[property].constructor === Object) {\n target[property] = extend(target[property] || {}, extensions[property]);\n }\n else {\n target[property] = extensions[property];\n }\n }\n }\n return target;\n}\nfunction stringify() {\n var m = ['Pusher'];\n for (var i = 0; i < arguments.length; i++) {\n if (typeof arguments[i] === 'string') {\n m.push(arguments[i]);\n }\n else {\n m.push(safeJSONStringify(arguments[i]));\n }\n }\n return m.join(' : ');\n}\nfunction arrayIndexOf(array, item) {\n var nativeIndexOf = Array.prototype.indexOf;\n if (array === null) {\n return -1;\n }\n if (nativeIndexOf && array.indexOf === nativeIndexOf) {\n return array.indexOf(item);\n }\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n}\nfunction objectApply(object, f) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n f(object[key], key, object);\n }\n }\n}\nfunction keys(object) {\n var keys = [];\n objectApply(object, function (_, key) {\n keys.push(key);\n });\n return keys;\n}\nfunction values(object) {\n var values = [];\n objectApply(object, function (value) {\n values.push(value);\n });\n return values;\n}\nfunction apply(array, f, context) {\n for (var i = 0; i < array.length; i++) {\n f.call(context || window, array[i], i, array);\n }\n}\nfunction map(array, f) {\n var result = [];\n for (var i = 0; i < array.length; i++) {\n result.push(f(array[i], i, array, result));\n }\n return result;\n}\nfunction mapObject(object, f) {\n var result = {};\n objectApply(object, function (value, key) {\n result[key] = f(value);\n });\n return result;\n}\nfunction filter(array, test) {\n test =\n test ||\n function (value) {\n return !!value;\n };\n var result = [];\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array, result)) {\n result.push(array[i]);\n }\n }\n return result;\n}\nfunction filterObject(object, test) {\n var result = {};\n objectApply(object, function (value, key) {\n if ((test && test(value, key, object, result)) || Boolean(value)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction flatten(object) {\n var result = [];\n objectApply(object, function (value, key) {\n result.push([key, value]);\n });\n return result;\n}\nfunction any(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array)) {\n return true;\n }\n }\n return false;\n}\nfunction collections_all(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (!test(array[i], i, array)) {\n return false;\n }\n }\n return true;\n}\nfunction encodeParamsObject(data) {\n return mapObject(data, function (value) {\n if (typeof value === 'object') {\n value = safeJSONStringify(value);\n }\n return encodeURIComponent(encode(value.toString()));\n });\n}\nfunction buildQueryString(data) {\n var params = filterObject(data, function (value) {\n return value !== undefined;\n });\n var query = map(flatten(encodeParamsObject(params)), util.method('join', '=')).join('&');\n return query;\n}\nfunction decycleObject(object) {\n var objects = [], paths = [];\n return (function derez(value, path) {\n var i, name, nu;\n switch (typeof value) {\n case 'object':\n if (!value) {\n return null;\n }\n for (i = 0; i < objects.length; i += 1) {\n if (objects[i] === value) {\n return { $ref: paths[i] };\n }\n }\n objects.push(value);\n paths.push(path);\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n nu = [];\n for (i = 0; i < value.length; i += 1) {\n nu[i] = derez(value[i], path + '[' + i + ']');\n }\n }\n else {\n nu = {};\n for (name in value) {\n if (Object.prototype.hasOwnProperty.call(value, name)) {\n nu[name] = derez(value[name], path + '[' + JSON.stringify(name) + ']');\n }\n }\n }\n return nu;\n case 'number':\n case 'string':\n case 'boolean':\n return value;\n }\n })(object, '$');\n}\nfunction safeJSONStringify(source) {\n try {\n return JSON.stringify(source);\n }\n catch (e) {\n return JSON.stringify(decycleObject(source));\n }\n}\n\n// CONCATENATED MODULE: ./src/core/logger.ts\n\n\nvar logger_Logger = (function () {\n function Logger() {\n this.globalLog = function (message) {\n if (window.console && window.console.log) {\n window.console.log(message);\n }\n };\n }\n Logger.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLog, args);\n };\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLogWarn, args);\n };\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLogError, args);\n };\n Logger.prototype.globalLogWarn = function (message) {\n if (window.console && window.console.warn) {\n window.console.warn(message);\n }\n else {\n this.globalLog(message);\n }\n };\n Logger.prototype.globalLogError = function (message) {\n if (window.console && window.console.error) {\n window.console.error(message);\n }\n else {\n this.globalLogWarn(message);\n }\n };\n Logger.prototype.log = function (defaultLoggingFunction) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var message = stringify.apply(this, arguments);\n if (core_pusher.log) {\n core_pusher.log(message);\n }\n else if (core_pusher.logToConsole) {\n var log = defaultLoggingFunction.bind(this);\n log(message);\n }\n };\n return Logger;\n}());\n/* harmony default export */ var logger = (new logger_Logger());\n\n// CONCATENATED MODULE: ./src/runtimes/web/auth/jsonp_auth.ts\n\nvar jsonp = function (context, query, authOptions, authRequestType, callback) {\n if (authOptions.headers !== undefined) {\n logger.warn(\"To send headers with the \" + authRequestType.toString() + \" request, you must use AJAX, rather than JSONP.\");\n }\n var callbackName = context.nextAuthCallbackID.toString();\n context.nextAuthCallbackID++;\n var document = context.getDocument();\n var script = document.createElement('script');\n context.auth_callbacks[callbackName] = function (data) {\n callback(null, data);\n };\n var callback_name = \"Pusher.auth_callbacks['\" + callbackName + \"']\";\n script.src =\n authOptions.endpoint +\n '?callback=' +\n encodeURIComponent(callback_name) +\n '&' +\n query;\n var head = document.getElementsByTagName('head')[0] || document.documentElement;\n head.insertBefore(script, head.firstChild);\n};\n/* harmony default export */ var jsonp_auth = (jsonp);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/script_request.ts\nvar ScriptRequest = (function () {\n function ScriptRequest(src) {\n this.src = src;\n }\n ScriptRequest.prototype.send = function (receiver) {\n var self = this;\n var errorString = 'Error loading ' + self.src;\n self.script = document.createElement('script');\n self.script.id = receiver.id;\n self.script.src = self.src;\n self.script.type = 'text/javascript';\n self.script.charset = 'UTF-8';\n if (self.script.addEventListener) {\n self.script.onerror = function () {\n receiver.callback(errorString);\n };\n self.script.onload = function () {\n receiver.callback(null);\n };\n }\n else {\n self.script.onreadystatechange = function () {\n if (self.script.readyState === 'loaded' ||\n self.script.readyState === 'complete') {\n receiver.callback(null);\n }\n };\n }\n if (self.script.async === undefined &&\n document.attachEvent &&\n /opera/i.test(navigator.userAgent)) {\n self.errorScript = document.createElement('script');\n self.errorScript.id = receiver.id + '_error';\n self.errorScript.text = receiver.name + \"('\" + errorString + \"');\";\n self.script.async = self.errorScript.async = false;\n }\n else {\n self.script.async = true;\n }\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(self.script, head.firstChild);\n if (self.errorScript) {\n head.insertBefore(self.errorScript, self.script.nextSibling);\n }\n };\n ScriptRequest.prototype.cleanup = function () {\n if (this.script) {\n this.script.onload = this.script.onerror = null;\n this.script.onreadystatechange = null;\n }\n if (this.script && this.script.parentNode) {\n this.script.parentNode.removeChild(this.script);\n }\n if (this.errorScript && this.errorScript.parentNode) {\n this.errorScript.parentNode.removeChild(this.errorScript);\n }\n this.script = null;\n this.errorScript = null;\n };\n return ScriptRequest;\n}());\n/* harmony default export */ var script_request = (ScriptRequest);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/jsonp_request.ts\n\n\nvar jsonp_request_JSONPRequest = (function () {\n function JSONPRequest(url, data) {\n this.url = url;\n this.data = data;\n }\n JSONPRequest.prototype.send = function (receiver) {\n if (this.request) {\n return;\n }\n var query = buildQueryString(this.data);\n var url = this.url + '/' + receiver.number + '?' + query;\n this.request = runtime.createScriptRequest(url);\n this.request.send(receiver);\n };\n JSONPRequest.prototype.cleanup = function () {\n if (this.request) {\n this.request.cleanup();\n }\n };\n return JSONPRequest;\n}());\n/* harmony default export */ var jsonp_request = (jsonp_request_JSONPRequest);\n\n// CONCATENATED MODULE: ./src/runtimes/web/timeline/jsonp_timeline.ts\n\n\nvar getAgent = function (sender, useTLS) {\n return function (data, callback) {\n var scheme = 'http' + (useTLS ? 's' : '') + '://';\n var url = scheme + (sender.host || sender.options.host) + sender.options.path;\n var request = runtime.createJSONPRequest(url, data);\n var receiver = runtime.ScriptReceivers.create(function (error, result) {\n ScriptReceivers.remove(receiver);\n request.cleanup();\n if (result && result.host) {\n sender.host = result.host;\n }\n if (callback) {\n callback(error, result);\n }\n });\n request.send(receiver);\n };\n};\nvar jsonp_timeline_jsonp = {\n name: 'jsonp',\n getAgent: getAgent\n};\n/* harmony default export */ var jsonp_timeline = (jsonp_timeline_jsonp);\n\n// CONCATENATED MODULE: ./src/core/transports/url_schemes.ts\n\nfunction getGenericURL(baseScheme, params, path) {\n var scheme = baseScheme + (params.useTLS ? 's' : '');\n var host = params.useTLS ? params.hostTLS : params.hostNonTLS;\n return scheme + '://' + host + path;\n}\nfunction getGenericPath(key, queryString) {\n var path = '/app/' + key;\n var query = '?protocol=' +\n defaults.PROTOCOL +\n '&client=js' +\n '&version=' +\n defaults.VERSION +\n (queryString ? '&' + queryString : '');\n return path + query;\n}\nvar ws = {\n getInitial: function (key, params) {\n var path = (params.httpPath || '') + getGenericPath(key, 'flash=false');\n return getGenericURL('ws', params, path);\n }\n};\nvar http = {\n getInitial: function (key, params) {\n var path = (params.httpPath || '/pusher') + getGenericPath(key);\n return getGenericURL('http', params, path);\n }\n};\nvar sockjs = {\n getInitial: function (key, params) {\n return getGenericURL('http', params, params.httpPath || '/pusher');\n },\n getPath: function (key, params) {\n return getGenericPath(key);\n }\n};\n\n// CONCATENATED MODULE: ./src/core/events/callback_registry.ts\n\nvar callback_registry_CallbackRegistry = (function () {\n function CallbackRegistry() {\n this._callbacks = {};\n }\n CallbackRegistry.prototype.get = function (name) {\n return this._callbacks[prefix(name)];\n };\n CallbackRegistry.prototype.add = function (name, callback, context) {\n var prefixedEventName = prefix(name);\n this._callbacks[prefixedEventName] =\n this._callbacks[prefixedEventName] || [];\n this._callbacks[prefixedEventName].push({\n fn: callback,\n context: context\n });\n };\n CallbackRegistry.prototype.remove = function (name, callback, context) {\n if (!name && !callback && !context) {\n this._callbacks = {};\n return;\n }\n var names = name ? [prefix(name)] : keys(this._callbacks);\n if (callback || context) {\n this.removeCallback(names, callback, context);\n }\n else {\n this.removeAllCallbacks(names);\n }\n };\n CallbackRegistry.prototype.removeCallback = function (names, callback, context) {\n apply(names, function (name) {\n this._callbacks[name] = filter(this._callbacks[name] || [], function (binding) {\n return ((callback && callback !== binding.fn) ||\n (context && context !== binding.context));\n });\n if (this._callbacks[name].length === 0) {\n delete this._callbacks[name];\n }\n }, this);\n };\n CallbackRegistry.prototype.removeAllCallbacks = function (names) {\n apply(names, function (name) {\n delete this._callbacks[name];\n }, this);\n };\n return CallbackRegistry;\n}());\n/* harmony default export */ var callback_registry = (callback_registry_CallbackRegistry);\nfunction prefix(name) {\n return '_' + name;\n}\n\n// CONCATENATED MODULE: ./src/core/events/dispatcher.ts\n\n\nvar dispatcher_Dispatcher = (function () {\n function Dispatcher(failThrough) {\n this.callbacks = new callback_registry();\n this.global_callbacks = [];\n this.failThrough = failThrough;\n }\n Dispatcher.prototype.bind = function (eventName, callback, context) {\n this.callbacks.add(eventName, callback, context);\n return this;\n };\n Dispatcher.prototype.bind_global = function (callback) {\n this.global_callbacks.push(callback);\n return this;\n };\n Dispatcher.prototype.unbind = function (eventName, callback, context) {\n this.callbacks.remove(eventName, callback, context);\n return this;\n };\n Dispatcher.prototype.unbind_global = function (callback) {\n if (!callback) {\n this.global_callbacks = [];\n return this;\n }\n this.global_callbacks = filter(this.global_callbacks || [], function (c) { return c !== callback; });\n return this;\n };\n Dispatcher.prototype.unbind_all = function () {\n this.unbind();\n this.unbind_global();\n return this;\n };\n Dispatcher.prototype.emit = function (eventName, data, metadata) {\n for (var i = 0; i < this.global_callbacks.length; i++) {\n this.global_callbacks[i](eventName, data);\n }\n var callbacks = this.callbacks.get(eventName);\n var args = [];\n if (metadata) {\n args.push(data, metadata);\n }\n else if (data) {\n args.push(data);\n }\n if (callbacks && callbacks.length > 0) {\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].fn.apply(callbacks[i].context || window, args);\n }\n }\n else if (this.failThrough) {\n this.failThrough(eventName, data);\n }\n return this;\n };\n return Dispatcher;\n}());\n/* harmony default export */ var dispatcher = (dispatcher_Dispatcher);\n\n// CONCATENATED MODULE: ./src/core/transports/transport_connection.ts\nvar transport_connection_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar transport_connection_TransportConnection = (function (_super) {\n transport_connection_extends(TransportConnection, _super);\n function TransportConnection(hooks, name, priority, key, options) {\n var _this = _super.call(this) || this;\n _this.initialize = runtime.transportConnectionInitializer;\n _this.hooks = hooks;\n _this.name = name;\n _this.priority = priority;\n _this.key = key;\n _this.options = options;\n _this.state = 'new';\n _this.timeline = options.timeline;\n _this.activityTimeout = options.activityTimeout;\n _this.id = _this.timeline.generateUniqueID();\n return _this;\n }\n TransportConnection.prototype.handlesActivityChecks = function () {\n return Boolean(this.hooks.handlesActivityChecks);\n };\n TransportConnection.prototype.supportsPing = function () {\n return Boolean(this.hooks.supportsPing);\n };\n TransportConnection.prototype.connect = function () {\n var _this = this;\n if (this.socket || this.state !== 'initialized') {\n return false;\n }\n var url = this.hooks.urls.getInitial(this.key, this.options);\n try {\n this.socket = this.hooks.getSocket(url, this.options);\n }\n catch (e) {\n util.defer(function () {\n _this.onError(e);\n _this.changeState('closed');\n });\n return false;\n }\n this.bindListeners();\n logger.debug('Connecting', { transport: this.name, url: url });\n this.changeState('connecting');\n return true;\n };\n TransportConnection.prototype.close = function () {\n if (this.socket) {\n this.socket.close();\n return true;\n }\n else {\n return false;\n }\n };\n TransportConnection.prototype.send = function (data) {\n var _this = this;\n if (this.state === 'open') {\n util.defer(function () {\n if (_this.socket) {\n _this.socket.send(data);\n }\n });\n return true;\n }\n else {\n return false;\n }\n };\n TransportConnection.prototype.ping = function () {\n if (this.state === 'open' && this.supportsPing()) {\n this.socket.ping();\n }\n };\n TransportConnection.prototype.onOpen = function () {\n if (this.hooks.beforeOpen) {\n this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options));\n }\n this.changeState('open');\n this.socket.onopen = undefined;\n };\n TransportConnection.prototype.onError = function (error) {\n this.emit('error', { type: 'WebSocketError', error: error });\n this.timeline.error(this.buildTimelineMessage({ error: error.toString() }));\n };\n TransportConnection.prototype.onClose = function (closeEvent) {\n if (closeEvent) {\n this.changeState('closed', {\n code: closeEvent.code,\n reason: closeEvent.reason,\n wasClean: closeEvent.wasClean\n });\n }\n else {\n this.changeState('closed');\n }\n this.unbindListeners();\n this.socket = undefined;\n };\n TransportConnection.prototype.onMessage = function (message) {\n this.emit('message', message);\n };\n TransportConnection.prototype.onActivity = function () {\n this.emit('activity');\n };\n TransportConnection.prototype.bindListeners = function () {\n var _this = this;\n this.socket.onopen = function () {\n _this.onOpen();\n };\n this.socket.onerror = function (error) {\n _this.onError(error);\n };\n this.socket.onclose = function (closeEvent) {\n _this.onClose(closeEvent);\n };\n this.socket.onmessage = function (message) {\n _this.onMessage(message);\n };\n if (this.supportsPing()) {\n this.socket.onactivity = function () {\n _this.onActivity();\n };\n }\n };\n TransportConnection.prototype.unbindListeners = function () {\n if (this.socket) {\n this.socket.onopen = undefined;\n this.socket.onerror = undefined;\n this.socket.onclose = undefined;\n this.socket.onmessage = undefined;\n if (this.supportsPing()) {\n this.socket.onactivity = undefined;\n }\n }\n };\n TransportConnection.prototype.changeState = function (state, params) {\n this.state = state;\n this.timeline.info(this.buildTimelineMessage({\n state: state,\n params: params\n }));\n this.emit(state, params);\n };\n TransportConnection.prototype.buildTimelineMessage = function (message) {\n return extend({ cid: this.id }, message);\n };\n return TransportConnection;\n}(dispatcher));\n/* harmony default export */ var transport_connection = (transport_connection_TransportConnection);\n\n// CONCATENATED MODULE: ./src/core/transports/transport.ts\n\nvar transport_Transport = (function () {\n function Transport(hooks) {\n this.hooks = hooks;\n }\n Transport.prototype.isSupported = function (environment) {\n return this.hooks.isSupported(environment);\n };\n Transport.prototype.createConnection = function (name, priority, key, options) {\n return new transport_connection(this.hooks, name, priority, key, options);\n };\n return Transport;\n}());\n/* harmony default export */ var transports_transport = (transport_Transport);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/transports/transports.ts\n\n\n\n\nvar WSTransport = new transports_transport({\n urls: ws,\n handlesActivityChecks: false,\n supportsPing: false,\n isInitialized: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n isSupported: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n getSocket: function (url) {\n return runtime.createWebSocket(url);\n }\n});\nvar httpConfiguration = {\n urls: http,\n handlesActivityChecks: false,\n supportsPing: true,\n isInitialized: function () {\n return true;\n }\n};\nvar streamingConfiguration = extend({\n getSocket: function (url) {\n return runtime.HTTPFactory.createStreamingSocket(url);\n }\n}, httpConfiguration);\nvar pollingConfiguration = extend({\n getSocket: function (url) {\n return runtime.HTTPFactory.createPollingSocket(url);\n }\n}, httpConfiguration);\nvar xhrConfiguration = {\n isSupported: function () {\n return runtime.isXHRSupported();\n }\n};\nvar XHRStreamingTransport = new transports_transport((extend({}, streamingConfiguration, xhrConfiguration)));\nvar XHRPollingTransport = new transports_transport(extend({}, pollingConfiguration, xhrConfiguration));\nvar Transports = {\n ws: WSTransport,\n xhr_streaming: XHRStreamingTransport,\n xhr_polling: XHRPollingTransport\n};\n/* harmony default export */ var transports = (Transports);\n\n// CONCATENATED MODULE: ./src/runtimes/web/transports/transports.ts\n\n\n\n\n\n\nvar SockJSTransport = new transports_transport({\n file: 'sockjs',\n urls: sockjs,\n handlesActivityChecks: true,\n supportsPing: false,\n isSupported: function () {\n return true;\n },\n isInitialized: function () {\n return window.SockJS !== undefined;\n },\n getSocket: function (url, options) {\n return new window.SockJS(url, null, {\n js_path: Dependencies.getPath('sockjs', {\n useTLS: options.useTLS\n }),\n ignore_null_origin: options.ignoreNullOrigin\n });\n },\n beforeOpen: function (socket, path) {\n socket.send(JSON.stringify({\n path: path\n }));\n }\n});\nvar xdrConfiguration = {\n isSupported: function (environment) {\n var yes = runtime.isXDRSupported(environment.useTLS);\n return yes;\n }\n};\nvar XDRStreamingTransport = new transports_transport((extend({}, streamingConfiguration, xdrConfiguration)));\nvar XDRPollingTransport = new transports_transport(extend({}, pollingConfiguration, xdrConfiguration));\ntransports.xdr_streaming = XDRStreamingTransport;\ntransports.xdr_polling = XDRPollingTransport;\ntransports.sockjs = SockJSTransport;\n/* harmony default export */ var transports_transports = (transports);\n\n// CONCATENATED MODULE: ./src/runtimes/web/net_info.ts\nvar net_info_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar NetInfo = (function (_super) {\n net_info_extends(NetInfo, _super);\n function NetInfo() {\n var _this = _super.call(this) || this;\n var self = _this;\n if (window.addEventListener !== undefined) {\n window.addEventListener('online', function () {\n self.emit('online');\n }, false);\n window.addEventListener('offline', function () {\n self.emit('offline');\n }, false);\n }\n return _this;\n }\n NetInfo.prototype.isOnline = function () {\n if (window.navigator.onLine === undefined) {\n return true;\n }\n else {\n return window.navigator.onLine;\n }\n };\n return NetInfo;\n}(dispatcher));\n\nvar net_info_Network = new NetInfo();\n\n// CONCATENATED MODULE: ./src/core/transports/assistant_to_the_transport_manager.ts\n\n\nvar assistant_to_the_transport_manager_AssistantToTheTransportManager = (function () {\n function AssistantToTheTransportManager(manager, transport, options) {\n this.manager = manager;\n this.transport = transport;\n this.minPingDelay = options.minPingDelay;\n this.maxPingDelay = options.maxPingDelay;\n this.pingDelay = undefined;\n }\n AssistantToTheTransportManager.prototype.createConnection = function (name, priority, key, options) {\n var _this = this;\n options = extend({}, options, {\n activityTimeout: this.pingDelay\n });\n var connection = this.transport.createConnection(name, priority, key, options);\n var openTimestamp = null;\n var onOpen = function () {\n connection.unbind('open', onOpen);\n connection.bind('closed', onClosed);\n openTimestamp = util.now();\n };\n var onClosed = function (closeEvent) {\n connection.unbind('closed', onClosed);\n if (closeEvent.code === 1002 || closeEvent.code === 1003) {\n _this.manager.reportDeath();\n }\n else if (!closeEvent.wasClean && openTimestamp) {\n var lifespan = util.now() - openTimestamp;\n if (lifespan < 2 * _this.maxPingDelay) {\n _this.manager.reportDeath();\n _this.pingDelay = Math.max(lifespan / 2, _this.minPingDelay);\n }\n }\n };\n connection.bind('open', onOpen);\n return connection;\n };\n AssistantToTheTransportManager.prototype.isSupported = function (environment) {\n return this.manager.isAlive() && this.transport.isSupported(environment);\n };\n return AssistantToTheTransportManager;\n}());\n/* harmony default export */ var assistant_to_the_transport_manager = (assistant_to_the_transport_manager_AssistantToTheTransportManager);\n\n// CONCATENATED MODULE: ./src/core/connection/protocol/protocol.ts\nvar Protocol = {\n decodeMessage: function (messageEvent) {\n try {\n var messageData = JSON.parse(messageEvent.data);\n var pusherEventData = messageData.data;\n if (typeof pusherEventData === 'string') {\n try {\n pusherEventData = JSON.parse(messageData.data);\n }\n catch (e) { }\n }\n var pusherEvent = {\n event: messageData.event,\n channel: messageData.channel,\n data: pusherEventData\n };\n if (messageData.user_id) {\n pusherEvent.user_id = messageData.user_id;\n }\n return pusherEvent;\n }\n catch (e) {\n throw { type: 'MessageParseError', error: e, data: messageEvent.data };\n }\n },\n encodeMessage: function (event) {\n return JSON.stringify(event);\n },\n processHandshake: function (messageEvent) {\n var message = Protocol.decodeMessage(messageEvent);\n if (message.event === 'pusher:connection_established') {\n if (!message.data.activity_timeout) {\n throw 'No activity timeout specified in handshake';\n }\n return {\n action: 'connected',\n id: message.data.socket_id,\n activityTimeout: message.data.activity_timeout * 1000\n };\n }\n else if (message.event === 'pusher:error') {\n return {\n action: this.getCloseAction(message.data),\n error: this.getCloseError(message.data)\n };\n }\n else {\n throw 'Invalid handshake';\n }\n },\n getCloseAction: function (closeEvent) {\n if (closeEvent.code < 4000) {\n if (closeEvent.code >= 1002 && closeEvent.code <= 1004) {\n return 'backoff';\n }\n else {\n return null;\n }\n }\n else if (closeEvent.code === 4000) {\n return 'tls_only';\n }\n else if (closeEvent.code < 4100) {\n return 'refused';\n }\n else if (closeEvent.code < 4200) {\n return 'backoff';\n }\n else if (closeEvent.code < 4300) {\n return 'retry';\n }\n else {\n return 'refused';\n }\n },\n getCloseError: function (closeEvent) {\n if (closeEvent.code !== 1000 && closeEvent.code !== 1001) {\n return {\n type: 'PusherError',\n data: {\n code: closeEvent.code,\n message: closeEvent.reason || closeEvent.message\n }\n };\n }\n else {\n return null;\n }\n }\n};\n/* harmony default export */ var protocol_protocol = (Protocol);\n\n// CONCATENATED MODULE: ./src/core/connection/connection.ts\nvar connection_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar connection_Connection = (function (_super) {\n connection_extends(Connection, _super);\n function Connection(id, transport) {\n var _this = _super.call(this) || this;\n _this.id = id;\n _this.transport = transport;\n _this.activityTimeout = transport.activityTimeout;\n _this.bindListeners();\n return _this;\n }\n Connection.prototype.handlesActivityChecks = function () {\n return this.transport.handlesActivityChecks();\n };\n Connection.prototype.send = function (data) {\n return this.transport.send(data);\n };\n Connection.prototype.send_event = function (name, data, channel) {\n var event = { event: name, data: data };\n if (channel) {\n event.channel = channel;\n }\n logger.debug('Event sent', event);\n return this.send(protocol_protocol.encodeMessage(event));\n };\n Connection.prototype.ping = function () {\n if (this.transport.supportsPing()) {\n this.transport.ping();\n }\n else {\n this.send_event('pusher:ping', {});\n }\n };\n Connection.prototype.close = function () {\n this.transport.close();\n };\n Connection.prototype.bindListeners = function () {\n var _this = this;\n var listeners = {\n message: function (messageEvent) {\n var pusherEvent;\n try {\n pusherEvent = protocol_protocol.decodeMessage(messageEvent);\n }\n catch (e) {\n _this.emit('error', {\n type: 'MessageParseError',\n error: e,\n data: messageEvent.data\n });\n }\n if (pusherEvent !== undefined) {\n logger.debug('Event recd', pusherEvent);\n switch (pusherEvent.event) {\n case 'pusher:error':\n _this.emit('error', {\n type: 'PusherError',\n data: pusherEvent.data\n });\n break;\n case 'pusher:ping':\n _this.emit('ping');\n break;\n case 'pusher:pong':\n _this.emit('pong');\n break;\n }\n _this.emit('message', pusherEvent);\n }\n },\n activity: function () {\n _this.emit('activity');\n },\n error: function (error) {\n _this.emit('error', error);\n },\n closed: function (closeEvent) {\n unbindListeners();\n if (closeEvent && closeEvent.code) {\n _this.handleCloseEvent(closeEvent);\n }\n _this.transport = null;\n _this.emit('closed');\n }\n };\n var unbindListeners = function () {\n objectApply(listeners, function (listener, event) {\n _this.transport.unbind(event, listener);\n });\n };\n objectApply(listeners, function (listener, event) {\n _this.transport.bind(event, listener);\n });\n };\n Connection.prototype.handleCloseEvent = function (closeEvent) {\n var action = protocol_protocol.getCloseAction(closeEvent);\n var error = protocol_protocol.getCloseError(closeEvent);\n if (error) {\n this.emit('error', error);\n }\n if (action) {\n this.emit(action, { action: action, error: error });\n }\n };\n return Connection;\n}(dispatcher));\n/* harmony default export */ var connection_connection = (connection_Connection);\n\n// CONCATENATED MODULE: ./src/core/connection/handshake/index.ts\n\n\n\nvar handshake_Handshake = (function () {\n function Handshake(transport, callback) {\n this.transport = transport;\n this.callback = callback;\n this.bindListeners();\n }\n Handshake.prototype.close = function () {\n this.unbindListeners();\n this.transport.close();\n };\n Handshake.prototype.bindListeners = function () {\n var _this = this;\n this.onMessage = function (m) {\n _this.unbindListeners();\n var result;\n try {\n result = protocol_protocol.processHandshake(m);\n }\n catch (e) {\n _this.finish('error', { error: e });\n _this.transport.close();\n return;\n }\n if (result.action === 'connected') {\n _this.finish('connected', {\n connection: new connection_connection(result.id, _this.transport),\n activityTimeout: result.activityTimeout\n });\n }\n else {\n _this.finish(result.action, { error: result.error });\n _this.transport.close();\n }\n };\n this.onClosed = function (closeEvent) {\n _this.unbindListeners();\n var action = protocol_protocol.getCloseAction(closeEvent) || 'backoff';\n var error = protocol_protocol.getCloseError(closeEvent);\n _this.finish(action, { error: error });\n };\n this.transport.bind('message', this.onMessage);\n this.transport.bind('closed', this.onClosed);\n };\n Handshake.prototype.unbindListeners = function () {\n this.transport.unbind('message', this.onMessage);\n this.transport.unbind('closed', this.onClosed);\n };\n Handshake.prototype.finish = function (action, params) {\n this.callback(extend({ transport: this.transport, action: action }, params));\n };\n return Handshake;\n}());\n/* harmony default export */ var connection_handshake = (handshake_Handshake);\n\n// CONCATENATED MODULE: ./src/core/timeline/timeline_sender.ts\n\nvar timeline_sender_TimelineSender = (function () {\n function TimelineSender(timeline, options) {\n this.timeline = timeline;\n this.options = options || {};\n }\n TimelineSender.prototype.send = function (useTLS, callback) {\n if (this.timeline.isEmpty()) {\n return;\n }\n this.timeline.send(runtime.TimelineTransport.getAgent(this, useTLS), callback);\n };\n return TimelineSender;\n}());\n/* harmony default export */ var timeline_sender = (timeline_sender_TimelineSender);\n\n// CONCATENATED MODULE: ./src/core/channels/channel.ts\nvar channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar channel_Channel = (function (_super) {\n channel_extends(Channel, _super);\n function Channel(name, pusher) {\n var _this = _super.call(this, function (event, data) {\n logger.debug('No callbacks on ' + name + ' for ' + event);\n }) || this;\n _this.name = name;\n _this.pusher = pusher;\n _this.subscribed = false;\n _this.subscriptionPending = false;\n _this.subscriptionCancelled = false;\n return _this;\n }\n Channel.prototype.authorize = function (socketId, callback) {\n return callback(null, { auth: '' });\n };\n Channel.prototype.trigger = function (event, data) {\n if (event.indexOf('client-') !== 0) {\n throw new BadEventName(\"Event '\" + event + \"' does not start with 'client-'\");\n }\n if (!this.subscribed) {\n var suffix = url_store.buildLogSuffix('triggeringClientEvents');\n logger.warn(\"Client event triggered before channel 'subscription_succeeded' event . \" + suffix);\n }\n return this.pusher.send_event(event, data, this.name);\n };\n Channel.prototype.disconnect = function () {\n this.subscribed = false;\n this.subscriptionPending = false;\n };\n Channel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName === 'pusher_internal:subscription_succeeded') {\n this.handleSubscriptionSucceededEvent(event);\n }\n else if (eventName === 'pusher_internal:subscription_count') {\n this.handleSubscriptionCountEvent(event);\n }\n else if (eventName.indexOf('pusher_internal:') !== 0) {\n var metadata = {};\n this.emit(eventName, data, metadata);\n }\n };\n Channel.prototype.handleSubscriptionSucceededEvent = function (event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.emit('pusher:subscription_succeeded', event.data);\n }\n };\n Channel.prototype.handleSubscriptionCountEvent = function (event) {\n if (event.data.subscription_count) {\n this.subscriptionCount = event.data.subscription_count;\n }\n this.emit('pusher:subscription_count', event.data);\n };\n Channel.prototype.subscribe = function () {\n var _this = this;\n if (this.subscribed) {\n return;\n }\n this.subscriptionPending = true;\n this.subscriptionCancelled = false;\n this.authorize(this.pusher.connection.socket_id, function (error, data) {\n if (error) {\n _this.subscriptionPending = false;\n logger.error(error.toString());\n _this.emit('pusher:subscription_error', Object.assign({}, {\n type: 'AuthError',\n error: error.message\n }, error instanceof HTTPAuthError ? { status: error.status } : {}));\n }\n else {\n _this.pusher.send_event('pusher:subscribe', {\n auth: data.auth,\n channel_data: data.channel_data,\n channel: _this.name\n });\n }\n });\n };\n Channel.prototype.unsubscribe = function () {\n this.subscribed = false;\n this.pusher.send_event('pusher:unsubscribe', {\n channel: this.name\n });\n };\n Channel.prototype.cancelSubscription = function () {\n this.subscriptionCancelled = true;\n };\n Channel.prototype.reinstateSubscription = function () {\n this.subscriptionCancelled = false;\n };\n return Channel;\n}(dispatcher));\n/* harmony default export */ var channels_channel = (channel_Channel);\n\n// CONCATENATED MODULE: ./src/core/channels/private_channel.ts\nvar private_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar PrivateChannel = (function (_super) {\n private_channel_extends(PrivateChannel, _super);\n function PrivateChannel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrivateChannel.prototype.authorize = function (socketId, callback) {\n return this.pusher.config.channelAuthorizer({\n channelName: this.name,\n socketId: socketId\n }, callback);\n };\n return PrivateChannel;\n}(channels_channel));\n/* harmony default export */ var private_channel = (PrivateChannel);\n\n// CONCATENATED MODULE: ./src/core/channels/members.ts\n\nvar members_Members = (function () {\n function Members() {\n this.reset();\n }\n Members.prototype.get = function (id) {\n if (Object.prototype.hasOwnProperty.call(this.members, id)) {\n return {\n id: id,\n info: this.members[id]\n };\n }\n else {\n return null;\n }\n };\n Members.prototype.each = function (callback) {\n var _this = this;\n objectApply(this.members, function (member, id) {\n callback(_this.get(id));\n });\n };\n Members.prototype.setMyID = function (id) {\n this.myID = id;\n };\n Members.prototype.onSubscription = function (subscriptionData) {\n this.members = subscriptionData.presence.hash;\n this.count = subscriptionData.presence.count;\n this.me = this.get(this.myID);\n };\n Members.prototype.addMember = function (memberData) {\n if (this.get(memberData.user_id) === null) {\n this.count++;\n }\n this.members[memberData.user_id] = memberData.user_info;\n return this.get(memberData.user_id);\n };\n Members.prototype.removeMember = function (memberData) {\n var member = this.get(memberData.user_id);\n if (member) {\n delete this.members[memberData.user_id];\n this.count--;\n }\n return member;\n };\n Members.prototype.reset = function () {\n this.members = {};\n this.count = 0;\n this.myID = null;\n this.me = null;\n };\n return Members;\n}());\n/* harmony default export */ var members = (members_Members);\n\n// CONCATENATED MODULE: ./src/core/channels/presence_channel.ts\nvar presence_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\nvar presence_channel_PresenceChannel = (function (_super) {\n presence_channel_extends(PresenceChannel, _super);\n function PresenceChannel(name, pusher) {\n var _this = _super.call(this, name, pusher) || this;\n _this.members = new members();\n return _this;\n }\n PresenceChannel.prototype.authorize = function (socketId, callback) {\n var _this = this;\n _super.prototype.authorize.call(this, socketId, function (error, authData) { return __awaiter(_this, void 0, void 0, function () {\n var channelData, suffix;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!error) return [3, 3];\n authData = authData;\n if (!(authData.channel_data != null)) return [3, 1];\n channelData = JSON.parse(authData.channel_data);\n this.members.setMyID(channelData.user_id);\n return [3, 3];\n case 1: return [4, this.pusher.user.signinDonePromise];\n case 2:\n _a.sent();\n if (this.pusher.user.user_data != null) {\n this.members.setMyID(this.pusher.user.user_data.id);\n }\n else {\n suffix = url_store.buildLogSuffix('authorizationEndpoint');\n logger.error(\"Invalid auth response for channel '\" + this.name + \"', \" +\n (\"expected 'channel_data' field. \" + suffix + \", \") +\n \"or the user should be signed in.\");\n callback('Invalid auth response');\n return [2];\n }\n _a.label = 3;\n case 3:\n callback(error, authData);\n return [2];\n }\n });\n }); });\n };\n PresenceChannel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n if (eventName.indexOf('pusher_internal:') === 0) {\n this.handleInternalEvent(event);\n }\n else {\n var data = event.data;\n var metadata = {};\n if (event.user_id) {\n metadata.user_id = event.user_id;\n }\n this.emit(eventName, data, metadata);\n }\n };\n PresenceChannel.prototype.handleInternalEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n switch (eventName) {\n case 'pusher_internal:subscription_succeeded':\n this.handleSubscriptionSucceededEvent(event);\n break;\n case 'pusher_internal:subscription_count':\n this.handleSubscriptionCountEvent(event);\n break;\n case 'pusher_internal:member_added':\n var addedMember = this.members.addMember(data);\n this.emit('pusher:member_added', addedMember);\n break;\n case 'pusher_internal:member_removed':\n var removedMember = this.members.removeMember(data);\n if (removedMember) {\n this.emit('pusher:member_removed', removedMember);\n }\n break;\n }\n };\n PresenceChannel.prototype.handleSubscriptionSucceededEvent = function (event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.members.onSubscription(event.data);\n this.emit('pusher:subscription_succeeded', this.members);\n }\n };\n PresenceChannel.prototype.disconnect = function () {\n this.members.reset();\n _super.prototype.disconnect.call(this);\n };\n return PresenceChannel;\n}(private_channel));\n/* harmony default export */ var presence_channel = (presence_channel_PresenceChannel);\n\n// EXTERNAL MODULE: ./node_modules/@stablelib/utf8/lib/utf8.js\nvar utf8 = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./node_modules/@stablelib/base64/lib/base64.js\nvar base64 = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./src/core/channels/encrypted_channel.ts\nvar encrypted_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar encrypted_channel_EncryptedChannel = (function (_super) {\n encrypted_channel_extends(EncryptedChannel, _super);\n function EncryptedChannel(name, pusher, nacl) {\n var _this = _super.call(this, name, pusher) || this;\n _this.key = null;\n _this.nacl = nacl;\n return _this;\n }\n EncryptedChannel.prototype.authorize = function (socketId, callback) {\n var _this = this;\n _super.prototype.authorize.call(this, socketId, function (error, authData) {\n if (error) {\n callback(error, authData);\n return;\n }\n var sharedSecret = authData['shared_secret'];\n if (!sharedSecret) {\n callback(new Error(\"No shared_secret key in auth payload for encrypted channel: \" + _this.name), null);\n return;\n }\n _this.key = Object(base64[\"decode\"])(sharedSecret);\n delete authData['shared_secret'];\n callback(null, authData);\n });\n };\n EncryptedChannel.prototype.trigger = function (event, data) {\n throw new UnsupportedFeature('Client events are not currently supported for encrypted channels');\n };\n EncryptedChannel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName.indexOf('pusher_internal:') === 0 ||\n eventName.indexOf('pusher:') === 0) {\n _super.prototype.handleEvent.call(this, event);\n return;\n }\n this.handleEncryptedEvent(eventName, data);\n };\n EncryptedChannel.prototype.handleEncryptedEvent = function (event, data) {\n var _this = this;\n if (!this.key) {\n logger.debug('Received encrypted event before key has been retrieved from the authEndpoint');\n return;\n }\n if (!data.ciphertext || !data.nonce) {\n logger.error('Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: ' +\n data);\n return;\n }\n var cipherText = Object(base64[\"decode\"])(data.ciphertext);\n if (cipherText.length < this.nacl.secretbox.overheadLength) {\n logger.error(\"Expected encrypted event ciphertext length to be \" + this.nacl.secretbox.overheadLength + \", got: \" + cipherText.length);\n return;\n }\n var nonce = Object(base64[\"decode\"])(data.nonce);\n if (nonce.length < this.nacl.secretbox.nonceLength) {\n logger.error(\"Expected encrypted event nonce length to be \" + this.nacl.secretbox.nonceLength + \", got: \" + nonce.length);\n return;\n }\n var bytes = this.nacl.secretbox.open(cipherText, nonce, this.key);\n if (bytes === null) {\n logger.debug('Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint...');\n this.authorize(this.pusher.connection.socket_id, function (error, authData) {\n if (error) {\n logger.error(\"Failed to make a request to the authEndpoint: \" + authData + \". Unable to fetch new key, so dropping encrypted event\");\n return;\n }\n bytes = _this.nacl.secretbox.open(cipherText, nonce, _this.key);\n if (bytes === null) {\n logger.error(\"Failed to decrypt event with new key. Dropping encrypted event\");\n return;\n }\n _this.emit(event, _this.getDataToEmit(bytes));\n return;\n });\n return;\n }\n this.emit(event, this.getDataToEmit(bytes));\n };\n EncryptedChannel.prototype.getDataToEmit = function (bytes) {\n var raw = Object(utf8[\"decode\"])(bytes);\n try {\n return JSON.parse(raw);\n }\n catch (_a) {\n return raw;\n }\n };\n return EncryptedChannel;\n}(private_channel));\n/* harmony default export */ var encrypted_channel = (encrypted_channel_EncryptedChannel);\n\n// CONCATENATED MODULE: ./src/core/connection/connection_manager.ts\nvar connection_manager_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar connection_manager_ConnectionManager = (function (_super) {\n connection_manager_extends(ConnectionManager, _super);\n function ConnectionManager(key, options) {\n var _this = _super.call(this) || this;\n _this.state = 'initialized';\n _this.connection = null;\n _this.key = key;\n _this.options = options;\n _this.timeline = _this.options.timeline;\n _this.usingTLS = _this.options.useTLS;\n _this.errorCallbacks = _this.buildErrorCallbacks();\n _this.connectionCallbacks = _this.buildConnectionCallbacks(_this.errorCallbacks);\n _this.handshakeCallbacks = _this.buildHandshakeCallbacks(_this.errorCallbacks);\n var Network = runtime.getNetwork();\n Network.bind('online', function () {\n _this.timeline.info({ netinfo: 'online' });\n if (_this.state === 'connecting' || _this.state === 'unavailable') {\n _this.retryIn(0);\n }\n });\n Network.bind('offline', function () {\n _this.timeline.info({ netinfo: 'offline' });\n if (_this.connection) {\n _this.sendActivityCheck();\n }\n });\n _this.updateStrategy();\n return _this;\n }\n ConnectionManager.prototype.connect = function () {\n if (this.connection || this.runner) {\n return;\n }\n if (!this.strategy.isSupported()) {\n this.updateState('failed');\n return;\n }\n this.updateState('connecting');\n this.startConnecting();\n this.setUnavailableTimer();\n };\n ConnectionManager.prototype.send = function (data) {\n if (this.connection) {\n return this.connection.send(data);\n }\n else {\n return false;\n }\n };\n ConnectionManager.prototype.send_event = function (name, data, channel) {\n if (this.connection) {\n return this.connection.send_event(name, data, channel);\n }\n else {\n return false;\n }\n };\n ConnectionManager.prototype.disconnect = function () {\n this.disconnectInternally();\n this.updateState('disconnected');\n };\n ConnectionManager.prototype.isUsingTLS = function () {\n return this.usingTLS;\n };\n ConnectionManager.prototype.startConnecting = function () {\n var _this = this;\n var callback = function (error, handshake) {\n if (error) {\n _this.runner = _this.strategy.connect(0, callback);\n }\n else {\n if (handshake.action === 'error') {\n _this.emit('error', {\n type: 'HandshakeError',\n error: handshake.error\n });\n _this.timeline.error({ handshakeError: handshake.error });\n }\n else {\n _this.abortConnecting();\n _this.handshakeCallbacks[handshake.action](handshake);\n }\n }\n };\n this.runner = this.strategy.connect(0, callback);\n };\n ConnectionManager.prototype.abortConnecting = function () {\n if (this.runner) {\n this.runner.abort();\n this.runner = null;\n }\n };\n ConnectionManager.prototype.disconnectInternally = function () {\n this.abortConnecting();\n this.clearRetryTimer();\n this.clearUnavailableTimer();\n if (this.connection) {\n var connection = this.abandonConnection();\n connection.close();\n }\n };\n ConnectionManager.prototype.updateStrategy = function () {\n this.strategy = this.options.getStrategy({\n key: this.key,\n timeline: this.timeline,\n useTLS: this.usingTLS\n });\n };\n ConnectionManager.prototype.retryIn = function (delay) {\n var _this = this;\n this.timeline.info({ action: 'retry', delay: delay });\n if (delay > 0) {\n this.emit('connecting_in', Math.round(delay / 1000));\n }\n this.retryTimer = new OneOffTimer(delay || 0, function () {\n _this.disconnectInternally();\n _this.connect();\n });\n };\n ConnectionManager.prototype.clearRetryTimer = function () {\n if (this.retryTimer) {\n this.retryTimer.ensureAborted();\n this.retryTimer = null;\n }\n };\n ConnectionManager.prototype.setUnavailableTimer = function () {\n var _this = this;\n this.unavailableTimer = new OneOffTimer(this.options.unavailableTimeout, function () {\n _this.updateState('unavailable');\n });\n };\n ConnectionManager.prototype.clearUnavailableTimer = function () {\n if (this.unavailableTimer) {\n this.unavailableTimer.ensureAborted();\n }\n };\n ConnectionManager.prototype.sendActivityCheck = function () {\n var _this = this;\n this.stopActivityCheck();\n this.connection.ping();\n this.activityTimer = new OneOffTimer(this.options.pongTimeout, function () {\n _this.timeline.error({ pong_timed_out: _this.options.pongTimeout });\n _this.retryIn(0);\n });\n };\n ConnectionManager.prototype.resetActivityCheck = function () {\n var _this = this;\n this.stopActivityCheck();\n if (this.connection && !this.connection.handlesActivityChecks()) {\n this.activityTimer = new OneOffTimer(this.activityTimeout, function () {\n _this.sendActivityCheck();\n });\n }\n };\n ConnectionManager.prototype.stopActivityCheck = function () {\n if (this.activityTimer) {\n this.activityTimer.ensureAborted();\n }\n };\n ConnectionManager.prototype.buildConnectionCallbacks = function (errorCallbacks) {\n var _this = this;\n return extend({}, errorCallbacks, {\n message: function (message) {\n _this.resetActivityCheck();\n _this.emit('message', message);\n },\n ping: function () {\n _this.send_event('pusher:pong', {});\n },\n activity: function () {\n _this.resetActivityCheck();\n },\n error: function (error) {\n _this.emit('error', error);\n },\n closed: function () {\n _this.abandonConnection();\n if (_this.shouldRetry()) {\n _this.retryIn(1000);\n }\n }\n });\n };\n ConnectionManager.prototype.buildHandshakeCallbacks = function (errorCallbacks) {\n var _this = this;\n return extend({}, errorCallbacks, {\n connected: function (handshake) {\n _this.activityTimeout = Math.min(_this.options.activityTimeout, handshake.activityTimeout, handshake.connection.activityTimeout || Infinity);\n _this.clearUnavailableTimer();\n _this.setConnection(handshake.connection);\n _this.socket_id = _this.connection.id;\n _this.updateState('connected', { socket_id: _this.socket_id });\n }\n });\n };\n ConnectionManager.prototype.buildErrorCallbacks = function () {\n var _this = this;\n var withErrorEmitted = function (callback) {\n return function (result) {\n if (result.error) {\n _this.emit('error', { type: 'WebSocketError', error: result.error });\n }\n callback(result);\n };\n };\n return {\n tls_only: withErrorEmitted(function () {\n _this.usingTLS = true;\n _this.updateStrategy();\n _this.retryIn(0);\n }),\n refused: withErrorEmitted(function () {\n _this.disconnect();\n }),\n backoff: withErrorEmitted(function () {\n _this.retryIn(1000);\n }),\n retry: withErrorEmitted(function () {\n _this.retryIn(0);\n })\n };\n };\n ConnectionManager.prototype.setConnection = function (connection) {\n this.connection = connection;\n for (var event in this.connectionCallbacks) {\n this.connection.bind(event, this.connectionCallbacks[event]);\n }\n this.resetActivityCheck();\n };\n ConnectionManager.prototype.abandonConnection = function () {\n if (!this.connection) {\n return;\n }\n this.stopActivityCheck();\n for (var event in this.connectionCallbacks) {\n this.connection.unbind(event, this.connectionCallbacks[event]);\n }\n var connection = this.connection;\n this.connection = null;\n return connection;\n };\n ConnectionManager.prototype.updateState = function (newState, data) {\n var previousState = this.state;\n this.state = newState;\n if (previousState !== newState) {\n var newStateDescription = newState;\n if (newStateDescription === 'connected') {\n newStateDescription += ' with new socket ID ' + data.socket_id;\n }\n logger.debug('State changed', previousState + ' -> ' + newStateDescription);\n this.timeline.info({ state: newState, params: data });\n this.emit('state_change', { previous: previousState, current: newState });\n this.emit(newState, data);\n }\n };\n ConnectionManager.prototype.shouldRetry = function () {\n return this.state === 'connecting' || this.state === 'connected';\n };\n return ConnectionManager;\n}(dispatcher));\n/* harmony default export */ var connection_manager = (connection_manager_ConnectionManager);\n\n// CONCATENATED MODULE: ./src/core/channels/channels.ts\n\n\n\n\nvar channels_Channels = (function () {\n function Channels() {\n this.channels = {};\n }\n Channels.prototype.add = function (name, pusher) {\n if (!this.channels[name]) {\n this.channels[name] = createChannel(name, pusher);\n }\n return this.channels[name];\n };\n Channels.prototype.all = function () {\n return values(this.channels);\n };\n Channels.prototype.find = function (name) {\n return this.channels[name];\n };\n Channels.prototype.remove = function (name) {\n var channel = this.channels[name];\n delete this.channels[name];\n return channel;\n };\n Channels.prototype.disconnect = function () {\n objectApply(this.channels, function (channel) {\n channel.disconnect();\n });\n };\n return Channels;\n}());\n/* harmony default export */ var channels = (channels_Channels);\nfunction createChannel(name, pusher) {\n if (name.indexOf('private-encrypted-') === 0) {\n if (pusher.config.nacl) {\n return factory.createEncryptedChannel(name, pusher, pusher.config.nacl);\n }\n var errMsg = 'Tried to subscribe to a private-encrypted- channel but no nacl implementation available';\n var suffix = url_store.buildLogSuffix('encryptedChannelSupport');\n throw new UnsupportedFeature(errMsg + \". \" + suffix);\n }\n else if (name.indexOf('private-') === 0) {\n return factory.createPrivateChannel(name, pusher);\n }\n else if (name.indexOf('presence-') === 0) {\n return factory.createPresenceChannel(name, pusher);\n }\n else if (name.indexOf('#') === 0) {\n throw new BadChannelName('Cannot create a channel with name \"' + name + '\".');\n }\n else {\n return factory.createChannel(name, pusher);\n }\n}\n\n// CONCATENATED MODULE: ./src/core/utils/factory.ts\n\n\n\n\n\n\n\n\n\nvar Factory = {\n createChannels: function () {\n return new channels();\n },\n createConnectionManager: function (key, options) {\n return new connection_manager(key, options);\n },\n createChannel: function (name, pusher) {\n return new channels_channel(name, pusher);\n },\n createPrivateChannel: function (name, pusher) {\n return new private_channel(name, pusher);\n },\n createPresenceChannel: function (name, pusher) {\n return new presence_channel(name, pusher);\n },\n createEncryptedChannel: function (name, pusher, nacl) {\n return new encrypted_channel(name, pusher, nacl);\n },\n createTimelineSender: function (timeline, options) {\n return new timeline_sender(timeline, options);\n },\n createHandshake: function (transport, callback) {\n return new connection_handshake(transport, callback);\n },\n createAssistantToTheTransportManager: function (manager, transport, options) {\n return new assistant_to_the_transport_manager(manager, transport, options);\n }\n};\n/* harmony default export */ var factory = (Factory);\n\n// CONCATENATED MODULE: ./src/core/transports/transport_manager.ts\n\nvar transport_manager_TransportManager = (function () {\n function TransportManager(options) {\n this.options = options || {};\n this.livesLeft = this.options.lives || Infinity;\n }\n TransportManager.prototype.getAssistant = function (transport) {\n return factory.createAssistantToTheTransportManager(this, transport, {\n minPingDelay: this.options.minPingDelay,\n maxPingDelay: this.options.maxPingDelay\n });\n };\n TransportManager.prototype.isAlive = function () {\n return this.livesLeft > 0;\n };\n TransportManager.prototype.reportDeath = function () {\n this.livesLeft -= 1;\n };\n return TransportManager;\n}());\n/* harmony default export */ var transport_manager = (transport_manager_TransportManager);\n\n// CONCATENATED MODULE: ./src/core/strategies/sequential_strategy.ts\n\n\n\nvar sequential_strategy_SequentialStrategy = (function () {\n function SequentialStrategy(strategies, options) {\n this.strategies = strategies;\n this.loop = Boolean(options.loop);\n this.failFast = Boolean(options.failFast);\n this.timeout = options.timeout;\n this.timeoutLimit = options.timeoutLimit;\n }\n SequentialStrategy.prototype.isSupported = function () {\n return any(this.strategies, util.method('isSupported'));\n };\n SequentialStrategy.prototype.connect = function (minPriority, callback) {\n var _this = this;\n var strategies = this.strategies;\n var current = 0;\n var timeout = this.timeout;\n var runner = null;\n var tryNextStrategy = function (error, handshake) {\n if (handshake) {\n callback(null, handshake);\n }\n else {\n current = current + 1;\n if (_this.loop) {\n current = current % strategies.length;\n }\n if (current < strategies.length) {\n if (timeout) {\n timeout = timeout * 2;\n if (_this.timeoutLimit) {\n timeout = Math.min(timeout, _this.timeoutLimit);\n }\n }\n runner = _this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: _this.failFast }, tryNextStrategy);\n }\n else {\n callback(true);\n }\n }\n };\n runner = this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: this.failFast }, tryNextStrategy);\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n SequentialStrategy.prototype.tryStrategy = function (strategy, minPriority, options, callback) {\n var timer = null;\n var runner = null;\n if (options.timeout > 0) {\n timer = new OneOffTimer(options.timeout, function () {\n runner.abort();\n callback(true);\n });\n }\n runner = strategy.connect(minPriority, function (error, handshake) {\n if (error && timer && timer.isRunning() && !options.failFast) {\n return;\n }\n if (timer) {\n timer.ensureAborted();\n }\n callback(error, handshake);\n });\n return {\n abort: function () {\n if (timer) {\n timer.ensureAborted();\n }\n runner.abort();\n },\n forceMinPriority: function (p) {\n runner.forceMinPriority(p);\n }\n };\n };\n return SequentialStrategy;\n}());\n/* harmony default export */ var sequential_strategy = (sequential_strategy_SequentialStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/best_connected_ever_strategy.ts\n\n\nvar best_connected_ever_strategy_BestConnectedEverStrategy = (function () {\n function BestConnectedEverStrategy(strategies) {\n this.strategies = strategies;\n }\n BestConnectedEverStrategy.prototype.isSupported = function () {\n return any(this.strategies, util.method('isSupported'));\n };\n BestConnectedEverStrategy.prototype.connect = function (minPriority, callback) {\n return connect(this.strategies, minPriority, function (i, runners) {\n return function (error, handshake) {\n runners[i].error = error;\n if (error) {\n if (allRunnersFailed(runners)) {\n callback(true);\n }\n return;\n }\n apply(runners, function (runner) {\n runner.forceMinPriority(handshake.transport.priority);\n });\n callback(null, handshake);\n };\n });\n };\n return BestConnectedEverStrategy;\n}());\n/* harmony default export */ var best_connected_ever_strategy = (best_connected_ever_strategy_BestConnectedEverStrategy);\nfunction connect(strategies, minPriority, callbackBuilder) {\n var runners = map(strategies, function (strategy, i, _, rs) {\n return strategy.connect(minPriority, callbackBuilder(i, rs));\n });\n return {\n abort: function () {\n apply(runners, abortRunner);\n },\n forceMinPriority: function (p) {\n apply(runners, function (runner) {\n runner.forceMinPriority(p);\n });\n }\n };\n}\nfunction allRunnersFailed(runners) {\n return collections_all(runners, function (runner) {\n return Boolean(runner.error);\n });\n}\nfunction abortRunner(runner) {\n if (!runner.error && !runner.aborted) {\n runner.abort();\n runner.aborted = true;\n }\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/cached_strategy.ts\n\n\n\n\nvar cached_strategy_CachedStrategy = (function () {\n function CachedStrategy(strategy, transports, options) {\n this.strategy = strategy;\n this.transports = transports;\n this.ttl = options.ttl || 1800 * 1000;\n this.usingTLS = options.useTLS;\n this.timeline = options.timeline;\n }\n CachedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n CachedStrategy.prototype.connect = function (minPriority, callback) {\n var usingTLS = this.usingTLS;\n var info = fetchTransportCache(usingTLS);\n var strategies = [this.strategy];\n if (info && info.timestamp + this.ttl >= util.now()) {\n var transport = this.transports[info.transport];\n if (transport) {\n this.timeline.info({\n cached: true,\n transport: info.transport,\n latency: info.latency\n });\n strategies.push(new sequential_strategy([transport], {\n timeout: info.latency * 2 + 1000,\n failFast: true\n }));\n }\n }\n var startTimestamp = util.now();\n var runner = strategies\n .pop()\n .connect(minPriority, function cb(error, handshake) {\n if (error) {\n flushTransportCache(usingTLS);\n if (strategies.length > 0) {\n startTimestamp = util.now();\n runner = strategies.pop().connect(minPriority, cb);\n }\n else {\n callback(error);\n }\n }\n else {\n storeTransportCache(usingTLS, handshake.transport.name, util.now() - startTimestamp);\n callback(null, handshake);\n }\n });\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n return CachedStrategy;\n}());\n/* harmony default export */ var cached_strategy = (cached_strategy_CachedStrategy);\nfunction getTransportCacheKey(usingTLS) {\n return 'pusherTransport' + (usingTLS ? 'TLS' : 'NonTLS');\n}\nfunction fetchTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n var serializedCache = storage[getTransportCacheKey(usingTLS)];\n if (serializedCache) {\n return JSON.parse(serializedCache);\n }\n }\n catch (e) {\n flushTransportCache(usingTLS);\n }\n }\n return null;\n}\nfunction storeTransportCache(usingTLS, transport, latency) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n storage[getTransportCacheKey(usingTLS)] = safeJSONStringify({\n timestamp: util.now(),\n transport: transport,\n latency: latency\n });\n }\n catch (e) {\n }\n }\n}\nfunction flushTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n delete storage[getTransportCacheKey(usingTLS)];\n }\n catch (e) {\n }\n }\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/delayed_strategy.ts\n\nvar delayed_strategy_DelayedStrategy = (function () {\n function DelayedStrategy(strategy, _a) {\n var number = _a.delay;\n this.strategy = strategy;\n this.options = { delay: number };\n }\n DelayedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n DelayedStrategy.prototype.connect = function (minPriority, callback) {\n var strategy = this.strategy;\n var runner;\n var timer = new OneOffTimer(this.options.delay, function () {\n runner = strategy.connect(minPriority, callback);\n });\n return {\n abort: function () {\n timer.ensureAborted();\n if (runner) {\n runner.abort();\n }\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n return DelayedStrategy;\n}());\n/* harmony default export */ var delayed_strategy = (delayed_strategy_DelayedStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/if_strategy.ts\nvar IfStrategy = (function () {\n function IfStrategy(test, trueBranch, falseBranch) {\n this.test = test;\n this.trueBranch = trueBranch;\n this.falseBranch = falseBranch;\n }\n IfStrategy.prototype.isSupported = function () {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.isSupported();\n };\n IfStrategy.prototype.connect = function (minPriority, callback) {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.connect(minPriority, callback);\n };\n return IfStrategy;\n}());\n/* harmony default export */ var if_strategy = (IfStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/first_connected_strategy.ts\nvar FirstConnectedStrategy = (function () {\n function FirstConnectedStrategy(strategy) {\n this.strategy = strategy;\n }\n FirstConnectedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n FirstConnectedStrategy.prototype.connect = function (minPriority, callback) {\n var runner = this.strategy.connect(minPriority, function (error, handshake) {\n if (handshake) {\n runner.abort();\n }\n callback(error, handshake);\n });\n return runner;\n };\n return FirstConnectedStrategy;\n}());\n/* harmony default export */ var first_connected_strategy = (FirstConnectedStrategy);\n\n// CONCATENATED MODULE: ./src/runtimes/web/default_strategy.ts\n\n\n\n\n\n\n\nfunction testSupportsStrategy(strategy) {\n return function () {\n return strategy.isSupported();\n };\n}\nvar getDefaultStrategy = function (config, baseOptions, defineTransport) {\n var definedTransports = {};\n function defineTransportStrategy(name, type, priority, options, manager) {\n var transport = defineTransport(config, name, type, priority, options, manager);\n definedTransports[name] = transport;\n return transport;\n }\n var ws_options = Object.assign({}, baseOptions, {\n hostNonTLS: config.wsHost + ':' + config.wsPort,\n hostTLS: config.wsHost + ':' + config.wssPort,\n httpPath: config.wsPath\n });\n var wss_options = Object.assign({}, ws_options, {\n useTLS: true\n });\n var sockjs_options = Object.assign({}, baseOptions, {\n hostNonTLS: config.httpHost + ':' + config.httpPort,\n hostTLS: config.httpHost + ':' + config.httpsPort,\n httpPath: config.httpPath\n });\n var timeouts = {\n loop: true,\n timeout: 15000,\n timeoutLimit: 60000\n };\n var ws_manager = new transport_manager({\n lives: 2,\n minPingDelay: 10000,\n maxPingDelay: config.activityTimeout\n });\n var streaming_manager = new transport_manager({\n lives: 2,\n minPingDelay: 10000,\n maxPingDelay: config.activityTimeout\n });\n var ws_transport = defineTransportStrategy('ws', 'ws', 3, ws_options, ws_manager);\n var wss_transport = defineTransportStrategy('wss', 'ws', 3, wss_options, ws_manager);\n var sockjs_transport = defineTransportStrategy('sockjs', 'sockjs', 1, sockjs_options);\n var xhr_streaming_transport = defineTransportStrategy('xhr_streaming', 'xhr_streaming', 1, sockjs_options, streaming_manager);\n var xdr_streaming_transport = defineTransportStrategy('xdr_streaming', 'xdr_streaming', 1, sockjs_options, streaming_manager);\n var xhr_polling_transport = defineTransportStrategy('xhr_polling', 'xhr_polling', 1, sockjs_options);\n var xdr_polling_transport = defineTransportStrategy('xdr_polling', 'xdr_polling', 1, sockjs_options);\n var ws_loop = new sequential_strategy([ws_transport], timeouts);\n var wss_loop = new sequential_strategy([wss_transport], timeouts);\n var sockjs_loop = new sequential_strategy([sockjs_transport], timeouts);\n var streaming_loop = new sequential_strategy([\n new if_strategy(testSupportsStrategy(xhr_streaming_transport), xhr_streaming_transport, xdr_streaming_transport)\n ], timeouts);\n var polling_loop = new sequential_strategy([\n new if_strategy(testSupportsStrategy(xhr_polling_transport), xhr_polling_transport, xdr_polling_transport)\n ], timeouts);\n var http_loop = new sequential_strategy([\n new if_strategy(testSupportsStrategy(streaming_loop), new best_connected_ever_strategy([\n streaming_loop,\n new delayed_strategy(polling_loop, { delay: 4000 })\n ]), polling_loop)\n ], timeouts);\n var http_fallback_loop = new if_strategy(testSupportsStrategy(http_loop), http_loop, sockjs_loop);\n var wsStrategy;\n if (baseOptions.useTLS) {\n wsStrategy = new best_connected_ever_strategy([\n ws_loop,\n new delayed_strategy(http_fallback_loop, { delay: 2000 })\n ]);\n }\n else {\n wsStrategy = new best_connected_ever_strategy([\n ws_loop,\n new delayed_strategy(wss_loop, { delay: 2000 }),\n new delayed_strategy(http_fallback_loop, { delay: 5000 })\n ]);\n }\n return new cached_strategy(new first_connected_strategy(new if_strategy(testSupportsStrategy(ws_transport), wsStrategy, http_fallback_loop)), definedTransports, {\n ttl: 1800000,\n timeline: baseOptions.timeline,\n useTLS: baseOptions.useTLS\n });\n};\n/* harmony default export */ var default_strategy = (getDefaultStrategy);\n\n// CONCATENATED MODULE: ./src/runtimes/web/transports/transport_connection_initializer.ts\n\n/* harmony default export */ var transport_connection_initializer = (function () {\n var self = this;\n self.timeline.info(self.buildTimelineMessage({\n transport: self.name + (self.options.useTLS ? 's' : '')\n }));\n if (self.hooks.isInitialized()) {\n self.changeState('initialized');\n }\n else if (self.hooks.file) {\n self.changeState('initializing');\n Dependencies.load(self.hooks.file, { useTLS: self.options.useTLS }, function (error, callback) {\n if (self.hooks.isInitialized()) {\n self.changeState('initialized');\n callback(true);\n }\n else {\n if (error) {\n self.onError(error);\n }\n self.onClose();\n callback(false);\n }\n });\n }\n else {\n self.onClose();\n }\n});\n\n// CONCATENATED MODULE: ./src/runtimes/web/http/http_xdomain_request.ts\n\nvar http_xdomain_request_hooks = {\n getRequest: function (socket) {\n var xdr = new window.XDomainRequest();\n xdr.ontimeout = function () {\n socket.emit('error', new RequestTimedOut());\n socket.close();\n };\n xdr.onerror = function (e) {\n socket.emit('error', e);\n socket.close();\n };\n xdr.onprogress = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n };\n xdr.onload = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n socket.emit('finished', 200);\n socket.close();\n };\n return xdr;\n },\n abortRequest: function (xdr) {\n xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null;\n xdr.abort();\n }\n};\n/* harmony default export */ var http_xdomain_request = (http_xdomain_request_hooks);\n\n// CONCATENATED MODULE: ./src/core/http/http_request.ts\nvar http_request_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar MAX_BUFFER_LENGTH = 256 * 1024;\nvar http_request_HTTPRequest = (function (_super) {\n http_request_extends(HTTPRequest, _super);\n function HTTPRequest(hooks, method, url) {\n var _this = _super.call(this) || this;\n _this.hooks = hooks;\n _this.method = method;\n _this.url = url;\n return _this;\n }\n HTTPRequest.prototype.start = function (payload) {\n var _this = this;\n this.position = 0;\n this.xhr = this.hooks.getRequest(this);\n this.unloader = function () {\n _this.close();\n };\n runtime.addUnloadListener(this.unloader);\n this.xhr.open(this.method, this.url, true);\n if (this.xhr.setRequestHeader) {\n this.xhr.setRequestHeader('Content-Type', 'application/json');\n }\n this.xhr.send(payload);\n };\n HTTPRequest.prototype.close = function () {\n if (this.unloader) {\n runtime.removeUnloadListener(this.unloader);\n this.unloader = null;\n }\n if (this.xhr) {\n this.hooks.abortRequest(this.xhr);\n this.xhr = null;\n }\n };\n HTTPRequest.prototype.onChunk = function (status, data) {\n while (true) {\n var chunk = this.advanceBuffer(data);\n if (chunk) {\n this.emit('chunk', { status: status, data: chunk });\n }\n else {\n break;\n }\n }\n if (this.isBufferTooLong(data)) {\n this.emit('buffer_too_long');\n }\n };\n HTTPRequest.prototype.advanceBuffer = function (buffer) {\n var unreadData = buffer.slice(this.position);\n var endOfLinePosition = unreadData.indexOf('\\n');\n if (endOfLinePosition !== -1) {\n this.position += endOfLinePosition + 1;\n return unreadData.slice(0, endOfLinePosition);\n }\n else {\n return null;\n }\n };\n HTTPRequest.prototype.isBufferTooLong = function (buffer) {\n return this.position === buffer.length && buffer.length > MAX_BUFFER_LENGTH;\n };\n return HTTPRequest;\n}(dispatcher));\n/* harmony default export */ var http_request = (http_request_HTTPRequest);\n\n// CONCATENATED MODULE: ./src/core/http/state.ts\nvar State;\n(function (State) {\n State[State[\"CONNECTING\"] = 0] = \"CONNECTING\";\n State[State[\"OPEN\"] = 1] = \"OPEN\";\n State[State[\"CLOSED\"] = 3] = \"CLOSED\";\n})(State || (State = {}));\n/* harmony default export */ var state = (State);\n\n// CONCATENATED MODULE: ./src/core/http/http_socket.ts\n\n\n\nvar autoIncrement = 1;\nvar http_socket_HTTPSocket = (function () {\n function HTTPSocket(hooks, url) {\n this.hooks = hooks;\n this.session = randomNumber(1000) + '/' + randomString(8);\n this.location = getLocation(url);\n this.readyState = state.CONNECTING;\n this.openStream();\n }\n HTTPSocket.prototype.send = function (payload) {\n return this.sendRaw(JSON.stringify([payload]));\n };\n HTTPSocket.prototype.ping = function () {\n this.hooks.sendHeartbeat(this);\n };\n HTTPSocket.prototype.close = function (code, reason) {\n this.onClose(code, reason, true);\n };\n HTTPSocket.prototype.sendRaw = function (payload) {\n if (this.readyState === state.OPEN) {\n try {\n runtime.createSocketRequest('POST', getUniqueURL(getSendURL(this.location, this.session))).start(payload);\n return true;\n }\n catch (e) {\n return false;\n }\n }\n else {\n return false;\n }\n };\n HTTPSocket.prototype.reconnect = function () {\n this.closeStream();\n this.openStream();\n };\n HTTPSocket.prototype.onClose = function (code, reason, wasClean) {\n this.closeStream();\n this.readyState = state.CLOSED;\n if (this.onclose) {\n this.onclose({\n code: code,\n reason: reason,\n wasClean: wasClean\n });\n }\n };\n HTTPSocket.prototype.onChunk = function (chunk) {\n if (chunk.status !== 200) {\n return;\n }\n if (this.readyState === state.OPEN) {\n this.onActivity();\n }\n var payload;\n var type = chunk.data.slice(0, 1);\n switch (type) {\n case 'o':\n payload = JSON.parse(chunk.data.slice(1) || '{}');\n this.onOpen(payload);\n break;\n case 'a':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n for (var i = 0; i < payload.length; i++) {\n this.onEvent(payload[i]);\n }\n break;\n case 'm':\n payload = JSON.parse(chunk.data.slice(1) || 'null');\n this.onEvent(payload);\n break;\n case 'h':\n this.hooks.onHeartbeat(this);\n break;\n case 'c':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n this.onClose(payload[0], payload[1], true);\n break;\n }\n };\n HTTPSocket.prototype.onOpen = function (options) {\n if (this.readyState === state.CONNECTING) {\n if (options && options.hostname) {\n this.location.base = replaceHost(this.location.base, options.hostname);\n }\n this.readyState = state.OPEN;\n if (this.onopen) {\n this.onopen();\n }\n }\n else {\n this.onClose(1006, 'Server lost session', true);\n }\n };\n HTTPSocket.prototype.onEvent = function (event) {\n if (this.readyState === state.OPEN && this.onmessage) {\n this.onmessage({ data: event });\n }\n };\n HTTPSocket.prototype.onActivity = function () {\n if (this.onactivity) {\n this.onactivity();\n }\n };\n HTTPSocket.prototype.onError = function (error) {\n if (this.onerror) {\n this.onerror(error);\n }\n };\n HTTPSocket.prototype.openStream = function () {\n var _this = this;\n this.stream = runtime.createSocketRequest('POST', getUniqueURL(this.hooks.getReceiveURL(this.location, this.session)));\n this.stream.bind('chunk', function (chunk) {\n _this.onChunk(chunk);\n });\n this.stream.bind('finished', function (status) {\n _this.hooks.onFinished(_this, status);\n });\n this.stream.bind('buffer_too_long', function () {\n _this.reconnect();\n });\n try {\n this.stream.start();\n }\n catch (error) {\n util.defer(function () {\n _this.onError(error);\n _this.onClose(1006, 'Could not start streaming', false);\n });\n }\n };\n HTTPSocket.prototype.closeStream = function () {\n if (this.stream) {\n this.stream.unbind_all();\n this.stream.close();\n this.stream = null;\n }\n };\n return HTTPSocket;\n}());\nfunction getLocation(url) {\n var parts = /([^\\?]*)\\/*(\\??.*)/.exec(url);\n return {\n base: parts[1],\n queryString: parts[2]\n };\n}\nfunction getSendURL(url, session) {\n return url.base + '/' + session + '/xhr_send';\n}\nfunction getUniqueURL(url) {\n var separator = url.indexOf('?') === -1 ? '?' : '&';\n return url + separator + 't=' + +new Date() + '&n=' + autoIncrement++;\n}\nfunction replaceHost(url, hostname) {\n var urlParts = /(https?:\\/\\/)([^\\/:]+)((\\/|:)?.*)/.exec(url);\n return urlParts[1] + hostname + urlParts[3];\n}\nfunction randomNumber(max) {\n return Math.floor(Math.random() * max);\n}\nfunction randomString(length) {\n var result = [];\n for (var i = 0; i < length; i++) {\n result.push(randomNumber(32).toString(32));\n }\n return result.join('');\n}\n/* harmony default export */ var http_socket = (http_socket_HTTPSocket);\n\n// CONCATENATED MODULE: ./src/core/http/http_streaming_socket.ts\nvar http_streaming_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + '/' + session + '/xhr_streaming' + url.queryString;\n },\n onHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n onFinished: function (socket, status) {\n socket.onClose(1006, 'Connection interrupted (' + status + ')', false);\n }\n};\n/* harmony default export */ var http_streaming_socket = (http_streaming_socket_hooks);\n\n// CONCATENATED MODULE: ./src/core/http/http_polling_socket.ts\nvar http_polling_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + '/' + session + '/xhr' + url.queryString;\n },\n onHeartbeat: function () {\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n onFinished: function (socket, status) {\n if (status === 200) {\n socket.reconnect();\n }\n else {\n socket.onClose(1006, 'Connection interrupted (' + status + ')', false);\n }\n }\n};\n/* harmony default export */ var http_polling_socket = (http_polling_socket_hooks);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http_xhr_request.ts\n\nvar http_xhr_request_hooks = {\n getRequest: function (socket) {\n var Constructor = runtime.getXHRAPI();\n var xhr = new Constructor();\n xhr.onreadystatechange = xhr.onprogress = function () {\n switch (xhr.readyState) {\n case 3:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n break;\n case 4:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n socket.emit('finished', xhr.status);\n socket.close();\n break;\n }\n };\n return xhr;\n },\n abortRequest: function (xhr) {\n xhr.onreadystatechange = null;\n xhr.abort();\n }\n};\n/* harmony default export */ var http_xhr_request = (http_xhr_request_hooks);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http.ts\n\n\n\n\n\nvar HTTP = {\n createStreamingSocket: function (url) {\n return this.createSocket(http_streaming_socket, url);\n },\n createPollingSocket: function (url) {\n return this.createSocket(http_polling_socket, url);\n },\n createSocket: function (hooks, url) {\n return new http_socket(hooks, url);\n },\n createXHR: function (method, url) {\n return this.createRequest(http_xhr_request, method, url);\n },\n createRequest: function (hooks, method, url) {\n return new http_request(hooks, method, url);\n }\n};\n/* harmony default export */ var http_http = (HTTP);\n\n// CONCATENATED MODULE: ./src/runtimes/web/http/http.ts\n\n\nhttp_http.createXDR = function (method, url) {\n return this.createRequest(http_xdomain_request, method, url);\n};\n/* harmony default export */ var web_http_http = (http_http);\n\n// CONCATENATED MODULE: ./src/runtimes/web/runtime.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar Runtime = {\n nextAuthCallbackID: 1,\n auth_callbacks: {},\n ScriptReceivers: ScriptReceivers,\n DependenciesReceivers: DependenciesReceivers,\n getDefaultStrategy: default_strategy,\n Transports: transports_transports,\n transportConnectionInitializer: transport_connection_initializer,\n HTTPFactory: web_http_http,\n TimelineTransport: jsonp_timeline,\n getXHRAPI: function () {\n return window.XMLHttpRequest;\n },\n getWebSocketAPI: function () {\n return window.WebSocket || window.MozWebSocket;\n },\n setup: function (PusherClass) {\n var _this = this;\n window.Pusher = PusherClass;\n var initializeOnDocumentBody = function () {\n _this.onDocumentBody(PusherClass.ready);\n };\n if (!window.JSON) {\n Dependencies.load('json2', {}, initializeOnDocumentBody);\n }\n else {\n initializeOnDocumentBody();\n }\n },\n getDocument: function () {\n return document;\n },\n getProtocol: function () {\n return this.getDocument().location.protocol;\n },\n getAuthorizers: function () {\n return { ajax: xhr_auth, jsonp: jsonp_auth };\n },\n onDocumentBody: function (callback) {\n var _this = this;\n if (document.body) {\n callback();\n }\n else {\n setTimeout(function () {\n _this.onDocumentBody(callback);\n }, 0);\n }\n },\n createJSONPRequest: function (url, data) {\n return new jsonp_request(url, data);\n },\n createScriptRequest: function (src) {\n return new script_request(src);\n },\n getLocalStorage: function () {\n try {\n return window.localStorage;\n }\n catch (e) {\n return undefined;\n }\n },\n createXHR: function () {\n if (this.getXHRAPI()) {\n return this.createXMLHttpRequest();\n }\n else {\n return this.createMicrosoftXHR();\n }\n },\n createXMLHttpRequest: function () {\n var Constructor = this.getXHRAPI();\n return new Constructor();\n },\n createMicrosoftXHR: function () {\n return new ActiveXObject('Microsoft.XMLHTTP');\n },\n getNetwork: function () {\n return net_info_Network;\n },\n createWebSocket: function (url) {\n var Constructor = this.getWebSocketAPI();\n return new Constructor(url);\n },\n createSocketRequest: function (method, url) {\n if (this.isXHRSupported()) {\n return this.HTTPFactory.createXHR(method, url);\n }\n else if (this.isXDRSupported(url.indexOf('https:') === 0)) {\n return this.HTTPFactory.createXDR(method, url);\n }\n else {\n throw 'Cross-origin HTTP requests are not supported';\n }\n },\n isXHRSupported: function () {\n var Constructor = this.getXHRAPI();\n return (Boolean(Constructor) && new Constructor().withCredentials !== undefined);\n },\n isXDRSupported: function (useTLS) {\n var protocol = useTLS ? 'https:' : 'http:';\n var documentProtocol = this.getProtocol();\n return (Boolean(window['XDomainRequest']) && documentProtocol === protocol);\n },\n addUnloadListener: function (listener) {\n if (window.addEventListener !== undefined) {\n window.addEventListener('unload', listener, false);\n }\n else if (window.attachEvent !== undefined) {\n window.attachEvent('onunload', listener);\n }\n },\n removeUnloadListener: function (listener) {\n if (window.addEventListener !== undefined) {\n window.removeEventListener('unload', listener, false);\n }\n else if (window.detachEvent !== undefined) {\n window.detachEvent('onunload', listener);\n }\n }\n};\n/* harmony default export */ var runtime = (Runtime);\n\n// CONCATENATED MODULE: ./src/core/timeline/level.ts\nvar TimelineLevel;\n(function (TimelineLevel) {\n TimelineLevel[TimelineLevel[\"ERROR\"] = 3] = \"ERROR\";\n TimelineLevel[TimelineLevel[\"INFO\"] = 6] = \"INFO\";\n TimelineLevel[TimelineLevel[\"DEBUG\"] = 7] = \"DEBUG\";\n})(TimelineLevel || (TimelineLevel = {}));\n/* harmony default export */ var timeline_level = (TimelineLevel);\n\n// CONCATENATED MODULE: ./src/core/timeline/timeline.ts\n\n\n\nvar timeline_Timeline = (function () {\n function Timeline(key, session, options) {\n this.key = key;\n this.session = session;\n this.events = [];\n this.options = options || {};\n this.sent = 0;\n this.uniqueID = 0;\n }\n Timeline.prototype.log = function (level, event) {\n if (level <= this.options.level) {\n this.events.push(extend({}, event, { timestamp: util.now() }));\n if (this.options.limit && this.events.length > this.options.limit) {\n this.events.shift();\n }\n }\n };\n Timeline.prototype.error = function (event) {\n this.log(timeline_level.ERROR, event);\n };\n Timeline.prototype.info = function (event) {\n this.log(timeline_level.INFO, event);\n };\n Timeline.prototype.debug = function (event) {\n this.log(timeline_level.DEBUG, event);\n };\n Timeline.prototype.isEmpty = function () {\n return this.events.length === 0;\n };\n Timeline.prototype.send = function (sendfn, callback) {\n var _this = this;\n var data = extend({\n session: this.session,\n bundle: this.sent + 1,\n key: this.key,\n lib: 'js',\n version: this.options.version,\n cluster: this.options.cluster,\n features: this.options.features,\n timeline: this.events\n }, this.options.params);\n this.events = [];\n sendfn(data, function (error, result) {\n if (!error) {\n _this.sent++;\n }\n if (callback) {\n callback(error, result);\n }\n });\n return true;\n };\n Timeline.prototype.generateUniqueID = function () {\n this.uniqueID++;\n return this.uniqueID;\n };\n return Timeline;\n}());\n/* harmony default export */ var timeline_timeline = (timeline_Timeline);\n\n// CONCATENATED MODULE: ./src/core/strategies/transport_strategy.ts\n\n\n\n\nvar transport_strategy_TransportStrategy = (function () {\n function TransportStrategy(name, priority, transport, options) {\n this.name = name;\n this.priority = priority;\n this.transport = transport;\n this.options = options || {};\n }\n TransportStrategy.prototype.isSupported = function () {\n return this.transport.isSupported({\n useTLS: this.options.useTLS\n });\n };\n TransportStrategy.prototype.connect = function (minPriority, callback) {\n var _this = this;\n if (!this.isSupported()) {\n return failAttempt(new UnsupportedStrategy(), callback);\n }\n else if (this.priority < minPriority) {\n return failAttempt(new TransportPriorityTooLow(), callback);\n }\n var connected = false;\n var transport = this.transport.createConnection(this.name, this.priority, this.options.key, this.options);\n var handshake = null;\n var onInitialized = function () {\n transport.unbind('initialized', onInitialized);\n transport.connect();\n };\n var onOpen = function () {\n handshake = factory.createHandshake(transport, function (result) {\n connected = true;\n unbindListeners();\n callback(null, result);\n });\n };\n var onError = function (error) {\n unbindListeners();\n callback(error);\n };\n var onClosed = function () {\n unbindListeners();\n var serializedTransport;\n serializedTransport = safeJSONStringify(transport);\n callback(new TransportClosed(serializedTransport));\n };\n var unbindListeners = function () {\n transport.unbind('initialized', onInitialized);\n transport.unbind('open', onOpen);\n transport.unbind('error', onError);\n transport.unbind('closed', onClosed);\n };\n transport.bind('initialized', onInitialized);\n transport.bind('open', onOpen);\n transport.bind('error', onError);\n transport.bind('closed', onClosed);\n transport.initialize();\n return {\n abort: function () {\n if (connected) {\n return;\n }\n unbindListeners();\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n },\n forceMinPriority: function (p) {\n if (connected) {\n return;\n }\n if (_this.priority < p) {\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n }\n }\n };\n };\n return TransportStrategy;\n}());\n/* harmony default export */ var transport_strategy = (transport_strategy_TransportStrategy);\nfunction failAttempt(error, callback) {\n util.defer(function () {\n callback(error);\n });\n return {\n abort: function () { },\n forceMinPriority: function () { }\n };\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/strategy_builder.ts\n\n\n\n\n\nvar strategy_builder_Transports = runtime.Transports;\nvar strategy_builder_defineTransport = function (config, name, type, priority, options, manager) {\n var transportClass = strategy_builder_Transports[type];\n if (!transportClass) {\n throw new UnsupportedTransport(type);\n }\n var enabled = (!config.enabledTransports ||\n arrayIndexOf(config.enabledTransports, name) !== -1) &&\n (!config.disabledTransports ||\n arrayIndexOf(config.disabledTransports, name) === -1);\n var transport;\n if (enabled) {\n options = Object.assign({ ignoreNullOrigin: config.ignoreNullOrigin }, options);\n transport = new transport_strategy(name, priority, manager ? manager.getAssistant(transportClass) : transportClass, options);\n }\n else {\n transport = strategy_builder_UnsupportedStrategy;\n }\n return transport;\n};\nvar strategy_builder_UnsupportedStrategy = {\n isSupported: function () {\n return false;\n },\n connect: function (_, callback) {\n var deferred = util.defer(function () {\n callback(new UnsupportedStrategy());\n });\n return {\n abort: function () {\n deferred.ensureAborted();\n },\n forceMinPriority: function () { }\n };\n }\n};\n\n// CONCATENATED MODULE: ./src/core/auth/user_authenticator.ts\n\n\nvar composeChannelQuery = function (params, authOptions) {\n var query = 'socket_id=' + encodeURIComponent(params.socketId);\n for (var i in authOptions.params) {\n query +=\n '&' +\n encodeURIComponent(i) +\n '=' +\n encodeURIComponent(authOptions.params[i]);\n }\n return query;\n};\nvar UserAuthenticator = function (authOptions) {\n if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') {\n throw \"'\" + authOptions.transport + \"' is not a recognized auth transport\";\n }\n return function (params, callback) {\n var query = composeChannelQuery(params, authOptions);\n runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.UserAuthentication, callback);\n };\n};\n/* harmony default export */ var user_authenticator = (UserAuthenticator);\n\n// CONCATENATED MODULE: ./src/core/auth/channel_authorizer.ts\n\n\nvar channel_authorizer_composeChannelQuery = function (params, authOptions) {\n var query = 'socket_id=' + encodeURIComponent(params.socketId);\n query += '&channel_name=' + encodeURIComponent(params.channelName);\n for (var i in authOptions.params) {\n query +=\n '&' +\n encodeURIComponent(i) +\n '=' +\n encodeURIComponent(authOptions.params[i]);\n }\n return query;\n};\nvar ChannelAuthorizer = function (authOptions) {\n if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') {\n throw \"'\" + authOptions.transport + \"' is not a recognized auth transport\";\n }\n return function (params, callback) {\n var query = channel_authorizer_composeChannelQuery(params, authOptions);\n runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.ChannelAuthorization, callback);\n };\n};\n/* harmony default export */ var channel_authorizer = (ChannelAuthorizer);\n\n// CONCATENATED MODULE: ./src/core/auth/deprecated_channel_authorizer.ts\nvar ChannelAuthorizerProxy = function (pusher, authOptions, channelAuthorizerGenerator) {\n var deprecatedAuthorizerOptions = {\n authTransport: authOptions.transport,\n authEndpoint: authOptions.endpoint,\n auth: {\n params: authOptions.params,\n headers: authOptions.headers\n }\n };\n return function (params, callback) {\n var channel = pusher.channel(params.channelName);\n var channelAuthorizer = channelAuthorizerGenerator(channel, deprecatedAuthorizerOptions);\n channelAuthorizer.authorize(params.socketId, callback);\n };\n};\n\n// CONCATENATED MODULE: ./src/core/config.ts\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\n\n\nfunction getConfig(opts, pusher) {\n var config = {\n activityTimeout: opts.activityTimeout || defaults.activityTimeout,\n cluster: opts.cluster || defaults.cluster,\n httpPath: opts.httpPath || defaults.httpPath,\n httpPort: opts.httpPort || defaults.httpPort,\n httpsPort: opts.httpsPort || defaults.httpsPort,\n pongTimeout: opts.pongTimeout || defaults.pongTimeout,\n statsHost: opts.statsHost || defaults.stats_host,\n unavailableTimeout: opts.unavailableTimeout || defaults.unavailableTimeout,\n wsPath: opts.wsPath || defaults.wsPath,\n wsPort: opts.wsPort || defaults.wsPort,\n wssPort: opts.wssPort || defaults.wssPort,\n enableStats: getEnableStatsConfig(opts),\n httpHost: getHttpHost(opts),\n useTLS: shouldUseTLS(opts),\n wsHost: getWebsocketHost(opts),\n userAuthenticator: buildUserAuthenticator(opts),\n channelAuthorizer: buildChannelAuthorizer(opts, pusher)\n };\n if ('disabledTransports' in opts)\n config.disabledTransports = opts.disabledTransports;\n if ('enabledTransports' in opts)\n config.enabledTransports = opts.enabledTransports;\n if ('ignoreNullOrigin' in opts)\n config.ignoreNullOrigin = opts.ignoreNullOrigin;\n if ('timelineParams' in opts)\n config.timelineParams = opts.timelineParams;\n if ('nacl' in opts) {\n config.nacl = opts.nacl;\n }\n return config;\n}\nfunction getHttpHost(opts) {\n if (opts.httpHost) {\n return opts.httpHost;\n }\n if (opts.cluster) {\n return \"sockjs-\" + opts.cluster + \".pusher.com\";\n }\n return defaults.httpHost;\n}\nfunction getWebsocketHost(opts) {\n if (opts.wsHost) {\n return opts.wsHost;\n }\n if (opts.cluster) {\n return getWebsocketHostFromCluster(opts.cluster);\n }\n return getWebsocketHostFromCluster(defaults.cluster);\n}\nfunction getWebsocketHostFromCluster(cluster) {\n return \"ws-\" + cluster + \".pusher.com\";\n}\nfunction shouldUseTLS(opts) {\n if (runtime.getProtocol() === 'https:') {\n return true;\n }\n else if (opts.forceTLS === false) {\n return false;\n }\n return true;\n}\nfunction getEnableStatsConfig(opts) {\n if ('enableStats' in opts) {\n return opts.enableStats;\n }\n if ('disableStats' in opts) {\n return !opts.disableStats;\n }\n return false;\n}\nfunction buildUserAuthenticator(opts) {\n var userAuthentication = __assign({}, defaults.userAuthentication, opts.userAuthentication);\n if ('customHandler' in userAuthentication &&\n userAuthentication['customHandler'] != null) {\n return userAuthentication['customHandler'];\n }\n return user_authenticator(userAuthentication);\n}\nfunction buildChannelAuth(opts, pusher) {\n var channelAuthorization;\n if ('channelAuthorization' in opts) {\n channelAuthorization = __assign({}, defaults.channelAuthorization, opts.channelAuthorization);\n }\n else {\n channelAuthorization = {\n transport: opts.authTransport || defaults.authTransport,\n endpoint: opts.authEndpoint || defaults.authEndpoint\n };\n if ('auth' in opts) {\n if ('params' in opts.auth)\n channelAuthorization.params = opts.auth.params;\n if ('headers' in opts.auth)\n channelAuthorization.headers = opts.auth.headers;\n }\n if ('authorizer' in opts)\n channelAuthorization.customHandler = ChannelAuthorizerProxy(pusher, channelAuthorization, opts.authorizer);\n }\n return channelAuthorization;\n}\nfunction buildChannelAuthorizer(opts, pusher) {\n var channelAuthorization = buildChannelAuth(opts, pusher);\n if ('customHandler' in channelAuthorization &&\n channelAuthorization['customHandler'] != null) {\n return channelAuthorization['customHandler'];\n }\n return channel_authorizer(channelAuthorization);\n}\n\n// CONCATENATED MODULE: ./src/core/utils/flat_promise.ts\nfunction flatPromise() {\n var resolve, reject;\n var promise = new Promise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n return { promise: promise, resolve: resolve, reject: reject };\n}\n/* harmony default export */ var flat_promise = (flatPromise);\n\n// CONCATENATED MODULE: ./src/core/user.ts\nvar user_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar user_UserFacade = (function (_super) {\n user_extends(UserFacade, _super);\n function UserFacade(pusher) {\n var _this = _super.call(this, function (eventName, data) {\n logger.debug('No callbacks on user for ' + eventName);\n }) || this;\n _this.signin_requested = false;\n _this.user_data = null;\n _this.serverToUserChannel = null;\n _this.signinDonePromise = null;\n _this._signinDoneResolve = null;\n _this._onAuthorize = function (err, authData) {\n if (err) {\n logger.warn(\"Error during signin: \" + err);\n _this._cleanup();\n return;\n }\n _this.pusher.send_event('pusher:signin', {\n auth: authData.auth,\n user_data: authData.user_data\n });\n };\n _this.pusher = pusher;\n _this.pusher.connection.bind('state_change', function (_a) {\n var previous = _a.previous, current = _a.current;\n if (previous !== 'connected' && current === 'connected') {\n _this._signin();\n }\n if (previous === 'connected' && current !== 'connected') {\n _this._cleanup();\n _this._newSigninPromiseIfNeeded();\n }\n });\n _this.pusher.connection.bind('message', function (event) {\n var eventName = event.event;\n if (eventName === 'pusher:signin_success') {\n _this._onSigninSuccess(event.data);\n }\n if (_this.serverToUserChannel &&\n _this.serverToUserChannel.name === event.channel) {\n _this.serverToUserChannel.handleEvent(event);\n }\n });\n return _this;\n }\n UserFacade.prototype.signin = function () {\n if (this.signin_requested) {\n return;\n }\n this.signin_requested = true;\n this._signin();\n };\n UserFacade.prototype._signin = function () {\n if (!this.signin_requested) {\n return;\n }\n this._newSigninPromiseIfNeeded();\n if (this.pusher.connection.state !== 'connected') {\n return;\n }\n this.pusher.config.userAuthenticator({\n socketId: this.pusher.connection.socket_id\n }, this._onAuthorize);\n };\n UserFacade.prototype._onSigninSuccess = function (data) {\n try {\n this.user_data = JSON.parse(data.user_data);\n }\n catch (e) {\n logger.error(\"Failed parsing user data after signin: \" + data.user_data);\n this._cleanup();\n return;\n }\n if (typeof this.user_data.id !== 'string' || this.user_data.id === '') {\n logger.error(\"user_data doesn't contain an id. user_data: \" + this.user_data);\n this._cleanup();\n return;\n }\n this._signinDoneResolve();\n this._subscribeChannels();\n };\n UserFacade.prototype._subscribeChannels = function () {\n var _this = this;\n var ensure_subscribed = function (channel) {\n if (channel.subscriptionPending && channel.subscriptionCancelled) {\n channel.reinstateSubscription();\n }\n else if (!channel.subscriptionPending &&\n _this.pusher.connection.state === 'connected') {\n channel.subscribe();\n }\n };\n this.serverToUserChannel = new channels_channel(\"#server-to-user-\" + this.user_data.id, this.pusher);\n this.serverToUserChannel.bind_global(function (eventName, data) {\n if (eventName.indexOf('pusher_internal:') === 0 ||\n eventName.indexOf('pusher:') === 0) {\n return;\n }\n _this.emit(eventName, data);\n });\n ensure_subscribed(this.serverToUserChannel);\n };\n UserFacade.prototype._cleanup = function () {\n this.user_data = null;\n if (this.serverToUserChannel) {\n this.serverToUserChannel.unbind_all();\n this.serverToUserChannel.disconnect();\n this.serverToUserChannel = null;\n }\n if (this.signin_requested) {\n this._signinDoneResolve();\n }\n };\n UserFacade.prototype._newSigninPromiseIfNeeded = function () {\n if (!this.signin_requested) {\n return;\n }\n if (this.signinDonePromise && !this.signinDonePromise.done) {\n return;\n }\n var _a = flat_promise(), promise = _a.promise, resolve = _a.resolve, _ = _a.reject;\n promise.done = false;\n var setDone = function () {\n promise.done = true;\n };\n promise.then(setDone)[\"catch\"](setDone);\n this.signinDonePromise = promise;\n this._signinDoneResolve = resolve;\n };\n return UserFacade;\n}(dispatcher));\n/* harmony default export */ var user = (user_UserFacade);\n\n// CONCATENATED MODULE: ./src/core/pusher.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar pusher_Pusher = (function () {\n function Pusher(app_key, options) {\n var _this = this;\n checkAppKey(app_key);\n options = options || {};\n if (!options.cluster && !(options.wsHost || options.httpHost)) {\n var suffix = url_store.buildLogSuffix('javascriptQuickStart');\n logger.warn(\"You should always specify a cluster when connecting. \" + suffix);\n }\n if ('disableStats' in options) {\n logger.warn('The disableStats option is deprecated in favor of enableStats');\n }\n this.key = app_key;\n this.config = getConfig(options, this);\n this.channels = factory.createChannels();\n this.global_emitter = new dispatcher();\n this.sessionID = Math.floor(Math.random() * 1000000000);\n this.timeline = new timeline_timeline(this.key, this.sessionID, {\n cluster: this.config.cluster,\n features: Pusher.getClientFeatures(),\n params: this.config.timelineParams || {},\n limit: 50,\n level: timeline_level.INFO,\n version: defaults.VERSION\n });\n if (this.config.enableStats) {\n this.timelineSender = factory.createTimelineSender(this.timeline, {\n host: this.config.statsHost,\n path: '/timeline/v2/' + runtime.TimelineTransport.name\n });\n }\n var getStrategy = function (options) {\n return runtime.getDefaultStrategy(_this.config, options, strategy_builder_defineTransport);\n };\n this.connection = factory.createConnectionManager(this.key, {\n getStrategy: getStrategy,\n timeline: this.timeline,\n activityTimeout: this.config.activityTimeout,\n pongTimeout: this.config.pongTimeout,\n unavailableTimeout: this.config.unavailableTimeout,\n useTLS: Boolean(this.config.useTLS)\n });\n this.connection.bind('connected', function () {\n _this.subscribeAll();\n if (_this.timelineSender) {\n _this.timelineSender.send(_this.connection.isUsingTLS());\n }\n });\n this.connection.bind('message', function (event) {\n var eventName = event.event;\n var internal = eventName.indexOf('pusher_internal:') === 0;\n if (event.channel) {\n var channel = _this.channel(event.channel);\n if (channel) {\n channel.handleEvent(event);\n }\n }\n if (!internal) {\n _this.global_emitter.emit(event.event, event.data);\n }\n });\n this.connection.bind('connecting', function () {\n _this.channels.disconnect();\n });\n this.connection.bind('disconnected', function () {\n _this.channels.disconnect();\n });\n this.connection.bind('error', function (err) {\n logger.warn(err);\n });\n Pusher.instances.push(this);\n this.timeline.info({ instances: Pusher.instances.length });\n this.user = new user(this);\n if (Pusher.isReady) {\n this.connect();\n }\n }\n Pusher.ready = function () {\n Pusher.isReady = true;\n for (var i = 0, l = Pusher.instances.length; i < l; i++) {\n Pusher.instances[i].connect();\n }\n };\n Pusher.getClientFeatures = function () {\n return keys(filterObject({ ws: runtime.Transports.ws }, function (t) {\n return t.isSupported({});\n }));\n };\n Pusher.prototype.channel = function (name) {\n return this.channels.find(name);\n };\n Pusher.prototype.allChannels = function () {\n return this.channels.all();\n };\n Pusher.prototype.connect = function () {\n this.connection.connect();\n if (this.timelineSender) {\n if (!this.timelineSenderTimer) {\n var usingTLS = this.connection.isUsingTLS();\n var timelineSender = this.timelineSender;\n this.timelineSenderTimer = new PeriodicTimer(60000, function () {\n timelineSender.send(usingTLS);\n });\n }\n }\n };\n Pusher.prototype.disconnect = function () {\n this.connection.disconnect();\n if (this.timelineSenderTimer) {\n this.timelineSenderTimer.ensureAborted();\n this.timelineSenderTimer = null;\n }\n };\n Pusher.prototype.bind = function (event_name, callback, context) {\n this.global_emitter.bind(event_name, callback, context);\n return this;\n };\n Pusher.prototype.unbind = function (event_name, callback, context) {\n this.global_emitter.unbind(event_name, callback, context);\n return this;\n };\n Pusher.prototype.bind_global = function (callback) {\n this.global_emitter.bind_global(callback);\n return this;\n };\n Pusher.prototype.unbind_global = function (callback) {\n this.global_emitter.unbind_global(callback);\n return this;\n };\n Pusher.prototype.unbind_all = function (callback) {\n this.global_emitter.unbind_all();\n return this;\n };\n Pusher.prototype.subscribeAll = function () {\n var channelName;\n for (channelName in this.channels.channels) {\n if (this.channels.channels.hasOwnProperty(channelName)) {\n this.subscribe(channelName);\n }\n }\n };\n Pusher.prototype.subscribe = function (channel_name) {\n var channel = this.channels.add(channel_name, this);\n if (channel.subscriptionPending && channel.subscriptionCancelled) {\n channel.reinstateSubscription();\n }\n else if (!channel.subscriptionPending &&\n this.connection.state === 'connected') {\n channel.subscribe();\n }\n return channel;\n };\n Pusher.prototype.unsubscribe = function (channel_name) {\n var channel = this.channels.find(channel_name);\n if (channel && channel.subscriptionPending) {\n channel.cancelSubscription();\n }\n else {\n channel = this.channels.remove(channel_name);\n if (channel && channel.subscribed) {\n channel.unsubscribe();\n }\n }\n };\n Pusher.prototype.send_event = function (event_name, data, channel) {\n return this.connection.send_event(event_name, data, channel);\n };\n Pusher.prototype.shouldUseTLS = function () {\n return this.config.useTLS;\n };\n Pusher.prototype.signin = function () {\n this.user.signin();\n };\n Pusher.instances = [];\n Pusher.isReady = false;\n Pusher.logToConsole = false;\n Pusher.Runtime = runtime;\n Pusher.ScriptReceivers = runtime.ScriptReceivers;\n Pusher.DependenciesReceivers = runtime.DependenciesReceivers;\n Pusher.auth_callbacks = runtime.auth_callbacks;\n return Pusher;\n}());\n/* harmony default export */ var core_pusher = (pusher_Pusher);\nfunction checkAppKey(key) {\n if (key === null || key === undefined) {\n throw 'You must pass your app key when you instantiate Pusher.';\n }\n}\nruntime.setup(pusher_Pusher);\n\n// EXTERNAL MODULE: ./node_modules/tweetnacl/nacl-fast.js\nvar nacl_fast = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./src/core/pusher-with-encryption.ts\nvar pusher_with_encryption_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar pusher_with_encryption_PusherWithEncryption = (function (_super) {\n pusher_with_encryption_extends(PusherWithEncryption, _super);\n function PusherWithEncryption(app_key, options) {\n var _this = this;\n core_pusher.logToConsole = PusherWithEncryption.logToConsole;\n core_pusher.log = PusherWithEncryption.log;\n options = options || {};\n options.nacl = nacl_fast;\n _this = _super.call(this, app_key, options) || this;\n return _this;\n }\n return PusherWithEncryption;\n}(core_pusher));\n/* harmony default export */ var pusher_with_encryption = __webpack_exports__[\"default\"] = (pusher_with_encryption_PusherWithEncryption);\n\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pusher-with-encryption.js.map","// This is a wrapper to make importing the encrypted channel capable web build\n// nicer\n// import Pusher from 'pusher-js/with-encryption'\nmodule.exports = require('../dist/web/pusher-with-encryption');\n"],"names":["factory","window","modules","installedModules","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_require__","extendStatics","__extends","this","b","setPrototypeOf","__proto__","Array","__","constructor","INVALID_BYTE","Coder","_paddingCharacter","encodedLength","length","encode","data","out","_encodeByte","left","maxDecodedLength","decodedLength","_getPaddingLength","decode","Uint8Array","paddingLength","op","haveBad","v0","v1","v2","v3","_decodeChar","charCodeAt","Error","result","String","fromCharCode","stdCoder","URLSafeCoder","_super","apply","arguments","urlSafeCoder","encodeURLSafe","decodeURLSafe","INVALID_UTF16","INVALID_UTF8","arr","pos","chars","min","n1","n2","n3","push","join","nacl","gf","init","Float64Array","randombytes","_0","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","vn","xi","y","yi","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","inp","k","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","z","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","buffer","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","a","car25519","v","Math","floor","sel25519","q","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","e","f","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","g","want","crypto_box_afternm","crypto_box_open_afternm","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","crypto_hash","add","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","crypto_sign_open","chk","num","den","den2","den4","den6","unpackneg","crypto","crypto_secretbox_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","TypeError","cleanup","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","publicKey","secretKey","before","checkBoxLengths","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","sign","signedMsg","tmp","mlen","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","self","msCrypto","getRandomValues","default","AuthRequestType","ScriptReceiverFactory","prefix","lastId","callback","number","id","called","callbackWrapper","remove","receiver","ScriptReceivers","defaults","VERSION","PROTOCOL","wsPort","wssPort","wsPath","httpHost","httpPort","httpsPort","httpPath","stats_host","authEndpoint","authTransport","activityTimeout","pongTimeout","unavailableTimeout","cluster","userAuthentication","endpoint","transport","channelAuthorization","cdn_http","cdn_https","dependency_suffix","dependency_loader","DependencyLoader","options","receivers","loading","load","request","runtime","createScriptRequest","getPath","error","callbacks","successCallback","wasSuccessful","send","getRoot","protocol","getDocument","location","useTLS","replace","version","suffix","DependenciesReceivers","Dependencies","urlStore","baseUrl","urls","authenticationEndpoint","path","authorizationEndpoint","javascriptQuickStart","triggeringClientEvents","encryptedChannelSupport","fullUrl","url_store","url","urlObj","urlPrefix","BadEventName","_newTarget","_this","BadChannelName","RequestTimedOut","TransportPriorityTooLow","TransportClosed","UnsupportedFeature","UnsupportedTransport","UnsupportedStrategy","HTTPAuthError","status","xhr_auth","context","query","authOptions","authRequestType","xhr","createXHR","headerName","setRequestHeader","headers","onreadystatechange","readyState","parsed","JSON","parse","responseText","toString","UserAuthentication","ChannelAuthorization","b64chars","b64tab","base64_i","charAt","cb_utob","cc","utob","cb_encode","ccc","padlen","ord","btoa","abstract_timer","Timer","set","clear","delay","timer","isRunning","ensureAborted","timers_extends","timers_clearTimeout","clearTimeout","timers_clearInterval","clearInterval","OneOffTimer","setTimeout","PeriodicTimer","setInterval","Util","now","Date","valueOf","defer","method","args","_i","boundArguments","slice","concat","util","extend","target","sources","extensions","stringify","safeJSONStringify","arrayIndexOf","array","item","nativeIndexOf","indexOf","objectApply","keys","_","map","filter","test","filterObject","Boolean","any","encodeParamsObject","encodeURIComponent","buildQueryString","params","undefined","source","objects","paths","derez","nu","$ref","logger_Logger","Logger","globalLog","message","console","log","debug","warn","globalLogWarn","globalLogError","defaultLoggingFunction","core_pusher","logToConsole","logger","jsonp_auth","callbackName","nextAuthCallbackID","document","script","createElement","auth_callbacks","callback_name","src","head","getElementsByTagName","documentElement","insertBefore","firstChild","script_request","ScriptRequest","errorString","type","charset","addEventListener","onerror","onload","async","attachEvent","navigator","userAgent","errorScript","text","nextSibling","parentNode","removeChild","jsonp_request","JSONPRequest","jsonp_timeline","getAgent","sender","host","createJSONPRequest","getGenericURL","baseScheme","hostTLS","hostNonTLS","getGenericPath","queryString","ws","getInitial","http","sockjs","callback_registry","CallbackRegistry","_callbacks","prefixedEventName","names","removeCallback","removeAllCallbacks","binding","dispatcher","Dispatcher","failThrough","global_callbacks","eventName","bind_global","unbind","unbind_global","unbind_all","emit","metadata","transport_connection_extends","transport_connection_TransportConnection","TransportConnection","hooks","priority","initialize","transportConnectionInitializer","state","timeline","generateUniqueID","handlesActivityChecks","supportsPing","connect","socket","getSocket","onError","changeState","bindListeners","close","ping","onOpen","beforeOpen","onopen","buildTimelineMessage","onClose","closeEvent","code","reason","wasClean","unbindListeners","onMessage","onActivity","onclose","onmessage","onactivity","info","cid","transport_connection","transports_transport","Transport","isSupported","environment","createConnection","WSTransport","isInitialized","getWebSocketAPI","createWebSocket","httpConfiguration","streamingConfiguration","HTTPFactory","createStreamingSocket","pollingConfiguration","createPollingSocket","xhrConfiguration","isXHRSupported","transports","xhr_streaming","xhr_polling","SockJSTransport","file","SockJS","js_path","ignore_null_origin","ignoreNullOrigin","xdrConfiguration","isXDRSupported","XDRStreamingTransport","XDRPollingTransport","xdr_streaming","xdr_polling","transports_transports","net_info_extends","net_info_Network","NetInfo","isOnline","onLine","assistant_to_the_transport_manager","AssistantToTheTransportManager","manager","minPingDelay","maxPingDelay","pingDelay","connection","openTimestamp","onClosed","reportDeath","lifespan","max","isAlive","Protocol","decodeMessage","messageEvent","messageData","pusherEventData","pusherEvent","event","channel","user_id","encodeMessage","processHandshake","activity_timeout","action","socket_id","getCloseAction","getCloseError","protocol_protocol","connection_extends","connection_connection","Connection","send_event","listeners","activity","closed","handleCloseEvent","listener","connection_handshake","Handshake","timeline_sender","TimelineSender","isEmpty","TimelineTransport","channel_extends","channels_channel","Channel","pusher","subscribed","subscriptionPending","subscriptionCancelled","authorize","socketId","auth","trigger","disconnect","handleEvent","handleSubscriptionSucceededEvent","handleSubscriptionCountEvent","unsubscribe","subscription_count","subscriptionCount","subscribe","assign","channel_data","cancelSubscription","reinstateSubscription","private_channel_extends","PrivateChannel","config","channelAuthorizer","channelName","private_channel","members","Members","reset","each","member","setMyID","myID","onSubscription","subscriptionData","presence","count","me","addMember","memberData","user_info","removeMember","presence_channel_extends","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","label","sent","trys","ops","verb","iterator","pop","presence_channel","PresenceChannel","authData","channelData","_a","user","signinDonePromise","user_data","handleInternalEvent","addedMember","removedMember","utf8","base64","encrypted_channel_extends","encrypted_channel","EncryptedChannel","sharedSecret","handleEncryptedEvent","ciphertext","cipherText","getDataToEmit","raw","connection_manager_extends","connection_manager","ConnectionManager","usingTLS","errorCallbacks","buildErrorCallbacks","connectionCallbacks","buildConnectionCallbacks","handshakeCallbacks","buildHandshakeCallbacks","Network","getNetwork","netinfo","retryIn","sendActivityCheck","updateStrategy","runner","strategy","updateState","startConnecting","setUnavailableTimer","disconnectInternally","isUsingTLS","handshake","handshakeError","abortConnecting","abort","clearRetryTimer","clearUnavailableTimer","abandonConnection","getStrategy","round","retryTimer","unavailableTimer","stopActivityCheck","activityTimer","pong_timed_out","resetActivityCheck","shouldRetry","connected","Infinity","setConnection","withErrorEmitted","tls_only","refused","backoff","retry","newState","previousState","newStateDescription","previous","current","channels_Channels","Channels","channels","createEncryptedChannel","errMsg","createPrivateChannel","createPresenceChannel","createChannel","all","values","find","createChannels","createConnectionManager","createTimelineSender","createHandshake","createAssistantToTheTransportManager","transport_manager","TransportManager","livesLeft","lives","getAssistant","sequential_strategy","SequentialStrategy","strategies","loop","failFast","timeout","timeoutLimit","minPriority","tryNextStrategy","tryStrategy","forceMinPriority","best_connected_ever_strategy","BestConnectedEverStrategy","callbackBuilder","runners","rs","abortRunner","collections_all","allRunnersFailed","aborted","cached_strategy_CachedStrategy","CachedStrategy","ttl","storage","getLocalStorage","serializedCache","getTransportCacheKey","flushTransportCache","fetchTransportCache","timestamp","cached","latency","startTimestamp","cb","storeTransportCache","cached_strategy","delayed_strategy","DelayedStrategy","if_strategy","IfStrategy","trueBranch","falseBranch","first_connected_strategy","FirstConnectedStrategy","testSupportsStrategy","State","default_strategy","baseOptions","defineTransport","definedTransports","defineTransportStrategy","wsStrategy","ws_options","wsHost","wss_options","sockjs_options","timeouts","ws_manager","streaming_manager","ws_transport","wss_transport","sockjs_transport","xhr_streaming_transport","xdr_streaming_transport","xhr_polling_transport","xdr_polling_transport","ws_loop","wss_loop","sockjs_loop","streaming_loop","polling_loop","http_loop","http_fallback_loop","http_xdomain_request","getRequest","xdr","XDomainRequest","ontimeout","onprogress","onChunk","abortRequest","http_request_extends","http_request","HTTPRequest","start","payload","position","unloader","addUnloadListener","removeUnloadListener","chunk","advanceBuffer","isBufferTooLong","unreadData","endOfLinePosition","autoIncrement","getUniqueURL","separator","randomNumber","random","TimelineLevel","http_socket","HTTPSocket","session","randomString","parts","exec","getLocation","CONNECTING","openStream","sendRaw","sendHeartbeat","OPEN","createSocketRequest","reconnect","closeStream","CLOSED","onEvent","onHeartbeat","hostname","urlParts","stream","getReceiveURL","onFinished","http_streaming_socket","http_polling_socket","http_xhr_request","getXHRAPI","http_http","createSocket","createRequest","getDefaultStrategy","Transports","XMLHttpRequest","WebSocket","MozWebSocket","setup","PusherClass","Pusher","initializeOnDocumentBody","onDocumentBody","ready","getProtocol","getAuthorizers","ajax","jsonp","localStorage","createXMLHttpRequest","createMicrosoftXHR","ActiveXObject","createXDR","Constructor","withCredentials","documentProtocol","removeEventListener","detachEvent","timeline_level","timeline_timeline","Timeline","events","uniqueID","level","limit","shift","ERROR","INFO","DEBUG","sendfn","bundle","lib","features","transport_strategy","TransportStrategy","failAttempt","onInitialized","serializedTransport","strategy_builder_Transports","strategy_builder_defineTransport","transportClass","enabledTransports","disabledTransports","strategy_builder_UnsupportedStrategy","deferred","user_authenticator","composeChannelQuery","channel_authorizer","channel_authorizer_composeChannelQuery","__assign","getHttpHost","opts","getWebsocketHost","getWebsocketHostFromCluster","shouldUseTLS","forceTLS","getEnableStatsConfig","enableStats","disableStats","buildUserAuthenticator","buildChannelAuthorizer","customHandler","channelAuthorizerGenerator","deprecatedAuthorizerOptions","ChannelAuthorizerProxy","authorizer","buildChannelAuth","flat_promise","promise","res","rej","user_extends","UserFacade","signin_requested","serverToUserChannel","_signinDoneResolve","_onAuthorize","err","_cleanup","_signin","_newSigninPromiseIfNeeded","_onSigninSuccess","signin","userAuthenticator","_subscribeChannels","setDone","pusher_Pusher","app_key","checkAppKey","statsHost","timelineParams","global_emitter","sessionID","getClientFeatures","timelineSender","subscribeAll","internal","instances","isReady","allChannels","timelineSenderTimer","event_name","channel_name","Runtime","nacl_fast","pusher_with_encryption_extends","pusher_with_encryption_PusherWithEncryption","PusherWithEncryption"],"sourceRoot":""}