{"version":3,"file":"bundle.js","sources":["webpack:///webpack/bootstrap 3e6ce136742bff9c9fba","webpack:///./~/bluebird/js/browser/bluebird.js","webpack:///./~/leaflet-geosearch/lib/providers/provider.js","webpack:///./~/nodent-runtime/runtime.js","webpack:///./~/leaflet-geosearch/lib/domUtils.js","webpack:///(webpack)/buildin/global.js","webpack:///./assets/js/src/public/utils.js","webpack:///./~/process/browser.js","webpack:///./~/leaflet-geosearch/lib/constants.js","webpack:///./~/leaflet-geosearch/lib/searchElement.js","webpack:///./~/timers-browserify/main.js","webpack:///./assets/js/src/public/map.js","webpack:///./assets/js/src/public/multi-map.js","webpack:///./~/isomorphic-fetch/fetch-npm-browserify.js","webpack:///./assets/js/src/osm-provider/index.js","webpack:///./assets/js/src/public/geocoding-result.js","webpack:///./assets/js/src/public/index.js","webpack:///./assets/js/src/public/location-list.js","webpack:///./assets/js/src/public/map-services/leaflet-osm-map-service.js","webpack:///./assets/js/src/public/map-services/map-service.js","webpack:///./assets/js/src/public/pin.js","webpack:///./~/leaflet-geosearch/lib/index.js","webpack:///./~/leaflet-geosearch/lib/leafletControl.js","webpack:///./~/leaflet-geosearch/lib/providers/bingProvider.js","webpack:///./~/leaflet-geosearch/lib/providers/esriProvider.js","webpack:///./~/leaflet-geosearch/lib/providers/googleProvider.js","webpack:///./~/leaflet-geosearch/lib/providers/openStreetMapProvider.js","webpack:///./~/leaflet-geosearch/lib/resultList.js","webpack:///./~/lodash.debounce/index.js","webpack:///./~/nodent-runtime/thenableFactory.js","webpack:///./~/nodent-runtime/zousan.js","webpack:///./~/setimmediate/setImmediate.js","webpack:///./~/whatwg-fetch/fetch.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3e6ce136742bff9c9fba","/* @preserve\n * The MIT License (MIT)\n * \n * Copyright (c) 2013-2018 Petka Antonov\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n * \n */\n/**\n * bluebird build version 3.5.5\n * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each\n*/\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var f;\"undefined\"!=typeof window?f=window:\"undefined\"!=typeof global?f=global:\"undefined\"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_==\"function\"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_==\"function\"&&_dereq_;for(var o=0;o 0) {\n _drainQueueStep(queue);\n }\n}\n\nfunction _drainQueueStep(queue) {\n var fn = queue.shift();\n if (typeof fn !== \"function\") {\n fn._settlePromises();\n } else {\n var receiver = queue.shift();\n var arg = queue.shift();\n fn.call(receiver, arg);\n }\n}\n\nAsync.prototype._drainQueues = function () {\n _drainQueue(this._normalQueue);\n this._reset();\n this._haveDrainedQueues = true;\n _drainQueue(this._lateQueue);\n};\n\nAsync.prototype._queueTick = function () {\n if (!this._isTickUsed) {\n this._isTickUsed = true;\n this._schedule(this.drainQueues);\n }\n};\n\nAsync.prototype._reset = function () {\n this._isTickUsed = false;\n};\n\nmodule.exports = Async;\nmodule.exports.firstLineError = firstLineError;\n\n},{\"./queue\":26,\"./schedule\":29,\"./util\":36}],3:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {\nvar calledBind = false;\nvar rejectThis = function(_, e) {\n this._reject(e);\n};\n\nvar targetRejected = function(e, context) {\n context.promiseRejectionQueued = true;\n context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n};\n\nvar bindingResolved = function(thisArg, context) {\n if (((this._bitField & 50397184) === 0)) {\n this._resolveCallback(context.target);\n }\n};\n\nvar bindingRejected = function(e, context) {\n if (!context.promiseRejectionQueued) this._reject(e);\n};\n\nPromise.prototype.bind = function (thisArg) {\n if (!calledBind) {\n calledBind = true;\n Promise.prototype._propagateFrom = debug.propagateFromFunction();\n Promise.prototype._boundValue = debug.boundValueFunction();\n }\n var maybePromise = tryConvertToPromise(thisArg);\n var ret = new Promise(INTERNAL);\n ret._propagateFrom(this, 1);\n var target = this._target();\n ret._setBoundTo(maybePromise);\n if (maybePromise instanceof Promise) {\n var context = {\n promiseRejectionQueued: false,\n promise: ret,\n target: target,\n bindingPromise: maybePromise\n };\n target._then(INTERNAL, targetRejected, undefined, ret, context);\n maybePromise._then(\n bindingResolved, bindingRejected, undefined, ret, context);\n ret._setOnCancel(maybePromise);\n } else {\n ret._resolveCallback(target);\n }\n return ret;\n};\n\nPromise.prototype._setBoundTo = function (obj) {\n if (obj !== undefined) {\n this._bitField = this._bitField | 2097152;\n this._boundTo = obj;\n } else {\n this._bitField = this._bitField & (~2097152);\n }\n};\n\nPromise.prototype._isBound = function () {\n return (this._bitField & 2097152) === 2097152;\n};\n\nPromise.bind = function (thisArg, value) {\n return Promise.resolve(value).bind(thisArg);\n};\n};\n\n},{}],4:[function(_dereq_,module,exports){\n\"use strict\";\nvar old;\nif (typeof Promise !== \"undefined\") old = Promise;\nfunction noConflict() {\n try { if (Promise === bluebird) Promise = old; }\n catch (e) {}\n return bluebird;\n}\nvar bluebird = _dereq_(\"./promise\")();\nbluebird.noConflict = noConflict;\nmodule.exports = bluebird;\n\n},{\"./promise\":22}],5:[function(_dereq_,module,exports){\n\"use strict\";\nvar cr = Object.create;\nif (cr) {\n var callerCache = cr(null);\n var getterCache = cr(null);\n callerCache[\" size\"] = getterCache[\" size\"] = 0;\n}\n\nmodule.exports = function(Promise) {\nvar util = _dereq_(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar isIdentifier = util.isIdentifier;\n\nvar getMethodCaller;\nvar getGetter;\nif (!true) {\nvar makeMethodCaller = function (methodName) {\n return new Function(\"ensureMethod\", \" \\n\\\n return function(obj) { \\n\\\n 'use strict' \\n\\\n var len = this.length; \\n\\\n ensureMethod(obj, 'methodName'); \\n\\\n switch(len) { \\n\\\n case 1: return obj.methodName(this[0]); \\n\\\n case 2: return obj.methodName(this[0], this[1]); \\n\\\n case 3: return obj.methodName(this[0], this[1], this[2]); \\n\\\n case 0: return obj.methodName(); \\n\\\n default: \\n\\\n return obj.methodName.apply(obj, this); \\n\\\n } \\n\\\n }; \\n\\\n \".replace(/methodName/g, methodName))(ensureMethod);\n};\n\nvar makeGetter = function (propertyName) {\n return new Function(\"obj\", \" \\n\\\n 'use strict'; \\n\\\n return obj.propertyName; \\n\\\n \".replace(\"propertyName\", propertyName));\n};\n\nvar getCompiled = function(name, compiler, cache) {\n var ret = cache[name];\n if (typeof ret !== \"function\") {\n if (!isIdentifier(name)) {\n return null;\n }\n ret = compiler(name);\n cache[name] = ret;\n cache[\" size\"]++;\n if (cache[\" size\"] > 512) {\n var keys = Object.keys(cache);\n for (var i = 0; i < 256; ++i) delete cache[keys[i]];\n cache[\" size\"] = keys.length - 256;\n }\n }\n return ret;\n};\n\ngetMethodCaller = function(name) {\n return getCompiled(name, makeMethodCaller, callerCache);\n};\n\ngetGetter = function(name) {\n return getCompiled(name, makeGetter, getterCache);\n};\n}\n\nfunction ensureMethod(obj, methodName) {\n var fn;\n if (obj != null) fn = obj[methodName];\n if (typeof fn !== \"function\") {\n var message = \"Object \" + util.classString(obj) + \" has no method '\" +\n util.toString(methodName) + \"'\";\n throw new Promise.TypeError(message);\n }\n return fn;\n}\n\nfunction caller(obj) {\n var methodName = this.pop();\n var fn = ensureMethod(obj, methodName);\n return fn.apply(obj, this);\n}\nPromise.prototype.call = function (methodName) {\n var args = [].slice.call(arguments, 1);;\n if (!true) {\n if (canEvaluate) {\n var maybeCaller = getMethodCaller(methodName);\n if (maybeCaller !== null) {\n return this._then(\n maybeCaller, undefined, undefined, args, undefined);\n }\n }\n }\n args.push(methodName);\n return this._then(caller, undefined, undefined, args, undefined);\n};\n\nfunction namedGetter(obj) {\n return obj[this];\n}\nfunction indexedGetter(obj) {\n var index = +this;\n if (index < 0) index = Math.max(0, index + obj.length);\n return obj[index];\n}\nPromise.prototype.get = function (propertyName) {\n var isIndex = (typeof propertyName === \"number\");\n var getter;\n if (!isIndex) {\n if (canEvaluate) {\n var maybeGetter = getGetter(propertyName);\n getter = maybeGetter !== null ? maybeGetter : namedGetter;\n } else {\n getter = namedGetter;\n }\n } else {\n getter = indexedGetter;\n }\n return this._then(getter, undefined, undefined, propertyName, undefined);\n};\n};\n\n},{\"./util\":36}],6:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, PromiseArray, apiRejection, debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nPromise.prototype[\"break\"] = Promise.prototype.cancel = function() {\n if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n\n var promise = this;\n var child = promise;\n while (promise._isCancellable()) {\n if (!promise._cancelBy(child)) {\n if (child._isFollowing()) {\n child._followee().cancel();\n } else {\n child._cancelBranched();\n }\n break;\n }\n\n var parent = promise._cancellationParent;\n if (parent == null || !parent._isCancellable()) {\n if (promise._isFollowing()) {\n promise._followee().cancel();\n } else {\n promise._cancelBranched();\n }\n break;\n } else {\n if (promise._isFollowing()) promise._followee().cancel();\n promise._setWillBeCancelled();\n child = promise;\n promise = parent;\n }\n }\n};\n\nPromise.prototype._branchHasCancelled = function() {\n this._branchesRemainingToCancel--;\n};\n\nPromise.prototype._enoughBranchesHaveCancelled = function() {\n return this._branchesRemainingToCancel === undefined ||\n this._branchesRemainingToCancel <= 0;\n};\n\nPromise.prototype._cancelBy = function(canceller) {\n if (canceller === this) {\n this._branchesRemainingToCancel = 0;\n this._invokeOnCancel();\n return true;\n } else {\n this._branchHasCancelled();\n if (this._enoughBranchesHaveCancelled()) {\n this._invokeOnCancel();\n return true;\n }\n }\n return false;\n};\n\nPromise.prototype._cancelBranched = function() {\n if (this._enoughBranchesHaveCancelled()) {\n this._cancel();\n }\n};\n\nPromise.prototype._cancel = function() {\n if (!this._isCancellable()) return;\n this._setCancelled();\n async.invoke(this._cancelPromises, this, undefined);\n};\n\nPromise.prototype._cancelPromises = function() {\n if (this._length() > 0) this._settlePromises();\n};\n\nPromise.prototype._unsetOnCancel = function() {\n this._onCancelField = undefined;\n};\n\nPromise.prototype._isCancellable = function() {\n return this.isPending() && !this._isCancelled();\n};\n\nPromise.prototype.isCancellable = function() {\n return this.isPending() && !this.isCancelled();\n};\n\nPromise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {\n if (util.isArray(onCancelCallback)) {\n for (var i = 0; i < onCancelCallback.length; ++i) {\n this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n }\n } else if (onCancelCallback !== undefined) {\n if (typeof onCancelCallback === \"function\") {\n if (!internalOnly) {\n var e = tryCatch(onCancelCallback).call(this._boundValue());\n if (e === errorObj) {\n this._attachExtraTrace(e.e);\n async.throwLater(e.e);\n }\n }\n } else {\n onCancelCallback._resultCancelled(this);\n }\n }\n};\n\nPromise.prototype._invokeOnCancel = function() {\n var onCancelCallback = this._onCancel();\n this._unsetOnCancel();\n async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n};\n\nPromise.prototype._invokeInternalOnCancel = function() {\n if (this._isCancellable()) {\n this._doInvokeOnCancel(this._onCancel(), true);\n this._unsetOnCancel();\n }\n};\n\nPromise.prototype._resultCancelled = function() {\n this.cancel();\n};\n\n};\n\n},{\"./util\":36}],7:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(NEXT_FILTER) {\nvar util = _dereq_(\"./util\");\nvar getKeys = _dereq_(\"./es5\").keys;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction catchFilter(instances, cb, promise) {\n return function(e) {\n var boundTo = promise._boundValue();\n predicateLoop: for (var i = 0; i < instances.length; ++i) {\n var item = instances[i];\n\n if (item === Error ||\n (item != null && item.prototype instanceof Error)) {\n if (e instanceof item) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (typeof item === \"function\") {\n var matchesPredicate = tryCatch(item).call(boundTo, e);\n if (matchesPredicate === errorObj) {\n return matchesPredicate;\n } else if (matchesPredicate) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (util.isObject(e)) {\n var keys = getKeys(item);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n if (item[key] != e[key]) {\n continue predicateLoop;\n }\n }\n return tryCatch(cb).call(boundTo, e);\n }\n }\n return NEXT_FILTER;\n };\n}\n\nreturn catchFilter;\n};\n\n},{\"./es5\":13,\"./util\":36}],8:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nvar longStackTraces = false;\nvar contextStack = [];\n\nPromise.prototype._promiseCreated = function() {};\nPromise.prototype._pushContext = function() {};\nPromise.prototype._popContext = function() {return null;};\nPromise._peekContext = Promise.prototype._peekContext = function() {};\n\nfunction Context() {\n this._trace = new Context.CapturedTrace(peekContext());\n}\nContext.prototype._pushContext = function () {\n if (this._trace !== undefined) {\n this._trace._promiseCreated = null;\n contextStack.push(this._trace);\n }\n};\n\nContext.prototype._popContext = function () {\n if (this._trace !== undefined) {\n var trace = contextStack.pop();\n var ret = trace._promiseCreated;\n trace._promiseCreated = null;\n return ret;\n }\n return null;\n};\n\nfunction createContext() {\n if (longStackTraces) return new Context();\n}\n\nfunction peekContext() {\n var lastIndex = contextStack.length - 1;\n if (lastIndex >= 0) {\n return contextStack[lastIndex];\n }\n return undefined;\n}\nContext.CapturedTrace = null;\nContext.create = createContext;\nContext.deactivateLongStackTraces = function() {};\nContext.activateLongStackTraces = function() {\n var Promise_pushContext = Promise.prototype._pushContext;\n var Promise_popContext = Promise.prototype._popContext;\n var Promise_PeekContext = Promise._peekContext;\n var Promise_peekContext = Promise.prototype._peekContext;\n var Promise_promiseCreated = Promise.prototype._promiseCreated;\n Context.deactivateLongStackTraces = function() {\n Promise.prototype._pushContext = Promise_pushContext;\n Promise.prototype._popContext = Promise_popContext;\n Promise._peekContext = Promise_PeekContext;\n Promise.prototype._peekContext = Promise_peekContext;\n Promise.prototype._promiseCreated = Promise_promiseCreated;\n longStackTraces = false;\n };\n longStackTraces = true;\n Promise.prototype._pushContext = Context.prototype._pushContext;\n Promise.prototype._popContext = Context.prototype._popContext;\n Promise._peekContext = Promise.prototype._peekContext = peekContext;\n Promise.prototype._promiseCreated = function() {\n var ctx = this._peekContext();\n if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n };\n};\nreturn Context;\n};\n\n},{}],9:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, Context) {\nvar getDomain = Promise._getDomain;\nvar async = Promise._async;\nvar Warning = _dereq_(\"./errors\").Warning;\nvar util = _dereq_(\"./util\");\nvar es5 = _dereq_(\"./es5\");\nvar canAttachTrace = util.canAttachTrace;\nvar unhandledRejectionHandled;\nvar possiblyUnhandledRejection;\nvar bluebirdFramePattern =\n /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\nvar nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\nvar parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\nvar stackFramePattern = null;\nvar formatStack = null;\nvar indentStackFrames = false;\nvar printWarning;\nvar debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 &&\n (true ||\n util.env(\"BLUEBIRD_DEBUG\") ||\n util.env(\"NODE_ENV\") === \"development\"));\n\nvar warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n\nvar longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n\nvar wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 &&\n (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n\nPromise.prototype.suppressUnhandledRejections = function() {\n var target = this._target();\n target._bitField = ((target._bitField & (~1048576)) |\n 524288);\n};\n\nPromise.prototype._ensurePossibleRejectionHandled = function () {\n if ((this._bitField & 524288) !== 0) return;\n this._setRejectionIsUnhandled();\n var self = this;\n setTimeout(function() {\n self._notifyUnhandledRejection();\n }, 1);\n};\n\nPromise.prototype._notifyUnhandledRejectionIsHandled = function () {\n fireRejectionEvent(\"rejectionHandled\",\n unhandledRejectionHandled, undefined, this);\n};\n\nPromise.prototype._setReturnedNonUndefined = function() {\n this._bitField = this._bitField | 268435456;\n};\n\nPromise.prototype._returnedNonUndefined = function() {\n return (this._bitField & 268435456) !== 0;\n};\n\nPromise.prototype._notifyUnhandledRejection = function () {\n if (this._isRejectionUnhandled()) {\n var reason = this._settledValue();\n this._setUnhandledRejectionIsNotified();\n fireRejectionEvent(\"unhandledRejection\",\n possiblyUnhandledRejection, reason, this);\n }\n};\n\nPromise.prototype._setUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField | 262144;\n};\n\nPromise.prototype._unsetUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField & (~262144);\n};\n\nPromise.prototype._isUnhandledRejectionNotified = function () {\n return (this._bitField & 262144) > 0;\n};\n\nPromise.prototype._setRejectionIsUnhandled = function () {\n this._bitField = this._bitField | 1048576;\n};\n\nPromise.prototype._unsetRejectionIsUnhandled = function () {\n this._bitField = this._bitField & (~1048576);\n if (this._isUnhandledRejectionNotified()) {\n this._unsetUnhandledRejectionIsNotified();\n this._notifyUnhandledRejectionIsHandled();\n }\n};\n\nPromise.prototype._isRejectionUnhandled = function () {\n return (this._bitField & 1048576) > 0;\n};\n\nPromise.prototype._warn = function(message, shouldUseOwnTrace, promise) {\n return warn(message, shouldUseOwnTrace, promise || this);\n};\n\nPromise.onPossiblyUnhandledRejection = function (fn) {\n var domain = getDomain();\n possiblyUnhandledRejection =\n typeof fn === \"function\" ? (domain === null ?\n fn : util.domainBind(domain, fn))\n : undefined;\n};\n\nPromise.onUnhandledRejectionHandled = function (fn) {\n var domain = getDomain();\n unhandledRejectionHandled =\n typeof fn === \"function\" ? (domain === null ?\n fn : util.domainBind(domain, fn))\n : undefined;\n};\n\nvar disableLongStackTraces = function() {};\nPromise.longStackTraces = function () {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (!config.longStackTraces && longStackTracesIsSupported()) {\n var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace;\n config.longStackTraces = true;\n disableLongStackTraces = function() {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n Promise.prototype._dereferenceTrace = Promise_dereferenceTrace;\n Context.deactivateLongStackTraces();\n async.enableTrampoline();\n config.longStackTraces = false;\n };\n Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace;\n Context.activateLongStackTraces();\n async.disableTrampolineIfNecessary();\n }\n};\n\nPromise.hasLongStackTraces = function () {\n return config.longStackTraces && longStackTracesIsSupported();\n};\n\nvar fireDomEvent = (function() {\n try {\n if (typeof CustomEvent === \"function\") {\n var event = new CustomEvent(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n var eventData = {\n detail: event,\n cancelable: true\n };\n es5.defineProperty(\n eventData, \"promise\", {value: event.promise});\n es5.defineProperty(eventData, \"reason\", {value: event.reason});\n var domEvent = new CustomEvent(name.toLowerCase(), eventData);\n return !util.global.dispatchEvent(domEvent);\n };\n } else if (typeof Event === \"function\") {\n var event = new Event(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = new Event(name.toLowerCase(), {\n cancelable: true\n });\n domEvent.detail = event;\n es5.defineProperty(domEvent, \"promise\", {value: event.promise});\n es5.defineProperty(domEvent, \"reason\", {value: event.reason});\n return !util.global.dispatchEvent(domEvent);\n };\n } else {\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"testingtheevent\", false, true, {});\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = document.createEvent(\"CustomEvent\");\n domEvent.initCustomEvent(name.toLowerCase(), false, true,\n event);\n return !util.global.dispatchEvent(domEvent);\n };\n }\n } catch (e) {}\n return function() {\n return false;\n };\n})();\n\nvar fireGlobalEvent = (function() {\n if (util.isNode) {\n return function() {\n return process.emit.apply(process, arguments);\n };\n } else {\n if (!util.global) {\n return function() {\n return false;\n };\n }\n return function(name) {\n var methodName = \"on\" + name.toLowerCase();\n var method = util.global[methodName];\n if (!method) return false;\n method.apply(util.global, [].slice.call(arguments, 1));\n return true;\n };\n }\n})();\n\nfunction generatePromiseLifecycleEventObject(name, promise) {\n return {promise: promise};\n}\n\nvar eventToObjectGenerator = {\n promiseCreated: generatePromiseLifecycleEventObject,\n promiseFulfilled: generatePromiseLifecycleEventObject,\n promiseRejected: generatePromiseLifecycleEventObject,\n promiseResolved: generatePromiseLifecycleEventObject,\n promiseCancelled: generatePromiseLifecycleEventObject,\n promiseChained: function(name, promise, child) {\n return {promise: promise, child: child};\n },\n warning: function(name, warning) {\n return {warning: warning};\n },\n unhandledRejection: function (name, reason, promise) {\n return {reason: reason, promise: promise};\n },\n rejectionHandled: generatePromiseLifecycleEventObject\n};\n\nvar activeFireEvent = function (name) {\n var globalEventFired = false;\n try {\n globalEventFired = fireGlobalEvent.apply(null, arguments);\n } catch (e) {\n async.throwLater(e);\n globalEventFired = true;\n }\n\n var domEventFired = false;\n try {\n domEventFired = fireDomEvent(name,\n eventToObjectGenerator[name].apply(null, arguments));\n } catch (e) {\n async.throwLater(e);\n domEventFired = true;\n }\n\n return domEventFired || globalEventFired;\n};\n\nPromise.config = function(opts) {\n opts = Object(opts);\n if (\"longStackTraces\" in opts) {\n if (opts.longStackTraces) {\n Promise.longStackTraces();\n } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n disableLongStackTraces();\n }\n }\n if (\"warnings\" in opts) {\n var warningsOption = opts.warnings;\n config.warnings = !!warningsOption;\n wForgottenReturn = config.warnings;\n\n if (util.isObject(warningsOption)) {\n if (\"wForgottenReturn\" in warningsOption) {\n wForgottenReturn = !!warningsOption.wForgottenReturn;\n }\n }\n }\n if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n if (async.haveItemsQueued()) {\n throw new Error(\n \"cannot enable cancellation after promises are in use\");\n }\n Promise.prototype._clearCancellationData =\n cancellationClearCancellationData;\n Promise.prototype._propagateFrom = cancellationPropagateFrom;\n Promise.prototype._onCancel = cancellationOnCancel;\n Promise.prototype._setOnCancel = cancellationSetOnCancel;\n Promise.prototype._attachCancellationCallback =\n cancellationAttachCancellationCallback;\n Promise.prototype._execute = cancellationExecute;\n propagateFromFunction = cancellationPropagateFrom;\n config.cancellation = true;\n }\n if (\"monitoring\" in opts) {\n if (opts.monitoring && !config.monitoring) {\n config.monitoring = true;\n Promise.prototype._fireEvent = activeFireEvent;\n } else if (!opts.monitoring && config.monitoring) {\n config.monitoring = false;\n Promise.prototype._fireEvent = defaultFireEvent;\n }\n }\n return Promise;\n};\n\nfunction defaultFireEvent() { return false; }\n\nPromise.prototype._fireEvent = defaultFireEvent;\nPromise.prototype._execute = function(executor, resolve, reject) {\n try {\n executor(resolve, reject);\n } catch (e) {\n return e;\n }\n};\nPromise.prototype._onCancel = function () {};\nPromise.prototype._setOnCancel = function (handler) { ; };\nPromise.prototype._attachCancellationCallback = function(onCancel) {\n ;\n};\nPromise.prototype._captureStackTrace = function () {};\nPromise.prototype._attachExtraTrace = function () {};\nPromise.prototype._dereferenceTrace = function () {};\nPromise.prototype._clearCancellationData = function() {};\nPromise.prototype._propagateFrom = function (parent, flags) {\n ;\n ;\n};\n\nfunction cancellationExecute(executor, resolve, reject) {\n var promise = this;\n try {\n executor(resolve, reject, function(onCancel) {\n if (typeof onCancel !== \"function\") {\n throw new TypeError(\"onCancel must be a function, got: \" +\n util.toString(onCancel));\n }\n promise._attachCancellationCallback(onCancel);\n });\n } catch (e) {\n return e;\n }\n}\n\nfunction cancellationAttachCancellationCallback(onCancel) {\n if (!this._isCancellable()) return this;\n\n var previousOnCancel = this._onCancel();\n if (previousOnCancel !== undefined) {\n if (util.isArray(previousOnCancel)) {\n previousOnCancel.push(onCancel);\n } else {\n this._setOnCancel([previousOnCancel, onCancel]);\n }\n } else {\n this._setOnCancel(onCancel);\n }\n}\n\nfunction cancellationOnCancel() {\n return this._onCancelField;\n}\n\nfunction cancellationSetOnCancel(onCancel) {\n this._onCancelField = onCancel;\n}\n\nfunction cancellationClearCancellationData() {\n this._cancellationParent = undefined;\n this._onCancelField = undefined;\n}\n\nfunction cancellationPropagateFrom(parent, flags) {\n if ((flags & 1) !== 0) {\n this._cancellationParent = parent;\n var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n if (branchesRemainingToCancel === undefined) {\n branchesRemainingToCancel = 0;\n }\n parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n }\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\n\nfunction bindingPropagateFrom(parent, flags) {\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\nvar propagateFromFunction = bindingPropagateFrom;\n\nfunction boundValueFunction() {\n var ret = this._boundTo;\n if (ret !== undefined) {\n if (ret instanceof Promise) {\n if (ret.isFulfilled()) {\n return ret.value();\n } else {\n return undefined;\n }\n }\n }\n return ret;\n}\n\nfunction longStackTracesCaptureStackTrace() {\n this._trace = new CapturedTrace(this._peekContext());\n}\n\nfunction longStackTracesAttachExtraTrace(error, ignoreSelf) {\n if (canAttachTrace(error)) {\n var trace = this._trace;\n if (trace !== undefined) {\n if (ignoreSelf) trace = trace._parent;\n }\n if (trace !== undefined) {\n trace.attachExtraTrace(error);\n } else if (!error.__stackCleaned__) {\n var parsed = parseStackAndMessage(error);\n util.notEnumerableProp(error, \"stack\",\n parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n }\n }\n}\n\nfunction longStackTracesDereferenceTrace() {\n this._trace = undefined;\n}\n\nfunction checkForgottenReturns(returnValue, promiseCreated, name, promise,\n parent) {\n if (returnValue === undefined && promiseCreated !== null &&\n wForgottenReturn) {\n if (parent !== undefined && parent._returnedNonUndefined()) return;\n if ((promise._bitField & 65535) === 0) return;\n\n if (name) name = name + \" \";\n var handlerLine = \"\";\n var creatorLine = \"\";\n if (promiseCreated._trace) {\n var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n var stack = cleanStack(traceLines);\n for (var i = stack.length - 1; i >= 0; --i) {\n var line = stack[i];\n if (!nodeFramePattern.test(line)) {\n var lineMatches = line.match(parseLinePattern);\n if (lineMatches) {\n handlerLine = \"at \" + lineMatches[1] +\n \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n }\n break;\n }\n }\n\n if (stack.length > 0) {\n var firstUserLine = stack[0];\n for (var i = 0; i < traceLines.length; ++i) {\n\n if (traceLines[i] === firstUserLine) {\n if (i > 0) {\n creatorLine = \"\\n\" + traceLines[i - 1];\n }\n break;\n }\n }\n\n }\n }\n var msg = \"a promise was created in a \" + name +\n \"handler \" + handlerLine + \"but was not returned from it, \" +\n \"see http://goo.gl/rRqMUw\" +\n creatorLine;\n promise._warn(msg, true, promiseCreated);\n }\n}\n\nfunction deprecated(name, replacement) {\n var message = name +\n \" is deprecated and will be removed in a future version.\";\n if (replacement) message += \" Use \" + replacement + \" instead.\";\n return warn(message);\n}\n\nfunction warn(message, shouldUseOwnTrace, promise) {\n if (!config.warnings) return;\n var warning = new Warning(message);\n var ctx;\n if (shouldUseOwnTrace) {\n promise._attachExtraTrace(warning);\n } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n ctx.attachExtraTrace(warning);\n } else {\n var parsed = parseStackAndMessage(warning);\n warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n }\n\n if (!activeFireEvent(\"warning\", warning)) {\n formatAndLogError(warning, \"\", true);\n }\n}\n\nfunction reconstructStack(message, stacks) {\n for (var i = 0; i < stacks.length - 1; ++i) {\n stacks[i].push(\"From previous event:\");\n stacks[i] = stacks[i].join(\"\\n\");\n }\n if (i < stacks.length) {\n stacks[i] = stacks[i].join(\"\\n\");\n }\n return message + \"\\n\" + stacks.join(\"\\n\");\n}\n\nfunction removeDuplicateOrEmptyJumps(stacks) {\n for (var i = 0; i < stacks.length; ++i) {\n if (stacks[i].length === 0 ||\n ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {\n stacks.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction removeCommonRoots(stacks) {\n var current = stacks[0];\n for (var i = 1; i < stacks.length; ++i) {\n var prev = stacks[i];\n var currentLastIndex = current.length - 1;\n var currentLastLine = current[currentLastIndex];\n var commonRootMeetPoint = -1;\n\n for (var j = prev.length - 1; j >= 0; --j) {\n if (prev[j] === currentLastLine) {\n commonRootMeetPoint = j;\n break;\n }\n }\n\n for (var j = commonRootMeetPoint; j >= 0; --j) {\n var line = prev[j];\n if (current[currentLastIndex] === line) {\n current.pop();\n currentLastIndex--;\n } else {\n break;\n }\n }\n current = prev;\n }\n}\n\nfunction cleanStack(stack) {\n var ret = [];\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n var isTraceLine = \" (No stack trace)\" === line ||\n stackFramePattern.test(line);\n var isInternalFrame = isTraceLine && shouldIgnore(line);\n if (isTraceLine && !isInternalFrame) {\n if (indentStackFrames && line.charAt(0) !== \" \") {\n line = \" \" + line;\n }\n ret.push(line);\n }\n }\n return ret;\n}\n\nfunction stackFramesAsArray(error) {\n var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n if (\" (No stack trace)\" === line || stackFramePattern.test(line)) {\n break;\n }\n }\n if (i > 0 && error.name != \"SyntaxError\") {\n stack = stack.slice(i);\n }\n return stack;\n}\n\nfunction parseStackAndMessage(error) {\n var stack = error.stack;\n var message = error.toString();\n stack = typeof stack === \"string\" && stack.length > 0\n ? stackFramesAsArray(error) : [\" (No stack trace)\"];\n return {\n message: message,\n stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n };\n}\n\nfunction formatAndLogError(error, title, isSoft) {\n if (typeof console !== \"undefined\") {\n var message;\n if (util.isObject(error)) {\n var stack = error.stack;\n message = title + formatStack(stack, error);\n } else {\n message = title + String(error);\n }\n if (typeof printWarning === \"function\") {\n printWarning(message, isSoft);\n } else if (typeof console.log === \"function\" ||\n typeof console.log === \"object\") {\n console.log(message);\n }\n }\n}\n\nfunction fireRejectionEvent(name, localHandler, reason, promise) {\n var localEventFired = false;\n try {\n if (typeof localHandler === \"function\") {\n localEventFired = true;\n if (name === \"rejectionHandled\") {\n localHandler(promise);\n } else {\n localHandler(reason, promise);\n }\n }\n } catch (e) {\n async.throwLater(e);\n }\n\n if (name === \"unhandledRejection\") {\n if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n formatAndLogError(reason, \"Unhandled rejection \");\n }\n } else {\n activeFireEvent(name, promise);\n }\n}\n\nfunction formatNonError(obj) {\n var str;\n if (typeof obj === \"function\") {\n str = \"[function \" +\n (obj.name || \"anonymous\") +\n \"]\";\n } else {\n str = obj && typeof obj.toString === \"function\"\n ? obj.toString() : util.toString(obj);\n var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n if (ruselessToString.test(str)) {\n try {\n var newStr = JSON.stringify(obj);\n str = newStr;\n }\n catch(e) {\n\n }\n }\n if (str.length === 0) {\n str = \"(empty array)\";\n }\n }\n return (\"(<\" + snip(str) + \">, no stack trace)\");\n}\n\nfunction snip(str) {\n var maxChars = 41;\n if (str.length < maxChars) {\n return str;\n }\n return str.substr(0, maxChars - 3) + \"...\";\n}\n\nfunction longStackTracesIsSupported() {\n return typeof captureStackTrace === \"function\";\n}\n\nvar shouldIgnore = function() { return false; };\nvar parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\nfunction parseLineInfo(line) {\n var matches = line.match(parseLineInfoRegex);\n if (matches) {\n return {\n fileName: matches[1],\n line: parseInt(matches[2], 10)\n };\n }\n}\n\nfunction setBounds(firstLineError, lastLineError) {\n if (!longStackTracesIsSupported()) return;\n var firstStackLines = (firstLineError.stack || \"\").split(\"\\n\");\n var lastStackLines = (lastLineError.stack || \"\").split(\"\\n\");\n var firstIndex = -1;\n var lastIndex = -1;\n var firstFileName;\n var lastFileName;\n for (var i = 0; i < firstStackLines.length; ++i) {\n var result = parseLineInfo(firstStackLines[i]);\n if (result) {\n firstFileName = result.fileName;\n firstIndex = result.line;\n break;\n }\n }\n for (var i = 0; i < lastStackLines.length; ++i) {\n var result = parseLineInfo(lastStackLines[i]);\n if (result) {\n lastFileName = result.fileName;\n lastIndex = result.line;\n break;\n }\n }\n if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||\n firstFileName !== lastFileName || firstIndex >= lastIndex) {\n return;\n }\n\n shouldIgnore = function(line) {\n if (bluebirdFramePattern.test(line)) return true;\n var info = parseLineInfo(line);\n if (info) {\n if (info.fileName === firstFileName &&\n (firstIndex <= info.line && info.line <= lastIndex)) {\n return true;\n }\n }\n return false;\n };\n}\n\nfunction CapturedTrace(parent) {\n this._parent = parent;\n this._promisesCreated = 0;\n var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n captureStackTrace(this, CapturedTrace);\n if (length > 32) this.uncycle();\n}\nutil.inherits(CapturedTrace, Error);\nContext.CapturedTrace = CapturedTrace;\n\nCapturedTrace.prototype.uncycle = function() {\n var length = this._length;\n if (length < 2) return;\n var nodes = [];\n var stackToIndex = {};\n\n for (var i = 0, node = this; node !== undefined; ++i) {\n nodes.push(node);\n node = node._parent;\n }\n length = this._length = i;\n for (var i = length - 1; i >= 0; --i) {\n var stack = nodes[i].stack;\n if (stackToIndex[stack] === undefined) {\n stackToIndex[stack] = i;\n }\n }\n for (var i = 0; i < length; ++i) {\n var currentStack = nodes[i].stack;\n var index = stackToIndex[currentStack];\n if (index !== undefined && index !== i) {\n if (index > 0) {\n nodes[index - 1]._parent = undefined;\n nodes[index - 1]._length = 1;\n }\n nodes[i]._parent = undefined;\n nodes[i]._length = 1;\n var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n if (index < length - 1) {\n cycleEdgeNode._parent = nodes[index + 1];\n cycleEdgeNode._parent.uncycle();\n cycleEdgeNode._length =\n cycleEdgeNode._parent._length + 1;\n } else {\n cycleEdgeNode._parent = undefined;\n cycleEdgeNode._length = 1;\n }\n var currentChildLength = cycleEdgeNode._length + 1;\n for (var j = i - 2; j >= 0; --j) {\n nodes[j]._length = currentChildLength;\n currentChildLength++;\n }\n return;\n }\n }\n};\n\nCapturedTrace.prototype.attachExtraTrace = function(error) {\n if (error.__stackCleaned__) return;\n this.uncycle();\n var parsed = parseStackAndMessage(error);\n var message = parsed.message;\n var stacks = [parsed.stack];\n\n var trace = this;\n while (trace !== undefined) {\n stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n trace = trace._parent;\n }\n removeCommonRoots(stacks);\n removeDuplicateOrEmptyJumps(stacks);\n util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n};\n\nvar captureStackTrace = (function stackDetection() {\n var v8stackFramePattern = /^\\s*at\\s*/;\n var v8stackFormatter = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if (error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n if (typeof Error.stackTraceLimit === \"number\" &&\n typeof Error.captureStackTrace === \"function\") {\n Error.stackTraceLimit += 6;\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n var captureStackTrace = Error.captureStackTrace;\n\n shouldIgnore = function(line) {\n return bluebirdFramePattern.test(line);\n };\n return function(receiver, ignoreUntil) {\n Error.stackTraceLimit += 6;\n captureStackTrace(receiver, ignoreUntil);\n Error.stackTraceLimit -= 6;\n };\n }\n var err = new Error();\n\n if (typeof err.stack === \"string\" &&\n err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n stackFramePattern = /@/;\n formatStack = v8stackFormatter;\n indentStackFrames = true;\n return function captureStackTrace(o) {\n o.stack = new Error().stack;\n };\n }\n\n var hasStackAfterThrow;\n try { throw new Error(); }\n catch(e) {\n hasStackAfterThrow = (\"stack\" in e);\n }\n if (!(\"stack\" in err) && hasStackAfterThrow &&\n typeof Error.stackTraceLimit === \"number\") {\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n return function captureStackTrace(o) {\n Error.stackTraceLimit += 6;\n try { throw new Error(); }\n catch(e) { o.stack = e.stack; }\n Error.stackTraceLimit -= 6;\n };\n }\n\n formatStack = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if ((typeof error === \"object\" ||\n typeof error === \"function\") &&\n error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n return null;\n\n})([]);\n\nif (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n printWarning = function (message) {\n console.warn(message);\n };\n if (util.isNode && process.stderr.isTTY) {\n printWarning = function(message, isSoft) {\n var color = isSoft ? \"\\u001b[33m\" : \"\\u001b[31m\";\n console.warn(color + message + \"\\u001b[0m\\n\");\n };\n } else if (!util.isNode && typeof (new Error().stack) === \"string\") {\n printWarning = function(message, isSoft) {\n console.warn(\"%c\" + message,\n isSoft ? \"color: darkorange\" : \"color: red\");\n };\n }\n}\n\nvar config = {\n warnings: warnings,\n longStackTraces: false,\n cancellation: false,\n monitoring: false\n};\n\nif (longStackTraces) Promise.longStackTraces();\n\nreturn {\n longStackTraces: function() {\n return config.longStackTraces;\n },\n warnings: function() {\n return config.warnings;\n },\n cancellation: function() {\n return config.cancellation;\n },\n monitoring: function() {\n return config.monitoring;\n },\n propagateFromFunction: function() {\n return propagateFromFunction;\n },\n boundValueFunction: function() {\n return boundValueFunction;\n },\n checkForgottenReturns: checkForgottenReturns,\n setBounds: setBounds,\n warn: warn,\n deprecated: deprecated,\n CapturedTrace: CapturedTrace,\n fireDomEvent: fireDomEvent,\n fireGlobalEvent: fireGlobalEvent\n};\n};\n\n},{\"./errors\":12,\"./es5\":13,\"./util\":36}],10:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nfunction returner() {\n return this.value;\n}\nfunction thrower() {\n throw this.reason;\n}\n\nPromise.prototype[\"return\"] =\nPromise.prototype.thenReturn = function (value) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n returner, undefined, undefined, {value: value}, undefined);\n};\n\nPromise.prototype[\"throw\"] =\nPromise.prototype.thenThrow = function (reason) {\n return this._then(\n thrower, undefined, undefined, {reason: reason}, undefined);\n};\n\nPromise.prototype.catchThrow = function (reason) {\n if (arguments.length <= 1) {\n return this._then(\n undefined, thrower, undefined, {reason: reason}, undefined);\n } else {\n var _reason = arguments[1];\n var handler = function() {throw _reason;};\n return this.caught(reason, handler);\n }\n};\n\nPromise.prototype.catchReturn = function (value) {\n if (arguments.length <= 1) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n undefined, returner, undefined, {value: value}, undefined);\n } else {\n var _value = arguments[1];\n if (_value instanceof Promise) _value.suppressUnhandledRejections();\n var handler = function() {return _value;};\n return this.caught(value, handler);\n }\n};\n};\n\n},{}],11:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseReduce = Promise.reduce;\nvar PromiseAll = Promise.all;\n\nfunction promiseAllThis() {\n return PromiseAll(this);\n}\n\nfunction PromiseMapSeries(promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, INTERNAL);\n}\n\nPromise.prototype.each = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, this, undefined);\n};\n\nPromise.prototype.mapSeries = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, INTERNAL);\n};\n\nPromise.each = function (promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, promises, undefined);\n};\n\nPromise.mapSeries = PromiseMapSeries;\n};\n\n\n},{}],12:[function(_dereq_,module,exports){\n\"use strict\";\nvar es5 = _dereq_(\"./es5\");\nvar Objectfreeze = es5.freeze;\nvar util = _dereq_(\"./util\");\nvar inherits = util.inherits;\nvar notEnumerableProp = util.notEnumerableProp;\n\nfunction subError(nameProperty, defaultMessage) {\n function SubError(message) {\n if (!(this instanceof SubError)) return new SubError(message);\n notEnumerableProp(this, \"message\",\n typeof message === \"string\" ? message : defaultMessage);\n notEnumerableProp(this, \"name\", nameProperty);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n Error.call(this);\n }\n }\n inherits(SubError, Error);\n return SubError;\n}\n\nvar _TypeError, _RangeError;\nvar Warning = subError(\"Warning\", \"warning\");\nvar CancellationError = subError(\"CancellationError\", \"cancellation error\");\nvar TimeoutError = subError(\"TimeoutError\", \"timeout error\");\nvar AggregateError = subError(\"AggregateError\", \"aggregate error\");\ntry {\n _TypeError = TypeError;\n _RangeError = RangeError;\n} catch(e) {\n _TypeError = subError(\"TypeError\", \"type error\");\n _RangeError = subError(\"RangeError\", \"range error\");\n}\n\nvar methods = (\"join pop push shift unshift slice filter forEach some \" +\n \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\nfor (var i = 0; i < methods.length; ++i) {\n if (typeof Array.prototype[methods[i]] === \"function\") {\n AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n }\n}\n\nes5.defineProperty(AggregateError.prototype, \"length\", {\n value: 0,\n configurable: false,\n writable: true,\n enumerable: true\n});\nAggregateError.prototype[\"isOperational\"] = true;\nvar level = 0;\nAggregateError.prototype.toString = function() {\n var indent = Array(level * 4 + 1).join(\" \");\n var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n level++;\n indent = Array(level * 4 + 1).join(\" \");\n for (var i = 0; i < this.length; ++i) {\n var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n var lines = str.split(\"\\n\");\n for (var j = 0; j < lines.length; ++j) {\n lines[j] = indent + lines[j];\n }\n str = lines.join(\"\\n\");\n ret += str + \"\\n\";\n }\n level--;\n return ret;\n};\n\nfunction OperationalError(message) {\n if (!(this instanceof OperationalError))\n return new OperationalError(message);\n notEnumerableProp(this, \"name\", \"OperationalError\");\n notEnumerableProp(this, \"message\", message);\n this.cause = message;\n this[\"isOperational\"] = true;\n\n if (message instanceof Error) {\n notEnumerableProp(this, \"message\", message.message);\n notEnumerableProp(this, \"stack\", message.stack);\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n}\ninherits(OperationalError, Error);\n\nvar errorTypes = Error[\"__BluebirdErrorTypes__\"];\nif (!errorTypes) {\n errorTypes = Objectfreeze({\n CancellationError: CancellationError,\n TimeoutError: TimeoutError,\n OperationalError: OperationalError,\n RejectionError: OperationalError,\n AggregateError: AggregateError\n });\n es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n value: errorTypes,\n writable: false,\n enumerable: false,\n configurable: false\n });\n}\n\nmodule.exports = {\n Error: Error,\n TypeError: _TypeError,\n RangeError: _RangeError,\n CancellationError: errorTypes.CancellationError,\n OperationalError: errorTypes.OperationalError,\n TimeoutError: errorTypes.TimeoutError,\n AggregateError: errorTypes.AggregateError,\n Warning: Warning\n};\n\n},{\"./es5\":13,\"./util\":36}],13:[function(_dereq_,module,exports){\nvar isES5 = (function(){\n \"use strict\";\n return this === undefined;\n})();\n\nif (isES5) {\n module.exports = {\n freeze: Object.freeze,\n defineProperty: Object.defineProperty,\n getDescriptor: Object.getOwnPropertyDescriptor,\n keys: Object.keys,\n names: Object.getOwnPropertyNames,\n getPrototypeOf: Object.getPrototypeOf,\n isArray: Array.isArray,\n isES5: isES5,\n propertyIsWritable: function(obj, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n return !!(!descriptor || descriptor.writable || descriptor.set);\n }\n };\n} else {\n var has = {}.hasOwnProperty;\n var str = {}.toString;\n var proto = {}.constructor.prototype;\n\n var ObjectKeys = function (o) {\n var ret = [];\n for (var key in o) {\n if (has.call(o, key)) {\n ret.push(key);\n }\n }\n return ret;\n };\n\n var ObjectGetDescriptor = function(o, key) {\n return {value: o[key]};\n };\n\n var ObjectDefineProperty = function (o, key, desc) {\n o[key] = desc.value;\n return o;\n };\n\n var ObjectFreeze = function (obj) {\n return obj;\n };\n\n var ObjectGetPrototypeOf = function (obj) {\n try {\n return Object(obj).constructor.prototype;\n }\n catch (e) {\n return proto;\n }\n };\n\n var ArrayIsArray = function (obj) {\n try {\n return str.call(obj) === \"[object Array]\";\n }\n catch(e) {\n return false;\n }\n };\n\n module.exports = {\n isArray: ArrayIsArray,\n keys: ObjectKeys,\n names: ObjectKeys,\n defineProperty: ObjectDefineProperty,\n getDescriptor: ObjectGetDescriptor,\n freeze: ObjectFreeze,\n getPrototypeOf: ObjectGetPrototypeOf,\n isES5: isES5,\n propertyIsWritable: function() {\n return true;\n }\n };\n}\n\n},{}],14:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseMap = Promise.map;\n\nPromise.prototype.filter = function (fn, options) {\n return PromiseMap(this, fn, options, INTERNAL);\n};\n\nPromise.filter = function (promises, fn, options) {\n return PromiseMap(promises, fn, options, INTERNAL);\n};\n};\n\n},{}],15:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {\nvar util = _dereq_(\"./util\");\nvar CancellationError = Promise.CancellationError;\nvar errorObj = util.errorObj;\nvar catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\n\nfunction PassThroughHandlerContext(promise, type, handler) {\n this.promise = promise;\n this.type = type;\n this.handler = handler;\n this.called = false;\n this.cancelPromise = null;\n}\n\nPassThroughHandlerContext.prototype.isFinallyHandler = function() {\n return this.type === 0;\n};\n\nfunction FinallyHandlerCancelReaction(finallyHandler) {\n this.finallyHandler = finallyHandler;\n}\n\nFinallyHandlerCancelReaction.prototype._resultCancelled = function() {\n checkCancel(this.finallyHandler);\n};\n\nfunction checkCancel(ctx, reason) {\n if (ctx.cancelPromise != null) {\n if (arguments.length > 1) {\n ctx.cancelPromise._reject(reason);\n } else {\n ctx.cancelPromise._cancel();\n }\n ctx.cancelPromise = null;\n return true;\n }\n return false;\n}\n\nfunction succeed() {\n return finallyHandler.call(this, this.promise._target()._settledValue());\n}\nfunction fail(reason) {\n if (checkCancel(this, reason)) return;\n errorObj.e = reason;\n return errorObj;\n}\nfunction finallyHandler(reasonOrValue) {\n var promise = this.promise;\n var handler = this.handler;\n\n if (!this.called) {\n this.called = true;\n var ret = this.isFinallyHandler()\n ? handler.call(promise._boundValue())\n : handler.call(promise._boundValue(), reasonOrValue);\n if (ret === NEXT_FILTER) {\n return ret;\n } else if (ret !== undefined) {\n promise._setReturnedNonUndefined();\n var maybePromise = tryConvertToPromise(ret, promise);\n if (maybePromise instanceof Promise) {\n if (this.cancelPromise != null) {\n if (maybePromise._isCancelled()) {\n var reason =\n new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n errorObj.e = reason;\n return errorObj;\n } else if (maybePromise.isPending()) {\n maybePromise._attachCancellationCallback(\n new FinallyHandlerCancelReaction(this));\n }\n }\n return maybePromise._then(\n succeed, fail, undefined, this, undefined);\n }\n }\n }\n\n if (promise.isRejected()) {\n checkCancel(this);\n errorObj.e = reasonOrValue;\n return errorObj;\n } else {\n checkCancel(this);\n return reasonOrValue;\n }\n}\n\nPromise.prototype._passThrough = function(handler, type, success, fail) {\n if (typeof handler !== \"function\") return this.then();\n return this._then(success,\n fail,\n undefined,\n new PassThroughHandlerContext(this, type, handler),\n undefined);\n};\n\nPromise.prototype.lastly =\nPromise.prototype[\"finally\"] = function (handler) {\n return this._passThrough(handler,\n 0,\n finallyHandler,\n finallyHandler);\n};\n\n\nPromise.prototype.tap = function (handler) {\n return this._passThrough(handler, 1, finallyHandler);\n};\n\nPromise.prototype.tapCatch = function (handlerOrPredicate) {\n var len = arguments.length;\n if(len === 1) {\n return this._passThrough(handlerOrPredicate,\n 1,\n undefined,\n finallyHandler);\n } else {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return Promise.reject(new TypeError(\n \"tapCatch statement predicate: \"\n + \"expecting an object but got \" + util.classString(item)\n ));\n }\n }\n catchInstances.length = j;\n var handler = arguments[i];\n return this._passThrough(catchFilter(catchInstances, handler, this),\n 1,\n undefined,\n finallyHandler);\n }\n\n};\n\nreturn PassThroughHandlerContext;\n};\n\n},{\"./catch_filter\":7,\"./util\":36}],16:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n apiRejection,\n INTERNAL,\n tryConvertToPromise,\n Proxyable,\n debug) {\nvar errors = _dereq_(\"./errors\");\nvar TypeError = errors.TypeError;\nvar util = _dereq_(\"./util\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nvar yieldHandlers = [];\n\nfunction promiseFromYieldHandler(value, yieldHandlers, traceParent) {\n for (var i = 0; i < yieldHandlers.length; ++i) {\n traceParent._pushContext();\n var result = tryCatch(yieldHandlers[i])(value);\n traceParent._popContext();\n if (result === errorObj) {\n traceParent._pushContext();\n var ret = Promise.reject(errorObj.e);\n traceParent._popContext();\n return ret;\n }\n var maybePromise = tryConvertToPromise(result, traceParent);\n if (maybePromise instanceof Promise) return maybePromise;\n }\n return null;\n}\n\nfunction PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {\n if (debug.cancellation()) {\n var internal = new Promise(INTERNAL);\n var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);\n this._promise = internal.lastly(function() {\n return _finallyPromise;\n });\n internal._captureStackTrace();\n internal._setOnCancel(this);\n } else {\n var promise = this._promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n }\n this._stack = stack;\n this._generatorFunction = generatorFunction;\n this._receiver = receiver;\n this._generator = undefined;\n this._yieldHandlers = typeof yieldHandler === \"function\"\n ? [yieldHandler].concat(yieldHandlers)\n : yieldHandlers;\n this._yieldedPromise = null;\n this._cancellationPhase = false;\n}\nutil.inherits(PromiseSpawn, Proxyable);\n\nPromiseSpawn.prototype._isResolved = function() {\n return this._promise === null;\n};\n\nPromiseSpawn.prototype._cleanup = function() {\n this._promise = this._generator = null;\n if (debug.cancellation() && this._finallyPromise !== null) {\n this._finallyPromise._fulfill();\n this._finallyPromise = null;\n }\n};\n\nPromiseSpawn.prototype._promiseCancelled = function() {\n if (this._isResolved()) return;\n var implementsReturn = typeof this._generator[\"return\"] !== \"undefined\";\n\n var result;\n if (!implementsReturn) {\n var reason = new Promise.CancellationError(\n \"generator .return() sentinel\");\n Promise.coroutine.returnSentinel = reason;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n result = tryCatch(this._generator[\"throw\"]).call(this._generator,\n reason);\n this._promise._popContext();\n } else {\n this._promise._pushContext();\n result = tryCatch(this._generator[\"return\"]).call(this._generator,\n undefined);\n this._promise._popContext();\n }\n this._cancellationPhase = true;\n this._yieldedPromise = null;\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseFulfilled = function(value) {\n this._yieldedPromise = null;\n this._promise._pushContext();\n var result = tryCatch(this._generator.next).call(this._generator, value);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseRejected = function(reason) {\n this._yieldedPromise = null;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n var result = tryCatch(this._generator[\"throw\"])\n .call(this._generator, reason);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._resultCancelled = function() {\n if (this._yieldedPromise instanceof Promise) {\n var promise = this._yieldedPromise;\n this._yieldedPromise = null;\n promise.cancel();\n }\n};\n\nPromiseSpawn.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseSpawn.prototype._run = function () {\n this._generator = this._generatorFunction.call(this._receiver);\n this._receiver =\n this._generatorFunction = undefined;\n this._promiseFulfilled(undefined);\n};\n\nPromiseSpawn.prototype._continue = function (result) {\n var promise = this._promise;\n if (result === errorObj) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._rejectCallback(result.e, false);\n }\n }\n\n var value = result.value;\n if (result.done === true) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._resolveCallback(value);\n }\n } else {\n var maybePromise = tryConvertToPromise(value, this._promise);\n if (!(maybePromise instanceof Promise)) {\n maybePromise =\n promiseFromYieldHandler(maybePromise,\n this._yieldHandlers,\n this._promise);\n if (maybePromise === null) {\n this._promiseRejected(\n new TypeError(\n \"A value %s was yielded that could not be treated as a promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\\u000a\".replace(\"%s\", String(value)) +\n \"From coroutine:\\u000a\" +\n this._stack.split(\"\\n\").slice(1, -7).join(\"\\n\")\n )\n );\n return;\n }\n }\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n this._yieldedPromise = maybePromise;\n maybePromise._proxy(this, null);\n } else if (((bitField & 33554432) !== 0)) {\n Promise._async.invoke(\n this._promiseFulfilled, this, maybePromise._value()\n );\n } else if (((bitField & 16777216) !== 0)) {\n Promise._async.invoke(\n this._promiseRejected, this, maybePromise._reason()\n );\n } else {\n this._promiseCancelled();\n }\n }\n};\n\nPromise.coroutine = function (generatorFunction, options) {\n if (typeof generatorFunction !== \"function\") {\n throw new TypeError(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var yieldHandler = Object(options).yieldHandler;\n var PromiseSpawn$ = PromiseSpawn;\n var stack = new Error().stack;\n return function () {\n var generator = generatorFunction.apply(this, arguments);\n var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,\n stack);\n var ret = spawn.promise();\n spawn._generator = generator;\n spawn._promiseFulfilled(undefined);\n return ret;\n };\n};\n\nPromise.coroutine.addYieldHandler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n yieldHandlers.push(fn);\n};\n\nPromise.spawn = function (generatorFunction) {\n debug.deprecated(\"Promise.spawn()\", \"Promise.coroutine()\");\n if (typeof generatorFunction !== \"function\") {\n return apiRejection(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var spawn = new PromiseSpawn(generatorFunction, this);\n var ret = spawn.promise();\n spawn._run(Promise.spawn);\n return ret;\n};\n};\n\n},{\"./errors\":12,\"./util\":36}],17:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,\n getDomain) {\nvar util = _dereq_(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar reject;\n\nif (!true) {\nif (canEvaluate) {\n var thenCallback = function(i) {\n return new Function(\"value\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = value; \\n\\\n holder.checkFulfillment(this); \\n\\\n \".replace(/Index/g, i));\n };\n\n var promiseSetter = function(i) {\n return new Function(\"promise\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = promise; \\n\\\n \".replace(/Index/g, i));\n };\n\n var generateHolderClass = function(total) {\n var props = new Array(total);\n for (var i = 0; i < props.length; ++i) {\n props[i] = \"this.p\" + (i+1);\n }\n var assignment = props.join(\" = \") + \" = null;\";\n var cancellationCode= \"var promise;\\n\" + props.map(function(prop) {\n return \" \\n\\\n promise = \" + prop + \"; \\n\\\n if (promise instanceof Promise) { \\n\\\n promise.cancel(); \\n\\\n } \\n\\\n \";\n }).join(\"\\n\");\n var passedArguments = props.join(\", \");\n var name = \"Holder$\" + total;\n\n\n var code = \"return function(tryCatch, errorObj, Promise, async) { \\n\\\n 'use strict'; \\n\\\n function [TheName](fn) { \\n\\\n [TheProperties] \\n\\\n this.fn = fn; \\n\\\n this.asyncNeeded = true; \\n\\\n this.now = 0; \\n\\\n } \\n\\\n \\n\\\n [TheName].prototype._callFunction = function(promise) { \\n\\\n promise._pushContext(); \\n\\\n var ret = tryCatch(this.fn)([ThePassedArguments]); \\n\\\n promise._popContext(); \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(ret.e, false); \\n\\\n } else { \\n\\\n promise._resolveCallback(ret); \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype.checkFulfillment = function(promise) { \\n\\\n var now = ++this.now; \\n\\\n if (now === [TheTotal]) { \\n\\\n if (this.asyncNeeded) { \\n\\\n async.invoke(this._callFunction, this, promise); \\n\\\n } else { \\n\\\n this._callFunction(promise); \\n\\\n } \\n\\\n \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype._resultCancelled = function() { \\n\\\n [CancellationCode] \\n\\\n }; \\n\\\n \\n\\\n return [TheName]; \\n\\\n }(tryCatch, errorObj, Promise, async); \\n\\\n \";\n\n code = code.replace(/\\[TheName\\]/g, name)\n .replace(/\\[TheTotal\\]/g, total)\n .replace(/\\[ThePassedArguments\\]/g, passedArguments)\n .replace(/\\[TheProperties\\]/g, assignment)\n .replace(/\\[CancellationCode\\]/g, cancellationCode);\n\n return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)\n (tryCatch, errorObj, Promise, async);\n };\n\n var holderClasses = [];\n var thenCallbacks = [];\n var promiseSetters = [];\n\n for (var i = 0; i < 8; ++i) {\n holderClasses.push(generateHolderClass(i + 1));\n thenCallbacks.push(thenCallback(i + 1));\n promiseSetters.push(promiseSetter(i + 1));\n }\n\n reject = function (reason) {\n this._reject(reason);\n };\n}}\n\nPromise.join = function () {\n var last = arguments.length - 1;\n var fn;\n if (last > 0 && typeof arguments[last] === \"function\") {\n fn = arguments[last];\n if (!true) {\n if (last <= 8 && canEvaluate) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var HolderClass = holderClasses[last - 1];\n var holder = new HolderClass(fn);\n var callbacks = thenCallbacks;\n\n for (var i = 0; i < last; ++i) {\n var maybePromise = tryConvertToPromise(arguments[i], ret);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n maybePromise._then(callbacks[i], reject,\n undefined, ret, holder);\n promiseSetters[i](maybePromise, holder);\n holder.asyncNeeded = false;\n } else if (((bitField & 33554432) !== 0)) {\n callbacks[i].call(ret,\n maybePromise._value(), holder);\n } else if (((bitField & 16777216) !== 0)) {\n ret._reject(maybePromise._reason());\n } else {\n ret._cancel();\n }\n } else {\n callbacks[i].call(ret, maybePromise, holder);\n }\n }\n\n if (!ret._isFateSealed()) {\n if (holder.asyncNeeded) {\n var domain = getDomain();\n if (domain !== null) {\n holder.fn = util.domainBind(domain, holder.fn);\n }\n }\n ret._setAsyncGuaranteed();\n ret._setOnCancel(holder);\n }\n return ret;\n }\n }\n }\n var args = [].slice.call(arguments);;\n if (fn) args.pop();\n var ret = new PromiseArray(args).promise();\n return fn !== undefined ? ret.spread(fn) : ret;\n};\n\n};\n\n},{\"./util\":36}],18:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar getDomain = Promise._getDomain;\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nfunction MappingPromiseArray(promises, fn, limit, _filter) {\n this.constructor$(promises);\n this._promise._captureStackTrace();\n var domain = getDomain();\n this._callback = domain === null ? fn : util.domainBind(domain, fn);\n this._preservedValues = _filter === INTERNAL\n ? new Array(this.length())\n : null;\n this._limit = limit;\n this._inFlight = 0;\n this._queue = [];\n async.invoke(this._asyncInit, this, undefined);\n}\nutil.inherits(MappingPromiseArray, PromiseArray);\n\nMappingPromiseArray.prototype._asyncInit = function() {\n this._init$(undefined, -2);\n};\n\nMappingPromiseArray.prototype._init = function () {};\n\nMappingPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var values = this._values;\n var length = this.length();\n var preservedValues = this._preservedValues;\n var limit = this._limit;\n\n if (index < 0) {\n index = (index * -1) - 1;\n values[index] = value;\n if (limit >= 1) {\n this._inFlight--;\n this._drainQueue();\n if (this._isResolved()) return true;\n }\n } else {\n if (limit >= 1 && this._inFlight >= limit) {\n values[index] = value;\n this._queue.push(index);\n return false;\n }\n if (preservedValues !== null) preservedValues[index] = value;\n\n var promise = this._promise;\n var callback = this._callback;\n var receiver = promise._boundValue();\n promise._pushContext();\n var ret = tryCatch(callback).call(receiver, value, index, length);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n preservedValues !== null ? \"Promise.filter\" : \"Promise.map\",\n promise\n );\n if (ret === errorObj) {\n this._reject(ret.e);\n return true;\n }\n\n var maybePromise = tryConvertToPromise(ret, this._promise);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n if (limit >= 1) this._inFlight++;\n values[index] = maybePromise;\n maybePromise._proxy(this, (index + 1) * -1);\n return false;\n } else if (((bitField & 33554432) !== 0)) {\n ret = maybePromise._value();\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(maybePromise._reason());\n return true;\n } else {\n this._cancel();\n return true;\n }\n }\n values[index] = ret;\n }\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= length) {\n if (preservedValues !== null) {\n this._filter(values, preservedValues);\n } else {\n this._resolve(values);\n }\n return true;\n }\n return false;\n};\n\nMappingPromiseArray.prototype._drainQueue = function () {\n var queue = this._queue;\n var limit = this._limit;\n var values = this._values;\n while (queue.length > 0 && this._inFlight < limit) {\n if (this._isResolved()) return;\n var index = queue.pop();\n this._promiseFulfilled(values[index], index);\n }\n};\n\nMappingPromiseArray.prototype._filter = function (booleans, values) {\n var len = values.length;\n var ret = new Array(len);\n var j = 0;\n for (var i = 0; i < len; ++i) {\n if (booleans[i]) ret[j++] = values[i];\n }\n ret.length = j;\n this._resolve(ret);\n};\n\nMappingPromiseArray.prototype.preservedValues = function () {\n return this._preservedValues;\n};\n\nfunction map(promises, fn, options, _filter) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n var limit = 0;\n if (options !== undefined) {\n if (typeof options === \"object\" && options !== null) {\n if (typeof options.concurrency !== \"number\") {\n return Promise.reject(\n new TypeError(\"'concurrency' must be a number but it is \" +\n util.classString(options.concurrency)));\n }\n limit = options.concurrency;\n } else {\n return Promise.reject(new TypeError(\n \"options argument must be an object but it is \" +\n util.classString(options)));\n }\n }\n limit = typeof limit === \"number\" &&\n isFinite(limit) && limit >= 1 ? limit : 0;\n return new MappingPromiseArray(promises, fn, limit, _filter).promise();\n}\n\nPromise.prototype.map = function (fn, options) {\n return map(this, fn, options, null);\n};\n\nPromise.map = function (promises, fn, options, _filter) {\n return map(promises, fn, options, _filter);\n};\n\n\n};\n\n},{\"./util\":36}],19:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\n\nPromise.method = function (fn) {\n if (typeof fn !== \"function\") {\n throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return function () {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value = tryCatch(fn).apply(this, arguments);\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.method\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n };\n};\n\nPromise.attempt = Promise[\"try\"] = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value;\n if (arguments.length > 1) {\n debug.deprecated(\"calling Promise.try with more than 1 argument\");\n var arg = arguments[1];\n var ctx = arguments[2];\n value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)\n : tryCatch(fn).call(ctx, arg);\n } else {\n value = tryCatch(fn)();\n }\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.try\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n};\n\nPromise.prototype._resolveFromSyncValue = function (value) {\n if (value === util.errorObj) {\n this._rejectCallback(value.e, false);\n } else {\n this._resolveCallback(value, true);\n }\n};\n};\n\n},{\"./util\":36}],20:[function(_dereq_,module,exports){\n\"use strict\";\nvar util = _dereq_(\"./util\");\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar errors = _dereq_(\"./errors\");\nvar OperationalError = errors.OperationalError;\nvar es5 = _dereq_(\"./es5\");\n\nfunction isUntypedError(obj) {\n return obj instanceof Error &&\n es5.getPrototypeOf(obj) === Error.prototype;\n}\n\nvar rErrorKey = /^(?:name|message|stack|cause)$/;\nfunction wrapAsOperationalError(obj) {\n var ret;\n if (isUntypedError(obj)) {\n ret = new OperationalError(obj);\n ret.name = obj.name;\n ret.message = obj.message;\n ret.stack = obj.stack;\n var keys = es5.keys(obj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!rErrorKey.test(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n }\n util.markAsOriginatingFromRejection(obj);\n return obj;\n}\n\nfunction nodebackForPromise(promise, multiArgs) {\n return function(err, value) {\n if (promise === null) return;\n if (err) {\n var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n promise._attachExtraTrace(wrapped);\n promise._reject(wrapped);\n } else if (!multiArgs) {\n promise._fulfill(value);\n } else {\n var args = [].slice.call(arguments, 1);;\n promise._fulfill(args);\n }\n promise = null;\n };\n}\n\nmodule.exports = nodebackForPromise;\n\n},{\"./errors\":12,\"./es5\":13,\"./util\":36}],21:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nvar util = _dereq_(\"./util\");\nvar async = Promise._async;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction spreadAdapter(val, nodeback) {\n var promise = this;\n if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);\n var ret =\n tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nfunction successAdapter(val, nodeback) {\n var promise = this;\n var receiver = promise._boundValue();\n var ret = val === undefined\n ? tryCatch(nodeback).call(receiver, null)\n : tryCatch(nodeback).call(receiver, null, val);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\nfunction errorAdapter(reason, nodeback) {\n var promise = this;\n if (!reason) {\n var newReason = new Error(reason + \"\");\n newReason.cause = reason;\n reason = newReason;\n }\n var ret = tryCatch(nodeback).call(promise._boundValue(), reason);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nPromise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,\n options) {\n if (typeof nodeback == \"function\") {\n var adapter = successAdapter;\n if (options !== undefined && Object(options).spread) {\n adapter = spreadAdapter;\n }\n this._then(\n adapter,\n errorAdapter,\n undefined,\n this,\n nodeback\n );\n }\n return this;\n};\n};\n\n},{\"./util\":36}],22:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function() {\nvar makeSelfResolutionError = function () {\n return new TypeError(\"circular promise resolution chain\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar reflectHandler = function() {\n return new Promise.PromiseInspection(this._target());\n};\nvar apiRejection = function(msg) {\n return Promise.reject(new TypeError(msg));\n};\nfunction Proxyable() {}\nvar UNDEFINED_BINDING = {};\nvar util = _dereq_(\"./util\");\n\nvar getDomain;\nif (util.isNode) {\n getDomain = function() {\n var ret = process.domain;\n if (ret === undefined) ret = null;\n return ret;\n };\n} else {\n getDomain = function() {\n return null;\n };\n}\nutil.notEnumerableProp(Promise, \"_getDomain\", getDomain);\n\nvar es5 = _dereq_(\"./es5\");\nvar Async = _dereq_(\"./async\");\nvar async = new Async();\nes5.defineProperty(Promise, \"_async\", {value: async});\nvar errors = _dereq_(\"./errors\");\nvar TypeError = Promise.TypeError = errors.TypeError;\nPromise.RangeError = errors.RangeError;\nvar CancellationError = Promise.CancellationError = errors.CancellationError;\nPromise.TimeoutError = errors.TimeoutError;\nPromise.OperationalError = errors.OperationalError;\nPromise.RejectionError = errors.OperationalError;\nPromise.AggregateError = errors.AggregateError;\nvar INTERNAL = function(){};\nvar APPLY = {};\nvar NEXT_FILTER = {};\nvar tryConvertToPromise = _dereq_(\"./thenables\")(Promise, INTERNAL);\nvar PromiseArray =\n _dereq_(\"./promise_array\")(Promise, INTERNAL,\n tryConvertToPromise, apiRejection, Proxyable);\nvar Context = _dereq_(\"./context\")(Promise);\n /*jshint unused:false*/\nvar createContext = Context.create;\nvar debug = _dereq_(\"./debuggability\")(Promise, Context);\nvar CapturedTrace = debug.CapturedTrace;\nvar PassThroughHandlerContext =\n _dereq_(\"./finally\")(Promise, tryConvertToPromise, NEXT_FILTER);\nvar catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\nvar nodebackForPromise = _dereq_(\"./nodeback\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nfunction check(self, executor) {\n if (self == null || self.constructor !== Promise) {\n throw new TypeError(\"the promise constructor cannot be invoked directly\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (typeof executor !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n }\n\n}\n\nfunction Promise(executor) {\n if (executor !== INTERNAL) {\n check(this, executor);\n }\n this._bitField = 0;\n this._fulfillmentHandler0 = undefined;\n this._rejectionHandler0 = undefined;\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._resolveFromExecutor(executor);\n this._promiseCreated();\n this._fireEvent(\"promiseCreated\", this);\n}\n\nPromise.prototype.toString = function () {\n return \"[object Promise]\";\n};\n\nPromise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n var len = arguments.length;\n if (len > 1) {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return apiRejection(\"Catch statement predicate: \" +\n \"expecting an object but got \" + util.classString(item));\n }\n }\n catchInstances.length = j;\n fn = arguments[i];\n\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The last argument to .catch() \" +\n \"must be a function, got \" + util.toString(fn));\n }\n return this.then(undefined, catchFilter(catchInstances, fn, this));\n }\n return this.then(undefined, fn);\n};\n\nPromise.prototype.reflect = function () {\n return this._then(reflectHandler,\n reflectHandler, undefined, this, undefined);\n};\n\nPromise.prototype.then = function (didFulfill, didReject) {\n if (debug.warnings() && arguments.length > 0 &&\n typeof didFulfill !== \"function\" &&\n typeof didReject !== \"function\") {\n var msg = \".then() only accepts functions but was passed: \" +\n util.classString(didFulfill);\n if (arguments.length > 1) {\n msg += \", \" + util.classString(didReject);\n }\n this._warn(msg);\n }\n return this._then(didFulfill, didReject, undefined, undefined, undefined);\n};\n\nPromise.prototype.done = function (didFulfill, didReject) {\n var promise =\n this._then(didFulfill, didReject, undefined, undefined, undefined);\n promise._setIsFinal();\n};\n\nPromise.prototype.spread = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n};\n\nPromise.prototype.toJSON = function () {\n var ret = {\n isFulfilled: false,\n isRejected: false,\n fulfillmentValue: undefined,\n rejectionReason: undefined\n };\n if (this.isFulfilled()) {\n ret.fulfillmentValue = this.value();\n ret.isFulfilled = true;\n } else if (this.isRejected()) {\n ret.rejectionReason = this.reason();\n ret.isRejected = true;\n }\n return ret;\n};\n\nPromise.prototype.all = function () {\n if (arguments.length > 0) {\n this._warn(\".all() was passed arguments but it does not take any\");\n }\n return new PromiseArray(this).promise();\n};\n\nPromise.prototype.error = function (fn) {\n return this.caught(util.originatesFromRejection, fn);\n};\n\nPromise.getNewLibraryCopy = module.exports;\n\nPromise.is = function (val) {\n return val instanceof Promise;\n};\n\nPromise.fromNode = Promise.fromCallback = function(fn) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs\n : false;\n var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n if (result === errorObj) {\n ret._rejectCallback(result.e, true);\n }\n if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.all = function (promises) {\n return new PromiseArray(promises).promise();\n};\n\nPromise.cast = function (obj) {\n var ret = tryConvertToPromise(obj);\n if (!(ret instanceof Promise)) {\n ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._setFulfilled();\n ret._rejectionHandler0 = obj;\n }\n return ret;\n};\n\nPromise.resolve = Promise.fulfilled = Promise.cast;\n\nPromise.reject = Promise.rejected = function (reason) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._rejectCallback(reason, true);\n return ret;\n};\n\nPromise.setScheduler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return async.setScheduler(fn);\n};\n\nPromise.prototype._then = function (\n didFulfill,\n didReject,\n _, receiver,\n internalData\n) {\n var haveInternalData = internalData !== undefined;\n var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n var target = this._target();\n var bitField = target._bitField;\n\n if (!haveInternalData) {\n promise._propagateFrom(this, 3);\n promise._captureStackTrace();\n if (receiver === undefined &&\n ((this._bitField & 2097152) !== 0)) {\n if (!((bitField & 50397184) === 0)) {\n receiver = this._boundValue();\n } else {\n receiver = target === this ? undefined : this._boundTo;\n }\n }\n this._fireEvent(\"promiseChained\", this, promise);\n }\n\n var domain = getDomain();\n if (!((bitField & 50397184) === 0)) {\n var handler, value, settler = target._settlePromiseCtx;\n if (((bitField & 33554432) !== 0)) {\n value = target._rejectionHandler0;\n handler = didFulfill;\n } else if (((bitField & 16777216) !== 0)) {\n value = target._fulfillmentHandler0;\n handler = didReject;\n target._unsetRejectionIsUnhandled();\n } else {\n settler = target._settlePromiseLateCancellationObserver;\n value = new CancellationError(\"late cancellation observer\");\n target._attachExtraTrace(value);\n handler = didReject;\n }\n\n async.invoke(settler, target, {\n handler: domain === null ? handler\n : (typeof handler === \"function\" &&\n util.domainBind(domain, handler)),\n promise: promise,\n receiver: receiver,\n value: value\n });\n } else {\n target._addCallbacks(didFulfill, didReject, promise, receiver, domain);\n }\n\n return promise;\n};\n\nPromise.prototype._length = function () {\n return this._bitField & 65535;\n};\n\nPromise.prototype._isFateSealed = function () {\n return (this._bitField & 117506048) !== 0;\n};\n\nPromise.prototype._isFollowing = function () {\n return (this._bitField & 67108864) === 67108864;\n};\n\nPromise.prototype._setLength = function (len) {\n this._bitField = (this._bitField & -65536) |\n (len & 65535);\n};\n\nPromise.prototype._setFulfilled = function () {\n this._bitField = this._bitField | 33554432;\n this._fireEvent(\"promiseFulfilled\", this);\n};\n\nPromise.prototype._setRejected = function () {\n this._bitField = this._bitField | 16777216;\n this._fireEvent(\"promiseRejected\", this);\n};\n\nPromise.prototype._setFollowing = function () {\n this._bitField = this._bitField | 67108864;\n this._fireEvent(\"promiseResolved\", this);\n};\n\nPromise.prototype._setIsFinal = function () {\n this._bitField = this._bitField | 4194304;\n};\n\nPromise.prototype._isFinal = function () {\n return (this._bitField & 4194304) > 0;\n};\n\nPromise.prototype._unsetCancelled = function() {\n this._bitField = this._bitField & (~65536);\n};\n\nPromise.prototype._setCancelled = function() {\n this._bitField = this._bitField | 65536;\n this._fireEvent(\"promiseCancelled\", this);\n};\n\nPromise.prototype._setWillBeCancelled = function() {\n this._bitField = this._bitField | 8388608;\n};\n\nPromise.prototype._setAsyncGuaranteed = function() {\n if (async.hasCustomScheduler()) return;\n this._bitField = this._bitField | 134217728;\n};\n\nPromise.prototype._receiverAt = function (index) {\n var ret = index === 0 ? this._receiver0 : this[\n index * 4 - 4 + 3];\n if (ret === UNDEFINED_BINDING) {\n return undefined;\n } else if (ret === undefined && this._isBound()) {\n return this._boundValue();\n }\n return ret;\n};\n\nPromise.prototype._promiseAt = function (index) {\n return this[\n index * 4 - 4 + 2];\n};\n\nPromise.prototype._fulfillmentHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 0];\n};\n\nPromise.prototype._rejectionHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 1];\n};\n\nPromise.prototype._boundValue = function() {};\n\nPromise.prototype._migrateCallback0 = function (follower) {\n var bitField = follower._bitField;\n var fulfill = follower._fulfillmentHandler0;\n var reject = follower._rejectionHandler0;\n var promise = follower._promise0;\n var receiver = follower._receiverAt(0);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._migrateCallbackAt = function (follower, index) {\n var fulfill = follower._fulfillmentHandlerAt(index);\n var reject = follower._rejectionHandlerAt(index);\n var promise = follower._promiseAt(index);\n var receiver = follower._receiverAt(index);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._addCallbacks = function (\n fulfill,\n reject,\n promise,\n receiver,\n domain\n) {\n var index = this._length();\n\n if (index >= 65535 - 4) {\n index = 0;\n this._setLength(0);\n }\n\n if (index === 0) {\n this._promise0 = promise;\n this._receiver0 = receiver;\n if (typeof fulfill === \"function\") {\n this._fulfillmentHandler0 =\n domain === null ? fulfill : util.domainBind(domain, fulfill);\n }\n if (typeof reject === \"function\") {\n this._rejectionHandler0 =\n domain === null ? reject : util.domainBind(domain, reject);\n }\n } else {\n var base = index * 4 - 4;\n this[base + 2] = promise;\n this[base + 3] = receiver;\n if (typeof fulfill === \"function\") {\n this[base + 0] =\n domain === null ? fulfill : util.domainBind(domain, fulfill);\n }\n if (typeof reject === \"function\") {\n this[base + 1] =\n domain === null ? reject : util.domainBind(domain, reject);\n }\n }\n this._setLength(index + 1);\n return index;\n};\n\nPromise.prototype._proxy = function (proxyable, arg) {\n this._addCallbacks(undefined, undefined, arg, proxyable, null);\n};\n\nPromise.prototype._resolveCallback = function(value, shouldBind) {\n if (((this._bitField & 117506048) !== 0)) return;\n if (value === this)\n return this._rejectCallback(makeSelfResolutionError(), false);\n var maybePromise = tryConvertToPromise(value, this);\n if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n\n if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n var promise = maybePromise._target();\n\n if (promise === this) {\n this._reject(makeSelfResolutionError());\n return;\n }\n\n var bitField = promise._bitField;\n if (((bitField & 50397184) === 0)) {\n var len = this._length();\n if (len > 0) promise._migrateCallback0(this);\n for (var i = 1; i < len; ++i) {\n promise._migrateCallbackAt(this, i);\n }\n this._setFollowing();\n this._setLength(0);\n this._setFollowee(promise);\n } else if (((bitField & 33554432) !== 0)) {\n this._fulfill(promise._value());\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(promise._reason());\n } else {\n var reason = new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n this._reject(reason);\n }\n};\n\nPromise.prototype._rejectCallback =\nfunction(reason, synchronous, ignoreNonErrorWarnings) {\n var trace = util.ensureErrorObject(reason);\n var hasStack = trace === reason;\n if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n var message = \"a promise was rejected with a non-error: \" +\n util.classString(reason);\n this._warn(message, true);\n }\n this._attachExtraTrace(trace, synchronous ? hasStack : false);\n this._reject(reason);\n};\n\nPromise.prototype._resolveFromExecutor = function (executor) {\n if (executor === INTERNAL) return;\n var promise = this;\n this._captureStackTrace();\n this._pushContext();\n var synchronous = true;\n var r = this._execute(executor, function(value) {\n promise._resolveCallback(value);\n }, function (reason) {\n promise._rejectCallback(reason, synchronous);\n });\n synchronous = false;\n this._popContext();\n\n if (r !== undefined) {\n promise._rejectCallback(r, true);\n }\n};\n\nPromise.prototype._settlePromiseFromHandler = function (\n handler, receiver, value, promise\n) {\n var bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n promise._pushContext();\n var x;\n if (receiver === APPLY) {\n if (!value || typeof value.length !== \"number\") {\n x = errorObj;\n x.e = new TypeError(\"cannot .spread() a non-array: \" +\n util.classString(value));\n } else {\n x = tryCatch(handler).apply(this._boundValue(), value);\n }\n } else {\n x = tryCatch(handler).call(receiver, value);\n }\n var promiseCreated = promise._popContext();\n bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n\n if (x === NEXT_FILTER) {\n promise._reject(value);\n } else if (x === errorObj) {\n promise._rejectCallback(x.e, false);\n } else {\n debug.checkForgottenReturns(x, promiseCreated, \"\", promise, this);\n promise._resolveCallback(x);\n }\n};\n\nPromise.prototype._target = function() {\n var ret = this;\n while (ret._isFollowing()) ret = ret._followee();\n return ret;\n};\n\nPromise.prototype._followee = function() {\n return this._rejectionHandler0;\n};\n\nPromise.prototype._setFollowee = function(promise) {\n this._rejectionHandler0 = promise;\n};\n\nPromise.prototype._settlePromise = function(promise, handler, receiver, value) {\n var isPromise = promise instanceof Promise;\n var bitField = this._bitField;\n var asyncGuaranteed = ((bitField & 134217728) !== 0);\n if (((bitField & 65536) !== 0)) {\n if (isPromise) promise._invokeInternalOnCancel();\n\n if (receiver instanceof PassThroughHandlerContext &&\n receiver.isFinallyHandler()) {\n receiver.cancelPromise = promise;\n if (tryCatch(handler).call(receiver, value) === errorObj) {\n promise._reject(errorObj.e);\n }\n } else if (handler === reflectHandler) {\n promise._fulfill(reflectHandler.call(receiver));\n } else if (receiver instanceof Proxyable) {\n receiver._promiseCancelled(promise);\n } else if (isPromise || promise instanceof PromiseArray) {\n promise._cancel();\n } else {\n receiver.cancel();\n }\n } else if (typeof handler === \"function\") {\n if (!isPromise) {\n handler.call(receiver, value, promise);\n } else {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (receiver instanceof Proxyable) {\n if (!receiver._isResolved()) {\n if (((bitField & 33554432) !== 0)) {\n receiver._promiseFulfilled(value, promise);\n } else {\n receiver._promiseRejected(value, promise);\n }\n }\n } else if (isPromise) {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n if (((bitField & 33554432) !== 0)) {\n promise._fulfill(value);\n } else {\n promise._reject(value);\n }\n }\n};\n\nPromise.prototype._settlePromiseLateCancellationObserver = function(ctx) {\n var handler = ctx.handler;\n var promise = ctx.promise;\n var receiver = ctx.receiver;\n var value = ctx.value;\n if (typeof handler === \"function\") {\n if (!(promise instanceof Promise)) {\n handler.call(receiver, value, promise);\n } else {\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (promise instanceof Promise) {\n promise._reject(value);\n }\n};\n\nPromise.prototype._settlePromiseCtx = function(ctx) {\n this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n};\n\nPromise.prototype._settlePromise0 = function(handler, value, bitField) {\n var promise = this._promise0;\n var receiver = this._receiverAt(0);\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._settlePromise(promise, handler, receiver, value);\n};\n\nPromise.prototype._clearCallbackDataAtIndex = function(index) {\n var base = index * 4 - 4;\n this[base + 2] =\n this[base + 3] =\n this[base + 0] =\n this[base + 1] = undefined;\n};\n\nPromise.prototype._fulfill = function (value) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n if (value === this) {\n var err = makeSelfResolutionError();\n this._attachExtraTrace(err);\n return this._reject(err);\n }\n this._setFulfilled();\n this._rejectionHandler0 = value;\n\n if ((bitField & 65535) > 0) {\n if (((bitField & 134217728) !== 0)) {\n this._settlePromises();\n } else {\n async.settlePromises(this);\n }\n this._dereferenceTrace();\n }\n};\n\nPromise.prototype._reject = function (reason) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n this._setRejected();\n this._fulfillmentHandler0 = reason;\n\n if (this._isFinal()) {\n return async.fatalError(reason, util.isNode);\n }\n\n if ((bitField & 65535) > 0) {\n async.settlePromises(this);\n } else {\n this._ensurePossibleRejectionHandled();\n }\n};\n\nPromise.prototype._fulfillPromises = function (len, value) {\n for (var i = 1; i < len; i++) {\n var handler = this._fulfillmentHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, value);\n }\n};\n\nPromise.prototype._rejectPromises = function (len, reason) {\n for (var i = 1; i < len; i++) {\n var handler = this._rejectionHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, reason);\n }\n};\n\nPromise.prototype._settlePromises = function () {\n var bitField = this._bitField;\n var len = (bitField & 65535);\n\n if (len > 0) {\n if (((bitField & 16842752) !== 0)) {\n var reason = this._fulfillmentHandler0;\n this._settlePromise0(this._rejectionHandler0, reason, bitField);\n this._rejectPromises(len, reason);\n } else {\n var value = this._rejectionHandler0;\n this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n this._fulfillPromises(len, value);\n }\n this._setLength(0);\n }\n this._clearCancellationData();\n};\n\nPromise.prototype._settledValue = function() {\n var bitField = this._bitField;\n if (((bitField & 33554432) !== 0)) {\n return this._rejectionHandler0;\n } else if (((bitField & 16777216) !== 0)) {\n return this._fulfillmentHandler0;\n }\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n es5.defineProperty(Promise.prototype, Symbol.toStringTag, {\n get: function () {\n return \"Object\";\n }\n });\n}\n\nfunction deferResolve(v) {this.promise._resolveCallback(v);}\nfunction deferReject(v) {this.promise._rejectCallback(v, false);}\n\nPromise.defer = Promise.pending = function() {\n debug.deprecated(\"Promise.defer\", \"new Promise\");\n var promise = new Promise(INTERNAL);\n return {\n promise: promise,\n resolve: deferResolve,\n reject: deferReject\n };\n};\n\nutil.notEnumerableProp(Promise,\n \"_makeSelfResolutionError\",\n makeSelfResolutionError);\n\n_dereq_(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection,\n debug);\n_dereq_(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\n_dereq_(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\n_dereq_(\"./direct_resolve\")(Promise);\n_dereq_(\"./synchronous_inspection\")(Promise);\n_dereq_(\"./join\")(\n Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);\nPromise.Promise = Promise;\nPromise.version = \"3.5.5\";\n_dereq_('./call_get.js')(Promise);\n_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);\n_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\n_dereq_('./nodeify.js')(Promise);\n_dereq_('./promisify.js')(Promise, INTERNAL);\n_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);\n_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);\n_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\n_dereq_('./settle.js')(Promise, PromiseArray, debug);\n_dereq_('./some.js')(Promise, PromiseArray, apiRejection);\n_dereq_('./timers.js')(Promise, INTERNAL, debug);\n_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);\n_dereq_('./any.js')(Promise);\n_dereq_('./each.js')(Promise, INTERNAL);\n_dereq_('./filter.js')(Promise, INTERNAL);\n \n util.toFastProperties(Promise); \n util.toFastProperties(Promise.prototype); \n function fillTypes(value) { \n var p = new Promise(INTERNAL); \n p._fulfillmentHandler0 = value; \n p._rejectionHandler0 = value; \n p._promise0 = value; \n p._receiver0 = value; \n } \n // Complete slack tracking, opt out of field-type tracking and \n // stabilize map \n fillTypes({a: 1}); \n fillTypes({b: 2}); \n fillTypes({c: 3}); \n fillTypes(1); \n fillTypes(function(){}); \n fillTypes(undefined); \n fillTypes(false); \n fillTypes(new Promise(INTERNAL)); \n debug.setBounds(Async.firstLineError, util.lastLineError); \n return Promise; \n\n};\n\n},{\"./any.js\":1,\"./async\":2,\"./bind\":3,\"./call_get.js\":5,\"./cancel\":6,\"./catch_filter\":7,\"./context\":8,\"./debuggability\":9,\"./direct_resolve\":10,\"./each.js\":11,\"./errors\":12,\"./es5\":13,\"./filter.js\":14,\"./finally\":15,\"./generators.js\":16,\"./join\":17,\"./map.js\":18,\"./method\":19,\"./nodeback\":20,\"./nodeify.js\":21,\"./promise_array\":23,\"./promisify.js\":24,\"./props.js\":25,\"./race.js\":27,\"./reduce.js\":28,\"./settle.js\":30,\"./some.js\":31,\"./synchronous_inspection\":32,\"./thenables\":33,\"./timers.js\":34,\"./using.js\":35,\"./util\":36}],23:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise,\n apiRejection, Proxyable) {\nvar util = _dereq_(\"./util\");\nvar isArray = util.isArray;\n\nfunction toResolutionValue(val) {\n switch(val) {\n case -2: return [];\n case -3: return {};\n case -6: return new Map();\n }\n}\n\nfunction PromiseArray(values) {\n var promise = this._promise = new Promise(INTERNAL);\n if (values instanceof Promise) {\n promise._propagateFrom(values, 3);\n }\n promise._setOnCancel(this);\n this._values = values;\n this._length = 0;\n this._totalResolved = 0;\n this._init(undefined, -2);\n}\nutil.inherits(PromiseArray, Proxyable);\n\nPromiseArray.prototype.length = function () {\n return this._length;\n};\n\nPromiseArray.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n var values = tryConvertToPromise(this._values, this._promise);\n if (values instanceof Promise) {\n values = values._target();\n var bitField = values._bitField;\n ;\n this._values = values;\n\n if (((bitField & 50397184) === 0)) {\n this._promise._setAsyncGuaranteed();\n return values._then(\n init,\n this._reject,\n undefined,\n this,\n resolveValueIfEmpty\n );\n } else if (((bitField & 33554432) !== 0)) {\n values = values._value();\n } else if (((bitField & 16777216) !== 0)) {\n return this._reject(values._reason());\n } else {\n return this._cancel();\n }\n }\n values = util.asArray(values);\n if (values === null) {\n var err = apiRejection(\n \"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n this._promise._rejectCallback(err, false);\n return;\n }\n\n if (values.length === 0) {\n if (resolveValueIfEmpty === -5) {\n this._resolveEmptyArray();\n }\n else {\n this._resolve(toResolutionValue(resolveValueIfEmpty));\n }\n return;\n }\n this._iterate(values);\n};\n\nPromiseArray.prototype._iterate = function(values) {\n var len = this.getActualLength(values.length);\n this._length = len;\n this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n var result = this._promise;\n var isResolved = false;\n var bitField = null;\n for (var i = 0; i < len; ++i) {\n var maybePromise = tryConvertToPromise(values[i], result);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n bitField = maybePromise._bitField;\n } else {\n bitField = null;\n }\n\n if (isResolved) {\n if (bitField !== null) {\n maybePromise.suppressUnhandledRejections();\n }\n } else if (bitField !== null) {\n if (((bitField & 50397184) === 0)) {\n maybePromise._proxy(this, i);\n this._values[i] = maybePromise;\n } else if (((bitField & 33554432) !== 0)) {\n isResolved = this._promiseFulfilled(maybePromise._value(), i);\n } else if (((bitField & 16777216) !== 0)) {\n isResolved = this._promiseRejected(maybePromise._reason(), i);\n } else {\n isResolved = this._promiseCancelled(i);\n }\n } else {\n isResolved = this._promiseFulfilled(maybePromise, i);\n }\n }\n if (!isResolved) result._setAsyncGuaranteed();\n};\n\nPromiseArray.prototype._isResolved = function () {\n return this._values === null;\n};\n\nPromiseArray.prototype._resolve = function (value) {\n this._values = null;\n this._promise._fulfill(value);\n};\n\nPromiseArray.prototype._cancel = function() {\n if (this._isResolved() || !this._promise._isCancellable()) return;\n this._values = null;\n this._promise._cancel();\n};\n\nPromiseArray.prototype._reject = function (reason) {\n this._values = null;\n this._promise._rejectCallback(reason, false);\n};\n\nPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nPromiseArray.prototype._promiseCancelled = function() {\n this._cancel();\n return true;\n};\n\nPromiseArray.prototype._promiseRejected = function (reason) {\n this._totalResolved++;\n this._reject(reason);\n return true;\n};\n\nPromiseArray.prototype._resultCancelled = function() {\n if (this._isResolved()) return;\n var values = this._values;\n this._cancel();\n if (values instanceof Promise) {\n values.cancel();\n } else {\n for (var i = 0; i < values.length; ++i) {\n if (values[i] instanceof Promise) {\n values[i].cancel();\n }\n }\n }\n};\n\nPromiseArray.prototype.shouldCopyValues = function () {\n return true;\n};\n\nPromiseArray.prototype.getActualLength = function (len) {\n return len;\n};\n\nreturn PromiseArray;\n};\n\n},{\"./util\":36}],24:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar THIS = {};\nvar util = _dereq_(\"./util\");\nvar nodebackForPromise = _dereq_(\"./nodeback\");\nvar withAppended = util.withAppended;\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar canEvaluate = util.canEvaluate;\nvar TypeError = _dereq_(\"./errors\").TypeError;\nvar defaultSuffix = \"Async\";\nvar defaultPromisified = {__isPromisified__: true};\nvar noCopyProps = [\n \"arity\", \"length\",\n \"name\",\n \"arguments\",\n \"caller\",\n \"callee\",\n \"prototype\",\n \"__isPromisified__\"\n];\nvar noCopyPropsPattern = new RegExp(\"^(?:\" + noCopyProps.join(\"|\") + \")$\");\n\nvar defaultFilter = function(name) {\n return util.isIdentifier(name) &&\n name.charAt(0) !== \"_\" &&\n name !== \"constructor\";\n};\n\nfunction propsFilter(key) {\n return !noCopyPropsPattern.test(key);\n}\n\nfunction isPromisified(fn) {\n try {\n return fn.__isPromisified__ === true;\n }\n catch (e) {\n return false;\n }\n}\n\nfunction hasPromisified(obj, key, suffix) {\n var val = util.getDataPropertyOrDefault(obj, key + suffix,\n defaultPromisified);\n return val ? isPromisified(val) : false;\n}\nfunction checkValid(ret, suffix, suffixRegexp) {\n for (var i = 0; i < ret.length; i += 2) {\n var key = ret[i];\n if (suffixRegexp.test(key)) {\n var keyWithoutAsyncSuffix = key.replace(suffixRegexp, \"\");\n for (var j = 0; j < ret.length; j += 2) {\n if (ret[j] === keyWithoutAsyncSuffix) {\n throw new TypeError(\"Cannot promisify an API that has normal methods with '%s'-suffix\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\"\n .replace(\"%s\", suffix));\n }\n }\n }\n }\n}\n\nfunction promisifiableMethods(obj, suffix, suffixRegexp, filter) {\n var keys = util.inheritedDataKeys(obj);\n var ret = [];\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = obj[key];\n var passesDefaultFilter = filter === defaultFilter\n ? true : defaultFilter(key, value, obj);\n if (typeof value === \"function\" &&\n !isPromisified(value) &&\n !hasPromisified(obj, key, suffix) &&\n filter(key, value, obj, passesDefaultFilter)) {\n ret.push(key, value);\n }\n }\n checkValid(ret, suffix, suffixRegexp);\n return ret;\n}\n\nvar escapeIdentRegex = function(str) {\n return str.replace(/([$])/, \"\\\\$\");\n};\n\nvar makeNodePromisifiedEval;\nif (!true) {\nvar switchCaseArgumentOrder = function(likelyArgumentCount) {\n var ret = [likelyArgumentCount];\n var min = Math.max(0, likelyArgumentCount - 1 - 3);\n for(var i = likelyArgumentCount - 1; i >= min; --i) {\n ret.push(i);\n }\n for(var i = likelyArgumentCount + 1; i <= 3; ++i) {\n ret.push(i);\n }\n return ret;\n};\n\nvar argumentSequence = function(argumentCount) {\n return util.filledRange(argumentCount, \"_arg\", \"\");\n};\n\nvar parameterDeclaration = function(parameterCount) {\n return util.filledRange(\n Math.max(parameterCount, 3), \"_arg\", \"\");\n};\n\nvar parameterCount = function(fn) {\n if (typeof fn.length === \"number\") {\n return Math.max(Math.min(fn.length, 1023 + 1), 0);\n }\n return 0;\n};\n\nmakeNodePromisifiedEval =\nfunction(callback, receiver, originalName, fn, _, multiArgs) {\n var newParameterCount = Math.max(0, parameterCount(fn) - 1);\n var argumentOrder = switchCaseArgumentOrder(newParameterCount);\n var shouldProxyThis = typeof callback === \"string\" || receiver === THIS;\n\n function generateCallForArgumentCount(count) {\n var args = argumentSequence(count).join(\", \");\n var comma = count > 0 ? \", \" : \"\";\n var ret;\n if (shouldProxyThis) {\n ret = \"ret = callback.call(this, {{args}}, nodeback); break;\\n\";\n } else {\n ret = receiver === undefined\n ? \"ret = callback({{args}}, nodeback); break;\\n\"\n : \"ret = callback.call(receiver, {{args}}, nodeback); break;\\n\";\n }\n return ret.replace(\"{{args}}\", args).replace(\", \", comma);\n }\n\n function generateArgumentSwitchCase() {\n var ret = \"\";\n for (var i = 0; i < argumentOrder.length; ++i) {\n ret += \"case \" + argumentOrder[i] +\":\" +\n generateCallForArgumentCount(argumentOrder[i]);\n }\n\n ret += \" \\n\\\n default: \\n\\\n var args = new Array(len + 1); \\n\\\n var i = 0; \\n\\\n for (var i = 0; i < len; ++i) { \\n\\\n args[i] = arguments[i]; \\n\\\n } \\n\\\n args[i] = nodeback; \\n\\\n [CodeForCall] \\n\\\n break; \\n\\\n \".replace(\"[CodeForCall]\", (shouldProxyThis\n ? \"ret = callback.apply(this, args);\\n\"\n : \"ret = callback.apply(receiver, args);\\n\"));\n return ret;\n }\n\n var getFunctionCode = typeof callback === \"string\"\n ? (\"this != null ? this['\"+callback+\"'] : fn\")\n : \"fn\";\n var body = \"'use strict'; \\n\\\n var ret = function (Parameters) { \\n\\\n 'use strict'; \\n\\\n var len = arguments.length; \\n\\\n var promise = new Promise(INTERNAL); \\n\\\n promise._captureStackTrace(); \\n\\\n var nodeback = nodebackForPromise(promise, \" + multiArgs + \"); \\n\\\n var ret; \\n\\\n var callback = tryCatch([GetFunctionCode]); \\n\\\n switch(len) { \\n\\\n [CodeForSwitchCase] \\n\\\n } \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\\n\\\n } \\n\\\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \\n\\\n return promise; \\n\\\n }; \\n\\\n notEnumerableProp(ret, '__isPromisified__', true); \\n\\\n return ret; \\n\\\n \".replace(\"[CodeForSwitchCase]\", generateArgumentSwitchCase())\n .replace(\"[GetFunctionCode]\", getFunctionCode);\n body = body.replace(\"Parameters\", parameterDeclaration(newParameterCount));\n return new Function(\"Promise\",\n \"fn\",\n \"receiver\",\n \"withAppended\",\n \"maybeWrapAsError\",\n \"nodebackForPromise\",\n \"tryCatch\",\n \"errorObj\",\n \"notEnumerableProp\",\n \"INTERNAL\",\n body)(\n Promise,\n fn,\n receiver,\n withAppended,\n maybeWrapAsError,\n nodebackForPromise,\n util.tryCatch,\n util.errorObj,\n util.notEnumerableProp,\n INTERNAL);\n};\n}\n\nfunction makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {\n var defaultThis = (function() {return this;})();\n var method = callback;\n if (typeof method === \"string\") {\n callback = fn;\n }\n function promisified() {\n var _receiver = receiver;\n if (receiver === THIS) _receiver = this;\n var promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n var cb = typeof method === \"string\" && this !== defaultThis\n ? this[method] : callback;\n var fn = nodebackForPromise(promise, multiArgs);\n try {\n cb.apply(_receiver, withAppended(arguments, fn));\n } catch(e) {\n promise._rejectCallback(maybeWrapAsError(e), true, true);\n }\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed();\n return promise;\n }\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n return promisified;\n}\n\nvar makeNodePromisified = canEvaluate\n ? makeNodePromisifiedEval\n : makeNodePromisifiedClosure;\n\nfunction promisifyAll(obj, suffix, filter, promisifier, multiArgs) {\n var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + \"$\");\n var methods =\n promisifiableMethods(obj, suffix, suffixRegexp, filter);\n\n for (var i = 0, len = methods.length; i < len; i+= 2) {\n var key = methods[i];\n var fn = methods[i+1];\n var promisifiedKey = key + suffix;\n if (promisifier === makeNodePromisified) {\n obj[promisifiedKey] =\n makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);\n } else {\n var promisified = promisifier(fn, function() {\n return makeNodePromisified(key, THIS, key,\n fn, suffix, multiArgs);\n });\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n obj[promisifiedKey] = promisified;\n }\n }\n util.toFastProperties(obj);\n return obj;\n}\n\nfunction promisify(callback, receiver, multiArgs) {\n return makeNodePromisified(callback, receiver, undefined,\n callback, null, multiArgs);\n}\n\nPromise.promisify = function (fn, options) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n if (isPromisified(fn)) {\n return fn;\n }\n options = Object(options);\n var receiver = options.context === undefined ? THIS : options.context;\n var multiArgs = !!options.multiArgs;\n var ret = promisify(fn, receiver, multiArgs);\n util.copyDescriptors(fn, ret, propsFilter);\n return ret;\n};\n\nPromise.promisifyAll = function (target, options) {\n if (typeof target !== \"function\" && typeof target !== \"object\") {\n throw new TypeError(\"the target of promisifyAll must be an object or a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n options = Object(options);\n var multiArgs = !!options.multiArgs;\n var suffix = options.suffix;\n if (typeof suffix !== \"string\") suffix = defaultSuffix;\n var filter = options.filter;\n if (typeof filter !== \"function\") filter = defaultFilter;\n var promisifier = options.promisifier;\n if (typeof promisifier !== \"function\") promisifier = makeNodePromisified;\n\n if (!util.isIdentifier(suffix)) {\n throw new RangeError(\"suffix must be a valid identifier\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n\n var keys = util.inheritedDataKeys(target);\n for (var i = 0; i < keys.length; ++i) {\n var value = target[keys[i]];\n if (keys[i] !== \"constructor\" &&\n util.isClass(value)) {\n promisifyAll(value.prototype, suffix, filter, promisifier,\n multiArgs);\n promisifyAll(value, suffix, filter, promisifier, multiArgs);\n }\n }\n\n return promisifyAll(target, suffix, filter, promisifier, multiArgs);\n};\n};\n\n\n},{\"./errors\":12,\"./nodeback\":20,\"./util\":36}],25:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(\n Promise, PromiseArray, tryConvertToPromise, apiRejection) {\nvar util = _dereq_(\"./util\");\nvar isObject = util.isObject;\nvar es5 = _dereq_(\"./es5\");\nvar Es6Map;\nif (typeof Map === \"function\") Es6Map = Map;\n\nvar mapToEntries = (function() {\n var index = 0;\n var size = 0;\n\n function extractEntry(value, key) {\n this[index] = value;\n this[index + size] = key;\n index++;\n }\n\n return function mapToEntries(map) {\n size = map.size;\n index = 0;\n var ret = new Array(map.size * 2);\n map.forEach(extractEntry, ret);\n return ret;\n };\n})();\n\nvar entriesToMap = function(entries) {\n var ret = new Es6Map();\n var length = entries.length / 2 | 0;\n for (var i = 0; i < length; ++i) {\n var key = entries[length + i];\n var value = entries[i];\n ret.set(key, value);\n }\n return ret;\n};\n\nfunction PropertiesPromiseArray(obj) {\n var isMap = false;\n var entries;\n if (Es6Map !== undefined && obj instanceof Es6Map) {\n entries = mapToEntries(obj);\n isMap = true;\n } else {\n var keys = es5.keys(obj);\n var len = keys.length;\n entries = new Array(len * 2);\n for (var i = 0; i < len; ++i) {\n var key = keys[i];\n entries[i] = obj[key];\n entries[i + len] = key;\n }\n }\n this.constructor$(entries);\n this._isMap = isMap;\n this._init$(undefined, isMap ? -6 : -3);\n}\nutil.inherits(PropertiesPromiseArray, PromiseArray);\n\nPropertiesPromiseArray.prototype._init = function () {};\n\nPropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n var val;\n if (this._isMap) {\n val = entriesToMap(this._values);\n } else {\n val = {};\n var keyOffset = this.length();\n for (var i = 0, len = this.length(); i < len; ++i) {\n val[this._values[i + keyOffset]] = this._values[i];\n }\n }\n this._resolve(val);\n return true;\n }\n return false;\n};\n\nPropertiesPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nPropertiesPromiseArray.prototype.getActualLength = function (len) {\n return len >> 1;\n};\n\nfunction props(promises) {\n var ret;\n var castValue = tryConvertToPromise(promises);\n\n if (!isObject(castValue)) {\n return apiRejection(\"cannot await properties of a non-object\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n } else if (castValue instanceof Promise) {\n ret = castValue._then(\n Promise.props, undefined, undefined, undefined, undefined);\n } else {\n ret = new PropertiesPromiseArray(castValue).promise();\n }\n\n if (castValue instanceof Promise) {\n ret._propagateFrom(castValue, 2);\n }\n return ret;\n}\n\nPromise.prototype.props = function () {\n return props(this);\n};\n\nPromise.props = function (promises) {\n return props(promises);\n};\n};\n\n},{\"./es5\":13,\"./util\":36}],26:[function(_dereq_,module,exports){\n\"use strict\";\nfunction arrayMove(src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex];\n src[j + srcIndex] = void 0;\n }\n}\n\nfunction Queue(capacity) {\n this._capacity = capacity;\n this._length = 0;\n this._front = 0;\n}\n\nQueue.prototype._willBeOverCapacity = function (size) {\n return this._capacity < size;\n};\n\nQueue.prototype._pushOne = function (arg) {\n var length = this.length();\n this._checkCapacity(length + 1);\n var i = (this._front + length) & (this._capacity - 1);\n this[i] = arg;\n this._length = length + 1;\n};\n\nQueue.prototype.push = function (fn, receiver, arg) {\n var length = this.length() + 3;\n if (this._willBeOverCapacity(length)) {\n this._pushOne(fn);\n this._pushOne(receiver);\n this._pushOne(arg);\n return;\n }\n var j = this._front + length - 3;\n this._checkCapacity(length);\n var wrapMask = this._capacity - 1;\n this[(j + 0) & wrapMask] = fn;\n this[(j + 1) & wrapMask] = receiver;\n this[(j + 2) & wrapMask] = arg;\n this._length = length;\n};\n\nQueue.prototype.shift = function () {\n var front = this._front,\n ret = this[front];\n\n this[front] = undefined;\n this._front = (front + 1) & (this._capacity - 1);\n this._length--;\n return ret;\n};\n\nQueue.prototype.length = function () {\n return this._length;\n};\n\nQueue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._resizeTo(this._capacity << 1);\n }\n};\n\nQueue.prototype._resizeTo = function (capacity) {\n var oldCapacity = this._capacity;\n this._capacity = capacity;\n var front = this._front;\n var length = this._length;\n var moveItemsCount = (front + length) & (oldCapacity - 1);\n arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n};\n\nmodule.exports = Queue;\n\n},{}],27:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(\n Promise, INTERNAL, tryConvertToPromise, apiRejection) {\nvar util = _dereq_(\"./util\");\n\nvar raceLater = function (promise) {\n return promise.then(function(array) {\n return race(array, promise);\n });\n};\n\nfunction race(promises, parent) {\n var maybePromise = tryConvertToPromise(promises);\n\n if (maybePromise instanceof Promise) {\n return raceLater(maybePromise);\n } else {\n promises = util.asArray(promises);\n if (promises === null)\n return apiRejection(\"expecting an array or an iterable object but got \" + util.classString(promises));\n }\n\n var ret = new Promise(INTERNAL);\n if (parent !== undefined) {\n ret._propagateFrom(parent, 3);\n }\n var fulfill = ret._fulfill;\n var reject = ret._reject;\n for (var i = 0, len = promises.length; i < len; ++i) {\n var val = promises[i];\n\n if (val === undefined && !(i in promises)) {\n continue;\n }\n\n Promise.cast(val)._then(fulfill, reject, undefined, ret, null);\n }\n return ret;\n}\n\nPromise.race = function (promises) {\n return race(promises, undefined);\n};\n\nPromise.prototype.race = function () {\n return race(this, undefined);\n};\n\n};\n\n},{\"./util\":36}],28:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar getDomain = Promise._getDomain;\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\n\nfunction ReductionPromiseArray(promises, fn, initialValue, _each) {\n this.constructor$(promises);\n var domain = getDomain();\n this._fn = domain === null ? fn : util.domainBind(domain, fn);\n if (initialValue !== undefined) {\n initialValue = Promise.resolve(initialValue);\n initialValue._attachCancellationCallback(this);\n }\n this._initialValue = initialValue;\n this._currentCancellable = null;\n if(_each === INTERNAL) {\n this._eachValues = Array(this._length);\n } else if (_each === 0) {\n this._eachValues = null;\n } else {\n this._eachValues = undefined;\n }\n this._promise._captureStackTrace();\n this._init$(undefined, -5);\n}\nutil.inherits(ReductionPromiseArray, PromiseArray);\n\nReductionPromiseArray.prototype._gotAccum = function(accum) {\n if (this._eachValues !== undefined && \n this._eachValues !== null && \n accum !== INTERNAL) {\n this._eachValues.push(accum);\n }\n};\n\nReductionPromiseArray.prototype._eachComplete = function(value) {\n if (this._eachValues !== null) {\n this._eachValues.push(value);\n }\n return this._eachValues;\n};\n\nReductionPromiseArray.prototype._init = function() {};\n\nReductionPromiseArray.prototype._resolveEmptyArray = function() {\n this._resolve(this._eachValues !== undefined ? this._eachValues\n : this._initialValue);\n};\n\nReductionPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nReductionPromiseArray.prototype._resolve = function(value) {\n this._promise._resolveCallback(value);\n this._values = null;\n};\n\nReductionPromiseArray.prototype._resultCancelled = function(sender) {\n if (sender === this._initialValue) return this._cancel();\n if (this._isResolved()) return;\n this._resultCancelled$();\n if (this._currentCancellable instanceof Promise) {\n this._currentCancellable.cancel();\n }\n if (this._initialValue instanceof Promise) {\n this._initialValue.cancel();\n }\n};\n\nReductionPromiseArray.prototype._iterate = function (values) {\n this._values = values;\n var value;\n var i;\n var length = values.length;\n if (this._initialValue !== undefined) {\n value = this._initialValue;\n i = 0;\n } else {\n value = Promise.resolve(values[0]);\n i = 1;\n }\n\n this._currentCancellable = value;\n\n if (!value.isRejected()) {\n for (; i < length; ++i) {\n var ctx = {\n accum: null,\n value: values[i],\n index: i,\n length: length,\n array: this\n };\n value = value._then(gotAccum, undefined, undefined, ctx, undefined);\n }\n }\n\n if (this._eachValues !== undefined) {\n value = value\n ._then(this._eachComplete, undefined, undefined, this, undefined);\n }\n value._then(completed, completed, undefined, value, this);\n};\n\nPromise.prototype.reduce = function (fn, initialValue) {\n return reduce(this, fn, initialValue, null);\n};\n\nPromise.reduce = function (promises, fn, initialValue, _each) {\n return reduce(promises, fn, initialValue, _each);\n};\n\nfunction completed(valueOrReason, array) {\n if (this.isFulfilled()) {\n array._resolve(valueOrReason);\n } else {\n array._reject(valueOrReason);\n }\n}\n\nfunction reduce(promises, fn, initialValue, _each) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var array = new ReductionPromiseArray(promises, fn, initialValue, _each);\n return array.promise();\n}\n\nfunction gotAccum(accum) {\n this.accum = accum;\n this.array._gotAccum(accum);\n var value = tryConvertToPromise(this.value, this.array._promise);\n if (value instanceof Promise) {\n this.array._currentCancellable = value;\n return value._then(gotValue, undefined, undefined, this, undefined);\n } else {\n return gotValue.call(this, value);\n }\n}\n\nfunction gotValue(value) {\n var array = this.array;\n var promise = array._promise;\n var fn = tryCatch(array._fn);\n promise._pushContext();\n var ret;\n if (array._eachValues !== undefined) {\n ret = fn.call(promise._boundValue(), value, this.index, this.length);\n } else {\n ret = fn.call(promise._boundValue(),\n this.accum, value, this.index, this.length);\n }\n if (ret instanceof Promise) {\n array._currentCancellable = ret;\n }\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n array._eachValues !== undefined ? \"Promise.each\" : \"Promise.reduce\",\n promise\n );\n return ret;\n}\n};\n\n},{\"./util\":36}],29:[function(_dereq_,module,exports){\n\"use strict\";\nvar util = _dereq_(\"./util\");\nvar schedule;\nvar noAsyncScheduler = function() {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar NativePromise = util.getNativePromise();\nif (util.isNode && typeof MutationObserver === \"undefined\") {\n var GlobalSetImmediate = global.setImmediate;\n var ProcessNextTick = process.nextTick;\n schedule = util.isRecentNode\n ? function(fn) { GlobalSetImmediate.call(global, fn); }\n : function(fn) { ProcessNextTick.call(process, fn); };\n} else if (typeof NativePromise === \"function\" &&\n typeof NativePromise.resolve === \"function\") {\n var nativePromise = NativePromise.resolve();\n schedule = function(fn) {\n nativePromise.then(fn);\n };\n} else if ((typeof MutationObserver !== \"undefined\") &&\n !(typeof window !== \"undefined\" &&\n window.navigator &&\n (window.navigator.standalone || window.cordova)) &&\n (\"classList\" in document.documentElement)) {\n schedule = (function() {\n var div = document.createElement(\"div\");\n var opts = {attributes: true};\n var toggleScheduled = false;\n var div2 = document.createElement(\"div\");\n var o2 = new MutationObserver(function() {\n div.classList.toggle(\"foo\");\n toggleScheduled = false;\n });\n o2.observe(div2, opts);\n\n var scheduleToggle = function() {\n if (toggleScheduled) return;\n toggleScheduled = true;\n div2.classList.toggle(\"foo\");\n };\n\n return function schedule(fn) {\n var o = new MutationObserver(function() {\n o.disconnect();\n fn();\n });\n o.observe(div, opts);\n scheduleToggle();\n };\n })();\n} else if (typeof setImmediate !== \"undefined\") {\n schedule = function (fn) {\n setImmediate(fn);\n };\n} else if (typeof setTimeout !== \"undefined\") {\n schedule = function (fn) {\n setTimeout(fn, 0);\n };\n} else {\n schedule = noAsyncScheduler;\n}\nmodule.exports = schedule;\n\n},{\"./util\":36}],30:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\n function(Promise, PromiseArray, debug) {\nvar PromiseInspection = Promise.PromiseInspection;\nvar util = _dereq_(\"./util\");\n\nfunction SettledPromiseArray(values) {\n this.constructor$(values);\n}\nutil.inherits(SettledPromiseArray, PromiseArray);\n\nSettledPromiseArray.prototype._promiseResolved = function (index, inspection) {\n this._values[index] = inspection;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nSettledPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var ret = new PromiseInspection();\n ret._bitField = 33554432;\n ret._settledValueField = value;\n return this._promiseResolved(index, ret);\n};\nSettledPromiseArray.prototype._promiseRejected = function (reason, index) {\n var ret = new PromiseInspection();\n ret._bitField = 16777216;\n ret._settledValueField = reason;\n return this._promiseResolved(index, ret);\n};\n\nPromise.settle = function (promises) {\n debug.deprecated(\".settle()\", \".reflect()\");\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.prototype.settle = function () {\n return Promise.settle(this);\n};\n};\n\n},{\"./util\":36}],31:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, apiRejection) {\nvar util = _dereq_(\"./util\");\nvar RangeError = _dereq_(\"./errors\").RangeError;\nvar AggregateError = _dereq_(\"./errors\").AggregateError;\nvar isArray = util.isArray;\nvar CANCELLATION = {};\n\n\nfunction SomePromiseArray(values) {\n this.constructor$(values);\n this._howMany = 0;\n this._unwrap = false;\n this._initialized = false;\n}\nutil.inherits(SomePromiseArray, PromiseArray);\n\nSomePromiseArray.prototype._init = function () {\n if (!this._initialized) {\n return;\n }\n if (this._howMany === 0) {\n this._resolve([]);\n return;\n }\n this._init$(undefined, -5);\n var isArrayResolved = isArray(this._values);\n if (!this._isResolved() &&\n isArrayResolved &&\n this._howMany > this._canPossiblyFulfill()) {\n this._reject(this._getRangeError(this.length()));\n }\n};\n\nSomePromiseArray.prototype.init = function () {\n this._initialized = true;\n this._init();\n};\n\nSomePromiseArray.prototype.setUnwrap = function () {\n this._unwrap = true;\n};\n\nSomePromiseArray.prototype.howMany = function () {\n return this._howMany;\n};\n\nSomePromiseArray.prototype.setHowMany = function (count) {\n this._howMany = count;\n};\n\nSomePromiseArray.prototype._promiseFulfilled = function (value) {\n this._addFulfilled(value);\n if (this._fulfilled() === this.howMany()) {\n this._values.length = this.howMany();\n if (this.howMany() === 1 && this._unwrap) {\n this._resolve(this._values[0]);\n } else {\n this._resolve(this._values);\n }\n return true;\n }\n return false;\n\n};\nSomePromiseArray.prototype._promiseRejected = function (reason) {\n this._addRejected(reason);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._promiseCancelled = function () {\n if (this._values instanceof Promise || this._values == null) {\n return this._cancel();\n }\n this._addRejected(CANCELLATION);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._checkOutcome = function() {\n if (this.howMany() > this._canPossiblyFulfill()) {\n var e = new AggregateError();\n for (var i = this.length(); i < this._values.length; ++i) {\n if (this._values[i] !== CANCELLATION) {\n e.push(this._values[i]);\n }\n }\n if (e.length > 0) {\n this._reject(e);\n } else {\n this._cancel();\n }\n return true;\n }\n return false;\n};\n\nSomePromiseArray.prototype._fulfilled = function () {\n return this._totalResolved;\n};\n\nSomePromiseArray.prototype._rejected = function () {\n return this._values.length - this.length();\n};\n\nSomePromiseArray.prototype._addRejected = function (reason) {\n this._values.push(reason);\n};\n\nSomePromiseArray.prototype._addFulfilled = function (value) {\n this._values[this._totalResolved++] = value;\n};\n\nSomePromiseArray.prototype._canPossiblyFulfill = function () {\n return this.length() - this._rejected();\n};\n\nSomePromiseArray.prototype._getRangeError = function (count) {\n var message = \"Input array must contain at least \" +\n this._howMany + \" items but contains only \" + count + \" items\";\n return new RangeError(message);\n};\n\nSomePromiseArray.prototype._resolveEmptyArray = function () {\n this._reject(this._getRangeError(0));\n};\n\nfunction some(promises, howMany) {\n if ((howMany | 0) !== howMany || howMany < 0) {\n return apiRejection(\"expecting a positive integer\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(howMany);\n ret.init();\n return promise;\n}\n\nPromise.some = function (promises, howMany) {\n return some(promises, howMany);\n};\n\nPromise.prototype.some = function (howMany) {\n return some(this, howMany);\n};\n\nPromise._SomePromiseArray = SomePromiseArray;\n};\n\n},{\"./errors\":12,\"./util\":36}],32:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nfunction PromiseInspection(promise) {\n if (promise !== undefined) {\n promise = promise._target();\n this._bitField = promise._bitField;\n this._settledValueField = promise._isFateSealed()\n ? promise._settledValue() : undefined;\n }\n else {\n this._bitField = 0;\n this._settledValueField = undefined;\n }\n}\n\nPromiseInspection.prototype._settledValue = function() {\n return this._settledValueField;\n};\n\nvar value = PromiseInspection.prototype.value = function () {\n if (!this.isFulfilled()) {\n throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar reason = PromiseInspection.prototype.error =\nPromiseInspection.prototype.reason = function () {\n if (!this.isRejected()) {\n throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar isFulfilled = PromiseInspection.prototype.isFulfilled = function() {\n return (this._bitField & 33554432) !== 0;\n};\n\nvar isRejected = PromiseInspection.prototype.isRejected = function () {\n return (this._bitField & 16777216) !== 0;\n};\n\nvar isPending = PromiseInspection.prototype.isPending = function () {\n return (this._bitField & 50397184) === 0;\n};\n\nvar isResolved = PromiseInspection.prototype.isResolved = function () {\n return (this._bitField & 50331648) !== 0;\n};\n\nPromiseInspection.prototype.isCancelled = function() {\n return (this._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.__isCancelled = function() {\n return (this._bitField & 65536) === 65536;\n};\n\nPromise.prototype._isCancelled = function() {\n return this._target().__isCancelled();\n};\n\nPromise.prototype.isCancelled = function() {\n return (this._target()._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.isPending = function() {\n return isPending.call(this._target());\n};\n\nPromise.prototype.isRejected = function() {\n return isRejected.call(this._target());\n};\n\nPromise.prototype.isFulfilled = function() {\n return isFulfilled.call(this._target());\n};\n\nPromise.prototype.isResolved = function() {\n return isResolved.call(this._target());\n};\n\nPromise.prototype.value = function() {\n return value.call(this._target());\n};\n\nPromise.prototype.reason = function() {\n var target = this._target();\n target._unsetRejectionIsUnhandled();\n return reason.call(target);\n};\n\nPromise.prototype._value = function() {\n return this._settledValue();\n};\n\nPromise.prototype._reason = function() {\n this._unsetRejectionIsUnhandled();\n return this._settledValue();\n};\n\nPromise.PromiseInspection = PromiseInspection;\n};\n\n},{}],33:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar util = _dereq_(\"./util\");\nvar errorObj = util.errorObj;\nvar isObject = util.isObject;\n\nfunction tryConvertToPromise(obj, context) {\n if (isObject(obj)) {\n if (obj instanceof Promise) return obj;\n var then = getThen(obj);\n if (then === errorObj) {\n if (context) context._pushContext();\n var ret = Promise.reject(then.e);\n if (context) context._popContext();\n return ret;\n } else if (typeof then === \"function\") {\n if (isAnyBluebirdPromise(obj)) {\n var ret = new Promise(INTERNAL);\n obj._then(\n ret._fulfill,\n ret._reject,\n undefined,\n ret,\n null\n );\n return ret;\n }\n return doThenable(obj, then, context);\n }\n }\n return obj;\n}\n\nfunction doGetThen(obj) {\n return obj.then;\n}\n\nfunction getThen(obj) {\n try {\n return doGetThen(obj);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\n\nvar hasProp = {}.hasOwnProperty;\nfunction isAnyBluebirdPromise(obj) {\n try {\n return hasProp.call(obj, \"_promise0\");\n } catch (e) {\n return false;\n }\n}\n\nfunction doThenable(x, then, context) {\n var promise = new Promise(INTERNAL);\n var ret = promise;\n if (context) context._pushContext();\n promise._captureStackTrace();\n if (context) context._popContext();\n var synchronous = true;\n var result = util.tryCatch(then).call(x, resolve, reject);\n synchronous = false;\n\n if (promise && result === errorObj) {\n promise._rejectCallback(result.e, true, true);\n promise = null;\n }\n\n function resolve(value) {\n if (!promise) return;\n promise._resolveCallback(value);\n promise = null;\n }\n\n function reject(reason) {\n if (!promise) return;\n promise._rejectCallback(reason, synchronous, true);\n promise = null;\n }\n return ret;\n}\n\nreturn tryConvertToPromise;\n};\n\n},{\"./util\":36}],34:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, debug) {\nvar util = _dereq_(\"./util\");\nvar TimeoutError = Promise.TimeoutError;\n\nfunction HandleWrapper(handle) {\n this.handle = handle;\n}\n\nHandleWrapper.prototype._resultCancelled = function() {\n clearTimeout(this.handle);\n};\n\nvar afterValue = function(value) { return delay(+this).thenReturn(value); };\nvar delay = Promise.delay = function (ms, value) {\n var ret;\n var handle;\n if (value !== undefined) {\n ret = Promise.resolve(value)\n ._then(afterValue, null, null, ms, undefined);\n if (debug.cancellation() && value instanceof Promise) {\n ret._setOnCancel(value);\n }\n } else {\n ret = new Promise(INTERNAL);\n handle = setTimeout(function() { ret._fulfill(); }, +ms);\n if (debug.cancellation()) {\n ret._setOnCancel(new HandleWrapper(handle));\n }\n ret._captureStackTrace();\n }\n ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.prototype.delay = function (ms) {\n return delay(ms, this);\n};\n\nvar afterTimeout = function (promise, message, parent) {\n var err;\n if (typeof message !== \"string\") {\n if (message instanceof Error) {\n err = message;\n } else {\n err = new TimeoutError(\"operation timed out\");\n }\n } else {\n err = new TimeoutError(message);\n }\n util.markAsOriginatingFromRejection(err);\n promise._attachExtraTrace(err);\n promise._reject(err);\n\n if (parent != null) {\n parent.cancel();\n }\n};\n\nfunction successClear(value) {\n clearTimeout(this.handle);\n return value;\n}\n\nfunction failureClear(reason) {\n clearTimeout(this.handle);\n throw reason;\n}\n\nPromise.prototype.timeout = function (ms, message) {\n ms = +ms;\n var ret, parent;\n\n var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {\n if (ret.isPending()) {\n afterTimeout(ret, message, parent);\n }\n }, ms));\n\n if (debug.cancellation()) {\n parent = this.then();\n ret = parent._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n ret._setOnCancel(handleWrapper);\n } else {\n ret = this._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n }\n\n return ret;\n};\n\n};\n\n},{\"./util\":36}],35:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function (Promise, apiRejection, tryConvertToPromise,\n createContext, INTERNAL, debug) {\n var util = _dereq_(\"./util\");\n var TypeError = _dereq_(\"./errors\").TypeError;\n var inherits = _dereq_(\"./util\").inherits;\n var errorObj = util.errorObj;\n var tryCatch = util.tryCatch;\n var NULL = {};\n\n function thrower(e) {\n setTimeout(function(){throw e;}, 0);\n }\n\n function castPreservingDisposable(thenable) {\n var maybePromise = tryConvertToPromise(thenable);\n if (maybePromise !== thenable &&\n typeof thenable._isDisposable === \"function\" &&\n typeof thenable._getDisposer === \"function\" &&\n thenable._isDisposable()) {\n maybePromise._setDisposable(thenable._getDisposer());\n }\n return maybePromise;\n }\n function dispose(resources, inspection) {\n var i = 0;\n var len = resources.length;\n var ret = new Promise(INTERNAL);\n function iterator() {\n if (i >= len) return ret._fulfill();\n var maybePromise = castPreservingDisposable(resources[i++]);\n if (maybePromise instanceof Promise &&\n maybePromise._isDisposable()) {\n try {\n maybePromise = tryConvertToPromise(\n maybePromise._getDisposer().tryDispose(inspection),\n resources.promise);\n } catch (e) {\n return thrower(e);\n }\n if (maybePromise instanceof Promise) {\n return maybePromise._then(iterator, thrower,\n null, null, null);\n }\n }\n iterator();\n }\n iterator();\n return ret;\n }\n\n function Disposer(data, promise, context) {\n this._data = data;\n this._promise = promise;\n this._context = context;\n }\n\n Disposer.prototype.data = function () {\n return this._data;\n };\n\n Disposer.prototype.promise = function () {\n return this._promise;\n };\n\n Disposer.prototype.resource = function () {\n if (this.promise().isFulfilled()) {\n return this.promise().value();\n }\n return NULL;\n };\n\n Disposer.prototype.tryDispose = function(inspection) {\n var resource = this.resource();\n var context = this._context;\n if (context !== undefined) context._pushContext();\n var ret = resource !== NULL\n ? this.doDispose(resource, inspection) : null;\n if (context !== undefined) context._popContext();\n this._promise._unsetDisposable();\n this._data = null;\n return ret;\n };\n\n Disposer.isDisposer = function (d) {\n return (d != null &&\n typeof d.resource === \"function\" &&\n typeof d.tryDispose === \"function\");\n };\n\n function FunctionDisposer(fn, promise, context) {\n this.constructor$(fn, promise, context);\n }\n inherits(FunctionDisposer, Disposer);\n\n FunctionDisposer.prototype.doDispose = function (resource, inspection) {\n var fn = this.data();\n return fn.call(resource, resource, inspection);\n };\n\n function maybeUnwrapDisposer(value) {\n if (Disposer.isDisposer(value)) {\n this.resources[this.index]._setDisposable(value);\n return value.promise();\n }\n return value;\n }\n\n function ResourceList(length) {\n this.length = length;\n this.promise = null;\n this[length-1] = null;\n }\n\n ResourceList.prototype._resultCancelled = function() {\n var len = this.length;\n for (var i = 0; i < len; ++i) {\n var item = this[i];\n if (item instanceof Promise) {\n item.cancel();\n }\n }\n };\n\n Promise.using = function () {\n var len = arguments.length;\n if (len < 2) return apiRejection(\n \"you must pass at least 2 arguments to Promise.using\");\n var fn = arguments[len - 1];\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var input;\n var spreadArgs = true;\n if (len === 2 && Array.isArray(arguments[0])) {\n input = arguments[0];\n len = input.length;\n spreadArgs = false;\n } else {\n input = arguments;\n len--;\n }\n var resources = new ResourceList(len);\n for (var i = 0; i < len; ++i) {\n var resource = input[i];\n if (Disposer.isDisposer(resource)) {\n var disposer = resource;\n resource = resource.promise();\n resource._setDisposable(disposer);\n } else {\n var maybePromise = tryConvertToPromise(resource);\n if (maybePromise instanceof Promise) {\n resource =\n maybePromise._then(maybeUnwrapDisposer, null, null, {\n resources: resources,\n index: i\n }, undefined);\n }\n }\n resources[i] = resource;\n }\n\n var reflectedResources = new Array(resources.length);\n for (var i = 0; i < reflectedResources.length; ++i) {\n reflectedResources[i] = Promise.resolve(resources[i]).reflect();\n }\n\n var resultPromise = Promise.all(reflectedResources)\n .then(function(inspections) {\n for (var i = 0; i < inspections.length; ++i) {\n var inspection = inspections[i];\n if (inspection.isRejected()) {\n errorObj.e = inspection.error();\n return errorObj;\n } else if (!inspection.isFulfilled()) {\n resultPromise.cancel();\n return;\n }\n inspections[i] = inspection.value();\n }\n promise._pushContext();\n\n fn = tryCatch(fn);\n var ret = spreadArgs\n ? fn.apply(undefined, inspections) : fn(inspections);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret, promiseCreated, \"Promise.using\", promise);\n return ret;\n });\n\n var promise = resultPromise.lastly(function() {\n var inspection = new Promise.PromiseInspection(resultPromise);\n return dispose(resources, inspection);\n });\n resources.promise = promise;\n promise._setOnCancel(resources);\n return promise;\n };\n\n Promise.prototype._setDisposable = function (disposer) {\n this._bitField = this._bitField | 131072;\n this._disposer = disposer;\n };\n\n Promise.prototype._isDisposable = function () {\n return (this._bitField & 131072) > 0;\n };\n\n Promise.prototype._getDisposer = function () {\n return this._disposer;\n };\n\n Promise.prototype._unsetDisposable = function () {\n this._bitField = this._bitField & (~131072);\n this._disposer = undefined;\n };\n\n Promise.prototype.disposer = function (fn) {\n if (typeof fn === \"function\") {\n return new FunctionDisposer(fn, this, createContext());\n }\n throw new TypeError();\n };\n\n};\n\n},{\"./errors\":12,\"./util\":36}],36:[function(_dereq_,module,exports){\n\"use strict\";\nvar es5 = _dereq_(\"./es5\");\nvar canEvaluate = typeof navigator == \"undefined\";\n\nvar errorObj = {e: {}};\nvar tryCatchTarget;\nvar globalObject = typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n this !== undefined ? this : null;\n\nfunction tryCatcher() {\n try {\n var target = tryCatchTarget;\n tryCatchTarget = null;\n return target.apply(this, arguments);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n\nvar inherits = function(Child, Parent) {\n var hasProp = {}.hasOwnProperty;\n\n function T() {\n this.constructor = Child;\n this.constructor$ = Parent;\n for (var propertyName in Parent.prototype) {\n if (hasProp.call(Parent.prototype, propertyName) &&\n propertyName.charAt(propertyName.length-1) !== \"$\"\n ) {\n this[propertyName + \"$\"] = Parent.prototype[propertyName];\n }\n }\n }\n T.prototype = Parent.prototype;\n Child.prototype = new T();\n return Child.prototype;\n};\n\n\nfunction isPrimitive(val) {\n return val == null || val === true || val === false ||\n typeof val === \"string\" || typeof val === \"number\";\n\n}\n\nfunction isObject(value) {\n return typeof value === \"function\" ||\n typeof value === \"object\" && value !== null;\n}\n\nfunction maybeWrapAsError(maybeError) {\n if (!isPrimitive(maybeError)) return maybeError;\n\n return new Error(safeToString(maybeError));\n}\n\nfunction withAppended(target, appendee) {\n var len = target.length;\n var ret = new Array(len + 1);\n var i;\n for (i = 0; i < len; ++i) {\n ret[i] = target[i];\n }\n ret[i] = appendee;\n return ret;\n}\n\nfunction getDataPropertyOrDefault(obj, key, defaultValue) {\n if (es5.isES5) {\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null) {\n return desc.get == null && desc.set == null\n ? desc.value\n : defaultValue;\n }\n } else {\n return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n }\n}\n\nfunction notEnumerableProp(obj, name, value) {\n if (isPrimitive(obj)) return obj;\n var descriptor = {\n value: value,\n configurable: true,\n enumerable: false,\n writable: true\n };\n es5.defineProperty(obj, name, descriptor);\n return obj;\n}\n\nfunction thrower(r) {\n throw r;\n}\n\nvar inheritedDataKeys = (function() {\n var excludedPrototypes = [\n Array.prototype,\n Object.prototype,\n Function.prototype\n ];\n\n var isExcludedProto = function(val) {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (excludedPrototypes[i] === val) {\n return true;\n }\n }\n return false;\n };\n\n if (es5.isES5) {\n var getKeys = Object.getOwnPropertyNames;\n return function(obj) {\n var ret = [];\n var visitedKeys = Object.create(null);\n while (obj != null && !isExcludedProto(obj)) {\n var keys;\n try {\n keys = getKeys(obj);\n } catch (e) {\n return ret;\n }\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (visitedKeys[key]) continue;\n visitedKeys[key] = true;\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n if (desc != null && desc.get == null && desc.set == null) {\n ret.push(key);\n }\n }\n obj = es5.getPrototypeOf(obj);\n }\n return ret;\n };\n } else {\n var hasProp = {}.hasOwnProperty;\n return function(obj) {\n if (isExcludedProto(obj)) return [];\n var ret = [];\n\n /*jshint forin:false */\n enumeration: for (var key in obj) {\n if (hasProp.call(obj, key)) {\n ret.push(key);\n } else {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (hasProp.call(excludedPrototypes[i], key)) {\n continue enumeration;\n }\n }\n ret.push(key);\n }\n }\n return ret;\n };\n }\n\n})();\n\nvar thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\nfunction isClass(fn) {\n try {\n if (typeof fn === \"function\") {\n var keys = es5.names(fn.prototype);\n\n var hasMethods = es5.isES5 && keys.length > 1;\n var hasMethodsOtherThanConstructor = keys.length > 0 &&\n !(keys.length === 1 && keys[0] === \"constructor\");\n var hasThisAssignmentAndStaticMethods =\n thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n if (hasMethods || hasMethodsOtherThanConstructor ||\n hasThisAssignmentAndStaticMethods) {\n return true;\n }\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\nfunction toFastProperties(obj) {\n /*jshint -W027,-W055,-W031*/\n function FakeConstructor() {}\n FakeConstructor.prototype = obj;\n var receiver = new FakeConstructor();\n function ic() {\n return typeof receiver.foo;\n }\n ic();\n ic();\n return obj;\n eval(obj);\n}\n\nvar rident = /^[a-z$_][a-z$_0-9]*$/i;\nfunction isIdentifier(str) {\n return rident.test(str);\n}\n\nfunction filledRange(count, prefix, suffix) {\n var ret = new Array(count);\n for(var i = 0; i < count; ++i) {\n ret[i] = prefix + i + suffix;\n }\n return ret;\n}\n\nfunction safeToString(obj) {\n try {\n return obj + \"\";\n } catch (e) {\n return \"[no string representation]\";\n }\n}\n\nfunction isError(obj) {\n return obj instanceof Error ||\n (obj !== null &&\n typeof obj === \"object\" &&\n typeof obj.message === \"string\" &&\n typeof obj.name === \"string\");\n}\n\nfunction markAsOriginatingFromRejection(e) {\n try {\n notEnumerableProp(e, \"isOperational\", true);\n }\n catch(ignore) {}\n}\n\nfunction originatesFromRejection(e) {\n if (e == null) return false;\n return ((e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError) ||\n e[\"isOperational\"] === true);\n}\n\nfunction canAttachTrace(obj) {\n return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n}\n\nvar ensureErrorObject = (function() {\n if (!(\"stack\" in new Error())) {\n return function(value) {\n if (canAttachTrace(value)) return value;\n try {throw new Error(safeToString(value));}\n catch(err) {return err;}\n };\n } else {\n return function(value) {\n if (canAttachTrace(value)) return value;\n return new Error(safeToString(value));\n };\n }\n})();\n\nfunction classString(obj) {\n return {}.toString.call(obj);\n}\n\nfunction copyDescriptors(from, to, filter) {\n var keys = es5.names(from);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (filter(key)) {\n try {\n es5.defineProperty(to, key, es5.getDescriptor(from, key));\n } catch (ignore) {}\n }\n }\n}\n\nvar asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n }\n return null;\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n var ArrayFrom = typeof Array.from === \"function\" ? function(v) {\n return Array.from(v);\n } : function(v) {\n var ret = [];\n var it = v[Symbol.iterator]();\n var itResult;\n while (!((itResult = it.next()).done)) {\n ret.push(itResult.value);\n }\n return ret;\n };\n\n asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n return ArrayFrom(v);\n }\n return null;\n };\n}\n\nvar isNode = typeof process !== \"undefined\" &&\n classString(process).toLowerCase() === \"[object process]\";\n\nvar hasEnvVariables = typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\";\n\nfunction env(key) {\n return hasEnvVariables ? process.env[key] : undefined;\n}\n\nfunction getNativePromise() {\n if (typeof Promise === \"function\") {\n try {\n var promise = new Promise(function(){});\n if ({}.toString.call(promise) === \"[object Promise]\") {\n return Promise;\n }\n } catch (e) {}\n }\n}\n\nfunction domainBind(self, cb) {\n return self.bind(cb);\n}\n\nvar ret = {\n isClass: isClass,\n isIdentifier: isIdentifier,\n inheritedDataKeys: inheritedDataKeys,\n getDataPropertyOrDefault: getDataPropertyOrDefault,\n thrower: thrower,\n isArray: es5.isArray,\n asArray: asArray,\n notEnumerableProp: notEnumerableProp,\n isPrimitive: isPrimitive,\n isObject: isObject,\n isError: isError,\n canEvaluate: canEvaluate,\n errorObj: errorObj,\n tryCatch: tryCatch,\n inherits: inherits,\n withAppended: withAppended,\n maybeWrapAsError: maybeWrapAsError,\n toFastProperties: toFastProperties,\n filledRange: filledRange,\n toString: safeToString,\n canAttachTrace: canAttachTrace,\n ensureErrorObject: ensureErrorObject,\n originatesFromRejection: originatesFromRejection,\n markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n classString: classString,\n copyDescriptors: copyDescriptors,\n hasDevTools: typeof chrome !== \"undefined\" && chrome &&\n typeof chrome.loadTimes === \"function\",\n isNode: isNode,\n hasEnvVariables: hasEnvVariables,\n env: env,\n global: globalObject,\n getNativePromise: getNativePromise,\n domainBind: domainBind\n};\nret.isRecentNode = ret.isNode && (function() {\n var version;\n if (process.versions && process.versions.node) { \n version = process.versions.node.split(\".\").map(Number);\n } else if (process.version) {\n version = process.version.split(\".\").map(Number);\n }\n return (version[0] === 0 && version[1] > 10) || (version[0] > 0);\n})();\n\nif (ret.isNode) ret.toFastProperties(process);\n\ntry {throw new Error(); } catch (e) {ret.lastLineError = e;}\nmodule.exports = ret;\n\n},{\"./es5\":13}]},{},[4])(4)\n}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bluebird/js/browser/bluebird.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _nodentRuntime = require('nodent-runtime');\n\nvar _nodentRuntime2 = _interopRequireDefault(_nodentRuntime);\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Provider = function () {\n function Provider() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Provider);\n\n this.options = options;\n }\n\n _createClass(Provider, [{\n key: 'getParamString',\n value: function getParamString(params) {\n return Object.keys(params).map(function (key) {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n }, {\n key: 'search',\n value: function search(_ref) {\n return new Promise(function ($return, $error) {\n var query, protocol, url, request, json;\n query = _ref.query;\n\n protocol = ~location.protocol.indexOf('http') ? location.protocol : 'https:';\n url = this.endpoint({ query: query, protocol: protocol });\n\n return fetch(url).then(function ($await_1) {\n request = $await_1;\n return request.json().then(function ($await_2) {\n json = $await_2;\n return $return(this.parse({ data: json }));\n }.$asyncbind(this, $error), $error);\n }.$asyncbind(this, $error), $error);\n }.$asyncbind(this));\n }\n }]);\n\n return Provider;\n}();\n\nexports.default = Provider;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/providers/provider.js\n// module id = 1\n// module chunks = 0","\"use strict\";\n/*\n * $asyncbind has multiple uses, depending on the parameter list. It is in Function.prototype, so 'this' is always a function\n *\n * 1) If called with a single argument (this), it is used when defining an async function to ensure when\n * it is invoked, the correct 'this' is present, just like \"bind\". For legacy reasons, 'this' is given\n * a memeber 'then' which refers to itself.\n * 2) If called with a second parameter (\"catcher\") and catcher!==true it is being used to invoke an async\n * function where the second parameter is the error callback (for sync exceptions and to be passed to\n * nested async calls)\n * 3) If called with the second parameter===true, it is the same use as (1), but the function is wrapped\n * in an 'Promise' as well bound to 'this'.\n * It is the same as calling 'new Promise(this)', where 'this' is the function being bound/wrapped\n * 4) If called with the second parameter===0, it is the same use as (1), but the function is wrapped\n * in a 'LazyThenable', which executes lazily and can resolve synchronously.\n * It is the same as calling 'new LazyThenable(this)' (if such a type were exposed), where 'this' is\n * the function being bound/wrapped\n */\n\nfunction processIncludes(includes,input) {\n var src = input.toString() ;\n var t = \"return \"+src ;\n var args = src.match(/.*\\(([^)]*)\\)/)[1] ;\n var re = /['\"]!!!([^'\"]*)['\"]/g ;\n var m = [] ;\n while (1) {\n var mx = re.exec(t) ;\n if (mx)\n m.push(mx) ;\n else break ;\n }\n m.reverse().forEach(function(e){\n t = t.slice(0,e.index)+includes[e[1]]+t.substr(e.index+e[0].length) ;\n }) ;\n t = t.replace(/\\/\\*[^*]*\\*\\//g,' ').replace(/\\s+/g,' ') ;\n return new Function(args,t)() ;\n}\n\nvar $asyncbind = processIncludes({\n zousan:require('./zousan').toString(),\n thenable:require('./thenableFactory').toString()\n},\nfunction $asyncbind(self,catcher) {\n \"use strict\";\n if (!Function.prototype.$asyncbind) {\n Object.defineProperty(Function.prototype,\"$asyncbind\",{value:$asyncbind,enumerable:false,configurable:true,writable:true}) ;\n }\n\n if (!$asyncbind.trampoline) {\n $asyncbind.trampoline = function trampoline(t,x,s,e,u){\n return function b(q) {\n while (q) {\n if (q.then) {\n q = q.then(b, e) ;\n return u?undefined:q;\n }\n try {\n if (q.pop) {\n if (q.length)\n return q.pop() ? x.call(t) : q;\n q = s;\n } else\n q = q.call(t)\n } catch (r) {\n return e(r);\n }\n }\n }\n };\n }\n if (!$asyncbind.LazyThenable) {\n $asyncbind.LazyThenable = '!!!thenable'();\n $asyncbind.EagerThenable = $asyncbind.Thenable = ($asyncbind.EagerThenableFactory = '!!!zousan')();\n }\n\n function boundThen() {\n return resolver.apply(self,arguments);\n }\n\n var resolver = this;\n switch (catcher) {\n case true:\n return new ($asyncbind.Thenable)(boundThen);\n case 0:\n return new ($asyncbind.LazyThenable)(boundThen);\n case undefined:\n /* For runtime compatibility with Nodent v2.x, provide a thenable */\n boundThen.then = boundThen ;\n return boundThen ;\n default:\n return function(){\n try {\n return resolver.apply(self,arguments);\n } catch(ex) {\n return catcher(ex);\n }\n }\n }\n\n}) ;\n\nfunction $asyncspawn(promiseProvider,self) {\n if (!Function.prototype.$asyncspawn) {\n Object.defineProperty(Function.prototype,\"$asyncspawn\",{value:$asyncspawn,enumerable:false,configurable:true,writable:true}) ;\n }\n if (!(this instanceof Function)) return ;\n\n var genF = this ;\n return new promiseProvider(function enough(resolve, reject) {\n var gen = genF.call(self, resolve, reject);\n function step(fn,arg) {\n var next;\n try {\n next = fn.call(gen,arg);\n if(next.done) {\n if (next.value !== resolve) {\n if (next.value && next.value===next.value.then)\n return next.value(resolve,reject) ;\n resolve && resolve(next.value);\n resolve = null ;\n }\n return;\n }\n\n if (next.value.then) {\n next.value.then(function(v) {\n step(gen.next,v);\n }, function(e) {\n step(gen.throw,e);\n });\n } else {\n step(gen.next,next.value);\n }\n } catch(e) {\n reject && reject(e);\n reject = null ;\n return;\n }\n }\n step(gen.next);\n });\n}\n\n// Initialize async bindings\n$asyncbind() ;\n$asyncspawn() ;\n\n// Export async bindings\nmodule.exports = {\n $asyncbind:$asyncbind,\n $asyncspawn:$asyncspawn\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/nodent-runtime/runtime.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* eslint-disable import/prefer-default-export */\nvar createElement = exports.createElement = function createElement(element) {\n var classNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n var el = document.createElement(element);\n el.className = classNames;\n\n if (parent) {\n parent.appendChild(el);\n }\n\n return el;\n};\n\nvar createScriptElement = exports.createScriptElement = function createScriptElement(url, cb) {\n var script = createElement('script', null, document.body);\n script.setAttribute('type', 'text/javascript');\n\n return new Promise(function (resolve) {\n window[cb] = function (json) {\n script.remove();\n delete window[cb];\n resolve(json);\n };\n\n script.setAttribute('src', url);\n });\n};\n\nvar addClassName = exports.addClassName = function addClassName(element, className) {\n if (element && !element.classList.contains(className)) {\n element.classList.add(className);\n }\n};\n\nvar removeClassName = exports.removeClassName = function removeClassName(element, className) {\n if (element && element.classList.contains(className)) {\n element.classList.remove(className);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/domUtils.js\n// module id = 3\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar $ = jQuery;\n\nmodule.exports = {\n\tmeters2unit: function meters2unit(meters, unit) {\n\t\tvar divisor = unit == 'km' ? 1 : 1.609344;\n\t\tvar km = meters / 1000;\n\t\treturn km / divisor;\n\t},\n\tunit2meters: function unit2meters(value, unit) {\n\t\tvar multiplier = unit == 'km' ? 1000 : 1609.344;\n\t\treturn value * multiplier;\n\t},\n\tisPhone: function isPhone() {\n\t\tvar dimension = Math.min($(window).width(), $(window).height());\n\t\treturn dimension <= 568;\n\t},\n\tisTouchDevice: function isTouchDevice() {\n\t\treturn 'ontouchstart' in window || navigator.msMaxTouchPoints;\n\t},\n\tshowSearchPopup: function showSearchPopup(map, content) {\n\t\tif (typeof map.searchTooltip == 'undefined') {\n\t\t\tmap.searchTooltip = new MapifyTooltip({\n\t\t\t\t'rgba': map.settings.tooltip.background,\n\t\t\t\t'content': content,\n\t\t\t\t'close_behavior': 'manual',\n\t\t\t\t'animate': true\n\t\t\t});\n\t\t\tmap.searchTooltip.node().addClass('mpfy-tooltip mpfy-flip-tooltip');\n\n\t\t\tmap.searchTooltip.node().on('click', '.mpfy-closest-pin', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tif (map.searchLastClosestPin === null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tmap.clearSearch(false).then(function () {\n\t\t\t\t\tmap.mapService.highlightPin(map.searchLastClosestPin);\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tmap.searchTooltip.setContent(content);\n\t\t}\n\n\t\tvar form = map.$container.find('.mpfy-search-form:first');\n\t\tvar l = form.offset().left + form.width() - map.searchTooltip.node().width() / 2;\n\t\tvar t = form.offset().top + 11 + form.height() + map.searchTooltip.node().height();\n\t\tmap.searchTooltip.showCentered(l, t);\n\t},\n\tpreloadImage: function preloadImage(src) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tvar image = new Image();\n\t\t\timage.onload = function () {\n\t\t\t\treturn resolve(image);\n\t\t\t};\n\t\t\timage.onLoad = image.onload;\n\t\t\timage.src = src;\n\t\t});\n\t}\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/utils.js\n// module id = 5\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 6\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ENTER_KEY = exports.ENTER_KEY = 13;\nvar ESCAPE_KEY = exports.ESCAPE_KEY = 27;\nvar ARROW_DOWN_KEY = exports.ARROW_DOWN_KEY = 40;\nvar ARROW_UP_KEY = exports.ARROW_UP_KEY = 38;\nvar ARROW_LEFT_KEY = exports.ARROW_LEFT_KEY = 37;\nvar ARROW_RIGHT_KEY = exports.ARROW_RIGHT_KEY = 39;\n\nvar SPECIAL_KEYS = exports.SPECIAL_KEYS = [ENTER_KEY, ESCAPE_KEY, ARROW_DOWN_KEY, ARROW_UP_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/constants.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _nodentRuntime = require('nodent-runtime');\n\nvar _nodentRuntime2 = _interopRequireDefault(_nodentRuntime);\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _domUtils = require('./domUtils');\n\nvar _constants = require('./constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SearchElement = function () {\n function SearchElement() {\n var _this = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$handleSubmit = _ref.handleSubmit,\n handleSubmit = _ref$handleSubmit === undefined ? function () {} : _ref$handleSubmit,\n _ref$searchLabel = _ref.searchLabel,\n searchLabel = _ref$searchLabel === undefined ? 'search' : _ref$searchLabel,\n _ref$classNames = _ref.classNames,\n classNames = _ref$classNames === undefined ? {} : _ref$classNames;\n\n _classCallCheck(this, SearchElement);\n\n var container = (0, _domUtils.createElement)('div', ['geosearch', classNames.container].join(' '));\n var form = (0, _domUtils.createElement)('form', ['', classNames.form].join(' '), container);\n var input = (0, _domUtils.createElement)('input', ['glass', classNames.input].join(' '), form);\n\n input.type = 'text';\n input.placeholder = searchLabel;\n\n input.addEventListener('input', function (e) {\n _this.onInput(e);\n }, false);\n input.addEventListener('keyup', function (e) {\n _this.onKeyUp(e);\n }, false);\n input.addEventListener('keypress', function (e) {\n _this.onKeyPress(e);\n }, false);\n input.addEventListener('focus', function (e) {\n _this.onFocus(e);\n }, false);\n input.addEventListener('blur', function (e) {\n _this.onBlur(e);\n }, false);\n\n this.elements = { container: container, form: form, input: input };\n this.handleSubmit = handleSubmit;\n }\n\n _createClass(SearchElement, [{\n key: 'onFocus',\n value: function onFocus() {\n (0, _domUtils.addClassName)(this.elements.form, 'active');\n }\n }, {\n key: 'onBlur',\n value: function onBlur() {\n (0, _domUtils.removeClassName)(this.elements.form, 'active');\n }\n }, {\n key: 'onSubmit',\n value: function onSubmit(event) {\n return new Promise(function ($return, $error) {\n var _elements, input, container;\n\n event.preventDefault();\n event.stopPropagation();\n\n _elements = this.elements, input = _elements.input, container = _elements.container;\n\n (0, _domUtils.removeClassName)(container, 'error');\n (0, _domUtils.addClassName)(container, 'pending');\n\n return this.handleSubmit({ query: input.value }).then(function ($await_1) {\n (0, _domUtils.removeClassName)(container, 'pending');\n return $return();\n }.$asyncbind(this, $error), $error);\n }.$asyncbind(this));\n }\n }, {\n key: 'onInput',\n value: function onInput() {\n var container = this.elements.container;\n\n\n if (this.hasError) {\n (0, _domUtils.removeClassName)(container, 'error');\n this.hasError = false;\n }\n }\n }, {\n key: 'onKeyUp',\n value: function onKeyUp(event) {\n var _elements2 = this.elements,\n container = _elements2.container,\n input = _elements2.input;\n\n\n if (event.keyCode === _constants.ESCAPE_KEY) {\n (0, _domUtils.removeClassName)(container, 'pending');\n (0, _domUtils.removeClassName)(container, 'active');\n\n input.value = '';\n\n document.body.focus();\n document.body.blur();\n }\n }\n }, {\n key: 'onKeyPress',\n value: function onKeyPress(event) {\n if (event.keyCode === _constants.ENTER_KEY) {\n this.onSubmit(event);\n }\n }\n }, {\n key: 'setQuery',\n value: function setQuery(query) {\n var input = this.elements.input;\n\n input.value = query;\n }\n }]);\n\n return SearchElement;\n}();\n\nexports.default = SearchElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/searchElement.js\n// module id = 8\n// module chunks = 0","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/timers-browserify/main.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar $ = jQuery;\nvar $document = $(document);\nvar utils = require('./utils.js');\nvar LeafletOSMMapService = require('./map-services/leaflet-osm-map-service.js');\nvar Pin = require('./pin.js');\nvar LocationList = require('./location-list.js');\n\nvar Map = function () {\n\tfunction Map($container, settings) {\n\t\tvar _this2 = this;\n\n\t\t_classCallCheck(this, Map);\n\n\t\tvar defaults = {\n\t\t\tstrings: window.mapify_script_settings.strings,\n\t\t\tmap: {\n\t\t\t\tid: 0,\n\t\t\t\ttype: 'road',\n\t\t\t\tmode: 'map',\n\t\t\t\tcenter: [0, 0],\n\t\t\t\ttileset: '',\n\n\t\t\t\tbackground: ''\n\t\t\t},\n\t\t\tzoom: {\n\t\t\t\tenabled: true,\n\t\t\t\tzoom: 3\n\t\t\t},\n\t\t\tpins: {\n\t\t\t\tdefaultImage: '',\n\t\t\t\tpins: []\n\t\t\t},\n\t\t\tcluster: {\n\t\t\t\tenabled: false\n\t\t\t},\n\t\t\ttooltip: {\n\t\t\t\tbackground: [255, 255, 255, 1]\n\t\t\t},\n\t\t\tsearch: {\n\t\t\t\tcenterOnSearch: true,\n\t\t\t\tradiusUnitName: 'Miles',\n\t\t\t\tradiusUnit: 'mi',\n\t\t\t\tradius: 5,\n\t\t\t\tradiusInMeters: 0,\n\t\t\t\tregionBias: ''\n\t\t\t},\n\t\t\tfilters: {\n\t\t\t\tcenterOnFilter: true\n\t\t\t},\n\t\t\troutes: []\n\t\t};\n\t\tthis.settings = $.extend(true, {}, defaults, settings);\n\t\tthis.calculateSearchRadiusInMeters();\n\n\t\tthis.$container = $container.first();\n\t\tif (!this.$container || !this.$container.length) {\n\t\t\tconsole.log('Could not find map container');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.searchIsSearching = false;\n\t\tthis.searchLastResult = null;\n\t\tthis.searchRadiusInMeters = 0;\n\t\tthis.searchLastClosestPin = null;\n\n\t\twindow.Mapify.instances.push(this);\n\t\tthis.$container.data('mapify', this);\n\t\tthis.$canvas = this.$container.find('.mpfy-map-canvas:first');\n\t\tthis.$zoomInButton = this.$container.find('.mpfy-zoom-in:first');\n\t\tthis.$zoomOutButton = this.$container.find('.mpfy-zoom-out:first');\n\t\tthis.$tagSelect = this.$container.find('.mpfy-tag-select:first');\n\t\tthis.$searchForm = this.$container.find('.mpfy-search-form:first');\n\t\tthis.$searchFormInput = this.$searchForm.find('.mpfy-search-input:first');\n\t\tthis.$searchFormButton = this.$searchForm.find('.mpfy-search-button:first');\n\t\tthis.$searchFormClearButton = this.$searchForm.find('.mpfy-search-clear:first');\n\t\tthis.$searchRadiusSelect = this.$container.find('select[name=\"mpfy_search_radius\"]:first');\n\t\tthis.$locationList = this.$container.find('.mpfy-mll:first');\n\t\tthis.$geolocateButton = this.$container.find('.mpfy-geolocate:first');\n\n\t\tthis.proprietaryData = JSON.parse(this.$container.attr('data-proprietary'));\n\t\tthis.attrsData = JSON.parse(this.$container.attr('data-attrs'));\n\t\tthis.pins = [];\n\n\t\tthis.mapService = new LeafletOSMMapService(this.$canvas, {\n\t\t\tmap: {\n\t\t\t\tbackground: this.settings.map.background,\n\t\t\t\ttileset: this.settings.map.tileset\n\t\t\t},\n\t\t\tzoom: {\n\t\t\t\tenabled: this.settings.zoom.enabled,\n\t\t\t\tzoom: this.settings.zoom.zoom\n\t\t\t},\n\t\t\tcluster: {\n\t\t\t\tenabled: this.settings.cluster.enabled\n\t\t\t}\n\t\t});\n\n\t\tif (this.settings.map.mode === 'image') {\n\t\t\tthis.mapService.setType('image');\n\t\t} else {\n\t\t\tthis.mapService.setType(this.settings.map.type);\n\t\t}\n\n\t\tthis.mapService.setCenter(this.settings.map.center);\n\t\tthis.mapService.setZoom(this.settings.zoom.zoom);\n\n\t\tthis.locationList = this.$locationList.length > 0 ? new LocationList(this.$locationList, this) : null;\n\n\t\tthis.addEvents();\n\t\tthis.addPins().then(function () {\n\t\t\t_this2.$container.trigger('mapify.map.loaded', _this2);\n\t\t\treturn Promise.resolve();\n\t\t});\n\t}\n\n\t_createClass(Map, [{\n\t\tkey: 'calculateSearchRadiusInMeters',\n\t\tvalue: function calculateSearchRadiusInMeters() {\n\t\t\tthis.settings.search.radiusInMeters = utils.unit2meters(this.settings.search.radius, this.settings.search.radiusUnit);\n\t\t}\n\t}, {\n\t\tkey: 'getProprietaryData',\n\t\tvalue: function getProprietaryData(key) {\n\t\t\tif (typeof this.proprietaryData[key] == 'undefined') {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn this.proprietaryData[key];\n\t\t}\n\t}, {\n\t\tkey: 'getAttrsData',\n\t\tvalue: function getAttrsData(key) {\n\t\t\tif (typeof this.attrsData[key] == 'undefined') {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn this.attrsData[key];\n\t\t}\n\t}, {\n\t\tkey: 'addPins',\n\t\tvalue: function addPins() {\n\t\t\tfor (var i = 0; i < this.settings.pins.pins.length; i++) {\n\t\t\t\tvar pinModel = this.settings.pins.pins[i];\n\n\t\t\t\tvar tooltipClasses = ['mpfy-tooltip-map-' + this.settings.map.id, 'mpfy-tooltip-image-orientation-' + this.settings.tooltip.imageOrientation];\n\t\t\t\tif (pinModel.thumbnail) {\n\t\t\t\t\ttooltipClasses.push('mpfy-tooltip-with-thumbnail');\n\t\t\t\t}\n\t\t\t\tvar pin = new Pin(pinModel, {\n\t\t\t\t\tclasses: tooltipClasses.join(' '),\n\t\t\t\t\tbackground: this.settings.tooltip.background,\n\t\t\t\t\tcontent: pinModel.tooltipContent,\n\t\t\t\t\tcloseBehavior: pinModel.tooltipCloseBehavior,\n\t\t\t\t\tanimate: pinModel.animateTooltips\n\t\t\t\t}, {\n\t\t\t\t\thideInitially: !!this.settings.pins.hideInitially\n\t\t\t\t});\n\t\t\t\tthis.pins.push(pin);\n\t\t\t}\n\t\t\treturn this.mapService.addPins(this.pins);\n\t\t}\n\t}, {\n\t\tkey: 'addEvents',\n\t\tvalue: function addEvents() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar _this = this;\n\n\t\t\t_this.tagSelectEvent = function () {\n\t\t\t\tvar tagId = $(this).val();\n\t\t\t\t_this.filterByTag(tagId);\n\t\t\t};\n\n\t\t\t$('body').trigger('mapify.map.created', _this);\n\n\t\t\tif (_this.$tagSelect.length > 0) {\n\t\t\t\t_this.$tagSelect.on('change', _this.tagSelectEvent);\n\t\t\t}\n\n\t\t\tif (_this.$searchRadiusSelect.length > 0) {\n\t\t\t\t_this.$searchRadiusSelect.on('change', function () {\n\t\t\t\t\t_this.settings.search.radius = parseInt($(this).val());\n\t\t\t\t\t_this.calculateSearchRadiusInMeters();\n\t\t\t\t}).trigger('change');\n\t\t\t}\n\n\t\t\t$(window).on('load resize orientationchange mapify.redraw', function () {\n\t\t\t\tvar controls = _this.$container.find('.mpfy-controls:first');\n\t\t\t\tvar breakingWidth = 650;\n\t\t\t\tvar controlsWidth = controls.width();\n\t\t\t\tcontrols.toggleClass('mpfy-controls-mobile', controlsWidth <= breakingWidth);\n\t\t\t\t_this.$container.toggleClass('mpfy-layout-mobile', controlsWidth <= breakingWidth);\n\t\t\t});\n\n\t\t\tif (\"ontouchstart\" in window || navigator.msMaxTouchPoints) {\n\t\t\t\tthis.$container.addClass('mpfy-touch-device');\n\t\t\t}\n\n\t\t\tthis.$searchFormClearButton.click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t_this.clearSearch();\n\t\t\t});\n\n\t\t\tthis.$searchFormInput.bind('keyup change', function (e) {\n\t\t\t\t_this.$searchFormClearButton.toggle($(this).val().length > 0);\n\t\t\t});\n\n\t\t\tthis.$zoomInButton.click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t_this.mapService.setZoom(_this.mapService.getZoom() + 1);\n\t\t\t});\n\n\t\t\tthis.$zoomOutButton.click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t_this.mapService.setZoom(Math.max(0, _this.mapService.getZoom() - 1));\n\t\t\t});\n\n\t\t\tthis.$container.find('.mpfy-selecter-wrap select').selecter();\n\n\t\t\tthis.$searchForm.submit(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar recenterOnBlank = typeof e.mapify == 'undefined' || typeof e.mapify.recenterOnBlank == 'undefined' ? true : e.mapify.recenterOnBlank;\n\n\t\t\t\tvar query = _this.$searchFormInput.val().toLowerCase();\n\t\t\t\t_this.search(query, recenterOnBlank);\n\t\t\t});\n\n\t\t\tthis.$geolocateButton.on('click', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t_this3.mapService.locate().then(function () {\n\t\t\t\t\t_this.$container.trigger('mapify.useMyLocation.ended');\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t(function () {\n\t\t\t\tif (!ResizeObserver) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar resizeObserver = new ResizeObserver(function (entries) {\n\t\t\t\t\t_this3.mapService.redraw();\n\t\t\t\t});\n\n\t\t\t\tresizeObserver.observe(_this3.$container[0]);\n\t\t\t})();\n\t\t}\n\t}, {\n\t\tkey: 'getPinById',\n\t\tvalue: function getPinById(pinId) {\n\t\t\tfor (var i = 0; i < this.pins.length; i++) {\n\t\t\t\tvar pin = this.pins[i];\n\t\t\t\tif (pin.model.id == pinId) {\n\t\t\t\t\treturn pin;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t}, {\n\t\tkey: 'getVisiblePins',\n\t\tvalue: function getVisiblePins() {\n\t\t\treturn this.pins.filter(function (pin) {\n\t\t\t\treturn pin.isVisible();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'filter',\n\t\tvalue: function filter(visibilityCondition, filterCallback) {\n\t\t\tvar baseVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n\t\t\tvar _this = this;\n\t\t\tvar promises = [];\n\t\t\tfor (var i = this.pins.length - 1; i >= 0; i--) {\n\t\t\t\tvar pin = this.pins[i];\n\t\t\t\tpin.setVisibility(visibilityCondition, filterCallback(pin));\n\t\t\t\tpin.setVisibility('base', baseVisibility);\n\t\t\t\tpromises.push(this.mapService.updatePinVisibility(pin));\n\t\t\t}\n\t\t\treturn Promise.all(promises).then(function () {\n\t\t\t\t_this.$container.trigger('mapify.pins.visibilityUpdated', visibilityCondition);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'filterByTag',\n\t\tvalue: function filterByTag(tagId) {\n\t\t\tvar _this = this;\n\t\t\ttagId = parseInt(tagId);\n\t\t\t_this.$tagSelect.off('change', _this.tagSelectEvent);\n\t\t\tthis.$tagSelect.val(tagId).trigger('change');\n\t\t\t_this.$tagSelect.on('change', _this.tagSelectEvent);\n\n\t\t\treturn Promise.resolve().then(function () {\n\t\t\t\tif (tagId <= 0) {\n\t\t\t\t\treturn _this.filter('tag', function (pin) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}, !_this.settings.pins.hideInitially).then(function () {\n\t\t\t\t\t\treturn _this.mapService.setCenter(_this.settings.map.center);\n\t\t\t\t\t}) // always center first\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\treturn _this.mapService.setZoom(_this.settings.zoom.zoom);\n\t\t\t\t\t}).then(function () {\n\t\t\t\t\t\treturn _this.mapService.setCenter(_this.settings.map.center);\n\t\t\t\t\t}); // center again after zoom to avoid rounding inaccuracies\n\t\t\t\t}\n\n\t\t\t\treturn _this.filter('tag', function (pin) {\n\t\t\t\t\treturn typeof pin.model.tags[tagId.toString()] !== 'undefined';\n\t\t\t\t}).then(function () {\n\t\t\t\t\tif (_this.settings.filters.centerOnFilter) {\n\t\t\t\t\t\tvar visiblePins = _this.getVisiblePins();\n\t\t\t\t\t\treturn _this.mapService.fitPins(visiblePins);\n\t\t\t\t\t}\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t});\n\t\t\t}).then(function () {\n\t\t\t\t_this.$container.trigger('mapify.filter.ended', {\n\t\t\t\t\ttagId: tagId\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'requestSearchResults',\n\t\tvalue: function requestSearchResults(query, recenterOnBlank) {\n\t\t\tvar _this = this;\n\t\t\tif (_this.searchIsSearching) {\n\t\t\t\treturn Promise.reject('busy');\n\t\t\t}\n\n\t\t\t_this.searchLastResult = null;\n\t\t\tif (query.length === 0) {\n\t\t\t\treturn _this.filter('search', function (pin) {\n\t\t\t\t\treturn true;\n\t\t\t\t}).then(function () {\n\t\t\t\t\tif (recenterOnBlank) {\n\t\t\t\t\t\treturn _this.mapService.setCenter(_this.settings.map.center);\n\t\t\t\t\t}\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (_this.settings.map.mode === 'image') {\n\t\t\t\treturn _this.filter('search', function (pin) {\n\t\t\t\t\treturn pin.model.city.indexOf(query) !== -1 || pin.model.city.indexOf(query) !== -1;\n\t\t\t\t}).then(function () {\n\t\t\t\t\tif (_this.getVisiblePins().length === 0) {\n\t\t\t\t\t\tutils.showSearchPopup(_this, _this.getAttrsData('no_search_results'));\n\t\t\t\t\t}\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t_this.searchIsSearching = true;\n\t\t\treturn _this.mapService.geocode(query, _this.settings.search.regionBias).then(function (results) {\n\t\t\t\tif (results.length === 0) {\n\t\t\t\t\tutils.showSearchPopup(_this, _this.getAttrsData('search_geolocation_failure'));\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\n\t\t\t\tvar result = results[0];\n\t\t\t\t_this.searchLastResult = result;\n\n\t\t\t\tvar filteredPins = _this.mapService.getPinsWithinRange(result.lat, result.lng, _this.settings.search.radiusInMeters);\n\n\t\t\t\treturn _this.filter('search', function (pin) {\n\t\t\t\t\treturn filteredPins.indexOf(pin) !== -1;\n\t\t\t\t}).then(function () {\n\t\t\t\t\tif (_this.getVisiblePins().length === 0) {\n\t\t\t\t\t\t_this.searchLastClosestPin = _this.mapService.getPinClosestTo(result.lat, result.lng);\n\t\t\t\t\t\tutils.showSearchPopup(_this, _this.getAttrsData('no_search_results_with_closest'));\n\t\t\t\t\t}\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t});\n\t\t\t}).catch(function (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}).then(function () {\n\t\t\t\t_this.searchIsSearching = false;\n\t\t\t\treturn Promise.resolve();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'search',\n\t\tvalue: function search(query, recenterOnBlank) {\n\t\t\tvar _this = this;\n\t\t\treturn _this.requestSearchResults(query, recenterOnBlank).then(function () {\n\t\t\t\tvar visiblePins = _this.getVisiblePins();\n\t\t\t\tif (visiblePins.length > 0 && _this.settings.search.centerOnSearch) {\n\t\t\t\t\treturn _this.mapService.fitPins(visiblePins);\n\t\t\t\t}\n\t\t\t\treturn Promise.resolve();\n\t\t\t}).then(function () {\n\t\t\t\t_this.$container.trigger('mapify.search.ended', {\n\t\t\t\t\t'query': query\n\t\t\t\t});\n\t\t\t\treturn Promise.resolve();\n\t\t\t}).catch(function (error) {\n\t\t\t\tif (error !== 'busy') {\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'clearSearch',\n\t\tvalue: function clearSearch(recenterOnBlank) {\n\t\t\trecenterOnBlank = typeof recenterOnBlank == 'undefined' ? true : recenterOnBlank;\n\t\t\tthis.$searchFormInput.val('').trigger('change');\n\t\t\treturn this.search('', recenterOnBlank);\n\t\t}\n\t}]);\n\n\treturn Map;\n}();\n\nmodule.exports = Map;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/map.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n;(function ($) {\n\tvar $doc = $(document);\n\tvar $window = $(window);\n\n\t$doc.ready(function () {\n\t\t$(\".mpfy-multi-map\").each(function (index) {\n\t\t\tvar MultiMap = new MpfyMultiMap($(this));\n\t\t\tMultiMap.on_ready();\n\t\t});\n\n\t\t/**\n * Dropdown toggle\n */\n\t\t$('.mpfy-multi-map-dropdown-list-wrapper').on('click', function () {\n\t\t\t$(this).parents('.mpfy-multi-map-dropdown').toggleClass('show-list');\n\t\t});\n\n\t\t/**\n * Hide all dropdown on click elsewhere\n */\n\t\t$doc.on('click touchstart', function (e) {\n\t\t\tif (!$(e.target).parents().andSelf().is('.mpfy-multi-map-dropdown-list-wrapper')) {\n\t\t\t\t$(\".mpfy-multi-map-dropdown\").removeClass(\"show-list\");\n\t\t\t}\n\t\t});\n\n\t\t/**\n * On select dropdown map item\n */\n\t\t$doc.on('click', '.mpfy-multi-map-dropdown ul li a', function (e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar $container = $(this).parents('.mpfy-multi-map');\n\t\t\tvar MultiMap = new MpfyMultiMap($container);\n\t\t\tvar text = $(this).text();\n\t\t\tvar map_id = $(this).data('target');\n\n\t\t\t$(this).closest('.mpfy-multi-map-dropdown').find('li').removeClass('current');\n\t\t\t$(this).closest('li').addClass('current');\n\n\t\t\t// set selected map title\n\t\t\tMultiMap.set_selected_dropdown_item(text);\n\n\t\t\t// show selected map\n\t\t\tMultiMap.show_selected_map(map_id);\n\n\t\t\t// reset current displayed map location\n\t\t\t$doc.trigger('mapify.action.setMapTag', {\n\t\t\t\tmapId: map_id,\n\t\t\t\tvalue: '0'\n\t\t\t});\n\n\t\t\t// trigger window resize to reset some elements sizes and positions\n\t\t\t$window.trigger('resize');\n\t\t});\n\t});\n\n\t/**\n * Reset the mpfy-multi-map-dropdown position on window resize and orientationchange\n */\n\t$window.on('resize orientationchange', function () {\n\t\t$(\".mpfy-multi-map\").each(function (index) {\n\t\t\tvar MultiMap = new MpfyMultiMap($(this));\n\t\t\tMultiMap.on_resize();\n\t\t});\n\t});\n})(jQuery);\n\n/**\n * Class MpfyMultiMap\n * Responsible for managing each Multi Map element.\n * \n * @since 4.0.0\n */\n\nvar MpfyMultiMap = function () {\n\n\t/**\n * The constructor\n * \n * @param object el The current multi map element.\n * \n * @return object This object.\n */\n\tfunction MpfyMultiMap(el) {\n\t\t_classCallCheck(this, MpfyMultiMap);\n\n\t\tthis.el = el;\n\t\tthis.dropdown = this.el.find('.mpfy-multi-map-dropdown');\n\n\t\treturn this;\n\t}\n\n\t/**\n * Initial action after all elements ready\n * \n * @return void\n */\n\n\n\t_createClass(MpfyMultiMap, [{\n\t\tkey: 'on_ready',\n\t\tvalue: function on_ready() {\n\t\t\tvar $selected_list = this.el.find('.mpfy-multi-map-dropdown ul li.current a');\n\t\t\tvar text = $selected_list.text();\n\t\t\tvar map_id = $selected_list.data('target');\n\t\t\tvar this_class = this;\n\n\t\t\t/**\n * Set mpfy-multi-map-dropdown position\n */\n\t\t\tsetTimeout(function () {\n\t\t\t\tthis_class.set_multi_map_dropdown_position(map_id);\n\t\t\t}, 100);\n\n\t\t\t/**\n * Set initial selected dropdown item\n */\n\t\t\tthis.set_selected_dropdown_item(text);\n\t\t}\n\n\t\t/**\n * On window resize\n * \n * @return void\n */\n\n\t}, {\n\t\tkey: 'on_resize',\n\t\tvalue: function on_resize() {\n\t\t\tvar $selected_list = this.el.find('.mpfy-multi-map-dropdown ul li.current a');\n\t\t\tvar map_id = $selected_list.data('target');\n\t\t\tvar this_class = this;\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tthis_class.set_multi_map_dropdown_position(map_id);\n\t\t\t}, 100);\n\t\t}\n\n\t\t/**\n * Set selected dropdown item\n * \n * @param string text\n */\n\n\t}, {\n\t\tkey: 'set_selected_dropdown_item',\n\t\tvalue: function set_selected_dropdown_item(text) {\n\t\t\tthis.el.find('.mpfy-multi-map-dropdown-list-current').text(text);\n\t\t}\n\n\t\t/**\n * Show selected map\n * \n * @param int map_id \n */\n\n\t}, {\n\t\tkey: 'show_selected_map',\n\t\tvalue: function show_selected_map(map_id) {\n\t\t\tthis.el.find('.mpfy-multi-map-item').not('.mpfy-' + map_id).addClass('d-none');\n\t\t\tthis.el.find('.mpfy-multi-map-item.mpfy-' + map_id).removeClass('d-none');\n\t\t}\n\n\t\t/**\n * Get mpfy-controls width\n * \n * @param string map_id Mapify map id.\n * @return int\n */\n\n\t}, {\n\t\tkey: 'get_mpfy_controls_width',\n\t\tvalue: function get_mpfy_controls_width(map_id) {\n\t\t\tvar width = 20; // margin right\n\t\t\tvar $search = this.el.find('.mpfy-map-id-' + map_id + ' .mpfy-controls .mpfy-search-form');\n\t\t\tvar $filter = this.el.find('.mpfy-map-id-' + map_id + ' .mpfy-controls .mpfy-filter');\n\n\t\t\t// mpfy-search-form\n\t\t\tif ($search.is(\":visible\")) {\n\t\t\t\twidth += $search.width();\n\t\t\t}\n\n\t\t\t// mpfy-filter\n\t\t\tif ($filter.is(\":visible\")) {\n\t\t\t\twidth += $filter.width();\n\t\t\t}\n\n\t\t\treturn width;\n\t\t}\n\n\t\t/**\n * Get mpfy-multi-map-dropdown width\n * \n * @return int\n */\n\n\t}, {\n\t\tkey: 'get_mpfy_multi_map_dropdown_width',\n\t\tvalue: function get_mpfy_multi_map_dropdown_width() {\n\t\t\tvar width = 20; // margin left\n\n\t\t\tif (this.dropdown.is(\":visible\")) {\n\t\t\t\twidth += this.dropdown.width();\n\t\t\t}\n\n\t\t\treturn width;\n\t\t}\n\n\t\t/**\n * Set mpfy-multi-map-dropdown position\n * \n * @param string map_id Mapify map id.\n */\n\n\t}, {\n\t\tkey: 'set_multi_map_dropdown_position',\n\t\tvalue: function set_multi_map_dropdown_position(map_id) {\n\t\t\tvar controls_width = this.get_mpfy_controls_width(map_id);\n\t\t\tvar dropdown_width = this.get_mpfy_multi_map_dropdown_width();\n\t\t\tvar container_width = this.el.width();\n\t\t\tvar container_height = this.el.data('height');\n\t\t\tvar minimum_range = 10;\n\t\t\tvar dropdown_height = 70;\n\n\t\t\tif (controls_width + dropdown_width + minimum_range > container_width) {\n\t\t\t\tthis.dropdown.css('top', container_height - dropdown_height + 'px');\n\t\t\t} else {\n\t\t\t\tthis.dropdown.css('top', '0');\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn MpfyMultiMap;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/multi-map.js\n// module id = 11\n// module chunks = 0","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/isomorphic-fetch/fetch-npm-browserify.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _require = require('leaflet-geosearch'),\n OpenStreetMapProvider = _require.OpenStreetMapProvider;\n\nvar CustomOSMProvider = function (_OpenStreetMapProvide) {\n _inherits(CustomOSMProvider, _OpenStreetMapProvide);\n\n function CustomOSMProvider() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, CustomOSMProvider);\n\n var _this = _possibleConstructorReturn(this, (CustomOSMProvider.__proto__ || Object.getPrototypeOf(CustomOSMProvider)).call(this, options));\n\n var host = 'https://nominatim.openstreetmap.org';\n _this.searchUrl = options.searchUrl || host + '/search';\n _this.reverseUrl = options.reverseUrl || host + '/reverse';\n return _this;\n }\n\n _createClass(CustomOSMProvider, [{\n key: 'endpoint',\n value: function endpoint(_ref) {\n var query = _ref.query,\n type = _ref.type,\n country = _ref.country,\n postalcode = _ref.postalcode;\n\n var params = typeof query === 'string' ? { q: query } : query;\n params.format = 'jsonv2';\n params.countrycodes = country;\n params.postalcode = postalcode;\n\n switch (type) {\n // RequestType.REVERSE === 1\n case 1:\n return this.getUrl(this.reverseUrl, params);\n\n default:\n return this.getUrl(this.searchUrl, params);\n }\n }\n }, {\n key: 'parse',\n value: function parse(response) {\n var records = Array.isArray(response.data) ? response.data : [response.data];\n\n return records.map(function (r) {\n return {\n x: Number(r.lon),\n y: Number(r.lat),\n label: r.display_name,\n bounds: [[parseFloat(r.boundingbox[0]), parseFloat(r.boundingbox[2])], // s, w\n [parseFloat(r.boundingbox[1]), parseFloat(r.boundingbox[3])]],\n raw: r\n };\n });\n }\n }, {\n key: 'getParamString',\n value: function getParamString() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var set = Object.assign({}, this.options.params, params);\n return Object.keys(set).filter(function (key) {\n return !!set[key];\n }).map(function (key) {\n return encodeURIComponent(key) + '=' + encodeURIComponent(set[key]);\n }).join('&');\n }\n }, {\n key: 'getUrl',\n value: function getUrl(url, params) {\n return url + '?' + this.getParamString(params);\n }\n }, {\n key: 'search',\n value: function search(options) {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n var url = _this2.endpoint({\n query: options.query,\n // RequestType.SEARCH === 0\n type: 0,\n country: options.country,\n postalcode: options.postalcode\n });\n\n return resolve(fetch(url));\n }).then(function (request) {\n return request.json();\n }).then(function (json) {\n return _this2.parse({ data: json });\n });;\n }\n }]);\n\n return CustomOSMProvider;\n}(OpenStreetMapProvider);\n\nmodule.exports = CustomOSMProvider;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/osm-provider/index.js\n// module id = 13\n// module chunks = 0","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar GeocodingResult = function GeocodingResult(address, lat, lng) {\n\t_classCallCheck(this, GeocodingResult);\n\n\tthis.address = address;\n\tthis.lat = lat;\n\tthis.lng = lng;\n};\n\n;\n\nmodule.exports = GeocodingResult;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/geocoding-result.js\n// module id = 14\n// module chunks = 0","'use strict';\n\nrequire('isomorphic-fetch');\n\nvar $ = jQuery;\nvar $document = $(document);\nvar $window = $(window);\nvar utils = require('./utils.js');\n\n// load multi-map js module\nrequire('./multi-map.js');\n\nvar scrollTimer = null;\n\n$.mpfy = function (action, callOptions) {\n\tvar target = window.Mapify.instances;\n\n\tif (!$.isFunction(this)) {\n\t\tvar instance = $(this).data('mapify');\n\t\ttarget = instance;\n\t\tif (!instance) {\n\t\t\treturn this; // no map instance found for the selector\n\t\t}\n\t}\n\tif (!target) {\n\t\treturn this; // no target is available\n\t}\n\n\tvar method = 'action' + action.charAt(0).toUpperCase() + action.slice(1);\n\tif (typeof $.mpfy[method] != 'undefined') {\n\t\t$.mpfy[method](target, callOptions);\n\t} else {\n\t\tconsole.log('Mapify: Unknown action called: ' + action);\n\t}\n\treturn this;\n};\n$.fn.mpfy = $.mpfy;\n\n$.mpfy.actionRecenter = function (target) {\n\tif (typeof target.mapService == 'undefined') {\n\t\tfor (var id in target) {\n\t\t\tvar t = target[id];\n\t\t\tt.mapService.setCenter(t.settings.map.center);\n\t\t\tt.mapService.redraw();\n\t\t}\n\t} else {\n\t\ttarget.mapService.setCenter(target.settings.map.center);\n\t\ttarget.mapService.redraw();\n\t}\n\t$window.trigger('mapify.redraw');\n};\n\n$.mpfy.actionSetStrings = function (target, strings) {\n\tif (typeof target.mapService == 'undefined') {\n\t\tfor (var id in target) {\n\t\t\ttarget[id].settings.strings = $.extend(target[id].settings.strings, strings);\n\t\t}\n\t} else {\n\t\ttarget.settings.strings = $.extend(target.settings.strings, strings);\n\t}\n};\n\nwindow.Mapify = {\n\tMap: require('./map.js'),\n\tinstances: [],\n\tclasses: {\n\t\tpopUpOpen: 'mpfy-p-popup-active',\n\t\tscrollShow: 'mpfy-p-scroll-show-scroll',\n\t\topenBodyClass: 'mpfy-popup-open'\n\t},\n\tajaxUrl: window.wp_ajax_url,\n\tmobileWidth: 1022,\n\tisMobile: function isMobile() {\n\t\tvar screenWidth = $(window).width();\n\t\treturn screenWidth > Mapify.mobileWidth ? false : true;\n\t},\n\tfixPopupHeightOnInit: function fixPopupHeightOnInit() {\n\t\tvar imageLoader = $('.mpfy-p-slider-top img:first').attr('src');\n\n\t\t$('').attr('src', imageLoader).on('load', function () {\n\n\t\t\t$(this).remove(); // prevent memory leaks as @benweet suggested\n\n\t\t\tvar directionHeight = $('.mpfy-p-local-info').outerHeight();\n\t\t\tvar sliderHeight = $('.mpf-p-popup-holder .mpfy-p-slider').outerHeight();\n\n\t\t\tvar scrollBarHeight = sliderHeight - directionHeight;\n\n\t\t\t$('.mpfy-p-content .mpfy-p-scroll').css('height', scrollBarHeight + 'px');\n\t\t});\n\n\t\tif ($('.jspVerticalBar').length) {\n\t\t\t$('.mpfy-p-holder .mpfy-p-content').addClass('mpf-p-show-overlay');\n\t\t};\n\t},\n\tinitPopupSlider: function initPopupSlider() {\n\t\t// Changed below conditional, to fix the modal height on embed-video only content\n\t\tif ($('.mpfy-p-slider').length == 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar windowResized;\n\t\tvar $mainSlider = $('.mpfy-main-slider');\n\t\tvar $navigationSlider = $('.mpfy-navigation-slider');\n\n\t\t// Re init main slider on browser resize\n\t\t$(window).on('resize', function () {\n\t\t\tclearTimeout(windowResized);\n\n\t\t\twindowResized = setTimeout(function () {\n\t\t\t\tMapify.initSliders($mainSlider, $navigationSlider);\n\t\t\t}, 250);\n\t\t});\n\n\t\t// On main slider change / slide\n\t\t$mainSlider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\n\t\t\tif ($navigationSlider.hasClass('slick-initialized')) {\n\t\t\t\t$navigationSlider.slick('slickGoTo', nextSlide);\n\t\t\t\t$navigationSlider.find('.slick-slide').removeClass('slick-current-slide');\n\t\t\t\t$navigationSlider.find('.slick-slide').eq(nextSlide).addClass('slick-current-slide');\n\t\t\t}\n\t\t});\n\n\t\t// On click navigation item\n\t\t$navigationSlider.on('click', '.slick-slide', function () {\n\t\t\tvar selectedIndex = $(this).index();\n\t\t\t$mainSlider.slick('slickGoTo', selectedIndex);\n\t\t});\n\n\t\t// On arrow keypress\n\t\t$(document).keydown(function (e) {\n\t\t\tvar rightArrow = 39;\n\t\t\tvar leftArrow = 37;\n\n\t\t\tif ((e.which == rightArrow || e.which == leftArrow) && $mainSlider.hasClass('slick-initialized')) {\n\t\t\t\tif (e.which == rightArrow) {\n\t\t\t\t\t$mainSlider.slick('slickNext');\n\t\t\t\t} else if (e.which == leftArrow) {\n\t\t\t\t\t$mainSlider.slick('slickPrev');\n\t\t\t\t}\n\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t});\n\n\t\t// Initialize the navigation and main sliders\n\t\tMapify.initSliders($mainSlider, $navigationSlider);\n\t},\n\tinitSliders: function initSliders($mainSlider, $navigationSlider) {\n\t\tvar showNavigationSlider = true;\n\t\tvar navigationSlideralreadyShowedUp = $navigationSlider.hasClass('slick-initialized');\n\n\t\t// Initialize navigation slider we have more than one slide\n\t\tif (1 >= $navigationSlider.find('.holder').length || Mapify.isMobile()) {\n\t\t\tshowNavigationSlider = false;\n\t\t}\n\n\t\t/**\n * Whether to show navigation slider or not. \n * Init the main slider after the navigation slider has been initialized.\n * If the navigation slider can't be initialized, then show the main slider instead.\n */\n\t\tif (showNavigationSlider && !navigationSlideralreadyShowedUp) {\n\t\t\t$navigationSlider.on('init', function (slick) {\n\t\t\t\t$navigationSlider.find('.slick-slide').first().addClass('slick-current-slide');\n\t\t\t\tMapify.initMainSlider($mainSlider, $navigationSlider);\n\t\t\t});\n\n\t\t\t$navigationSlider.not('.slick-initialized').show().slick({\n\t\t\t\tslidesToShow: 7,\n\t\t\t\tslidesToScroll: 7,\n\t\t\t\tdots: false,\n\t\t\t\tarrows: true,\n\t\t\t\tcenterMode: false,\n\t\t\t\tinfinite: false,\n\t\t\t\tfocusOnSelect: false,\n\t\t\t\taccessibility: false,\n\t\t\t\tresponsive: [{\n\t\t\t\t\tbreakpoint: 415,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 3,\n\t\t\t\t\t\tslidesToScroll: 3,\n\t\t\t\t\t\tarrows: false\n\t\t\t\t\t}\n\t\t\t\t}]\n\t\t\t});\n\t\t} else {\n\t\t\tif (!showNavigationSlider && navigationSlideralreadyShowedUp) {\n\t\t\t\t$navigationSlider.hide().slick('unslick');\n\t\t\t}\n\n\t\t\tMapify.initMainSlider($mainSlider, $navigationSlider);\n\t\t}\n\t},\n\tinitMainSlider: function initMainSlider($mainSlider, $navigationSlider) {\n\t\tvar navigationHeight = Mapify.getNavigationSliderHeight($navigationSlider);\n\t\tvar screenHeight = $(window).height();\n\t\tvar space = Mapify.isMobile() ? 0 : 50; // The `50` variable is the space for the modal\n\t\tvar mainSliderHeight = screenHeight - navigationHeight - space;\n\n\t\t// reduce the slider height on mobile\n\t\tif (Mapify.isMobile()) {\n\t\t\tmainSliderHeight = mainSliderHeight * 70 / 100;\n\t\t}\n\n\t\t// destroy before re-init\n\t\tif ($mainSlider.hasClass('slick-initialized')) {\n\t\t\t$mainSlider.hide().slick('unslick');\n\t\t}\n\n\t\t// init the main slider with the calculated height\n\t\t$mainSlider.show().height(mainSliderHeight).slick({\n\t\t\tslidesToShow: 1,\n\t\t\tslidesToScroll: 1,\n\t\t\tarrows: true,\n\t\t\tadaptiveHeight: true,\n\t\t\tinfinite: true,\n\t\t\tfade: true,\n\t\t\tdots: false,\n\t\t\tresponsive: [{\n\t\t\t\tbreakpoint: Mapify.mobileWidth,\n\t\t\t\tsettings: {\n\t\t\t\t\tdots: 1 < $mainSlider.find('.holder').length ? true : false,\n\t\t\t\t\tfade: false\n\t\t\t\t}\n\t\t\t}]\n\t\t});\n\n\t\t// set modal content height\n\t\tMapify.setContentHeight();\n\n\t\t// set video dimension\n\t\tMapify.setVideoDimension($mainSlider);\n\t},\n\tgetMainSliderHeight: function getMainSliderHeight($mainSlider) {\n\t\tvar mainSliderHeight = 0;\n\n\t\tif ($mainSlider.length && $mainSlider.hasClass('slick-initialized')) {\n\t\t\tmainSliderHeight = $mainSlider.outerHeight();\n\t\t}\n\n\t\treturn mainSliderHeight;\n\t},\n\tgetNavigationSliderHeight: function getNavigationSliderHeight($navigationSlider) {\n\t\tvar navigationSliderHeight = 0;\n\n\t\tif ($navigationSlider.length && $navigationSlider.hasClass('slick-initialized') && !Mapify.isMobile()) {\n\t\t\tnavigationSliderHeight = $navigationSlider.outerHeight();\n\t\t}\n\n\t\treturn navigationSliderHeight;\n\t},\n\tgetSliderHeight: function getSliderHeight() {\n\t\tvar sliderHeight = 0;\n\n\t\tif ($('.mpfy-p-slider').length) {\n\t\t\tsliderHeight = $('.mpfy-p-slider').outerHeight();\n\t\t}\n\n\t\treturn sliderHeight;\n\t},\n\tgetSiderWidth: function getSiderWidth() {\n\t\tvar sliderWidth = 0;\n\n\t\tif ($('.mpfy-p-slider').length) {\n\t\t\tsliderWidth = $('.mpfy-p-slider').outerWidth();\n\t\t}\n\n\t\treturn sliderWidth;\n\t},\n\tgetLocationInfoHeight: function getLocationInfoHeight() {\n\t\tvar locationInfoHeight = 0;\n\n\t\tif ($('.mpfy-p-local-info').length) {\n\t\t\tlocationInfoHeight = $('.mpfy-p-local-info').outerHeight();\n\t\t}\n\n\t\treturn locationInfoHeight;\n\t},\n\tgetContentHeight: function getContentHeight() {\n\t\tvar sliderHeight = Mapify.getSliderHeight();\n\t\tvar locationInfoHeight = Mapify.getLocationInfoHeight();\n\n\t\tif (sliderHeight > locationInfoHeight) {\n\t\t\treturn sliderHeight - locationInfoHeight;\n\t\t}\n\t},\n\tgetVideoDimension: function getVideoDimension($mainSlider) {\n\t\tvar sliderWidth = Mapify.getSiderWidth();\n\t\tvar mainSliderHeight = Mapify.getMainSliderHeight($mainSlider);\n\t\tvar videoHeight = sliderWidth * 9 / 16; // 16:9 video size\n\t\tvideoHeight = mainSliderHeight > videoHeight ? videoHeight : mainSliderHeight;\n\t\tvar videoMarginTop = mainSliderHeight / 2 - videoHeight / 2;\n\n\t\treturn {\n\t\t\twidth: sliderWidth,\n\t\t\theight: videoHeight,\n\t\t\tmarginTop: videoMarginTop\n\t\t};\n\t},\n\tsetContentHeight: function setContentHeight() {\n\t\tif (!$('.mpfy-p-scroll').length) return;\n\n\t\tif (Mapify.isMobile()) {\n\t\t\t$('.mpfy-p-scroll').css('height', 'auto');\n\t\t} else {\n\t\t\t$('.mpfy-p-scroll').height(Mapify.getContentHeight());\n\t\t}\n\t},\n\tsetVideoDimension: function setVideoDimension($mainSlider) {\n\t\tvar $videoIframe = $mainSlider.find('.video-holder iframe');\n\n\t\tif ($videoIframe.length) {\n\t\t\tvar videoDimension = Mapify.getVideoDimension($mainSlider);\n\t\t\t$videoIframe.css({\n\t\t\t\t'width': videoDimension.width,\n\t\t\t\t'height': videoDimension.height,\n\t\t\t\t'margin-top': videoDimension.marginTop\n\t\t\t});\n\t\t}\n\t},\n\tcloseTooltips: function closeTooltips() {\n\t\t$('.mpfy-tooltip').trigger({\n\t\t\t'type': 'tooltip_close'\n\t\t});\n\t},\n\tcloseTooltipsAlt: function closeTooltipsAlt() {\n\t\t$('.mpfy-tooltip-image-orientation-left.mpfy-tooltip-with-thumbnail .mpfy-tooltip-image').each(function () {\n\t\t\tvar introImage = $(this).find('img').attr('src');\n\t\t\t$(this).css('background-image', 'url(' + introImage + ')');\n\t\t});\n\t},\n\tupdateSidebarForMobile: function updateSidebarForMobile() {\n\t\tif ($('#mpfy-p-sidebar-top').length == 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ($(window).width() <= 985) {\n\t\t\tif ($('#mpfy-p-sidebar-top > *').length > 0) {\n\t\t\t\t$('#mpfy-p-sidebar-top > *').remove().appendTo($('#mpfy-p-sidebar-bottom'));\n\t\t\t}\n\t\t} else if ($('#mpfy-p-sidebar-bottom > *').length > 0) {\n\t\t\t$('#mpfy-p-sidebar-bottom > *').remove().appendTo($('#mpfy-p-sidebar-top'));\n\t\t}\n\t},\n\tonDocReady: function onDocReady() {\n\t\t$document.on('click', 'a[data-mapify-action]', function (e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar mapId = $(this).attr('data-mapify-map-id');\n\t\t\tvar action = $(this).attr('data-mapify-action');\n\t\t\tvar value = $(this).attr('data-mapify-value');\n\t\t\t$document.trigger('mapify.action.' + action, {\n\t\t\t\tmapId: mapId,\n\t\t\t\tvalue: value\n\t\t\t});\n\t\t});\n\n\t\t$document.on('mapify.action.setMapTag', function (e, args) {\n\t\t\tMapify.closePopup();\n\n\t\t\tvar $container = args.mapId ? $('.mpfy-map-id-' + args.mapId) : $('body');\n\t\t\t$container.find('select[name=\"mpfy_tag\"] option[value=\"' + encodeURIComponent(args.value) + '\"]').each(function () {\n\t\t\t\t$(this).closest('.mpfy-container').data('mapify').filterByTag(args.value);\n\t\t\t});\n\t\t});\n\n\t\t$document.on('mapify.action.openPopup', function (e, args) {\n\t\t\tvar $a = $('a.mpfy-pin-id-' + args.value + ':first');\n\t\t\tif ($a.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ($a.hasClass('mpfy-external-link')) {\n\t\t\t\tvar target = $a.attr('target');\n\t\t\t\tif (target == '_self') {\n\t\t\t\t\twindow.location = $a.attr('href');\n\t\t\t\t} else {\n\t\t\t\t\twindow.open($a.attr('href'));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($a.attr('href') && $a.attr('href') !== '#') {\n\t\t\t\t\tMapify.openPopup($a.attr('href'));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$document.on('click', '.mpfy-p-popup-background', function (e) {\n\t\t\tMapify.closePopup();\n\t\t});\n\t},\n\n\tonWinLoad: function onWinLoad() {},\n\n\tshowLoading: function showLoading() {\n\t\tvar loading = $('.mpfy-p-loading');\n\t\tloading.show();\n\t},\n\n\thideLoading: function hideLoading() {\n\t\tvar loading = $('.mpfy-p-loading');\n\t\tloading.hide();\n\t},\n\n\topenPopup: function openPopup(url, callback) {\n\t\tMapify.closeTooltips();\n\t\tvar closePromise = Mapify.closePopup();\n\t\tvar response = '';\n\t\tvar popup = $('.mpfy-p-popup');\n\n\t\tvar requestPromise = Promise.resolve($.get({ url: url, headers: { 'X-Requested-With': 'XMLHttpRequest' } })).then(function (r) {\n\t\t\treturn response = r;\n\t\t});\n\n\t\tMapify.showLoading();\n\t\treturn Promise.all([closePromise, requestPromise]).then(function () {\n\t\t\tif ($(response).find('.mpfy-p-slider-top img').length > 0) {\n\t\t\t\tvar imageLoader = $(response).find('.mpfy-p-slider-top img:first').attr('src');\n\t\t\t\t$('').attr('src', imageLoader).on('load', function () {\n\t\t\t\t\t$(this).remove(); // prevent memory leaks as @benweet suggested\n\n\t\t\t\t\tMapify.hideLoading();\n\t\t\t\t\t$('html, body').addClass(Mapify.classes.openBodyClass);\n\n\t\t\t\t\tvar popup = $(response);\n\t\t\t\t\tpopup.appendTo('body');\n\n\t\t\t\t\tpopup.find('.mpfy-p-close').on('click touchstart', function (e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tMapify.closePopup();\n\t\t\t\t\t});\n\n\t\t\t\t\t$('body').trigger($.Event('mpfy_popup_opened', {\n\t\t\t\t\t\tmpfy: {\n\t\t\t\t\t\t\t'popup': popup\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\n\t\t\t\t\t// slider\n\t\t\t\t\tpopup.on('click touchstart', '.mpfy-p-slider-bottom a', function (e) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\tvar _pos = parseInt($(this).data('position'));\n\t\t\t\t\t\tif (!isNaN(_pos)) {\n\t\t\t\t\t\t\t$('.mpfy-p-slider-top ul.mpfy-p-slides').triggerHandler('slideTo', _pos);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// show the popup\n\n\t\t\t\t\tpopup.addClass(Mapify.classes.popUpOpen);\n\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tMapify.initPopupSlider();\n\t\t\t\t\t\t// Mapify.updateSidebarForMobile();\n\t\t\t\t\t}, 100);\n\n\t\t\t\t\tif ($('.mpfy-p-popup-active').length) {\n\t\t\t\t\t\tif ($(window).width() > 767) {\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show-background');\n\t\t\t\t\t\t\t}, 200);\n\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show');\n\t\t\t\t\t\t\t}, 700);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show-background');\n\t\t\t\t\t\t\t\t$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show-mobile');\n\t\t\t\t\t\t\t}, 500);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif (typeof stButtons != 'undefined') {\n\t\t\t\t\t\tstButtons.locateElements();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (callback != 'undefined' && callback) {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tMapify.hideLoading();\n\t\t\t\t$('html, body').addClass(Mapify.classes.openBodyClass);\n\n\t\t\t\tvar popup = $(response);\n\t\t\t\tpopup.appendTo('body');\n\n\t\t\t\tpopup.find('.mpfy-p-close').on('click touchstart', function (e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tMapify.closePopup();\n\t\t\t\t});\n\n\t\t\t\t$('body').trigger($.Event('mpfy_popup_opened', {\n\t\t\t\t\tmpfy: {\n\t\t\t\t\t\t'popup': popup\n\t\t\t\t\t}\n\t\t\t\t}));\n\n\t\t\t\t// slider\n\t\t\t\tpopup.on('click touchstart', '.mpfy-p-slider-bottom a', function (e) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tvar _pos = parseInt($(this).data('position'));\n\t\t\t\t\tif (!isNaN(_pos)) {\n\t\t\t\t\t\t$('.mpfy-p-slider-top ul.mpfy-p-slides').triggerHandler('slideTo', _pos);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// show the popup\n\n\t\t\t\tpopup.addClass(Mapify.classes.popUpOpen);\n\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tMapify.initPopupSlider();\n\t\t\t\t\t// Mapify.updateSidebarForMobile();\n\t\t\t\t}, 100);\n\n\t\t\t\tif ($('.mpfy-p-popup-active').length) {\n\t\t\t\t\tif ($(window).width() > 767) {\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show-background');\n\t\t\t\t\t\t}, 200);\n\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show');\n\t\t\t\t\t\t}, 700);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t/*$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show-background')*/\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show-background');\n\t\t\t\t\t\t\t$('.mpfy-p-popup-active').addClass('mpfy-p-popup-show-mobile');\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tif (typeof stButtons != 'undefined') {\n\t\t\t\t\tstButtons.locateElements();\n\t\t\t\t}\n\n\t\t\t\tif (callback != 'undefined' && callback) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosePopup: function closePopup() {\n\t\tif ($('.mpfy-p-popup').length == 0) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\t$('html, body').removeClass(Mapify.classes.openBodyClass);\n\t\t$('body').removeClass('mpf-location-info');\n\t\t$('.mpf-p-popup-holder').addClass('mpf-p-popup-remove');\n\t\t$('.mpf-p-popup-holder').removeClass('mpfy-p-popup-show');\n\t\t$('.mpfy-p-popup-active').removeClass('mpfy-p-popup-show-mobile');\n\n\t\tsetTimeout(function () {\n\t\t\t$('.mpf-p-popup-holder').removeClass('mpf-p-popup-remove');\n\t\t}, 300);\n\n\t\tsetTimeout(function () {\n\t\t\t$('.mpfy-p-popup-active').removeClass('mpfy-p-popup-show-background');\n\t\t}, 500);\n\n\t\tsetTimeout(function () {\n\t\t\t$('.mpf-p-popup-holder').remove();\n\t\t}, 650);\n\n\t\treturn Promise.delay(650);\n\t},\n\n\tshowLocationInformation: function showLocationInformation() {\n\t\t$('.mpfy-p-widget-title').on('click', function () {\n\t\t\t$('body').toggleClass('mpf-location-info');\n\t\t\tvar $locationInfoHeight = $('.mpfy-p-widget-location .mpfy-location-details').outerHeight();\n\t\t\tvar resetPadding = 0;\n\n\t\t\tif ($('body').hasClass('mpf-location-info')) {\n\t\t\t\t$('.mpf-location-info .mpfy-p-popup .mpfy-title').css('padding-top', $locationInfoHeight + 'px');\n\t\t\t} else {\n\t\t\t\t$('.mpfy-p-popup .mpfy-title').css('padding-top', resetPadding + 'px');\n\t\t\t}\n\t\t});\n\t},\n\n\tPromise: Promise,\n\tpreloadImage: utils.preloadImage\n};\n\n$document.ready(Mapify.onDocReady);\n$window.on('load', Mapify.onWinLoad);\n$window.on('load', Mapify.closeTooltipsAlt);\n\n$window.on('mpfy_popup_opened', function () {\n\tMapify.showLocationInformation();\n\tMapify.fixPopupHeightOnInit();\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/index.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar $ = jQuery;\n\nvar LocationList = function () {\n\tfunction LocationList($container, map) {\n\t\t_classCallCheck(this, LocationList);\n\n\t\tthis.$container = $container;\n\t\tthis.map = map;\n\t\tthis.settings = {\n\t\t\thideInDefaultView: JSON.parse(this.$container.attr('data-hide-in-default-view')),\n\t\t\tperPage: 3,\n\t\t\tcurrentPage: 0,\n\t\t\tpages: 1,\n\t\t\thiddenItemClass: 'mpfy-mll-filter-hidden'\n\t\t};\n\t\tthis.$pagination = this.$container.find('.mpfy-mll-pagination:first');\n\t\tthis.$items = this.$container.find('.mpfy-mll-location');\n\t\tthis.$list = this.$items.first().parent();\n\n\t\tvar perPage = parseInt(this.$pagination.attr('data-number'));\n\t\tperPage = isNaN(perPage) ? 3 : Math.abs(perPage);\n\t\tthis.settings.perPage = perPage;\n\n\t\tif (!this.settings.hideInDefaultView) {\n\t\t\tthis.toggleView(true);\n\t\t}\n\n\t\tthis.addEvents();\n\t\tthis.mirrorList();\n\t}\n\n\t_createClass(LocationList, [{\n\t\tkey: 'toggleView',\n\t\tvalue: function toggleView(show) {\n\t\t\tthis.$container.toggle(show);\n\t\t}\n\t}, {\n\t\tkey: 'mirrorList',\n\t\tvalue: function mirrorList(sortByDistanceTo) {\n\t\t\tsortByDistanceTo = typeof sortByDistanceTo === 'undefined' ? null : sortByDistanceTo;\n\t\t\tvar _this = this;\n\n\t\t\tfor (var i = 0; i < _this.map.pins.length; i++) {\n\t\t\t\tvar pin = _this.map.pins[i];\n\t\t\t\tvar visible = pin.isVisible();\n\t\t\t\tvar isBaseVisible = pin.visibilityConditions['base'];\n\n\t\t\t\tthis.$items.filter('.mpfy-mll-location[data-id=\"' + pin.model.id + '\"]').first().toggleClass(this.settings.hiddenItemClass, !visible && isBaseVisible);\n\t\t\t}\n\n\t\t\tthis.$items.sort(function (a, b) {\n\t\t\t\tif (sortByDistanceTo) {\n\t\t\t\t\tvar pinA = _this.map.getPinById($(a).attr('data-id'));\n\t\t\t\t\tvar distanceA = _this.map.mapService.getPinDistance(sortByDistanceTo.lat, sortByDistanceTo.lng, pinA);\n\n\t\t\t\t\tvar pinB = _this.map.getPinById($(b).attr('data-id'));\n\t\t\t\t\tvar distanceB = _this.map.mapService.getPinDistance(sortByDistanceTo.lat, sortByDistanceTo.lng, pinB);\n\n\t\t\t\t\tif (isNaN(distanceA) && isNaN(distanceB)) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (isNaN(distanceA)) {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (isNaN(distanceB)) {\n\t\t\t\t\t\treturn -1;\n\t\t\t\t\t}\n\t\t\t\t\treturn distanceA - distanceB;\n\t\t\t\t}\n\t\t\t\treturn parseInt($(a).attr('data-order')) - parseInt($(b).attr('data-order'));\n\t\t\t}).appendTo(this.$list);\n\n\t\t\tthis.calculatePagination();\n\t\t}\n\t}, {\n\t\tkey: 'calculatePagination',\n\t\tvalue: function calculatePagination() {\n\t\t\tthis.settings.pages = Math.ceil(this.$items.not('.' + this.settings.hiddenItemClass).length / this.settings.perPage);\n\t\t\tthis.settings.currentPage = 0;\n\n\t\t\tthis.$pagination.toggle(this.settings.pages > 1);\n\t\t\tthis.changePage(this.settings.currentPage);\n\t\t}\n\t}, {\n\t\tkey: 'changePage',\n\t\tvalue: function changePage(currentPage) {\n\t\t\tvar _this = this;\n\t\t\tthis.settings.currentPage = Math.max(0, Math.min(this.settings.pages - 1, currentPage));\n\n\t\t\tvar start = this.settings.currentPage * this.settings.perPage;\n\t\t\tvar end = start + this.settings.perPage;\n\n\t\t\tthis.$items.addClass('mpfy-mll-pagination-hidden');\n\t\t\tvar index = 0;\n\t\t\tthis.$items.each(function () {\n\t\t\t\tif (!$(this).hasClass(_this.settings.hiddenItemClass)) {\n\t\t\t\t\tif (index >= start && index <= end - 1) {\n\t\t\t\t\t\t$(this).removeClass('mpfy-mll-pagination-hidden');\n\t\t\t\t\t}\n\t\t\t\t\tindex++;\n\t\t\t\t\tif (index > end) {\n\t\t\t\t\t\treturn; // break\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$pagination.find('.mpfy-mll-pagination-current-page').text(this.settings.currentPage + 1);\n\t\t\tthis.$pagination.find('.mpfy-mll-pagination-max-page').text(this.settings.pages);\n\t\t}\n\t}, {\n\t\tkey: 'addEvents',\n\t\tvalue: function addEvents() {\n\t\t\tvar _this = this;\n\n\t\t\tthis.$container.find('.mpfy-mll-l-heading').click(function (e) {\n\t\t\t\tif ($(e.target).is('.mpfy-mll-l-categories a')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $parent = $(this).closest('.mpfy-mll-location');\n\t\t\t\t$parent.siblings('.mpfy-mll-location.active').find('.mpfy-mll-l-content').not($(this)).each(function () {\n\t\t\t\t\t$(this).slideUp().closest('.mpfy-mll-location').removeClass('active');\n\t\t\t\t});\n\n\t\t\t\tif ($parent.find('.mpfy-mll-l-content:first').is(':visible')) {\n\t\t\t\t\t$(this).closest('.mpfy-mll-location').removeClass('active');\n\t\t\t\t\t$parent.find('.mpfy-mll-l-content:first').slideUp();\n\t\t\t\t} else {\n\t\t\t\t\t$(this).closest('.mpfy-mll-location').addClass('active');\n\t\t\t\t\t$parent.find('.mpfy-mll-l-content:first').slideDown();\n\n\t\t\t\t\tvar pin = _this.map.getPinById($parent.attr('data-id'));\n\t\t\t\t\t_this.map.mapService.highlightPin(pin);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_this.map.$container.on('mapify.search.ended', function (e, args) {\n\t\t\t\tif (_this.settings.hideInDefaultView) {\n\t\t\t\t\t_this.toggleView(args.query.length > 0);\n\t\t\t\t}\n\t\t\t\t_this.mirrorList(_this.map.searchLastResult);\n\t\t\t});\n\n\t\t\t_this.map.$container.on('mapify.filter.ended', function (e, args) {\n\t\t\t\tif (_this.settings.hideInDefaultView) {\n\t\t\t\t\t_this.toggleView(args.tagId != 0);\n\t\t\t\t}\n\t\t\t\t_this.mirrorList();\n\t\t\t});\n\n\t\t\t_this.map.$container.on('mapify.useMyLocation.ended', function (e, args) {\n\t\t\t\t_this.toggleView(true);\n\t\t\t\t_this.mirrorList(_this.map.mapService.getCenter());\n\t\t\t});\n\n\t\t\t_this.$container.find('.mpfy-mll-button-prev').click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t_this.changePage(_this.settings.currentPage - 1);\n\t\t\t});\n\n\t\t\t_this.$container.find('.mpfy-mll-button-next').click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t_this.changePage(_this.settings.currentPage + 1);\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn LocationList;\n}();\n\nmodule.exports = LocationList;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/location-list.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar $ = jQuery;\nvar $document = $(document);\nvar CustomOSMProvider = require('../../osm-provider');\nvar MapService = require('./map-service.js');\nvar GeocodingResult = require('../geocoding-result.js');\nvar utils = require('../utils.js');\n\nvar LeafletOSMMapService = function (_MapService) {\n\t_inherits(LeafletOSMMapService, _MapService);\n\n\tfunction LeafletOSMMapService($canvas, settings) {\n\t\t_classCallCheck(this, LeafletOSMMapService);\n\n\t\tvar _this2 = _possibleConstructorReturn(this, (LeafletOSMMapService.__proto__ || Object.getPrototypeOf(LeafletOSMMapService)).call(this, $canvas, settings));\n\n\t\t_this2.layers = {\n\t\t\t'road': [L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n\t\t\t\tminZoom: 2,\n\t\t\t\tattribution: '© OpenStreetMap'\n\t\t\t})],\n\t\t\t'terrain': [L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}', {\n\t\t\t\tminZoom: 2,\n\t\t\t\tattribution: '© OpenStreetMap'\n\t\t\t})],\n\n\t\t\t'grayscale': [L.tileLayer('https://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png', {\n\t\t\t\tminZoom: 2,\n\t\t\t\tmaxZoom: 18,\n\t\t\t\tattribution: '© OpenStreetMap'\n\t\t\t})],\n\t\t\t'watercolor': [L.tileLayer('https://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.{ext}', {\n\t\t\t\tattribution: '© OpenStreetMap',\n\t\t\t\tsubdomains: 'abcd',\n\t\t\t\tminZoom: 2,\n\t\t\t\tmaxZoom: 16,\n\t\t\t\text: 'png'\n\t\t\t})],\n\t\t\t'ink': [L.tileLayer('https://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}.{ext}', {\n\t\t\t\tattribution: '© OpenStreetMap',\n\t\t\t\tsubdomains: 'abcd',\n\t\t\t\tminZoom: 2,\n\t\t\t\tmaxZoom: 20,\n\t\t\t\text: 'png'\n\t\t\t})],\n\t\t\t'pastel': [L.tileLayer('https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', {\n\t\t\t\tminZoom: 2,\n\t\t\t\tmaxZoom: 19,\n\t\t\t\tattribution: '© OpenStreetMap'\n\t\t\t})],\n\n\t\t\t'image': [L.tileLayer(settings.map.tileset + 'z{z}-tile_{y}_{x}.png', {\n\t\t\t\tminZoom: 0,\n\t\t\t\tmaxZoom: 4,\n\t\t\t\tnoWrap: true\n\t\t\t})]\n\t\t};\n\t\t_this2.settings = settings;\n\t\t_this2.markers = [];\n\t\t_this2.cluster = L.markerClusterGroup();\n\t\t_this2.geocoder = new CustomOSMProvider();\n\t\t_this2.$canvas = $canvas;\n\n\t\t_this2.worldBounds = [[-85, -180], // Southwest coordinates\n\t\t[85, 180] // Northeast coordinates\n\t\t];\n\t\t_this2.type = null;\n\n\t\t_this2.map = L.map(_this2.$canvas.get(0), {\n\t\t\t'attributionControl': false,\n\t\t\t'zoomControl': false,\n\t\t\t'doubleClickZoom': false,\n\t\t\t'scrollWheelZoom': _this2.settings.zoom.enabled,\n\t\t\t'attribution': '',\n\t\t\t'maxBoundsViscosity': 0.9\n\t\t});\n\n\t\t_this2.map.on('dblclick', function (e) {\n\t\t\treturn $(_this2).trigger('dblclick', e.latlng);\n\t\t});\n\n\t\t_this2.map.addLayer(_this2.cluster);\n\n\t\t_this2.markersContainer = _this2.settings.cluster.enabled ? _this2.cluster : _this2.map;\n\n\t\t_this2.StealthLocateControl = L.Control.Locate.extend({\n\t\t\tonAdd: function onAdd(m) {\n\t\t\t\t// do not render a button\n\t\t\t\tthis._layer = this.options.layer || L.layerGroup();\n\t\t\t\tthis._layer.addTo(m);\n\t\t\t\tthis._event = undefined;\n\t\t\t\tthis._prevBounds = null;\n\n\t\t\t\tvar container = L.DomUtil.create('div');\n\t\t\t\tvar linkAndIcon = this.options.createButtonCallback(container, this.options);\n\t\t\t\tthis._link = linkAndIcon.link;\n\t\t\t\tthis._icon = linkAndIcon.icon;\n\n\t\t\t\tthis._resetVariables();\n\n\t\t\t\tthis._map.on('unload', this._unload, this);\n\n\t\t\t\treturn container;\n\t\t\t}\n\t\t});\n\n\t\t_this2.attributionControl = L.control.attribution({\n\t\t\tprefix: false,\n\t\t\tposition: 'bottomleft'\n\t\t});\n\t\t_this2.map.addControl(_this2.attributionControl);\n\n\t\t_this2.locateControl = new _this2.StealthLocateControl({\n\t\t\ticon: 'icon-null-class',\n\t\t\ticonLoading: 'icon-loading-null-class'\n\t\t});\n\t\t_this2.locateControl.addTo(_this2.map);\n\n\t\t_this2.$canvas.css({\n\t\t\t'background': _this2.settings.map.background\n\t\t});\n\t\treturn _this2;\n\t}\n\n\t_createClass(LeafletOSMMapService, [{\n\t\tkey: 'setType',\n\t\tvalue: function setType(type) {\n\t\t\tvar _this3 = this;\n\n\t\t\tfor (var layerType in this.layers) {\n\t\t\t\tvar layerGroup = this.layers[layerType];\n\t\t\t\tfor (var i = 0; i < layerGroup.length; i++) {\n\t\t\t\t\tthis.map.removeLayer(layerGroup[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < this.layers[type].length; i++) {\n\t\t\t\tthis.map.addLayer(this.layers[type][i]);\n\t\t\t}\n\n\t\t\tthis.type = type;\n\t\t\tsetTimeout(function () {\n\t\t\t\tif (type === 'image') {\n\t\t\t\t\t_this3.map.setMaxBounds(null);\n\t\t\t\t} else {\n\t\t\t\t\t_this3.map.setMaxBounds(_this3.worldBounds);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t}, {\n\t\tkey: 'getCenter',\n\t\tvalue: function getCenter() {\n\t\t\treturn this.map.getCenter();\n\t\t}\n\t}, {\n\t\tkey: 'setCenter',\n\t\tvalue: function setCenter(center) {\n\t\t\tvar _this = this;\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t_this.map.once('moveend', resolve);\n\t\t\t\t_this.map.panTo(center, {\n\t\t\t\t\treset: true,\n\t\t\t\t\tanimate: false,\n\t\t\t\t\tnoMoveStart: true\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'setZoom',\n\t\tvalue: function setZoom(zoom) {\n\t\t\tvar _this = this;\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (_this.map.getZoom() === zoom) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t_this.map.once('zoomend', resolve);\n\t\t\t\t_this.map.setZoom(zoom, {\n\t\t\t\t\treset: true,\n\t\t\t\t\tanimate: false\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getZoom',\n\t\tvalue: function getZoom() {\n\t\t\treturn this.map.getZoom();\n\t\t}\n\t}, {\n\t\tkey: 'addPinWithIcon',\n\t\tvalue: function addPinWithIcon(pin, icon) {\n\t\t\tvar _this = this;\n\t\t\tvar markerOptions = {\n\t\t\t\t'draggable': false,\n\t\t\t\t'riseOnHover': true\n\t\t\t};\n\t\t\tif (icon) {\n\t\t\t\tmarkerOptions.icon = icon;\n\t\t\t}\n\t\t\tif (pin.model.animatePinpoints && !this.settings.cluster.enabled) {\n\t\t\t\tmarkerOptions.bounceOnAdd = true;\n\t\t\t}\n\t\t\tvar marker = L.marker(pin.model.latlng, markerOptions);\n\t\t\tmarker._Mapify = pin;\n\t\t\tif (pin.isVisible()) {\n\t\t\t\tthis.markersContainer.addLayer(marker);\n\t\t\t}\n\t\t\tthis.markers.push(marker);\n\n\t\t\t// Events\n\t\t\tmarker.on('mouseover', function (e) {\n\t\t\t\tvar pin = this._Mapify;\n\t\t\t\tpin.mouseover = true;\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tpin.mouseover = false;\n\t\t\t\t});\n\t\t\t\t_this.showMarkerTooltip(this);\n\t\t\t});\n\n\t\t\tmarker.on('mouseout', function (e) {\n\t\t\t\tvar pin = this._Mapify;\n\t\t\t\tvar tooltip = pin.tooltip;\n\t\t\t\tif (!tooltip) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttooltip.node().trigger({\n\t\t\t\t\t'type': 'tooltip_mouseout'\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tmarker.on('click', function (e) {\n\t\t\t\tvar marker = this;\n\t\t\t\tvar pin = marker._Mapify;\n\t\t\t\tvar tooltip = pin.tooltip;\n\n\t\t\t\tvar hover = function hover() {\n\t\t\t\t\t_this.showMarkerTooltip(marker);\n\t\t\t\t};\n\n\t\t\t\tvar click = function click() {\n\t\t\t\t\t$document.trigger('mapify.action.openPopup', {\n\t\t\t\t\t\tvalue: pin.model.id\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tif (tooltip && !tooltip.node().is(':visible')) {\n\t\t\t\t\thover();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tclick();\n\t\t\t});\n\n\t\t\tif (pin.tooltip) {\n\t\t\t\tthis.map.on('movestart', function () {\n\t\t\t\t\tpin.tooltip.hide();\n\t\t\t\t});\n\t\t\t\tthis.map.on('moveend', function () {\n\t\t\t\t\tpin.tooltip.hide();\n\t\t\t\t});\n\t\t\t\tthis.map.on('zoomstart', function () {\n\t\t\t\t\tpin.tooltip.hide();\n\t\t\t\t});\n\t\t\t\tthis.map.on('zoomend', function () {\n\t\t\t\t\tpin.tooltip.hide();\n\t\t\t\t});\n\t\t\t\tthis.map.on('viewreset', function () {\n\t\t\t\t\tpin.tooltip.hide();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'addPin',\n\t\tvalue: function addPin(pin) {\n\t\t\tvar _this = this;\n\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onImageLoaded = function onImageLoaded() {\n\t\t\t\t\tvar width = pin.model.image.size ? pin.model.image.size[0] : 0;\n\t\t\t\t\tvar height = pin.model.image.size ? pin.model.image.size[1] : 0;\n\t\t\t\t\tif (!width) {\n\t\t\t\t\t\twidth = pin.image.width;\n\t\t\t\t\t\theight = pin.image.height;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar icon = L.icon({\n\t\t\t\t\t\t'iconUrl': pin.model.image.url,\n\t\t\t\t\t\t'iconAnchor': [width / 2, height]\n\t\t\t\t\t});\n\t\t\t\t\t_this.addPinWithIcon(pin, icon);\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tif (pin.model.image.url) {\n\t\t\t\t\tif (pin.image.complete) {\n\t\t\t\t\t\tonImageLoaded();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpin.image.onload = onImageLoaded;\n\t\t\t\t\t\tpin.image.onLoad = pin.image.onload;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t_this.addPinWithIcon(pin, null);\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'addPins',\n\t\tvalue: function addPins(pins) {\n\t\t\tvar promises = [];\n\t\t\tfor (var i = 0; i < pins.length; i++) {\n\t\t\t\tvar pin = pins[i];\n\t\t\t\tpromises.push(this.addPin(pin));\n\t\t\t}\n\t\t\treturn Promise.all(promises);\n\t\t}\n\t}, {\n\t\tkey: 'showTooltip',\n\t\tvalue: function showTooltip(tooltip, latLng, anchor) {\n\t\t\tvar $win = $(window);\n\t\t\tif (tooltip.node().is(':visible')) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar containerPoint = this.map.latLngToContainerPoint(latLng);\n\t\t\tvar left = this.$canvas.offset().left + containerPoint.x - Math.ceil(tooltip.node().width() / 2) + anchor[0];\n\t\t\tvar top = this.$canvas.offset().top + containerPoint.y - tooltip.node().height() + anchor[1];\n\n\t\t\tif ($win.width() >= 767 && tooltip.node().hasClass('mpfy-tooltip-image-orientation-left') && tooltip.node().hasClass('mpfy-tooltip-with-thumbnail')) {\n\t\t\t\tvar left = this.$canvas.offset().left + containerPoint.x - Math.ceil(tooltip.node().width() / 2 - 61) + anchor[0];\n\t\t\t};\n\n\t\t\tsetTimeout(function () {\n\t\t\t\ttooltip.node().trigger({\n\t\t\t\t\t'type': 'tooltip_mouseover',\n\t\t\t\t\t'settings': {\n\t\t\t\t\t\t'left': left,\n\t\t\t\t\t\t'top': top\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, 100);\n\t\t}\n\t}, {\n\t\tkey: 'showMarkerTooltip',\n\t\tvalue: function showMarkerTooltip(marker) {\n\t\t\tvar _this = this;\n\t\t\tvar latLng = marker.getLatLng();\n\t\t\tvar pin = marker._Mapify;\n\t\t\tvar tooltip = pin.tooltip;\n\n\t\t\tif (!tooltip) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar anchor = [0, -10];\n\t\t\tif (pin.model.image.url) {\n\t\t\t\tif (pin.model.image.anchor[1] > 0) {\n\t\t\t\t\tanchor[1] -= pin.model.image.anchor[1];\n\t\t\t\t} else {\n\t\t\t\t\tanchor[1] -= pin.image.height;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tanchor[1] = -50; // default pin height\n\t\t\t}\n\n\t\t\tif (utils.isPhone()) {\n\t\t\t\t// offset the position slightly so that the map is centered lower so there is more vertical space for the tooltip on mobile\n\n\t\t\t\tvar targetPoint = _this.map.project(latLng, _this.getZoom());\n\t\t\t\tvar targetLatLng = _this.map.unproject(targetPoint.add(L.point([0, -128])));\n\n\t\t\t\t_this.setCenter(targetLatLng).then(function () {\n\t\t\t\t\t_this.showTooltip(tooltip, latLng, anchor);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t_this.showTooltip(tooltip, latLng, anchor);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'geocode',\n\t\tvalue: function geocode(query) {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar country = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n\t\t\treturn this.geocoder.search({ query: query, country: country }).then(function (results) {\n\t\t\t\tif (results.length) {\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\n\t\t\t\treturn _this4.geocoder.search({ query: '', postalcode: query, country: country });\n\t\t\t}).then(function (results) {\n\t\t\t\tif (results.length) {\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\n\t\t\t\treturn _this4.geocoder.search({ query: query, postalcode: query, country: country });\n\t\t\t}).then(function (results) {\n\t\t\t\tvar filteredResults = results.map(function (result) {\n\t\t\t\t\treturn new GeocodingResult(result.label, result.y, result.x);\n\t\t\t\t});\n\n\t\t\t\treturn filteredResults;\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getPinsWithinRange',\n\t\tvalue: function getPinsWithinRange(lat, lng, rangeInMeters) {\n\t\t\tvar target = [lat, lng];\n\t\t\treturn this.markers.filter(function (marker) {\n\t\t\t\tvar distance = marker.getLatLng().distanceTo(target);\n\t\t\t\treturn distance <= rangeInMeters;\n\t\t\t}).map(function (marker) {\n\t\t\t\treturn marker._Mapify;\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getPinClosestTo',\n\t\tvalue: function getPinClosestTo(lat, lng) {\n\t\t\tvar lowestDistance = -1;\n\t\t\tvar closestPin = null;\n\n\t\t\tfor (var i = 0; i < this.markers.length; i++) {\n\t\t\t\tvar marker = this.markers[i];\n\t\t\t\tvar distance = marker.getLatLng().distanceTo([lat, lng]);\n\t\t\t\tif (lowestDistance < 0 || distance < lowestDistance) {\n\t\t\t\t\tlowestDistance = distance;\n\t\t\t\t\tclosestPin = marker._Mapify;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn closestPin;\n\t\t}\n\t}, {\n\t\tkey: 'getPinDistance',\n\t\tvalue: function getPinDistance(lat, lng, pin) {\n\t\t\tvar marker = this.getPinMarker(pin);\n\t\t\tvar distance = marker.getLatLng().distanceTo([lat, lng]);\n\t\t\treturn distance;\n\t\t}\n\t}, {\n\t\tkey: 'highlightPin',\n\t\tvalue: function highlightPin(pin) {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar _this = this;\n\t\t\tvar marker = this.getPinMarker(pin);\n\t\t\tif (!marker) {\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\n\t\t\treturn Promise.resolve().then(function () {\n\t\t\t\tvar promises = _this5.markers.map(function (marker) {\n\t\t\t\t\tvar currentPin = marker._Mapify;\n\t\t\t\t\tcurrentPin.setVisibility('base', true);\n\t\t\t\t\treturn _this.updatePinVisibility(currentPin);\n\t\t\t\t});\n\n\t\t\t\treturn Promise.all(promises);\n\t\t\t}).then(function () {\n\t\t\t\tif (!_this.settings.cluster.enabled) {\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\tvar zoomToLayer = Promise.promisify(_this.cluster.zoomToShowLayer, { context: _this.cluster });\n\t\t\t\treturn zoomToLayer(marker);\n\t\t\t}).then(function () {\n\t\t\t\treturn _this.setCenter(marker.getLatLng());\n\t\t\t}).then(function () {\n\t\t\t\treturn _this.showMarkerTooltip(marker);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getPinMarker',\n\t\tvalue: function getPinMarker(pin) {\n\t\t\tfor (var i = 0; i < this.markers.length; i++) {\n\t\t\t\tvar marker = this.markers[i];\n\t\t\t\tif (marker._Mapify === pin) {\n\t\t\t\t\treturn marker;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t}, {\n\t\tkey: 'fitPins',\n\t\tvalue: function fitPins(pins) {\n\t\t\tvar _this = this;\n\t\t\tif (pins.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar latLngs = pins.map(function (pin) {\n\t\t\t\treturn pin.model.latlng;\n\t\t\t});\n\t\t\tvar bounds = L.latLngBounds(latLngs);\n\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t_this.map.once('viewreset', resolve);\n\t\t\t\t_this.map.fitBounds(bounds, {\n\t\t\t\t\treset: true,\n\t\t\t\t\tanimate: false,\n\t\t\t\t\tnoMoveStart: true,\n\t\t\t\t\tmaxZoom: _this.map.getZoom(),\n\t\t\t\t\tpadding: [50, 50]\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'updatePinVisibility',\n\t\tvalue: function updatePinVisibility(pin) {\n\t\t\tvar _this = this;\n\t\t\tvar marker = _this.getPinMarker(pin);\n\t\t\tif (!marker) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (pin.isVisible()) {\n\t\t\t\t\tif (!_this.markersContainer.hasLayer(marker)) {\n\t\t\t\t\t\t// For some reason addLayer causes the marker to change it's LatLng\n\t\t\t\t\t\t// so we buffer it and reapply it\n\t\t\t\t\t\tvar markerLatLng = marker.getLatLng();\n\n\t\t\t\t\t\t_this.markersContainer.on('layeradd', resolve);\n\t\t\t\t\t\t_this.markersContainer.addLayer(marker);\n\t\t\t\t\t\tmarker.setLatLng(markerLatLng);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (_this.markersContainer.hasLayer(marker)) {\n\t\t\t\t\t\t_this.markersContainer.on('layerremove', resolve);\n\t\t\t\t\t\t_this.markersContainer.removeLayer(marker);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'locate',\n\t\tvalue: function locate() {\n\t\t\tvar _this6 = this;\n\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t_this6.map.once('locationfound', resolve);\n\t\t\t\t_this6.map.once('locationerror', reject);\n\t\t\t\t_this6.locateControl._onClick();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'redraw',\n\t\tvalue: function redraw() {\n\t\t\tthis.map._onResize();\n\t\t}\n\t}]);\n\n\treturn LeafletOSMMapService;\n}(MapService);\n\n;\n\nmodule.exports = LeafletOSMMapService;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/map-services/leaflet-osm-map-service.js\n// module id = 17\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MapService = function () {\n\tfunction MapService() {\n\t\t_classCallCheck(this, MapService);\n\t}\n\n\t_createClass(MapService, [{\n\t\tkey: 'construct',\n\t\tvalue: function construct($canvas, settings) {}\n\t}, {\n\t\tkey: 'setType',\n\t\tvalue: function setType(type) {}\n\t}, {\n\t\tkey: 'getCenter',\n\t\tvalue: function getCenter() {}\n\t}, {\n\t\tkey: 'setCenter',\n\t\tvalue: function setCenter(center) {}\n\t}, {\n\t\tkey: 'setZoom',\n\t\tvalue: function setZoom(zoom) {}\n\t}, {\n\t\tkey: 'getZoom',\n\t\tvalue: function getZoom() {}\n\t}, {\n\t\tkey: 'addPins',\n\t\tvalue: function addPins(pins) {}\n\t}, {\n\t\tkey: 'geocode',\n\t\tvalue: function geocode(query) {\n\t\t\tvar country = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\t\t}\n\t}, {\n\t\tkey: 'getPinsWithinRange',\n\t\tvalue: function getPinsWithinRange(lat, lng, rangeInMeters) {}\n\t}, {\n\t\tkey: 'getPinClosestTo',\n\t\tvalue: function getPinClosestTo(lat, lng) {}\n\t}, {\n\t\tkey: 'getPinDistance',\n\t\tvalue: function getPinDistance(lat, lng, pin) {}\n\t}, {\n\t\tkey: 'highlightPin',\n\t\tvalue: function highlightPin(pin) {}\n\t}, {\n\t\tkey: 'fitPins',\n\t\tvalue: function fitPins(pins) {}\n\t}, {\n\t\tkey: 'updatePinVisibility',\n\t\tvalue: function updatePinVisibility(pin) {}\n\t}, {\n\t\tkey: 'locate',\n\t\tvalue: function locate() {}\n\t}, {\n\t\tkey: 'redraw',\n\t\tvalue: function redraw() {}\n\t}]);\n\n\treturn MapService;\n}();\n\n;\n\nmodule.exports = MapService;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/map-services/map-service.js\n// module id = 18\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar $ = jQuery;\n\nvar Pin = function () {\n\tfunction Pin(model, tooltipSettings) {\n\t\tvar generalSettings = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\t\t_classCallCheck(this, Pin);\n\n\t\tthis.model = model;\n\t\tthis.map = null;\n\t\tthis.mouseover = false;\n\t\tthis.visibilityConditions = {\n\t\t\ttag: true,\n\t\t\tsearch: true,\n\t\t\tbase: !generalSettings.hideInitially\n\t\t};\n\n\t\t// Add a utility image object if the pin has an image\n\t\tvar pinImage = null;\n\t\tif (this.model.image.url) {\n\t\t\tpinImage = new Image();\n\t\t\tpinImage.src = this.model.image.url;\n\t\t}\n\t\tthis.image = pinImage;\n\n\t\t// Add a tooltip to the pin\n\t\tvar tooltip = null;\n\t\tif (this.model.tooltipEnabled) {\n\t\t\ttooltip = new MapifyTooltip({\n\t\t\t\tclasses: 'mpfy-tooltip ' + tooltipSettings.classes,\n\t\t\t\trgba: tooltipSettings.background,\n\t\t\t\tcontent: tooltipSettings.content,\n\t\t\t\tclose_behavior: tooltipSettings.closeBehavior,\n\t\t\t\tanimate: tooltipSettings.animate\n\t\t\t});\n\t\t}\n\t\tthis.tooltip = tooltip;\n\t}\n\n\t_createClass(Pin, [{\n\t\tkey: 'isVisible',\n\t\tvalue: function isVisible() {\n\t\t\tfor (var option in this.visibilityConditions) {\n\t\t\t\tvar condition = this.visibilityConditions[option];\n\n\t\t\t\tif (!condition) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\t}, {\n\t\tkey: 'setVisibility',\n\t\tvalue: function setVisibility(condition, visible) {\n\t\t\tthis.visibilityConditions[condition] = visible;\n\t\t}\n\t}]);\n\n\treturn Pin;\n}();\n\n;\n\nmodule.exports = Pin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/src/public/pin.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _leafletControl = require('./leafletControl');\n\nObject.defineProperty(exports, 'GeoSearchControl', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_leafletControl).default;\n }\n});\n\nvar _searchElement = require('./searchElement');\n\nObject.defineProperty(exports, 'SearchElement', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_searchElement).default;\n }\n});\n\nvar _bingProvider = require('./providers/bingProvider');\n\nObject.defineProperty(exports, 'BingProvider', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_bingProvider).default;\n }\n});\n\nvar _esriProvider = require('./providers/esriProvider');\n\nObject.defineProperty(exports, 'EsriProvider', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_esriProvider).default;\n }\n});\n\nvar _googleProvider = require('./providers/googleProvider');\n\nObject.defineProperty(exports, 'GoogleProvider', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_googleProvider).default;\n }\n});\n\nvar _openStreetMapProvider = require('./providers/openStreetMapProvider');\n\nObject.defineProperty(exports, 'OpenStreetMapProvider', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_openStreetMapProvider).default;\n }\n});\n\nvar _provider = require('./providers/provider');\n\nObject.defineProperty(exports, 'Provider', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_provider).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/index.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _nodentRuntime = require('nodent-runtime');\n\nvar _nodentRuntime2 = _interopRequireDefault(_nodentRuntime);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = LeafletControl;\n\nvar _lodash = require('lodash.debounce');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _searchElement = require('./searchElement');\n\nvar _searchElement2 = _interopRequireDefault(_searchElement);\n\nvar _resultList = require('./resultList');\n\nvar _resultList2 = _interopRequireDefault(_resultList);\n\nvar _domUtils = require('./domUtils');\n\nvar _constants = require('./constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultOptions = function defaultOptions() {\n return {\n position: 'topleft',\n style: 'button',\n showMarker: true,\n showPopup: false,\n popupFormat: function popupFormat(_ref) {\n var result = _ref.result;\n return '' + result.label;\n },\n marker: {\n icon: new L.Icon.Default(),\n draggable: false\n },\n maxMarkers: 1,\n retainZoomLevel: false,\n animateZoom: true,\n searchLabel: 'Enter address',\n notFoundMessage: 'Sorry, that address could not be found.',\n messageHideDelay: 3000,\n zoomLevel: 18,\n classNames: {\n container: 'leaflet-bar leaflet-control leaflet-control-geosearch',\n button: 'leaflet-bar-part leaflet-bar-part-single',\n resetButton: 'reset',\n msgbox: 'leaflet-bar message',\n form: '',\n input: ''\n },\n autoComplete: true,\n autoCompleteDelay: 250,\n autoClose: false,\n keepResult: false\n };\n};\n\nvar wasHandlerEnabled = {};\nvar mapHandlers = ['dragging', 'touchZoom', 'doubleClickZoom', 'scrollWheelZoom', 'boxZoom', 'keyboard'];\n\nvar Control = {\n initialize: function initialize(options) {\n var _this = this;\n\n this.markers = new L.FeatureGroup();\n this.handlersDisabled = false;\n\n this.options = _extends({}, defaultOptions(), options);\n\n var _options = this.options,\n style = _options.style,\n classNames = _options.classNames,\n searchLabel = _options.searchLabel,\n autoComplete = _options.autoComplete,\n autoCompleteDelay = _options.autoCompleteDelay;\n\n if (style !== 'button') {\n this.options.classNames.container += ' ' + options.style;\n }\n\n this.searchElement = new _searchElement2.default(_extends({}, this.options, {\n handleSubmit: function handleSubmit(query) {\n return _this.onSubmit(query);\n }\n }));\n\n var _searchElement$elemen = this.searchElement.elements,\n container = _searchElement$elemen.container,\n form = _searchElement$elemen.form,\n input = _searchElement$elemen.input;\n\n\n var button = (0, _domUtils.createElement)('a', classNames.button, container);\n button.title = searchLabel;\n button.href = '#';\n\n button.addEventListener('click', function (e) {\n _this.onClick(e);\n }, false);\n\n var resetButton = (0, _domUtils.createElement)('a', classNames.resetButton, form);\n resetButton.innerHTML = 'X';\n button.href = '#';\n resetButton.addEventListener('click', function () {\n _this.clearResults(null, true);\n }, false);\n\n if (autoComplete) {\n this.resultList = new _resultList2.default({\n handleClick: function handleClick(_ref2) {\n var result = _ref2.result;\n\n input.value = result.label;\n _this.onSubmit({ query: result.label, data: result });\n }\n });\n\n form.appendChild(this.resultList.elements.container);\n\n input.addEventListener('keyup', (0, _lodash2.default)(function (e) {\n return _this.autoSearch(e);\n }, autoCompleteDelay), true);\n input.addEventListener('keydown', function (e) {\n return _this.selectResult(e);\n }, true);\n input.addEventListener('keydown', function (e) {\n return _this.clearResults(e, true);\n }, true);\n }\n\n form.addEventListener('mouseenter', function (e) {\n return _this.disableHandlers(e);\n }, true);\n form.addEventListener('mouseleave', function (e) {\n return _this.restoreHandlers(e);\n }, true);\n\n this.elements = { button: button, resetButton: resetButton };\n },\n onAdd: function onAdd(map) {\n var _options2 = this.options,\n showMarker = _options2.showMarker,\n style = _options2.style;\n\n\n this.map = map;\n if (showMarker) {\n this.markers.addTo(map);\n }\n\n if (style === 'bar') {\n var form = this.searchElement.elements.form;\n\n var root = map.getContainer().querySelector('.leaflet-control-container');\n\n var container = (0, _domUtils.createElement)('div', 'leaflet-control-geosearch bar');\n container.appendChild(form);\n root.appendChild(container);\n this.elements.container = container;\n }\n\n return this.searchElement.elements.container;\n },\n onRemove: function onRemove() {\n var container = this.elements.container;\n\n if (container) {\n container.remove();\n }\n\n return this;\n },\n onClick: function onClick(event) {\n event.preventDefault();\n\n var _searchElement$elemen2 = this.searchElement.elements,\n container = _searchElement$elemen2.container,\n input = _searchElement$elemen2.input;\n\n\n if (container.classList.contains('active')) {\n (0, _domUtils.removeClassName)(container, 'active');\n this.clearResults();\n } else {\n (0, _domUtils.addClassName)(container, 'active');\n input.focus();\n }\n },\n disableHandlers: function disableHandlers(e) {\n var _this2 = this;\n\n var form = this.searchElement.elements.form;\n\n\n if (this.handlersDisabled || e && e.target !== form) {\n return;\n }\n\n this.handlersDisabled = true;\n mapHandlers.forEach(function (handler) {\n if (_this2.map[handler]) {\n wasHandlerEnabled[handler] = _this2.map[handler].enabled();\n _this2.map[handler].disable();\n }\n });\n },\n restoreHandlers: function restoreHandlers(e) {\n var _this3 = this;\n\n var form = this.searchElement.elements.form;\n\n\n if (!this.handlersDisabled || e && e.target !== form) {\n return;\n }\n\n this.handlersDisabled = false;\n mapHandlers.forEach(function (handler) {\n if (wasHandlerEnabled[handler]) {\n _this3.map[handler].enable();\n }\n });\n },\n selectResult: function selectResult(event) {\n if (![_constants.ENTER_KEY, _constants.ARROW_DOWN_KEY, _constants.ARROW_UP_KEY].includes(event.keyCode)) {\n return;\n }\n\n event.preventDefault();\n\n var input = this.searchElement.elements.input;\n\n\n var list = this.resultList;\n\n if (event.keyCode === _constants.ENTER_KEY) {\n var _item = list.select(list.selected);\n this.onSubmit({ query: input.value, data: _item });\n return;\n }\n\n var max = list.count() - 1;\n if (max < 0) {\n return;\n }\n\n // eslint-disable-next-line no-bitwise\n var next = event.code === 'ArrowDown' ? ~~list.selected + 1 : ~~list.selected - 1;\n // eslint-disable-next-line no-nested-ternary\n var idx = next < 0 ? max : next > max ? 0 : next;\n\n var item = list.select(idx);\n input.value = item.label;\n },\n clearResults: function clearResults(event) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (event && event.keyCode !== _constants.ESCAPE_KEY) {\n return;\n }\n\n var input = this.searchElement.elements.input;\n var _options3 = this.options,\n keepResult = _options3.keepResult,\n autoComplete = _options3.autoComplete;\n\n\n if (force || !keepResult) {\n input.value = '';\n this.markers.clearLayers();\n }\n\n if (autoComplete) {\n this.resultList.clear();\n }\n },\n autoSearch: function autoSearch(event) {\n return new Promise(function ($return, $error) {\n var query, provider, results;\n\n if (_constants.SPECIAL_KEYS.includes(event.keyCode)) {\n return $return();\n }\n\n query = event.target.value;\n provider = this.options.provider;\n\n\n if (query.length) {\n return provider.search({ query: query }).then(function ($await_2) {\n results = $await_2;\n this.resultList.render(results);\n return $If_1.call(this);\n }.$asyncbind(this, $error), $error);\n } else {\n this.resultList.clear();\n return $If_1.call(this);\n }\n\n function $If_1() {\n return $return();\n }\n }.$asyncbind(this));\n },\n onSubmit: function onSubmit(query) {\n return new Promise(function ($return, $error) {\n var provider, results;\n provider = this.options.provider;\n return provider.search(query).then(function ($await_3) {\n\n results = $await_3;\n\n if (results && results.length > 0) {\n this.showResult(results[0], query);\n }\n return $return();\n }.$asyncbind(this, $error), $error);\n }.$asyncbind(this));\n },\n showResult: function showResult(result, _ref3) {\n var query = _ref3.query;\n var autoClose = this.options.autoClose;\n\n\n var markers = Object.keys(this.markers._layers);\n if (markers.length >= this.options.maxMarkers) {\n this.markers.removeLayer(markers[0]);\n }\n\n var marker = this.addMarker(result, query);\n this.centerMap(result);\n\n this.map.fireEvent('geosearch/showlocation', {\n location: result,\n marker: marker\n });\n\n if (autoClose) {\n this.closeResults();\n }\n },\n closeResults: function closeResults() {\n var container = this.searchElement.elements.container;\n\n\n if (container.classList.contains('active')) {\n (0, _domUtils.removeClassName)(container, 'active');\n }\n\n this.restoreHandlers();\n this.clearResults();\n },\n addMarker: function addMarker(result, query) {\n var _this4 = this;\n\n var _options4 = this.options,\n options = _options4.marker,\n showPopup = _options4.showPopup,\n popupFormat = _options4.popupFormat;\n\n var marker = new L.Marker([result.y, result.x], options);\n var popupLabel = result.label;\n\n if (typeof popupFormat === 'function') {\n popupLabel = popupFormat({ query: query, result: result });\n }\n\n marker.bindPopup(popupLabel);\n\n this.markers.addLayer(marker);\n\n if (showPopup) {\n marker.openPopup();\n }\n\n if (options.draggable) {\n marker.on('dragend', function (args) {\n _this4.map.fireEvent('geosearch/marker/dragend', {\n location: marker.getLatLng(),\n event: args\n });\n });\n }\n\n return marker;\n },\n centerMap: function centerMap(result) {\n var _options5 = this.options,\n retainZoomLevel = _options5.retainZoomLevel,\n animateZoom = _options5.animateZoom;\n\n\n var resultBounds = new L.LatLngBounds(result.bounds);\n var bounds = resultBounds.isValid() ? resultBounds : this.markers.getBounds();\n\n if (!retainZoomLevel && resultBounds.isValid()) {\n this.map.fitBounds(bounds, { animate: animateZoom });\n } else {\n this.map.setView(bounds.getCenter(), this.getZoom(), { animate: animateZoom });\n }\n },\n getZoom: function getZoom() {\n var _options6 = this.options,\n retainZoomLevel = _options6.retainZoomLevel,\n zoomLevel = _options6.zoomLevel;\n\n return retainZoomLevel ? this.map.getZoom() : zoomLevel;\n }\n};\n\nfunction LeafletControl() {\n if (!L || !L.Control || !L.Control.extend) {\n throw new Error('Leaflet must be loaded before instantiating the GeoSearch control');\n }\n\n var LControl = L.Control.extend(Control);\n\n for (var _len = arguments.length, options = Array(_len), _key = 0; _key < _len; _key++) {\n options[_key] = arguments[_key];\n }\n\n return new (Function.prototype.bind.apply(LControl, [null].concat(options)))();\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/leafletControl.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _nodentRuntime = require('nodent-runtime');\n\nvar _nodentRuntime2 = _interopRequireDefault(_nodentRuntime);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _provider = require('./provider');\n\nvar _provider2 = _interopRequireDefault(_provider);\n\nvar _domUtils = require('../domUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Provider = function (_BaseProvider) {\n _inherits(Provider, _BaseProvider);\n\n function Provider() {\n _classCallCheck(this, Provider);\n\n return _possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n _createClass(Provider, [{\n key: 'endpoint',\n value: function endpoint() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n query = _ref.query,\n protocol = _ref.protocol,\n jsonp = _ref.jsonp;\n\n var params = this.options.params;\n\n\n var paramString = this.getParamString(_extends({}, params, {\n query: query,\n jsonp: jsonp\n }));\n\n return protocol + '//dev.virtualearth.net/REST/v1/Locations?' + paramString;\n }\n }, {\n key: 'parse',\n value: function parse(_ref2) {\n var data = _ref2.data;\n\n if (data.resourceSets.length === 0) {\n return [];\n }\n\n return data.resourceSets[0].resources.map(function (r) {\n return {\n x: r.point.coordinates[1],\n y: r.point.coordinates[0],\n label: r.address.formattedAddress,\n bounds: [[r.bbox[0], r.bbox[1]], // s, w\n [r.bbox[2], r.bbox[3]]],\n raw: r\n };\n });\n }\n }, {\n key: 'search',\n value: function search(_ref3) {\n return new Promise(function ($return, $error) {\n var query, protocol, jsonp, url, json;\n query = _ref3.query;\n\n protocol = ~location.protocol.indexOf('http') ? location.protocol : 'https:';\n\n jsonp = 'BING_JSONP_CB_' + Date.now();\n url = this.endpoint({ query: query, protocol: protocol, jsonp: jsonp });\n\n return (0, _domUtils.createScriptElement)(url, jsonp).then(function ($await_1) {\n json = $await_1;\n return $return(this.parse({ data: json }));\n }.$asyncbind(this, $error), $error);\n }.$asyncbind(this));\n }\n }]);\n\n return Provider;\n}(_provider2.default);\n\nexports.default = Provider;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/providers/bingProvider.js\n// module id = 22\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _provider = require('./provider');\n\nvar _provider2 = _interopRequireDefault(_provider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Provider = function (_BaseProvider) {\n _inherits(Provider, _BaseProvider);\n\n function Provider() {\n _classCallCheck(this, Provider);\n\n return _possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n _createClass(Provider, [{\n key: 'endpoint',\n value: function endpoint() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n query = _ref.query,\n protocol = _ref.protocol;\n\n var params = this.options.params;\n\n\n var paramString = this.getParamString(_extends({}, params, {\n f: 'json',\n text: query\n }));\n\n return protocol + '//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find?' + paramString;\n }\n }, {\n key: 'parse',\n value: function parse(_ref2) {\n var data = _ref2.data;\n\n return data.locations.map(function (r) {\n return {\n x: r.feature.geometry.x,\n y: r.feature.geometry.y,\n label: r.name,\n bounds: [[r.extent.ymin, r.extent.xmin], // s, w\n [r.extent.ymax, r.extent.xmax]],\n raw: r\n };\n });\n }\n }]);\n\n return Provider;\n}(_provider2.default);\n\nexports.default = Provider;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/providers/esriProvider.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _provider = require('./provider');\n\nvar _provider2 = _interopRequireDefault(_provider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Provider = function (_BaseProvider) {\n _inherits(Provider, _BaseProvider);\n\n function Provider() {\n _classCallCheck(this, Provider);\n\n return _possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n _createClass(Provider, [{\n key: 'endpoint',\n value: function endpoint() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n query = _ref.query,\n protocol = _ref.protocol;\n\n var params = this.options.params;\n\n\n var paramString = this.getParamString(_extends({}, params, {\n address: query\n }));\n\n // google requires a secure connection when using api keys\n var proto = params && params.key ? 'https:' : protocol;\n return proto + '//maps.googleapis.com/maps/api/geocode/json?' + paramString;\n }\n }, {\n key: 'parse',\n value: function parse(_ref2) {\n var data = _ref2.data;\n\n return data.results.map(function (r) {\n return {\n x: r.geometry.location.lng,\n y: r.geometry.location.lat,\n label: r.formatted_address,\n bounds: [[r.geometry.viewport.southwest.lat, r.geometry.viewport.southwest.lng], // s, w\n [r.geometry.viewport.northeast.lat, r.geometry.viewport.northeast.lng]],\n raw: r\n };\n });\n }\n }]);\n\n return Provider;\n}(_provider2.default);\n\nexports.default = Provider;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/providers/googleProvider.js\n// module id = 24\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _nodentRuntime = require('nodent-runtime');\n\nvar _nodentRuntime2 = _interopRequireDefault(_nodentRuntime);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _provider = require('./provider');\n\nvar _provider2 = _interopRequireDefault(_provider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Provider = function (_BaseProvider) {\n _inherits(Provider, _BaseProvider);\n\n function Provider() {\n _classCallCheck(this, Provider);\n\n return _possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n _createClass(Provider, [{\n key: 'endpoint',\n value: function endpoint() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n query = _ref.query;\n\n var params = this.options.params;\n\n\n var paramString = this.getParamString(_extends({}, params, {\n format: 'json',\n q: query\n }));\n\n return 'https://nominatim.openstreetmap.org/search?' + paramString;\n }\n }, {\n key: 'endpointReverse',\n value: function endpointReverse() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n data = _ref2.data;\n\n var params = this.options.params;\n\n\n var paramString = this.getParamString(_extends({}, params, {\n format: 'json',\n // eslint-disable-next-line camelcase\n osm_id: data.raw.osm_id,\n // eslint-disable-next-line camelcase\n osm_type: this.translateOsmType(data.raw.osm_type)\n }));\n\n return 'https://nominatim.openstreetmap.org/reverse?' + paramString;\n }\n }, {\n key: 'parse',\n value: function parse(_ref3) {\n var data = _ref3.data;\n\n return data.map(function (r) {\n return {\n x: r.lon,\n y: r.lat,\n label: r.display_name,\n bounds: [[parseFloat(r.boundingbox[0]), parseFloat(r.boundingbox[2])], // s, w\n [parseFloat(r.boundingbox[1]), parseFloat(r.boundingbox[3])]],\n raw: r\n };\n });\n }\n }, {\n key: 'search',\n value: function search(_ref4) {\n return new Promise(function ($return, $error) {\n var query, data, protocol, url, request, json;\n query = _ref4.query, data = _ref4.data;\n\n protocol = ~location.protocol.indexOf('http') ? location.protocol : 'https:';\n\n url = data ? this.endpointReverse({ data: data, protocol: protocol }) : this.endpoint({ query: query, protocol: protocol });\n\n return fetch(url).then(function ($await_1) {\n request = $await_1;\n return request.json().then(function ($await_2) {\n json = $await_2;\n return $return(this.parse({ data: data ? [json] : json }));\n }.$asyncbind(this, $error), $error);\n }.$asyncbind(this, $error), $error);\n }.$asyncbind(this));\n }\n }, {\n key: 'translateOsmType',\n value: function translateOsmType(type) {\n if (type === 'node') return 'N';\n if (type === 'way') return 'W';\n if (type === 'relation') return 'R';\n return ''; // Unknown\n }\n }]);\n\n return Provider;\n}(_provider2.default);\n\nexports.default = Provider;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/providers/openStreetMapProvider.js\n// module id = 25\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _domUtils = require('./domUtils');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar cx = function cx() {\n for (var _len = arguments.length, classnames = Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.join(' ').trim();\n};\n\nvar ResultList = function () {\n function ResultList() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$handleClick = _ref.handleClick,\n handleClick = _ref$handleClick === undefined ? function () {} : _ref$handleClick,\n _ref$classNames = _ref.classNames,\n classNames = _ref$classNames === undefined ? {} : _ref$classNames;\n\n _classCallCheck(this, ResultList);\n\n _initialiseProps.call(this);\n\n this.props = { handleClick: handleClick, classNames: classNames };\n this.selected = -1;\n\n var container = (0, _domUtils.createElement)('div', cx('results', classNames.container));\n var resultItem = (0, _domUtils.createElement)('div', cx(classNames.item));\n\n container.addEventListener('click', this.onClick, true);\n this.elements = { container: container, resultItem: resultItem };\n }\n\n _createClass(ResultList, [{\n key: 'render',\n value: function render() {\n var results = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var _elements = this.elements,\n container = _elements.container,\n resultItem = _elements.resultItem;\n\n this.clear();\n\n results.forEach(function (result, idx) {\n var child = resultItem.cloneNode(true);\n child.setAttribute('data-key', idx);\n child.innerHTML = result.label;\n container.appendChild(child);\n });\n\n if (results.length > 0) {\n (0, _domUtils.addClassName)(container, 'active');\n }\n\n this.results = results;\n }\n }, {\n key: 'select',\n value: function select(index) {\n var container = this.elements.container;\n\n // eslint-disable-next-line no-confusing-arrow\n\n Array.from(container.children).forEach(function (child, idx) {\n return idx === index ? (0, _domUtils.addClassName)(child, 'active') : (0, _domUtils.removeClassName)(child, 'active');\n });\n\n this.selected = index;\n return this.results[index];\n }\n }, {\n key: 'count',\n value: function count() {\n return this.results ? this.results.length : 0;\n }\n }, {\n key: 'clear',\n value: function clear() {\n var container = this.elements.container;\n\n this.selected = -1;\n\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n\n (0, _domUtils.removeClassName)(container, 'active');\n }\n }]);\n\n return ResultList;\n}();\n\nvar _initialiseProps = function _initialiseProps() {\n var _this = this;\n\n this.onClick = function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n target = _ref2.target;\n\n var handleClick = _this.props.handleClick;\n var container = _this.elements.container;\n\n\n if (target.parentNode !== container || !target.hasAttribute('data-key')) {\n return;\n }\n\n var idx = target.getAttribute('data-key');\n var result = _this.results[idx];\n handleClick({ result: result });\n };\n};\n\nexports.default = ResultList;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet-geosearch/lib/resultList.js\n// module id = 26\n// module chunks = 0","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \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 as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\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/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\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 number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash.debounce/index.js\n// module id = 27\n// module chunks = 0","module.exports = function() {\n function isThenable(obj) {\n return obj && (obj instanceof Object) && typeof obj.then===\"function\";\n }\n\n function resolution(p,r,how) {\n try {\n /* 2.2.7.1 */\n var x = how ? how(r):r ;\n\n if (p===x) /* 2.3.1 */\n return p.reject(new TypeError(\"Promise resolution loop\")) ;\n\n if (isThenable(x)) {\n /* 2.3.3 */\n x.then(function(y){\n resolution(p,y);\n },function(e){\n p.reject(e)\n }) ;\n } else {\n p.resolve(x) ;\n }\n } catch (ex) {\n /* 2.2.7.2 */\n p.reject(ex) ;\n }\n }\n\n function _unchained(v){}\n function thenChain(res,rej){\n this.resolve = res;\n this.reject = rej;\n }\n\n function Chained() {};\n Chained.prototype = {\n resolve:_unchained,\n reject:_unchained,\n then:thenChain\n };\n \n function then(res,rej){\n var chain = new Chained() ;\n try {\n this._resolver(function(value) {\n return isThenable(value) ? value.then(res,rej) : resolution(chain,value,res);\n },function(ex) {\n resolution(chain,ex,rej) ;\n }) ;\n } catch (ex) {\n resolution(chain,ex,rej);\n }\n return chain ;\n }\n\n function Thenable(resolver) {\n this._resolver = resolver ;\n this.then = then ;\n };\n\n Thenable.resolve = function(v){\n return Thenable.isThenable(v) ? v : {then:function(resolve){return resolve(v)}};\n };\n\n Thenable.isThenable = isThenable ;\n\n return Thenable ;\n} ;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/nodent-runtime/thenableFactory.js\n// module id = 28\n// module chunks = 0","/* This code is based on:\nzousan - A Lightning Fast, Yet Very Small Promise A+ Compliant Implementation\nhttps://github.com/bluejava/zousan\nAuthor: Glenn Crownover (http://www.bluejava.com)\nVersion 2.3.3\nLicense: MIT */\n\"use strict\";\nmodule.exports = function(tick){\n tick = tick || (typeof process===\"object\" && process.nextTick) || (typeof setImmediate===\"function\" && setImmediate) || function(f){setTimeout(f,0)};\n var soon = (function () {\n var fq = [], fqStart = 0, bufferSize = 1024;\n function callQueue() {\n while (fq.length - fqStart) {\n try { fq[fqStart]() } catch(ex) { /* console.error(ex) */ }\n fq[fqStart++] = undefined;\n if (fqStart === bufferSize) {\n fq.splice(0, bufferSize);\n fqStart = 0;\n }\n }\n }\n\n return function (fn) {\n fq.push(fn);\n if (fq.length - fqStart === 1)\n tick(callQueue);\n };\n })();\n\n function Zousan(func) {\n if (func) {\n var me = this;\n func(function (arg) {\n me.resolve(arg);\n }, function (arg) {\n me.reject(arg);\n });\n }\n }\n\n Zousan.prototype = {\n resolve: function (value) {\n if (this.state !== undefined)\n return;\n if (value === this)\n return this.reject(new TypeError(\"Attempt to resolve promise with self\"));\n var me = this;\n if (value && (typeof value === \"function\" || typeof value === \"object\")) {\n try {\n var first = 0;\n var then = value.then;\n if (typeof then === \"function\") {\n then.call(value, function (ra) {\n if (!first++) {\n me.resolve(ra);\n }\n }, function (rr) {\n if (!first++) {\n me.reject(rr);\n }\n });\n return;\n }\n } catch (e) {\n if (!first)\n this.reject(e);\n return;\n }\n }\n this.state = STATE_FULFILLED;\n this.v = value;\n if (me.c)\n soon(function () {\n for (var n = 0, l = me.c.length;n < l; n++)\n STATE_FULFILLED(me.c[n], value);\n });\n },\n reject: function (reason) {\n if (this.state !== undefined)\n return;\n this.state = STATE_REJECTED;\n this.v = reason;\n var clients = this.c;\n if (clients)\n soon(function () {\n for (var n = 0, l = clients.length;n < l; n++)\n STATE_REJECTED(clients[n], reason);\n });\n },\n then: function (onF, onR) {\n var p = new Zousan();\n var client = {\n y: onF,\n n: onR,\n p: p\n };\n if (this.state === undefined) {\n if (this.c)\n this.c.push(client);\n else\n this.c = [client];\n } else {\n var s = this.state, a = this.v;\n soon(function () {\n s(client, a);\n });\n }\n return p;\n }\n };\n\n function STATE_FULFILLED(c, arg) {\n if (typeof c.y === \"function\") {\n try {\n var yret = c.y.call(undefined, arg);\n c.p.resolve(yret);\n } catch (err) {\n c.p.reject(err);\n }\n } else\n c.p.resolve(arg);\n }\n\n function STATE_REJECTED(c, reason) {\n if (typeof c.n === \"function\") {\n try {\n var yret = c.n.call(undefined, reason);\n c.p.resolve(yret);\n } catch (err) {\n c.p.reject(err);\n }\n } else\n c.p.reject(reason);\n }\n\n Zousan.resolve = function (val) {\n if (val && (val instanceof Zousan))\n return val ;\n var z = new Zousan();\n z.resolve(val);\n return z;\n };\n Zousan.reject = function (err) {\n if (err && (err instanceof Zousan))\n return err ;\n var z = new Zousan();\n z.reject(err);\n return z;\n };\n\n Zousan.version = \"2.3.3-nodent\" ;\n return Zousan ;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/nodent-runtime/zousan.js\n// module id = 29\n// module chunks = 0","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a