UNPKG

322 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../node_modules/debounce/index.js","../../../../node_modules/post-robot/dist/post-robot.js","../../../../node_modules/post-robot/index.js","../../../logger/lib/logger.browser.js","../../../../node_modules/lodash.merge/index.js","../../../../node_modules/lodash.get/index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"postRobot\", [], factory) : \"object\" == typeof exports ? exports.postRobot = factory() : root.postRobot = factory();\n}(\"undefined\" != typeof self ? self : this, function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n }({\n \"./node_modules/cross-domain-utils/src/constants.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.d(__webpack_exports__, \"a\", function() {\n return PROTOCOL;\n });\n __webpack_require__.d(__webpack_exports__, \"b\", function() {\n return WILDCARD;\n });\n var PROTOCOL = {\n MOCK: \"mock:\",\n FILE: \"file:\",\n ABOUT: \"about:\"\n }, WILDCARD = \"*\";\n },\n \"./node_modules/cross-domain-utils/src/index.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(\"./node_modules/cross-domain-utils/src/utils.js\");\n __webpack_require__.d(__webpack_exports__, \"getActualDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.a;\n });\n __webpack_require__.d(__webpack_exports__, \"getAncestor\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.b;\n });\n __webpack_require__.d(__webpack_exports__, \"getDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.c;\n });\n __webpack_require__.d(__webpack_exports__, \"getUserAgent\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.d;\n });\n __webpack_require__.d(__webpack_exports__, \"isActuallySameDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.e;\n });\n __webpack_require__.d(__webpack_exports__, \"isAncestor\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.f;\n });\n __webpack_require__.d(__webpack_exports__, \"isIframe\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.g;\n });\n __webpack_require__.d(__webpack_exports__, \"isPopup\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.h;\n });\n __webpack_require__.d(__webpack_exports__, \"isWindow\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.i;\n });\n __webpack_require__.d(__webpack_exports__, \"isWindowClosed\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.j;\n });\n __webpack_require__.d(__webpack_exports__, \"matchDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.k;\n });\n __webpack_require__.d(__webpack_exports__, \"stringifyDomainPattern\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.l;\n });\n var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__(\"./node_modules/cross-domain-utils/src/types.js\");\n __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__types__), __webpack_require__(\"./node_modules/cross-domain-utils/src/constants.js\");\n },\n \"./node_modules/cross-domain-utils/src/types.js\": function(module, exports) {},\n \"./node_modules/cross-domain-utils/src/utils.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n function isRegex(item) {\n return \"[object RegExp]\" === Object.prototype.toString.call(item);\n }\n var constants = __webpack_require__(\"./node_modules/cross-domain-utils/src/constants.js\");\n __webpack_exports__.a = getActualDomain;\n __webpack_exports__.c = getDomain;\n __webpack_exports__.e = isActuallySameDomain;\n __webpack_exports__.j = function(win) {\n var allowMock = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && function(win) {\n if (!isActuallySameDomain(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n return !(!doc || !doc.documentElement || doc.documentElement.contains(frame));\n }(frame)) return !0;\n }\n return !1;\n };\n __webpack_exports__.d = function(win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n };\n __webpack_exports__.b = getAncestor;\n __webpack_exports__.f = function(parent, child) {\n var actualParent = getAncestor(child);\n if (actualParent) return actualParent === parent;\n if (child === parent) return !1;\n if (function(win) {\n if (win) {\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = function getAllChildFrames(win) {\n for (var result = [], _i3 = 0, _getFrames2 = getFrames(win), _length2 = null == _getFrames2 ? 0 : _getFrames2.length; _i3 < _length2; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame), _length4 = null == _getAllChildFrames2 ? 0 : _getAllChildFrames2.length; _i5 < _length4; _i5++) {\n var childFrame = _getAllChildFrames2[_i5];\n result.push(childFrame);\n }\n }\n return result;\n }(win), _length6 = null == _getAllChildFrames4 ? 0 : _getAllChildFrames4.length; _i7 < _length6; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (getParent(frame) === frame) return frame;\n }\n }\n }(child) === child) return !1;\n for (var _i15 = 0, _getFrames8 = getFrames(parent), _length14 = null == _getFrames8 ? 0 : _getFrames8.length; _i15 < _length14; _i15++) if (_getFrames8[_i15] === child) return !0;\n return !1;\n };\n __webpack_exports__.h = function() {\n return Boolean(getOpener(window));\n };\n __webpack_exports__.g = function() {\n return Boolean(getParent(window));\n };\n __webpack_exports__.k = function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return pattern === constants.b || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some(function(subpattern) {\n return matchDomain(subpattern, origin);\n }));\n };\n __webpack_exports__.l = function(pattern) {\n return Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() : pattern.toString();\n };\n __webpack_exports__.i = function(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === Object.prototype.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n obj && obj.__cross_domain_utils_window_check__;\n } catch (err) {\n return !0;\n }\n return !1;\n };\n var IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function isAboutProtocol() {\n return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window).location.protocol === constants.a.ABOUT;\n }\n function getParent(win) {\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n if (win && !getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n win && win.location && win.location.href;\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n var location = (win = win || window).location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = location.protocol;\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (protocol === constants.a.FILE) return constants.a.FILE + \"//\";\n if (protocol === constants.a.ABOUT) {\n var parent = getParent(win);\n return parent && canReadFromWindow(parent) ? getActualDomain(parent) : constants.a.ABOUT + \"//\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n var domain = getActualDomain(win = win || window);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(constants.a.MOCK) ? win.mockDomain : domain;\n }\n function isActuallySameDomain(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [], frames = void 0;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len = void 0;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n var iframeWindows = [], iframeFrames = [];\n function getAncestor(win) {\n return getOpener(win = win || window) || getParent(win) || void 0;\n }\n },\n \"./src/index.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: !0\n });\n __webpack_require__.d({}, \"WeakMap\", function() {\n return weakmap_CrossDomainSafeWeakMap;\n });\n var src_interface_namespaceObject = {};\n __webpack_require__.d(src_interface_namespaceObject, \"cleanUpWindow\", function() {\n return cleanUpWindow;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"Promise\", function() {\n return promise_ZalgoPromise;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"bridge\", function() {\n return bridge;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"init\", function() {\n return init;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"parent\", function() {\n return public_parent;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"send\", function() {\n return _send;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"request\", function() {\n return request;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"sendToParent\", function() {\n return sendToParent;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"client\", function() {\n return client;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"on\", function() {\n return _on;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"listen\", function() {\n return listen;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"once\", function() {\n return server_once;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"listener\", function() {\n return server_listener;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"CONFIG\", function() {\n return CONFIG;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"CONSTANTS\", function() {\n return constants_CONSTANTS;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"disable\", function() {\n return disable;\n });\n var src = __webpack_require__(\"./node_modules/cross-domain-utils/src/index.js\");\n function safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var _ALLOWED_POST_MESSAGE, defineProperty = Object.defineProperty, counter = Date.now() % 1e9, weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n !function(instance, Constructor) {\n if (!(instance instanceof CrossDomainSafeWeakMap)) throw new TypeError(\"Cannot call a class as a function\");\n }(this);\n counter += 1;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\" + counter;\n if (function() {\n if (\"undefined\" == typeof WeakMap) return !1;\n if (void 0 === Object.freeze) return !1;\n try {\n var testWeakMap = new WeakMap(), testKey = {};\n Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new WeakMap();\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n CrossDomainSafeWeakMap.prototype._cleanupClosedWindows = function() {\n for (var weakmap = this.weakmap, keys = this.keys, i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (Object(src.isWindow)(value) && Object(src.isWindowClosed)(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n CrossDomainSafeWeakMap.prototype.isSafeToReadWrite = function(key) {\n if (Object(src.isWindow)(key)) return !1;\n try {\n key && key.self;\n key && key[this.name];\n } catch (err) {\n return !1;\n }\n return !0;\n };\n CrossDomainSafeWeakMap.prototype.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var name = this.name, entry = key[name];\n entry && entry[0] === key ? entry[1] = value : defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n } else {\n this._cleanupClosedWindows();\n var keys = this.keys, values = this.values, index = safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n }\n };\n CrossDomainSafeWeakMap.prototype.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (!this.isSafeToReadWrite(key)) {\n this._cleanupClosedWindows();\n var index = safeIndexOf(this.keys, key);\n if (-1 === index) return;\n return this.values[index];\n }\n var entry = key[this.name];\n if (entry && entry[0] === key) return entry[1];\n };\n CrossDomainSafeWeakMap.prototype.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } else {\n this._cleanupClosedWindows();\n var keys = this.keys, index = safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n }\n };\n CrossDomainSafeWeakMap.prototype.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return !0;\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n }\n this._cleanupClosedWindows();\n return -1 !== safeIndexOf(this.keys, key);\n };\n CrossDomainSafeWeakMap.prototype.getOrSet = function(key, getter) {\n if (this.has(key)) return this.get(key);\n var value = getter();\n this.set(key, value);\n return value;\n };\n return CrossDomainSafeWeakMap;\n }(), constants_CONSTANTS = {\n POST_MESSAGE_TYPE: {\n REQUEST: \"postrobot_message_request\",\n RESPONSE: \"postrobot_message_response\",\n ACK: \"postrobot_message_ack\"\n },\n POST_MESSAGE_ACK: {\n SUCCESS: \"success\",\n ERROR: \"error\"\n },\n POST_MESSAGE_NAMES: {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_ready\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n },\n WINDOW_TYPES: {\n FULLPAGE: \"fullpage\",\n POPUP: \"popup\",\n IFRAME: \"iframe\"\n },\n WINDOW_PROPS: {\n POSTROBOT: \"__postRobot__\"\n },\n SERIALIZATION_TYPES: {\n METHOD: \"postrobot_method\",\n ERROR: \"postrobot_error\",\n PROMISE: \"postrobot_promise\",\n ZALGO_PROMISE: \"postrobot_zalgo_promise\",\n REGEX: \"regex\"\n },\n SEND_STRATEGIES: {\n POST_MESSAGE: \"postrobot_post_message\",\n BRIDGE: \"postrobot_bridge\",\n GLOBAL: \"postrobot_global\"\n },\n MOCK_PROTOCOL: \"mock:\",\n FILE_PROTOCOL: \"file:\",\n BRIDGE_NAME_PREFIX: \"__postrobot_bridge__\",\n POSTROBOT_PROXY: \"__postrobot_proxy__\",\n WILDCARD: \"*\"\n }, POST_MESSAGE_NAMES = {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_hello\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n }, CONFIG = (Object.keys(POST_MESSAGE_NAMES).map(function(key) {\n return POST_MESSAGE_NAMES[key];\n }), {\n ALLOW_POSTMESSAGE_POPUP: !(\"__ALLOW_POSTMESSAGE_POPUP__\" in window) || window.__ALLOW_POSTMESSAGE_POPUP__,\n BRIDGE_TIMEOUT: 5e3,\n CHILD_WINDOW_TIMEOUT: 5e3,\n ACK_TIMEOUT: -1 !== window.navigator.userAgent.match(/MSIE/i) ? 1e4 : 2e3,\n RES_TIMEOUT: -1,\n ALLOWED_POST_MESSAGE_METHODS: (_ALLOWED_POST_MESSAGE = {}, _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = !0, \n _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.BRIDGE] = !0, _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.GLOBAL] = !0, \n _ALLOWED_POST_MESSAGE),\n ALLOW_SAME_ORIGIN: !1\n });\n 0 === window.location.href.indexOf(constants_CONSTANTS.FILE_PROTOCOL) && (CONFIG.ALLOW_POSTMESSAGE_POPUP = !0);\n var _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function stringifyError(err) {\n var level = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"<unknown error: \" + Object.prototype.toString.call(err) + \">\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack, message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return \"function\" == typeof err.toString ? err.toString() : Object.prototype.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n var once = function(method) {\n if (!method) return method;\n var called = !1;\n return function() {\n if (!called) {\n called = !0;\n return method.apply(this, arguments);\n }\n };\n };\n function util_noop() {}\n function uniqueID() {\n var chars = \"0123456789abcdef\";\n return \"xxxxxxxxxx\".replace(/./g, function() {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n });\n }\n function replaceObject(item, callback) {\n var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\n if (depth >= 100) throw new Error(\"Self-referential object passed, or object contained too many layers\");\n var newobj = void 0;\n if (\"object\" !== (void 0 === item ? \"undefined\" : _typeof(item)) || null === item || Array.isArray(item)) {\n if (!Array.isArray(item)) throw new TypeError(\"Invalid type: \" + (void 0 === item ? \"undefined\" : _typeof(item)));\n newobj = [];\n } else newobj = {};\n !function(item, callback) {\n Array.isArray(item) ? function(item, callback) {\n for (var i = 0; i < item.length; i++) callback(item[i], i);\n }(item, callback) : \"object\" === (void 0 === item ? \"undefined\" : _typeof(item)) && null !== item && function(item, callback) {\n for (var _key in item) item.hasOwnProperty(_key) && callback(item[_key], _key);\n }(item, callback);\n }(item, function(childItem, key) {\n var result = callback(childItem, key);\n void 0 !== result ? newobj[key] = result : \"object\" === (void 0 === childItem ? \"undefined\" : _typeof(childItem)) && null !== childItem ? newobj[key] = replaceObject(childItem, callback, depth + 1) : newobj[key] = childItem;\n });\n return newobj;\n }\n function isRegex(item) {\n return \"[object RegExp]\" === Object.prototype.toString.call(item);\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n function getGlobal() {\n var glob = void 0;\n if (\"undefined\" != typeof window) glob = window; else {\n if (\"undefined\" == typeof window) throw new TypeError(\"Can not find global\");\n glob = window;\n }\n var zalgoGlobal = glob.__zalgopromise__ = glob.__zalgopromise__ || {};\n zalgoGlobal.flushPromises = zalgoGlobal.flushPromises || [];\n zalgoGlobal.activeCount = zalgoGlobal.activeCount || 0;\n zalgoGlobal.possiblyUnhandledPromiseHandlers = zalgoGlobal.possiblyUnhandledPromiseHandlers || [];\n zalgoGlobal.dispatchedErrors = zalgoGlobal.dispatchedErrors || [];\n return zalgoGlobal;\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n !function(instance, Constructor) {\n if (!(instance instanceof ZalgoPromise)) throw new TypeError(\"Cannot call a class as a function\");\n }(this);\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result = void 0, _error = void 0, resolved = !1, rejected = !1, isAsync = !1;\n try {\n handler(function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }, function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n });\n } catch (err) {\n this.reject(err);\n return;\n }\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n ZalgoPromise.prototype.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n ZalgoPromise.prototype.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : Object.prototype.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout(function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === getGlobal().dispatchedErrors.indexOf(err)) {\n getGlobal().dispatchedErrors.push(err);\n setTimeout(function() {\n throw err;\n }, 1);\n for (var j = 0; j < getGlobal().possiblyUnhandledPromiseHandlers.length; j++) getGlobal().possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }, 1);\n this.dispatch();\n return this;\n };\n ZalgoPromise.prototype.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n return this;\n };\n ZalgoPromise.prototype.dispatch = function() {\n var _this3 = this, dispatching = this.dispatching, resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n getGlobal().activeCount += 1;\n for (var _loop = function(i) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise, result = void 0;\n if (resolved) try {\n result = onSuccess ? onSuccess(_this3.value) : _this3.value;\n } catch (err) {\n promise.reject(err);\n return \"continue\";\n } else if (rejected) {\n if (!onError) {\n promise.reject(_this3.error);\n return \"continue\";\n }\n try {\n result = onError(_this3.error);\n } catch (err) {\n promise.reject(err);\n return \"continue\";\n }\n }\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n result.resolved ? promise.resolve(result.value) : promise.reject(result.error);\n result.errorHandled = !0;\n } else utils_isPromise(result) ? result instanceof ZalgoPromise && (result.resolved || result.rejected) ? result.resolved ? promise.resolve(result.value) : promise.reject(result.error) : result.then(function(res) {\n promise.resolve(res);\n }, function(err) {\n promise.reject(err);\n }) : promise.resolve(result);\n }, i = 0; i < handlers.length; i++) _loop(i);\n handlers.length = 0;\n this.dispatching = !1;\n getGlobal().activeCount -= 1;\n 0 === getGlobal().activeCount && ZalgoPromise.flushQueue();\n }\n };\n ZalgoPromise.prototype.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise();\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n ZalgoPromise.prototype.catch = function(onError) {\n return this.then(void 0, onError);\n };\n ZalgoPromise.prototype.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then(function(result) {\n return ZalgoPromise.try(onFinally).then(function() {\n return result;\n });\n }, function(err) {\n return ZalgoPromise.try(onFinally).then(function() {\n throw err;\n });\n });\n };\n ZalgoPromise.prototype.timeout = function(time, err) {\n var _this4 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout(function() {\n _this4.resolved || _this4.rejected || _this4.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }, time);\n return this.then(function(result) {\n clearTimeout(timeout);\n return result;\n });\n };\n ZalgoPromise.prototype.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise(function(resolve, reject) {\n return value.then(resolve, reject);\n }) : new ZalgoPromise().resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return new ZalgoPromise().reject(error);\n };\n ZalgoPromise.asyncReject = function(error) {\n return new ZalgoPromise().asyncReject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise(), count = promises.length, results = [];\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n for (var _loop2 = function(i) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n return \"continue\";\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n return \"continue\";\n }\n ZalgoPromise.resolve(prom).then(function(result) {\n results[i] = result;\n 0 == (count -= 1) && promise.resolve(results);\n }, function(err) {\n promise.reject(err);\n });\n }, i = 0; i < promises.length; i++) _loop2(i);\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n return ZalgoPromise.all(Object.keys(promises).map(function(key) {\n return ZalgoPromise.resolve(promises[key]).then(function(value) {\n result[key] = value;\n });\n })).then(function() {\n return result;\n });\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n getGlobal().possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n getGlobal().possiblyUnhandledPromiseHandlers.splice(getGlobal().possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result = void 0;\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n return ZalgoPromise.reject(err);\n }\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise(function(resolve) {\n setTimeout(resolve, _delay);\n });\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n var promise = new ZalgoPromise();\n getGlobal().flushPromises.push(promise);\n 0 === getGlobal().activeCount && ZalgoPromise.flushQueue();\n return promise;\n };\n ZalgoPromise.flushQueue = function() {\n var promisesToFlush = getGlobal().flushPromises;\n getGlobal().flushPromises = [];\n for (var _i2 = 0, _length2 = null == promisesToFlush ? 0 : promisesToFlush.length; _i2 < _length2; _i2++) promisesToFlush[_i2].resolve();\n };\n return ZalgoPromise;\n }(), global = window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] = window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] || {};\n global.registerSelf = function() {};\n var serialize__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n global.methods = global.methods || new weakmap_CrossDomainSafeWeakMap();\n var listenForMethods = once(function() {\n global.on(constants_CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n origin: constants_CONSTANTS.WILDCARD\n }, function(_ref) {\n var source = _ref.source, origin = _ref.origin, data = _ref.data, methods = global.methods.get(source);\n if (!methods) throw new Error(\"Could not find any methods this window has privileges to call\");\n var meth = methods[data.id];\n if (!meth) throw new Error(\"Could not find method with id: \" + data.id);\n if (!Object(src.matchDomain)(meth.domain, origin)) throw new Error(\"Method domain \" + meth.domain + \" does not match origin \" + origin);\n return promise_ZalgoPromise.try(function() {\n return meth.method.apply({\n source: source,\n origin: origin,\n data: data\n }, data.args);\n }).then(function(result) {\n return {\n result: result,\n id: data.id,\n name: data.name\n };\n });\n });\n });\n function isSerialized(item, type) {\n return \"object\" === (void 0 === item ? \"undefined\" : serialize__typeof(item)) && null !== item && item.__type__ === type;\n }\n function serializeMethod(destination, domain, method, name) {\n var id = uniqueID(), methods = global.methods.get(destination);\n if (!methods) {\n methods = {};\n global.methods.set(destination, methods);\n }\n methods[id] = {\n domain: domain,\n method: method\n };\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.METHOD,\n __id__: id,\n __name__: name\n };\n }\n function deserializeMethod(source, origin, obj) {\n function wrapper() {\n var args = Array.prototype.slice.call(arguments);\n return global.send(source, constants_CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n id: obj.__id__,\n name: obj.__name__,\n args: args\n }, {\n domain: origin,\n timeout: -1\n }).then(function(_ref2) {\n return _ref2.data.result;\n }, function(err) {\n throw err;\n });\n }\n wrapper.__name__ = obj.__name__;\n wrapper.__xdomain__ = !0;\n wrapper.source = source;\n wrapper.origin = origin;\n return wrapper;\n }\n function deserializeZalgoPromise(source, origin, prom) {\n return new promise_ZalgoPromise(function(resolve, reject) {\n return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n });\n }\n global.readyPromises = global.readyPromises || new weakmap_CrossDomainSafeWeakMap();\n function sayHello(win) {\n return global.send(win, constants_CONSTANTS.POST_MESSAGE_NAMES.HELLO, {}, {\n domain: constants_CONSTANTS.WILDCARD,\n timeout: -1\n }).then(function(_ref2) {\n return {\n origin: _ref2.origin\n };\n });\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES[constants_CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = function(win, serializedMessage, domain) {\n (Array.isArray(domain) ? domain : \"string\" == typeof domain ? [ domain ] : [ constants_CONSTANTS.WILDCARD ]).map(function(dom) {\n if (0 === dom.indexOf(constants_CONSTANTS.MOCK_PROTOCOL)) {\n if (window.location.protocol === constants_CONSTANTS.FILE_PROTOCOL) return constants_CONSTANTS.WILDCARD;\n if (!Object(src.isActuallySameDomain)(win)) throw new Error(\"Attempting to send messsage to mock domain \" + dom + \", but window is actually cross-domain\");\n return Object(src.getActualDomain)(win);\n }\n return 0 === dom.indexOf(constants_CONSTANTS.FILE_PROTOCOL) ? constants_CONSTANTS.WILDCARD : dom;\n }).forEach(function(dom) {\n return win.postMessage(serializedMessage, dom);\n });\n };\n var _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n };\n function sendMessage(win, message, domain) {\n return promise_ZalgoPromise.try(function() {\n var _jsonStringify;\n message = function(win, message) {\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, id = uniqueID(), type = Object(src.isPopup)() ? constants_CONSTANTS.WINDOW_TYPES.POPUP : Object(src.isIframe)() ? constants_CONSTANTS.WINDOW_TYPES.IFRAME : constants_CONSTANTS.WINDOW_TYPES.FULLPAGE, sourceDomain = Object(src.getDomain)(window);\n return _extends({}, message, options, {\n sourceDomain: sourceDomain,\n id: message.id || id,\n windowType: type\n });\n }(win, message, {\n data: function(destination, domain, obj) {\n return replaceObject({\n obj: message.data\n }, function(item, key) {\n return \"function\" == typeof item ? serializeMethod(destination, domain, item, key.toString()) : item instanceof Error ? (err = item, \n {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.ERROR,\n __message__: stringifyError(err),\n __code__: err.code\n }) : window.Promise && item instanceof window.Promise ? function(destination, domain, promise, name) {\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.PROMISE,\n __then__: serializeMethod(destination, domain, function(resolve, reject) {\n return promise.then(resolve, reject);\n }, name + \".then\")\n };\n }(destination, domain, item, key.toString()) : promise_ZalgoPromise.isPromise(item) ? function(destination, domain, promise, name) {\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE,\n __then__: serializeMethod(destination, domain, function(resolve, reject) {\n return promise.then(resolve, reject);\n }, name + \".then\")\n };\n }(destination, domain, item, key.toString()) : isRegex(item) ? (regex = item, {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.REGEX,\n __source__: regex.source\n }) : void 0;\n var err, regex;\n }).obj;\n }(win, domain),\n domain: domain\n });\n if (win === window && !CONFIG.ALLOW_SAME_ORIGIN) throw new Error(\"Attemping to send message to self\");\n if (Object(src.isWindowClosed)(win)) throw new Error(\"Window is closed\");\n var messages = [], serializedMessage = function(obj, replacer, indent) {\n var objectToJSON = void 0, arrayToJSON = void 0;\n try {\n if (\"{}\" !== JSON.stringify({})) {\n objectToJSON = Object.prototype.toJSON;\n delete Object.prototype.toJSON;\n }\n if (\"{}\" !== JSON.stringify({})) throw new Error(\"Can not correctly serialize JSON objects\");\n if (\"[]\" !== JSON.stringify([])) {\n arrayToJSON = Array.prototype.toJSON;\n delete Array.prototype.toJSON;\n }\n if (\"[]\" !== JSON.stringify([])) throw new Error(\"Can not correctly serialize JSON objects\");\n } catch (err) {\n throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n }\n var result = JSON.stringify.call(this, obj, null, 2);\n try {\n objectToJSON && (Object.prototype.toJSON = objectToJSON);\n arrayToJSON && (Array.prototype.toJSON = arrayToJSON);\n } catch (err) {\n throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n }\n return result;\n }(((_jsonStringify = {})[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] = message, \n _jsonStringify));\n return promise_ZalgoPromise.map(Object.keys(SEND_MESSAGE_STRATEGIES), function(strategyName) {\n return promise_ZalgoPromise.try(function() {\n if (!CONFIG.ALLOWED_POST_MESSAGE_METHODS[strategyName]) throw new Error(\"Strategy disallowed: \" + strategyName);\n return SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n }).then(function() {\n messages.push(strategyName + \": success\");\n return !0;\n }, function(err) {\n messages.push(strategyName + \": \" + stringifyError(err) + \"\\n\");\n return !1;\n });\n }).then(function(results) {\n var success = results.some(Boolean), status = message.type + \" \" + message.name + \" \" + (success ? \"success\" : \"error\") + \":\\n - \" + messages.join(\"\\n - \") + \"\\n\";\n if (!success) throw new Error(status);\n });\n });\n }\n global.responseListeners = global.responseListeners || {};\n global.requestListeners = global.requestListeners || {};\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new function() {}();\n global.erroredResponseListeners = global.erroredResponseListeners || {};\n var _RECEIVE_MESSAGE_TYPE, __DOMAIN_REGEX__ = \"__domain_regex__\";\n function getResponseListener(hash) {\n return global.responseListeners[hash];\n }\n function deleteResponseListener(hash) {\n delete global.responseListeners[hash];\n }\n function isResponseListenerErrored(hash) {\n return Boolean(global.erroredResponseListeners[hash]);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n win === constants_CONSTANTS.WILDCARD && (win = null);\n domain === constants_CONSTANTS.WILDCARD && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n var nameListeners = global.requestListeners[name];\n if (nameListeners) for (var _i2 = 0, _ref3 = [ win, global.WINDOW_WILDCARD ], _length2 = null == _ref3 ? 0 : _ref3.length; _i2 < _length2; _i2++) {\n var winQualifier = _ref3[_i2], winListeners = winQualifier && nameListeners.get(winQualifier);\n if (winListeners) {\n if (domain && \"string\" == typeof domain) {\n if (winListeners[domain]) return winListeners[domain];\n if (winListeners[__DOMAIN_REGEX__]) for (var _i4 = 0, _winListeners$__DOMAI2 = winListeners[__DOMAIN_REGEX__], _length4 = null == _winListeners$__DOMAI2 ? 0 : _winListeners$__DOMAI2.length; _i4 < _length4; _i4++) {\n var _ref5 = _winListeners$__DOMAI2[_i4], regex = _ref5.regex, listener = _ref5.listener;\n if (Object(src.matchDomain)(regex, domain)) return listener;\n }\n }\n if (winListeners[constants_CONSTANTS.WILDCARD]) return winListeners[constants_CONSTANTS.WILDCARD];\n }\n }\n }\n var types__extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }, RECEIVE_MESSAGE_TYPES = ((_RECEIVE_MESSAGE_TYPE = {})[constants_CONSTANTS.POST_MESSAGE_TYPE.ACK] = function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message ack for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Ack origin \" + origin + \" does not match domain \" + options.domain.toString());\n options.ack = !0;\n }\n }, _RECEIVE_MESSAGE_TYPE[constants_CONSTANTS.POST_MESSAGE_TYPE.REQUEST] = function(source, origin, message) {\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n function respond(data) {\n return message.fireAndForget || Object(src.isWindowClosed)(source) ? promise_ZalgoPromise.resolve() : sendMessage(source, types__extends({\n target: message.originalSource,\n hash: message.hash,\n name: message.name\n }, data), origin);\n }\n return promise_ZalgoPromise.all([ respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.ACK\n }), promise_ZalgoPromise.try(function() {\n if (!options) throw new Error(\"No handler found for post message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Request origin \" + origin + \" does not match domain \" + options.domain.toString());\n var data = message.data;\n return options.handler({\n source: source,\n origin: origin,\n data: data\n });\n }).then(function(data) {\n return respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n ack: constants_CONSTANTS.POST_MESSAGE_ACK.SUCCESS,\n data: data\n });\n }, function(err) {\n var error = stringifyError(err).replace(/^Error: /, \"\"), code = err.code;\n return respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n ack: constants_CONSTANTS.POST_MESSAGE_ACK.ERROR,\n error: error,\n code: code\n });\n }) ]).then(util_noop).catch(function(err) {\n if (options && options.handleError) return options.handleError(err);\n throw err;\n });\n }, _RECEIVE_MESSAGE_TYPE[constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE] = function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message response for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Response origin \" + origin + \" does not match domain \" + Object(src.stringifyDomainPattern)(options.domain));\n deleteResponseListener(message.hash);\n if (message.ack === constants_CONSTANTS.POST_MESSAGE_ACK.ERROR) {\n var err = new Error(message.error);\n message.code && (err.code = message.code);\n return options.respond(err, null);\n }\n if (message.ack === constants_CONSTANTS.POST_MESSAGE_ACK.SUCCESS) {\n var data = message.data || message.response;\n return options.respond(null, {\n source: source,\n origin: origin,\n data: data\n });\n }\n }\n }, _RECEIVE_MESSAGE_TYPE), receive__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n global.receivedMessages = global.receivedMessages || [];\n function receiveMessage(event) {\n if (!window || window.closed) throw new Error(\"Message recieved in closed window\");\n try {\n if (!event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin, message = function(message) {\n var item, parsedMessage = void 0;\n try {\n parsedMessage = (item = message, JSON.parse(item));\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" === (void 0 === parsedMessage ? \"undefined\" : receive__typeof(parsedMessage)) && null !== parsedMessage && (parsedMessage = parsedMessage[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT]) && \"object\" === (void 0 === parsedMessage ? \"undefined\" : receive__typeof(parsedMessage)) && null !== parsedMessage && parsedMessage.type && \"string\" == typeof parsedMessage.type && RECEIVE_MESSAGE_TYPES[parsedMessage.type]) return parsedMessage;\n }(event.data);\n if (message) {\n if (!message.sourceDomain || \"string\" != typeof message.sourceDomain) throw new Error(\"Expected message to have sourceDomain\");\n 0 !== message.sourceDomain.indexOf(constants_CONSTANTS.MOCK_PROTOCOL) && 0 !== message.sourceDomain.indexOf(constants_CONSTANTS.FILE_PROTOCOL) || (origin = message.sourceDomain);\n if (-1 === global.receivedMessages.indexOf(message.id)) {\n global.receivedMessages.push(message.id);\n if (!Object(src.isWindowClosed)(source) || message.fireAndForget) {\n message.data && (message.data = function(source, origin, obj) {\n return replaceObject({\n obj: message.data\n }, function(item) {\n if (\"object\" === (void 0 === item ? \"undefined\" : serialize__typeof(item)) && null !== item) return isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.METHOD) ? deserializeMethod(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.ERROR) ? function(source, origin, obj) {\n var err = new Error(obj.__message__);\n obj.__code__ && (err.code = obj.__code__);\n return err;\n }(0, 0, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.PROMISE) ? function(source, origin, prom) {\n return window.Promise ? new window.Promise(function(resolve, reject) {\n return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n }) : deserializeZalgoPromise(source, origin, prom);\n }(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE) ? deserializeZalgoPromise(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.REGEX) ? function(source, origin, item) {\n return new RegExp(item.__source__);\n }(0, 0, item) : void 0;\n }).obj;\n }(source, origin));\n RECEIVE_MESSAGE_TYPES[message.type](source, origin, message);\n }\n }\n }\n }\n function messageListener(event) {\n try {\n event.source;\n } catch (err) {\n return;\n }\n receiveMessage({\n source: event.source || event.sourceElement,\n origin: event.origin || event.originalEvent && event.originalEvent.origin,\n data: event.data\n });\n }\n global.receiveMessage = receiveMessage;\n global.requestPromises = global.requestPromises || new weakmap_CrossDomainSafeWeakMap();\n function request(options) {\n return promise_ZalgoPromise.try(function() {\n if (!options.name) throw new Error(\"Expected options.name\");\n var name = options.name, targetWindow = void 0, domain = void 0;\n if (\"string\" == typeof options.window) {\n var el = document.getElementById(options.window);\n if (!el) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be a valid element id\");\n if (\"iframe\" !== el.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be an iframe\");\n if (!el.contentWindow) throw new Error(\"Iframe must have contentWindow. Make sure it has a src attribute and is in the DOM.\");\n targetWindow = el.contentWindow;\n } else if (options.window instanceof HTMLIFrameElement) {\n if (\"iframe\" !== options.window.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be an iframe\");\n if (options.window && !options.window.contentWindow) throw new Error(\"Iframe must have contentWindow. Make sure it has a src attribute and is in the DOM.\");\n options.window && options.window.contentWindow && (targetWindow = options.window.contentWindow);\n } else targetWindow = options.window;\n if (!targetWindow) throw new Error(\"Expected options.window to be a window object, iframe, or iframe element id.\");\n var win = targetWindow;\n domain = options.domain || constants_CONSTANTS.WILDCARD;\n var hash = options.name + \"_\" + uniqueID();\n if (Object(src.isWindowClosed)(win)) throw new Error(\"Target window is closed\");\n var hasResult = !1, requestPromises = global.requestPromises.get(win);\n if (!requestPromises) {\n requestPromises = [];\n global.requestPromises.set(win, requestPromises);\n }\n var requestPromise = promise_ZalgoPromise.try(function() {\n if (Object(src.isAncestor)(window, win)) return function(win) {\n var timeout = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 5e3, name = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"Window\", promise = global.readyPromises.get(win);\n if (promise) return promise;\n promise = new promise_ZalgoPromise();\n global.readyPromises.set(win, promise);\n -1 !== timeout && setTimeout(function() {\n return promise.reject(new Error(name + \" did not load after \" + timeout + \"ms\"));\n }, timeout);\n return promise;\n }(win, options.timeout || CONFIG.CHILD_WINDOW_TIMEOUT);\n }).then(function() {\n var origin = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).origin;\n if (isRegex(domain) && !origin) return sayHello(win);\n }).then(function() {\n var origin = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).origin;\n if (isRegex(domain)) {\n if (!Object(src.matchDomain)(domain, origin)) throw new Error(\"Remote window domain \" + origin + \" does not match regex: \" + domain.toString());\n domain = origin;\n }\n if (\"string\" != typeof domain && !Array.isArray(domain)) throw new TypeError(\"Expected domain to be a string or array\");\n var actualDomain = domain;\n return new promise_ZalgoPromise(function(resolve, reject) {\n var responseListener = void 0;\n options.fireAndForget || function(hash, listener) {\n global.responseListeners[hash] = listener;\n }(hash, responseListener = {\n name: name,\n window: win,\n domain: actualDomain,\n respond: function(err, result) {\n if (!err) {\n hasResult = !0;\n requestPromises.splice(requestPromises.indexOf(requestPromise, 1));\n }\n err ? reject(err) : resolve(result);\n }\n });\n sendMessage(win, {\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.REQUEST,\n hash: hash,\n name: name,\n data: options.data,\n fireAndForget: options.fireAndForget\n }, actualDomain).catch(reject);\n if (options.fireAndForget) return resolve();\n var ackTimeout = CONFIG.ACK_TIMEOUT, resTimeout = options.timeout || CONFIG.RES_TIMEOUT, cycleTime = 100;\n setTimeout(function cycle() {\n if (!hasResult) {\n if (Object(src.isWindowClosed)(win)) return responseListener.ack ? reject(new Error(\"Window closed for \" + name + \" before response\")) : reject(new Error(\"Window closed for \" + name + \" before ack\"));\n ackTimeout = Math.max(ackTimeout - cycleTime, 0);\n -1 !== resTimeout && (resTimeout = Math.max(resTimeout - cycleTime, 0));\n if (responseListener.ack) {\n if (-1 === resTimeout) return;\n cycleTime = Math.min(resTimeout, 2e3);\n } else {\n if (0 === ackTimeout) return reject(new Error(\"No ack for postMessage \" + name + \" in \" + Object(src.getDomain)() + \" in \" + CONFIG.ACK_TIMEOUT + \"ms\"));\n if (0 === resTimeout) return reject(new Error(\"No response for postMessage \" + name + \" in \" + Object(src.getDomain)() + \" in \" + (options.timeout || CONFIG.RES_TIMEOUT) + \"ms\"));\n }\n setTimeout(cycle, cycleTime);\n }\n }, cycleTime);\n });\n });\n requestPromise.catch(function() {\n !function(hash) {\n global.erroredResponseListeners[hash] = !0;\n }(hash);\n deleteResponseListener(hash);\n });\n requestPromises.push(requestPromise);\n return requestPromise;\n });\n }\n function _send(window, name, data, options) {\n (options = options || {}).window = window;\n options.name = name;\n options.data = data;\n return request(options);\n }\n function sendToParent(name, data, options) {\n var win = Object(src.getAncestor)();\n return win ? _send(win, name, data, options) : new promise_ZalgoPromise(function(resolve, reject) {\n return reject(new Error(\"Window does not have a parent\"));\n });\n }\n function client() {\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n if (!options.window) throw new Error(\"Expected options.window\");\n var win = options.window;\n return {\n send: function(name, data) {\n return _send(win, name, data, options);\n }\n };\n }\n global.send = _send;\n var server__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function listen(options) {\n if (!options.name) throw new Error(\"Expected options.name\");\n if (!options.handler) throw new Error(\"Expected options.handler\");\n var name = options.name, win = options.window, domain = options.domain, listenerOptions = {\n handler: options.handler,\n handleError: options.errorHandler || function(err) {\n throw err;\n },\n window: win,\n domain: domain || constants_CONSTANTS.WILDCARD,\n name: name\n }, requestListener = function addRequestListener(_ref6, listener) {\n var name = _ref6.name, win = _ref6.win, domain = _ref6.domain;\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (Array.isArray(win)) {\n for (var listenersCollection = [], _i6 = 0, _win2 = win, _length6 = null == _win2 ? 0 : _win2.length; _i6 < _length6; _i6++) {\n var item = _win2[_i6];\n listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: item\n }, listener));\n }\n return {\n cancel: function() {\n for (var _i8 = 0, _length8 = null == listenersCollection ? 0 : listenersCollection.length; _i8 < _length8; _i8++) listenersCollection[_i8].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n for (var _listenersCollection = [], _i10 = 0, _domain2 = domain, _length10 = null == _domain2 ? 0 : _domain2.length; _i10 < _length10; _i10++) {\n var _item = _domain2[_i10];\n _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _item\n }, listener));\n }\n return {\n cancel: function() {\n for (var _i12 = 0, _length12 = null == _listenersCollection ? 0 : _listenersCollection.length; _i12 < _length12; _i12++) _listenersCollection[_i12].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && win !== constants_CONSTANTS.WILDCARD || (win = global.WINDOW_WILDCARD);\n domain = domain || constants_CONSTANTS.WILDCARD;\n if (existingListener) throw win && domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString() + \" for \" + (win === global.WINDOW_WILDCARD ? \"wildcard\" : \"specified\") + \" window\") : win ? new Error(\"Request listener already exists for \" + name + \" for \" + (win === global.WINDOW_WILDCARD ? \"wildcard\" : \"specified\") + \" window\") : domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString()) : new Error(\"Request listener already exists for \" + name);\n var requestListeners = global.requestListeners, nameListeners = requestListeners[name];\n if (!nameListeners) {\n nameListeners = new weakmap_CrossDomainSafeWeakMap();\n requestListeners[name] = nameListeners;\n }\n var winListeners = nameListeners.get(win);\n if (!winListeners) {\n winListeners = {};\n nameListeners.set(win, winListeners);\n }\n var strDomain = domain.toString(), regexListeners = winListeners[__DOMAIN_REGEX__], regexListener = void 0;\n if (isRegex(domain)) {\n if (!regexListeners) {\n regexListeners = [];\n winListeners[__DOMAIN_REGEX__] = regexListeners;\n }\n regexListener = {\n regex: domain,\n listener: listener\n };\n regexListeners.push(regexListener);\n } else winListeners[strDomain] = listener;\n return {\n cancel: function() {\n if (winListeners) {\n delete winListeners[strDomain];\n win && 0 === Object.keys(winListeners).length && nameListeners.delete(win);\n regexListener && regexListeners.splice(regexListeners.indexOf(regexListener, 1));\n }\n }\n };\n }({\n name: name,\n win: win,\n domain: domain\n }, listenerOptions);\n if (options.once) {\n var _handler = listenerOptions.handler;\n listenerOptions.handler = once(function() {\n requestListener.cancel();\n return _handler.apply(this, arguments);\n });\n }\n if (listenerOptions.window && options.errorOnClose) var interval = function(method, time) {\n var timeout = void 0;\n timeout = setTimeout(function runInterval() {\n timeout = setTimeout(runInterval, 50);\n (function() {\n if (win && \"object\" === (void 0 === win ? \"undefined\" : server__typeof(win)) && Object(src.isWindowClosed)(win)) {\n interval.cancel();\n listenerOptions.handleError(new Error(\"Post message target window is closed\"));\n }\n }).call();\n }, 50);\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }();\n return {\n cancel: function() {\n requestListener.cancel();\n }\n };\n }\n function _on(name, options, handler) {\n if (\"function\" == typeof options) {\n handler = options;\n options = {};\n }\n (options = options || {}).name = name;\n options.handler = handler || options.handler;\n return listen(options);\n }\n function server_once(name) {\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, handler = arguments[2];\n if (\"function\" == typeof options) {\n handler = options;\n options = {};\n }\n options = options || {};\n handler = handler || options.handler;\n var errorHandler = options.errorHandler, promise = new promise_ZalgoPromise(function(resolve, reject) {\n (options = options || {}).name = name;\n options.once = !0;\n options.handler = function(event) {\n resolve(event);\n if (handler) return handler(event);\n };\n options.errorHandler = function(err) {\n reject(err);\n if (errorHandler) return errorHandler(err);\n };\n }), onceListener = listen(options);\n promise.cancel = onceListener.cancel;\n return promise;\n }\n function server_listener() {\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return {\n on: function(name, handler) {\n return _on(name, options, handler);\n }\n };\n }\n global.on = _on;\n function disable() {\n delete window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT];\n window.removeEventListener(\"message\", messageListener);\n }\n var public_parent = Object(src.getAncestor)();\n function cleanUpWindow(win) {\n var requestPromises = global.requestPromises.get(win);\n if (requestPromises) for (var _i2 = 0, _length2 = null == requestPromises ? 0 : requestPromises.length; _i2 < _length2; _i2++) requestPromises[_i2].reject(new Error(\"No response from window - cleaned up\"));\n global.popupWindowsByWin && global.popupWindowsByWin.delete(win);\n global.remoteWindows && global.remoteWindows.delete(win);\n global.requestPromises.delete(win);\n global.methods.delete(win);\n global.readyPromises.delete(win);\n }\n var bridge = null;\n function init() {\n if (!global.initialized) {\n handler = messageListener, (obj = window).addEventListener ? obj.addEventListener(\"message\", handler) : obj.attachEvent(\"onmessage\", handler);\n !function() {\n handler = function(_ref3) {\n var source = _ref3.source, origin = _ref3.origin, promise = global.readyPromises.get(source) || new promise_ZalgoPromise();\n promise.resolve({\n origin: origin\n });\n global.readyPromises.set(source, promise);\n }, global.on(constants_CONSTANTS.POST_MESSAGE_NAMES.HELLO, {\n domain: constants_CONSTANTS.WILDCARD\n }, function(_ref) {\n var source = _ref.source, origin = _ref.origin;\n return handler({\n source: source,\n origin: origin\n });\n });\n var handler, parent = Object(src.getAncestor)();\n parent && sayHello(parent).catch(util_noop);\n }();\n listenForMethods({\n on: _on,\n send: _send\n });\n }\n var obj, handler;\n global.initialized = !0;\n }\n init();\n __webpack_require__.d(__webpack_exports__, \"cleanUpWindow\", function() {\n return cleanUpWindow;\n });\n __webpack_require__.d(__webpack_exports__, \"Promise\", function() {\n return promise_ZalgoPromise;\n });\n __webpack_require__.d(__webpack_exports__, \"bridge\", function() {\n return bridge;\n });\n __webpack_require__.d(__webpack_exports__, \"init\", function() {\n return init;\n });\n __webpack_require__.d(__webpack_exports__, \"parent\", function() {\n return public_parent;\n });\n __webpack_require__.d(__webpack_exports__, \"send\", function() {\n return _send;\n });\n __webpack_require__.d(__webpack_exports__, \"request\", function() {\n return request;\n });\n __webpack_require__.d(__webpack_exports__, \"sendToParent\", function() {\n return sendToParent;\n });\n __webpack_require__.d(__webpack_exports__, \"client\", function() {\n return client;\n });\n __webpack_require__.d(__webpack_exports__, \"on\", function() {\n return _on;\n });\n __webpack_require__.d(__webpack_exports__, \"listen\", function() {\n return listen;\n });\n __webpack_require__.d(__webpack_exports__, \"once\", function() {\n return server_once;\n });\n __webpack_require__.d(__webpack_exports__, \"listener\", function() {\n return server_listener;\n });\n __webpack_require__.d(__webpack_exports__, \"CONFIG\", function() {\n return CONFIG;\n });\n __webpack_require__.d(__webpack_exports__, \"CONSTANTS\", function() {\n return constants_CONSTANTS;\n });\n __webpack_require__.d(__webpack_exports__, \"disable\", function() {\n return disable;\n });\n __webpack_exports__.default = src_interface_namespaceObject;\n }\n });\n});\n//# sourceMappingURL=post-robot.js.map","/* @flow */\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports = require('./dist/post-robot');\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports.default = module.exports;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=e||self).logger=n()}(this,function(){\"use strict\";var e=1e3,n=60*e,t=60*n,r=24*t,s=7*r,o=365.25*r,a=function(a,i){i=i||{};var u=typeof a;if(\"string\"===u&&a.length>0)return function(a){if((a=String(a)).length>100)return;var c=/^((?:\\d+)?\\-?\\d?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(a);if(!c)return;var i=parseFloat(c[1]);switch((c[2]||\"ms\").toLowerCase()){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return i*o;case\"weeks\":case\"week\":case\"w\":return i*s;case\"days\":case\"day\":case\"d\":return i*r;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return i*t;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return i*n;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return i*e;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return i;default:return}}(a);if(\"number\"===u&&!1===isNaN(a))return i.long?function(s){var o=Math.abs(s);if(o>=r)return c(s,o,r,\"day\");if(o>=t)return c(s,o,t,\"hour\");if(o>=n)return c(s,o,n,\"minute\");if(o>=e)return c(s,o,e,\"second\");return s+\" ms\"}(a):function(s){var o=Math.abs(s);if(o>=r)return Math.round(s/r)+\"d\";if(o>=t)return Math.round(s/t)+\"h\";if(o>=n)return Math.round(s/n)+\"m\";if(o>=e)return Math.round(s/e)+\"s\";return s+\"ms\"}(a);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(a))};function c(e,n,t,r){var s=n>=1.5*t;return Math.round(e/t)+\" \"+r+(s?\"s\":\"\")}var i,u=function(e){function n(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]}function t(e){let o;function a(...e){if(!a.enabled)return;const n=a,r=Number(new Date),s=r-(o||r);n.diff=s,n.prev=o,n.curr=r,o=r,e[0]=t.coerce(e[0]),\"string\"!=typeof e[0]&&e.unshift(\"%O\");let c=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(r,s)=>{if(\"%%\"===r)return r;c++;const o=t.formatters[s];if(\"function\"==typeof o){const t=e[c];r=o.call(n,t),e.splice(c,1),c--}return r}),t.formatArgs.call(n,e),(n.log||t.log).apply(n,e)}return a.namespace=e,a.enabled=t.enabled(e),a.useColors=t.useColors(),a.color=n(e),a.destroy=r,a.extend=s,\"function\"==typeof t.init&&t.init(a),t.instances.push(a),a}function r(){const e=t.instances.indexOf(this);return-1!==e&&(t.instances.splice(e,1),!0)}function s(e,n){const r=t(this.namespace+(void 0===n?\":\":n)+e);return r.log=this.log,r}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\\.\\*\\?$/,\"*\")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(o),...t.skips.map(o).map(e=>\"-\"+e)].join(\",\");return t.enable(\"\"),e},t.enable=function(e){let n;t.save(e),t.names=[],t.skips=[];const r=(\"string\"==typeof e?e:\"\").split(/[\\s,]+/),s=r.length;for(n=0;n<s;n++)r[n]&&(\"-\"===(e=r[n].replace(/\\*/g,\".*?\"))[0]?t.skips.push(new RegExp(\"^\"+e.substr(1)+\"$\")):t.names.push(new RegExp(\"^\"+e+\"$\")));for(n=0;n<t.instances.length;n++){const e=t.instances[n];e.enabled=t.enabled(e.namespace)}},t.enabled=function(e){if(\"*\"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=a,Object.keys(e).forEach(n=>{t[n]=e[n]}),t.instances=[],t.names=[],t.skips=[],t.formatters={},t.selectColor=n,t.enable(t.load()),t},C=(function(e,n){n.log=function(...e){return\"object\"==typeof console&&console.log&&console.log(...e)},n.formatArgs=function(n){if(n[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+n[0]+(this.useColors?\"%c \":\" \")+\"+\"+e.exports.humanize(this.diff),!this.useColors)return;const t=\"color: \"+this.color;n.splice(1,0,t,\"color: inherit\");let r=0,s=0;n[0].replace(/%[a-zA-Z%]/g,e=>{\"%%\"!==e&&(r++,\"%c\"===e&&(s=r))}),n.splice(s,0,t)},n.save=function(e){try{e?n.storage.setItem(\"debug\",e):n.storage.removeItem(\"debug\")}catch(e){}},n.load=function(){let e;try{e=n.storage.getItem(\"debug\")}catch(e){}!e&&\"undefined\"!=typeof process&&\"env\"in process&&(e=process.env.DEBUG);return e},n.useColors=function(){if(\"undefined\"!=typeof window&&window.process&&(\"renderer\"===window.process.type||window.process.__nwjs))return!0;if(\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/))return!1;return\"undefined\"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||\"undefined\"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)},n.storage=function(){try{return localStorage}catch(e){}}(),n.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"],e.exports=u(n);const{formatters:t}=e.exports;t.j=function(e){try{return JSON.stringify(e)}catch(e){return\"[UnexpectedJSONParseError]: \"+e.message}}}(i={exports:{}},i.exports),i.exports);C.log,C.formatArgs,C.save,C.load,C.useColors,C.storage,C.colors;return e=>C(`bearer:${e}`)});\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n return key == '__proto__'\n ? undefined\n : object[key];\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n if (isObject(srcValue)) {\n stack || (stack = new Stack);\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n"],"names":["this","require$$0","global","Symbol"],"mappings":"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"}
\No newline at end of file