UNPKG

106 kBSource Map (JSON)View Raw
1{
2 "version": 3,
3 "sources": [
4 "node_modules/browser-pack/_prelude.js",
5 "_stream_0.js",
6 "lib/browsers.js",
7 "lib/capabilities.js",
8 "lib/index.js",
9 "lib/os.js",
10 "lib/platform.js",
11 "lib/utils/Logger.js",
12 "lib/utils/currentScriptPath.js",
13 "lib/utils/getFirstMatch.js",
14 "lib/webcam.js",
15 "node_modules/json3/lib/json3.js",
16 "node_modules/native-promise-only/lib/npo.src.js",
17 "node_modules/process/browser.js",
18 "node_modules/timers-browserify/main.js",
19 "node_modules/uuid/lib/bytesToUuid.js",
20 "node_modules/uuid/lib/rng-browser.js",
21 "node_modules/uuid/v4.js"
22 ],
23 "names": [],
24 "mappings": "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eAMe;AACX;;;;;AAKA,EAAA,MANW,EAAA,SAAA,MAAA,GAMF;AACL,QAAI,SAAS,CAAT,YAAA,IAA0B,SAAS,CAAT,YAAA,CAA9B,gBAAA,EAAuE;AACnE,aAAO,SAAS,CAAT,YAAA,CAAA,gBAAA,GAAA,IAAA,CACG,UAAA,OAAA,EAAW;AACb,YAAM,MAAM,GAAZ,EAAA;;AAEA,aAAK,IAAI,CAAC,GAAV,CAAA,EAAgB,CAAC,GAAG,OAAO,CAA3B,MAAA,EAAoC,CAApC,EAAA,EAAyC;AACrC,cAAI,OAAO,CAAP,CAAO,CAAP,CAAA,IAAA,KAAJ,YAAA,EAAsC;AAClC,gBAAM,IAAI,GAAG,OAAO,CAAP,CAAO,CAAP,CAAA,KAAA,GAAmB,OAAO,CAAP,CAAO,CAAP,CAAnB,KAAA,GAAb,SAAA;AACA,YAAA,MAAM,CAAN,IAAA,CAAA,IAAA;AACH;AACJ;;AAED,eAAA,MAAA;AAXR,OAAO,CAAP;AAaH;;AAED,WAAO,OAAO,CAAP,OAAA,CAAP,EAAO,CAAP;AACH;AAxBU,C;;;;;ACNf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACt4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACrXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",
25 "file": "generated.js",
26 "sourceRoot": "",
27 "sourcesContent": [
28 "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()",
29 "\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _index = _interopRequireDefault(require(\"./lib/index\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*!\n * <%= name %> version: <%= version %>\n * Built on: <%= (new Date).toISOString() %>\n * Released under the Apache License, Version 2.0\n * @copyright Realeyes OU. All rights reserved.\n */\n\n/**\n * Exports public APIs.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n/**\n * Export EnvironmentDetector public API.\n */\nwindow.Realeyesit = window.Realeyesit || {};\nwindow.Realeyesit.EnvironmentDetector = {\n detect: _index[\"default\"]\n};\nvar _default = window.Realeyesit.EnvironmentDetector;\nexports[\"default\"] = _default;\n\n",
30 "/**\n * Browser detection.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n\nimport getFirstMatch from './utils/getFirstMatch';\n\n\n/**\n * Enum for the browsers that we can detect.\n *\n * @enum {string}\n */\nconst names = {\n OPERA: 'Opera',\n SAMSUNG_BROWSER: 'Samsung Internet for Android',\n YANDEX_BROWSER: 'Yandex Browser',\n PUFFIN: 'Puffin',\n K_MELEON: 'K-Meleon',\n WINDOWS_PHONE: 'Windows Phone',\n INTERNET_EXPLORER: 'Internet Explorer',\n MICROSOFT_EDGE: 'Microsoft Edge',\n FIREFOX: 'Firefox',\n AMAZON_SILK: 'Amazon Silk',\n PHANTOM_JS: 'PhantomJS',\n CHROMIUM: 'Chromium',\n CHROME: 'Chrome',\n ANDROID: 'Android',\n SAFARI: 'Safari',\n VIVALDI: 'Vivaldi',\n UC_BROWSER: 'UC Browser',\n SEAMONKEY: 'SeaMonkey',\n IOS_WEBVIEW: 'iOS WebView',\n UNKNOWN: 'Unknown',\n};\n\n\n/**\n * List of tests.\n */\nconst tests = [\n {\n browserName: names.VIVALDI,\n testRegex: /vivaldi/i,\n versionRegex: /(?:vivaldi)[\\s/](\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.UC_BROWSER,\n testRegex: /ucbrowser/i,\n versionRegex: /(?:ucbrowser)[\\s/](\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.SEAMONKEY,\n testRegex: /seamonkey/i,\n versionRegex: /(?:seamonkey)[\\s/](\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.OPERA,\n testRegex: /opera|opios|opr\\//i,\n versionRegex: /(?:opera |opios\\/|opr\\/)(\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.SAMSUNG_BROWSER,\n testRegex: /SamsungBrowser/i,\n versionRegex: /(?:SamsungBrowser)[\\s/](\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.YANDEX_BROWSER,\n testRegex: /yabrowser/i,\n versionRegex: /(?:yabrowser)[\\s/](\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.PUFFIN,\n testRegex: /puffin/i,\n versionRegex: /(?:puffin)[\\s/](\\d+(?:\\.\\d+)?)/i,\n },\n {\n browserName: names.K_MELEON,\n testRegex: /k-meleon/i,\n versionRegex: /(?:k-meleon)[\\s/](\\d+(?:\\.\\d+)+)/i,\n },\n {\n browserName: names.WINDOWS_PHONE,\n testRegex: /windows phone/i,\n versionRegex: /(?:iemobile|edge)\\/(\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.INTERNET_EXPLORER,\n testRegex: /msie|trident/i,\n versionRegex: /(?:msie |rv:)(\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.MICROSOFT_EDGE,\n testRegex: /chrome.+? edge/i,\n versionRegex: /edge\\/(\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.FIREFOX,\n testRegex: /firefox|iceweasel|fxios/i,\n versionRegex: /(?:firefox|iceweasel|fxios)[ /](\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.AMAZON_SILK,\n testRegex: /silk/i,\n versionRegex: /silk\\/(\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.PHANTOM_JS,\n testRegex: /phantom/i,\n versionRegex: /phantomjs\\/(\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.CHROMIUM,\n testRegex: /chromium/i,\n versionRegex: /(?:chromium)[\\s/](\\d+(?:\\.\\d+)?)/i,\n },\n {\n browserName: names.CHROME,\n testRegex: /chrome|crios|crmo/i,\n versionRegex: /(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.ANDROID,\n testRegex: /android/i,\n versionRegex: null,\n },\n {\n browserName: names.SAFARI,\n testRegex: /safari/i,\n versionRegex: /version\\/(\\d+(\\.\\d+)?)/i,\n },\n {\n browserName: names.IOS_WEBVIEW,\n testRegex: /(iPhone|iPad).*AppleWebKit(?!.*Safari)/i,\n versionRegex: null,\n },\n];\n\n\nexport default {\n names,\n\n /**\n * Detects current browser name and version.\n *\n * @param {string} ua User Agent string\n * @return {{\n * name: string,\n * version: ?string\n * }}\n */\n detect(ua) {\n for (let i = 0; i < tests.length; i++) {\n if (tests[i].testRegex.test(ua)) {\n return {\n name: tests[i].browserName,\n version: getFirstMatch(ua, tests[i].versionRegex) ||\n getFirstMatch(ua, /version\\/(\\d+(\\.\\d+)?)/i) ||\n null,\n };\n }\n }\n\n return {\n name: names.UNKNOWN,\n version: null,\n };\n },\n};\n",
31 "/**\n * Capabilities detection.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n\n/**\n * Enum for capabilities that we can detect.\n *\n * @enum\n */\nconst names = {\n GET_USER_MEDIA: 'navigator.getUserMedia',\n MEDIA_RECORDER: 'MediaRecorder',\n WEBCAM: 'webcam',\n DOCUMENT_ALL: 'document.all',\n DOCUMENT_QUERY_SELECTOR: 'document.querySelector',\n HTTP: 'http',\n HTTPS: 'https',\n LOCALHOST: 'localhost',\n};\n\n\n/**\n * List of tests.\n */\nconst tests = [\n {\n capabilityName: names.GET_USER_MEDIA,\n\n test() {\n return !!(navigator.getUserMedia\n || navigator.webkitGetUserMedia\n || navigator.mozGetUserMedia\n || navigator.msGetUserMedia\n || (navigator.mediaDevices && navigator.mediaDevices.getUserMedia));\n },\n },\n {\n capabilityName: names.MEDIA_RECORDER,\n\n test() {\n return typeof window.MediaRecorder === 'function';\n },\n },\n {\n capabilityName: names.DOCUMENT_ALL,\n\n test() {\n return document.querySelector !== undefined;\n },\n },\n {\n capabilityName: names.DOCUMENT_QUERY_SELECTOR,\n\n test() {\n return typeof document.querySelector === 'function';\n },\n },\n {\n capabilityName: names.HTTP,\n\n test() {\n return document.location.protocol === 'http:';\n },\n },\n {\n capabilityName: names.HTTPS,\n\n test() {\n return document.location.protocol === 'https:';\n },\n },\n {\n capabilityName: names.LOCALHOST,\n\n test() {\n return document.location.hostname === 'localhost' || document.location.hostname === '127.0.0.1';\n },\n },\n];\n\n\nexport default {\n names,\n\n /**\n * Returns the list of capabilities available in current browser.\n *\n * @return {Array.<string>}\n */\n detect() {\n const results = [];\n\n for (let i = 0; i < tests.length; i++) {\n if (tests[i].test()) {\n results.push(tests[i].capabilityName);\n }\n }\n\n return results;\n },\n};\n",
32 "/**\n * Environment detection function.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n\nimport browsers from './browsers';\nimport platform from './platform';\nimport os from './os';\nimport capabilities from './capabilities';\nimport webcams from './webcam';\nimport Logger from './utils/Logger';\n\n\n/**\n * @typedef {{\n * browser: {\n * name: string,\n * version: string,\n * },\n * platform: {\n * type: string,\n * },\n * os: {\n * name: string,\n * version: string,\n * },\n * webcams: Array.<string>,\n * capabilities: Array.<string>,\n * }} EnvironmentDetectionResult\n */\n\n\n/**\n * @typedef {{\n * logger: ?{\n * path: ?string,\n * disable: ?boolean,\n * },\n * }} EnvironmentDetectionOptions\n */\n\n\n/**\n * @param {?EnvironmentDetectionOptions} options Options\n * @return {Promise.<EnvironmentDetectionResult>}\n */\nexport default function detect(options = {}) {\n const ua = navigator.userAgent;\n const logger = new Logger(options.logger);\n\n logger.log('environment-detector started', options);\n\n return webcams.detect()\n .then(webcamsResult => {\n let result = {\n browser: browsers.detect(ua),\n platform: platform.detect(ua),\n os: os.detect(ua),\n webcams: webcamsResult,\n capabilities: capabilities.detect(),\n };\n\n // we can't detect ios_webview based on useragent string\n // we assume that if mobile safari 11+ is detected but without webrtc (getUserMedia) then it is a webview\n if(\n result.browser.name === browsers.names.SAFARI\n && result.browser.version > '11'\n && !result.capabilities.find(c => c === capabilities.names.GET_USER_MEDIA)\n ) {\n result.browser.name = browsers.names.IOS_WEBVIEW\n }\n\n logger.log('environment-detector result', result);\n\n return result;\n })\n .catch((e) => {\n logger.log('environment-detector failed', e);\n\n throw e;\n });\n}\n",
33 "/**\n * OS detection.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n\nimport getFirstMatch from './utils/getFirstMatch';\n\n\n/**\n * Enum for OSs that we can detect.\n *\n * @enum {string}\n */\nconst names = {\n WINDOWS_PHONE: 'windowsphone',\n IOS: 'ios',\n ANDROID: 'android',\n MAC_OS: 'macos',\n WINDOWS: 'windows',\n LINUX: 'linux',\n OPENBSD: 'openbsd',\n UNKNOWN: 'unknown',\n};\n\n\n/**\n * List of tests.\n */\nconst tests = [\n {\n osName: names.WINDOWS_PHONE,\n testRegex: /windows phone/i,\n getVersion(ua) {\n return getFirstMatch(ua, /windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i);\n },\n },\n {\n osName: names.IOS,\n testRegex: /(ipod|iphone|ipad)/i,\n getVersion(ua) {\n return getFirstMatch(ua, /os (\\d+([_\\s]\\d+)*) like mac os x/i).split('_').join('.');\n },\n },\n {\n osName: names.ANDROID,\n testRegex: /^((?!.*like android).*android)|silk/i,\n getVersion(ua) {\n return getFirstMatch(ua, /android[ /-](\\d+(\\.\\d+)*)/i);\n },\n },\n {\n osName: names.MAC_OS,\n testRegex: /macintosh/i,\n getVersion(ua) {\n return ua.replace(/.*?OS X (.*?)(\\)|;).*/, '$1').split('_').join('.');\n },\n },\n {\n osName: names.WINDOWS,\n testRegex: /windows/i,\n getVersion(ua) {\n return ua.replace(/.*?Windows (.*?)(\\)|;).*/, '$1');\n },\n },\n {\n osName: names.LINUX,\n testRegex: /linux/i,\n getVersion() { return null; },\n },\n {\n osName: names.OPENBSD,\n testRegex: /OpenBSD/i,\n getVersion() { return null; },\n },\n];\n\n\nexport default {\n names,\n\n /**\n * Returns the OS name and version.\n *\n * @param {string} ua User Agent string\n * @return {{\n * name: string,\n * version: ?string\n * }}\n */\n detect(ua) {\n for (let i = 0; i < tests.length; i++) {\n if (tests[i].testRegex.test(ua)) {\n return {\n name: tests[i].osName,\n version: tests[i].getVersion(ua) || getFirstMatch(ua, /version\\/(\\d+\\.\\d+)/i) || null,\n };\n }\n }\n\n return {\n name: names.UNKNOWN,\n version: null,\n };\n },\n};\n",
34 "/**\n * Platform detection.\n *\n * Based on code from https://github.com/ded/bowser by Dustin Diaz.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n\nimport getFirstMatch from './utils/getFirstMatch';\n\n\n/**\n * Enum for platform types that we can detect.\n *\n * @enum {string}\n */\nconst types = {\n MOBILE: 'mobile',\n TABLET: 'tablet',\n DESKTOP: 'desktop',\n};\n\n\nexport default {\n types,\n\n /**\n * Returns the platform type\n *\n * @param {string} ua User agent string\n * @return {{\n * type: string\n * }}\n */\n detect(ua) {\n const tablet = /tablet/i.test(ua);\n const mobile = !tablet && /[^-]mobi/i.test(ua);\n const ios = getFirstMatch(ua, /(ipod|iphone|ipad)/i).toLowerCase();\n const likeAndroid = /like android/i.test(ua);\n const android = !likeAndroid && /android/i.test(ua);\n const nexusMobile = /nexus\\s*[0-6]\\s*/i.test(ua);\n const nexusTablet = !nexusMobile && /nexus\\s*[0-9]+/i.test(ua);\n const androidVersion = getFirstMatch(ua, /android[ /-](\\d+(\\.\\d+)*)/i).split('.')[0];\n const silk = /silk/i.test(ua);\n\n if (\n tablet\n || nexusTablet\n || ios === 'ipad'\n || (android && (+androidVersion === 3 || (+androidVersion >= 4 && !mobile)))\n || silk\n ) {\n return { type: types.TABLET };\n } else if (mobile || nexusMobile) {\n return { type: types.MOBILE };\n }\n\n return { type: types.DESKTOP };\n },\n};\n",
35 "/**\n * Logger.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n\nimport Promise from 'native-promise-only';\nimport JSON from 'json3';\nimport uuidV4 from 'uuid/v4';\nimport currentScriptPath from './currentScriptPath';\n\n\nconst DEFAULT_LOGGER_PATH = `${currentScriptPath}log.gif`;\n\n\nexport default class Logger {\n /**\n * Creates a Logger instance.\n *\n * @param {string} path Path to the tracking pixel\n * @param {boolean} disable Pass true to disable logging\n * @param {string} sid Session ID\n */\n constructor({\n path = DEFAULT_LOGGER_PATH,\n disable = false,\n sid = uuidV4(),\n } = {}) {\n this.sid = sid;\n this.pending = Promise.resolve();\n this.path = path;\n this.disabled = disable;\n }\n\n /**\n * Sends the log message.\n *\n * @param {string} name Log message name\n * @param {Object} data Log message payload\n * @return {undefined}\n */\n log(name, data = {}) {\n if (this.disabled) {\n return;\n }\n\n const msg = {\n ts: +new Date(),\n sid: this.sid,\n name,\n data,\n };\n\n this.pending = this.pending.then(new Promise((resolve) => {\n const img = document.createElement('img');\n const done = () => {\n img.parentNode.removeChild(img);\n resolve();\n };\n img.style.position = 'absolute';\n img.style.top = '-10px';\n img.onload = done;\n img.onerror = done;\n img.src = `${this.path}?msg=${encodeURIComponent(JSON.stringify(msg))}`;\n document.body.appendChild(img);\n }));\n }\n}\n",
36 "/**\n * currentScriptPath helper.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n\n/**\n * Returns the current script path.\n *\n * @return {string}\n */\nfunction getPath() {\n if (document.currentScript == null) { // only == means null or undefined\n // Guess the script path in old browsers that do not support \"document.currentScript\" by parsing the \"src\"\n // property of the last script tag in the document this will only work if the environment-checker.js bundle was\n // included in the html document directly not using \"async\" of \"defer\" attributes.\n // This will also give wrong result if the script tag was\n // embedded dynamically and was not inserted after the last script tag in the document.\n //\n // If the environment-checker.js was embedded using one of the mentioned techniques please use the\n // EnvironmentDetectionOptions to pass the flash.path string to the library.\n const scripts = document.getElementsByTagName('script');\n const src = scripts[scripts.length - 1].src.split('?')[0];\n\n return `${src.split('/').slice(0, -1).join('/')}/`;\n }\n\n return `${document.currentScript.src.split('/').slice(0, -1).join('/')}/`;\n}\n\n\nexport default getPath();\n",
37 "/**\n * getFirstMatch helper.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\n\n/**\n * Returns the first match for the regexp.\n *\n * @param {string} str String\n * @param {RegExp} regex Regular expression used for matching\n * @return {string}\n */\nexport default (str, regex) => {\n const match = str.match(regex);\n\n if (match && match.length > 1) {\n return match[1];\n }\n\n return '';\n};\n",
38 "/**\n * Webcam detection.\n *\n * @copyright Realeyes OU. All rights reserved.\n */\n\nexport default {\n /**\n * Returns the array of detected webcams.\n *\n * @return {Promise.<Array.<string>>}\n */\n detect() {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n const result = [];\n\n for (let i = 0; i < devices.length; i++) {\n if (devices[i].kind === 'videoinput') {\n const name = devices[i].label ? devices[i].label : 'unknown';\n result.push(name);\n }\n }\n\n return result;\n });\n }\n\n return Promise.resolve([]);\n },\n};\n",
39 "/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */\n;(function () {\n // Detect the `define` function exposed by asynchronous module loaders. The\n // strict `define` check is necessary for compatibility with `r.js`.\n var isLoader = typeof define === \"function\" && define.amd;\n\n // A set of types used to distinguish objects from primitives.\n var objectTypes = {\n \"function\": true,\n \"object\": true\n };\n\n // Detect the `exports` object exposed by CommonJS implementations.\n var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;\n\n // Use the `global` object exposed by Node (including Browserify via\n // `insert-module-globals`), Narwhal, and Ringo as the default context,\n // and the `window` object in browsers. Rhino exports a `global` function\n // instead.\n var root = objectTypes[typeof window] && window || this,\n freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == \"object\" && global;\n\n if (freeGlobal && (freeGlobal[\"global\"] === freeGlobal || freeGlobal[\"window\"] === freeGlobal || freeGlobal[\"self\"] === freeGlobal)) {\n root = freeGlobal;\n }\n\n // Public: Initializes JSON 3 using the given `context` object, attaching the\n // `stringify` and `parse` functions to the specified `exports` object.\n function runInContext(context, exports) {\n context || (context = root[\"Object\"]());\n exports || (exports = root[\"Object\"]());\n\n // Native constructor aliases.\n var Number = context[\"Number\"] || root[\"Number\"],\n String = context[\"String\"] || root[\"String\"],\n Object = context[\"Object\"] || root[\"Object\"],\n Date = context[\"Date\"] || root[\"Date\"],\n SyntaxError = context[\"SyntaxError\"] || root[\"SyntaxError\"],\n TypeError = context[\"TypeError\"] || root[\"TypeError\"],\n Math = context[\"Math\"] || root[\"Math\"],\n nativeJSON = context[\"JSON\"] || root[\"JSON\"];\n\n // Delegate to the native `stringify` and `parse` implementations.\n if (typeof nativeJSON == \"object\" && nativeJSON) {\n exports.stringify = nativeJSON.stringify;\n exports.parse = nativeJSON.parse;\n }\n\n // Convenience aliases.\n var objectProto = Object.prototype,\n getClass = objectProto.toString,\n isProperty, forEach, undef;\n\n // Test the `Date#getUTC*` methods. Based on work by @Yaffle.\n var isExtended = new Date(-3509827334573292);\n try {\n // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical\n // results for certain dates in Opera >= 10.53.\n isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 &&\n // Safari < 2.0.2 stores the internal millisecond time value correctly,\n // but clips the values returned by the date methods to the range of\n // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).\n isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708;\n } catch (exception) {}\n\n // Internal: Determines whether the native `JSON.stringify` and `parse`\n // implementations are spec-compliant. Based on work by Ken Snyder.\n function has(name) {\n if (has[name] !== undef) {\n // Return cached feature test result.\n return has[name];\n }\n var isSupported;\n if (name == \"bug-string-char-index\") {\n // IE <= 7 doesn't support accessing string characters using square\n // bracket notation. IE 8 only supports this for primitives.\n isSupported = \"a\"[0] != \"a\";\n } else if (name == \"json\") {\n // Indicates whether both `JSON.stringify` and `JSON.parse` are\n // supported.\n isSupported = has(\"json-stringify\") && has(\"json-parse\");\n } else {\n var value, serialized = '{\"a\":[1,true,false,null,\"\\\\u0000\\\\b\\\\n\\\\f\\\\r\\\\t\"]}';\n // Test `JSON.stringify`.\n if (name == \"json-stringify\") {\n var stringify = exports.stringify, stringifySupported = typeof stringify == \"function\" && isExtended;\n if (stringifySupported) {\n // A test function object with a custom `toJSON` method.\n (value = function () {\n return 1;\n }).toJSON = value;\n try {\n stringifySupported =\n // Firefox 3.1b1 and b2 serialize string, number, and boolean\n // primitives as object literals.\n stringify(0) === \"0\" &&\n // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object\n // literals.\n stringify(new Number()) === \"0\" &&\n stringify(new String()) == '\"\"' &&\n // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or\n // does not define a canonical JSON representation (this applies to\n // objects with `toJSON` properties as well, *unless* they are nested\n // within an object or array).\n stringify(getClass) === undef &&\n // IE 8 serializes `undefined` as `\"undefined\"`. Safari <= 5.1.7 and\n // FF 3.1b3 pass this test.\n stringify(undef) === undef &&\n // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,\n // respectively, if the value is omitted entirely.\n stringify() === undef &&\n // FF 3.1b1, 2 throw an error if the given value is not a number,\n // string, array, object, Boolean, or `null` literal. This applies to\n // objects with custom `toJSON` methods as well, unless they are nested\n // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`\n // methods entirely.\n stringify(value) === \"1\" &&\n stringify([value]) == \"[1]\" &&\n // Prototype <= 1.6.1 serializes `[undefined]` as `\"[]\"` instead of\n // `\"[null]\"`.\n stringify([undef]) == \"[null]\" &&\n // YUI 3.0.0b1 fails to serialize `null` literals.\n stringify(null) == \"null\" &&\n // FF 3.1b1, 2 halts serialization if an array contains a function:\n // `[1, true, getClass, 1]` serializes as \"[1,true,],\". FF 3.1b3\n // elides non-JSON values from objects and arrays, unless they\n // define custom `toJSON` methods.\n stringify([undef, getClass, null]) == \"[null,null,null]\" &&\n // Simple serialization test. FF 3.1b1 uses Unicode escape sequences\n // where character escape codes are expected (e.g., `\\b` => `\\u0008`).\n stringify({ \"a\": [value, true, false, null, \"\\x00\\b\\n\\f\\r\\t\"] }) == serialized &&\n // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.\n stringify(null, value) === \"1\" &&\n stringify([1, 2], null, 1) == \"[\\n 1,\\n 2\\n]\" &&\n // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly\n // serialize extended years.\n stringify(new Date(-8.64e15)) == '\"-271821-04-20T00:00:00.000Z\"' &&\n // The milliseconds are optional in ES 5, but required in 5.1.\n stringify(new Date(8.64e15)) == '\"+275760-09-13T00:00:00.000Z\"' &&\n // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative\n // four-digit years instead of six-digit years. Credits: @Yaffle.\n stringify(new Date(-621987552e5)) == '\"-000001-01-01T00:00:00.000Z\"' &&\n // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond\n // values less than 1000. Credits: @Yaffle.\n stringify(new Date(-1)) == '\"1969-12-31T23:59:59.999Z\"';\n } catch (exception) {\n stringifySupported = false;\n }\n }\n isSupported = stringifySupported;\n }\n // Test `JSON.parse`.\n if (name == \"json-parse\") {\n var parse = exports.parse;\n if (typeof parse == \"function\") {\n try {\n // FF 3.1b1, b2 will throw an exception if a bare literal is provided.\n // Conforming implementations should also coerce the initial argument to\n // a string prior to parsing.\n if (parse(\"0\") === 0 && !parse(false)) {\n // Simple parsing test.\n value = parse(serialized);\n var parseSupported = value[\"a\"].length == 5 && value[\"a\"][0] === 1;\n if (parseSupported) {\n try {\n // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.\n parseSupported = !parse('\"\\t\"');\n } catch (exception) {}\n if (parseSupported) {\n try {\n // FF 4.0 and 4.0.1 allow leading `+` signs and leading\n // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow\n // certain octal literals.\n parseSupported = parse(\"01\") !== 1;\n } catch (exception) {}\n }\n if (parseSupported) {\n try {\n // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal\n // points. These environments, along with FF 3.1b1 and 2,\n // also allow trailing commas in JSON objects and arrays.\n parseSupported = parse(\"1.\") !== 1;\n } catch (exception) {}\n }\n }\n }\n } catch (exception) {\n parseSupported = false;\n }\n }\n isSupported = parseSupported;\n }\n }\n return has[name] = !!isSupported;\n }\n\n if (!has(\"json\")) {\n // Common `[[Class]]` name aliases.\n var functionClass = \"[object Function]\",\n dateClass = \"[object Date]\",\n numberClass = \"[object Number]\",\n stringClass = \"[object String]\",\n arrayClass = \"[object Array]\",\n booleanClass = \"[object Boolean]\";\n\n // Detect incomplete support for accessing string characters by index.\n var charIndexBuggy = has(\"bug-string-char-index\");\n\n // Define additional utility methods if the `Date` methods are buggy.\n if (!isExtended) {\n var floor = Math.floor;\n // A mapping between the months of the year and the number of days between\n // January 1st and the first of the respective month.\n var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n // Internal: Calculates the number of days between the Unix epoch and the\n // first day of the given month.\n var getDay = function (year, month) {\n return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400);\n };\n }\n\n // Internal: Determines if a property is a direct property of the given\n // object. Delegates to the native `Object#hasOwnProperty` method.\n if (!(isProperty = objectProto.hasOwnProperty)) {\n isProperty = function (property) {\n var members = {}, constructor;\n if ((members.__proto__ = null, members.__proto__ = {\n // The *proto* property cannot be set multiple times in recent\n // versions of Firefox and SeaMonkey.\n \"toString\": 1\n }, members).toString != getClass) {\n // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but\n // supports the mutable *proto* property.\n isProperty = function (property) {\n // Capture and break the object's prototype chain (see section 8.6.2\n // of the ES 5.1 spec). The parenthesized expression prevents an\n // unsafe transformation by the Closure Compiler.\n var original = this.__proto__, result = property in (this.__proto__ = null, this);\n // Restore the original prototype chain.\n this.__proto__ = original;\n return result;\n };\n } else {\n // Capture a reference to the top-level `Object` constructor.\n constructor = members.constructor;\n // Use the `constructor` property to simulate `Object#hasOwnProperty` in\n // other environments.\n isProperty = function (property) {\n var parent = (this.constructor || constructor).prototype;\n return property in this && !(property in parent && this[property] === parent[property]);\n };\n }\n members = null;\n return isProperty.call(this, property);\n };\n }\n\n // Internal: Normalizes the `for...in` iteration algorithm across\n // environments. Each enumerated key is yielded to a `callback` function.\n forEach = function (object, callback) {\n var size = 0, Properties, members, property;\n\n // Tests for bugs in the current environment's `for...in` algorithm. The\n // `valueOf` property inherits the non-enumerable flag from\n // `Object.prototype` in older versions of IE, Netscape, and Mozilla.\n (Properties = function () {\n this.valueOf = 0;\n }).prototype.valueOf = 0;\n\n // Iterate over a new instance of the `Properties` class.\n members = new Properties();\n for (property in members) {\n // Ignore all properties inherited from `Object.prototype`.\n if (isProperty.call(members, property)) {\n size++;\n }\n }\n Properties = members = null;\n\n // Normalize the iteration algorithm.\n if (!size) {\n // A list of non-enumerable properties inherited from `Object.prototype`.\n members = [\"valueOf\", \"toString\", \"toLocaleString\", \"propertyIsEnumerable\", \"isPrototypeOf\", \"hasOwnProperty\", \"constructor\"];\n // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable\n // properties.\n forEach = function (object, callback) {\n var isFunction = getClass.call(object) == functionClass, property, length;\n var hasProperty = !isFunction && typeof object.constructor != \"function\" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty;\n for (property in object) {\n // Gecko <= 1.0 enumerates the `prototype` property of functions under\n // certain conditions; IE does not.\n if (!(isFunction && property == \"prototype\") && hasProperty.call(object, property)) {\n callback(property);\n }\n }\n // Manually invoke the callback for each non-enumerable property.\n for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property));\n };\n } else if (size == 2) {\n // Safari <= 2.0.4 enumerates shadowed properties twice.\n forEach = function (object, callback) {\n // Create a set of iterated properties.\n var members = {}, isFunction = getClass.call(object) == functionClass, property;\n for (property in object) {\n // Store each property name to prevent double enumeration. The\n // `prototype` property of functions is not enumerated due to cross-\n // environment inconsistencies.\n if (!(isFunction && property == \"prototype\") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) {\n callback(property);\n }\n }\n };\n } else {\n // No bugs detected; use the standard `for...in` algorithm.\n forEach = function (object, callback) {\n var isFunction = getClass.call(object) == functionClass, property, isConstructor;\n for (property in object) {\n if (!(isFunction && property == \"prototype\") && isProperty.call(object, property) && !(isConstructor = property === \"constructor\")) {\n callback(property);\n }\n }\n // Manually invoke the callback for the `constructor` property due to\n // cross-environment inconsistencies.\n if (isConstructor || isProperty.call(object, (property = \"constructor\"))) {\n callback(property);\n }\n };\n }\n return forEach(object, callback);\n };\n\n // Public: Serializes a JavaScript `value` as a JSON string. The optional\n // `filter` argument may specify either a function that alters how object and\n // array members are serialized, or an array of strings and numbers that\n // indicates which properties should be serialized. The optional `width`\n // argument may be either a string or number that specifies the indentation\n // level of the output.\n if (!has(\"json-stringify\")) {\n // Internal: A map of control characters and their escaped equivalents.\n var Escapes = {\n 92: \"\\\\\\\\\",\n 34: '\\\\\"',\n 8: \"\\\\b\",\n 12: \"\\\\f\",\n 10: \"\\\\n\",\n 13: \"\\\\r\",\n 9: \"\\\\t\"\n };\n\n // Internal: Converts `value` into a zero-padded string such that its\n // length is at least equal to `width`. The `width` must be <= 6.\n var leadingZeroes = \"000000\";\n var toPaddedString = function (width, value) {\n // The `|| 0` expression is necessary to work around a bug in\n // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== \"0\"`.\n return (leadingZeroes + (value || 0)).slice(-width);\n };\n\n // Internal: Double-quotes a string `value`, replacing all ASCII control\n // characters (characters with code unit values between 0 and 31) with\n // their escaped equivalents. This is an implementation of the\n // `Quote(value)` operation defined in ES 5.1 section 15.12.3.\n var unicodePrefix = \"\\\\u00\";\n var quote = function (value) {\n var result = '\"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10;\n var symbols = useCharIndex && (charIndexBuggy ? value.split(\"\") : value);\n for (; index < length; index++) {\n var charCode = value.charCodeAt(index);\n // If the character is a control character, append its Unicode or\n // shorthand escape sequence; otherwise, append the character as-is.\n switch (charCode) {\n case 8: case 9: case 10: case 12: case 13: case 34: case 92:\n result += Escapes[charCode];\n break;\n default:\n if (charCode < 32) {\n result += unicodePrefix + toPaddedString(2, charCode.toString(16));\n break;\n }\n result += useCharIndex ? symbols[index] : value.charAt(index);\n }\n }\n return result + '\"';\n };\n\n // Internal: Recursively serializes an object. Implements the\n // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.\n var serialize = function (property, object, callback, properties, whitespace, indentation, stack) {\n var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result;\n try {\n // Necessary for host object support.\n value = object[property];\n } catch (exception) {}\n if (typeof value == \"object\" && value) {\n className = getClass.call(value);\n if (className == dateClass && !isProperty.call(value, \"toJSON\")) {\n if (value > -1 / 0 && value < 1 / 0) {\n // Dates are serialized according to the `Date#toJSON` method\n // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15\n // for the ISO 8601 date time string format.\n if (getDay) {\n // Manually compute the year, month, date, hours, minutes,\n // seconds, and milliseconds if the `getUTC*` methods are\n // buggy. Adapted from @Yaffle's `date-shim` project.\n date = floor(value / 864e5);\n for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++);\n for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++);\n date = 1 + date - getDay(year, month);\n // The `time` value specifies the time within the day (see ES\n // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used\n // to compute `A modulo B`, as the `%` operator does not\n // correspond to the `modulo` operation for negative numbers.\n time = (value % 864e5 + 864e5) % 864e5;\n // The hours, minutes, seconds, and milliseconds are obtained by\n // decomposing the time within the day. See section 15.9.1.10.\n hours = floor(time / 36e5) % 24;\n minutes = floor(time / 6e4) % 60;\n seconds = floor(time / 1e3) % 60;\n milliseconds = time % 1e3;\n } else {\n year = value.getUTCFullYear();\n month = value.getUTCMonth();\n date = value.getUTCDate();\n hours = value.getUTCHours();\n minutes = value.getUTCMinutes();\n seconds = value.getUTCSeconds();\n milliseconds = value.getUTCMilliseconds();\n }\n // Serialize extended years correctly.\n value = (year <= 0 || year >= 1e4 ? (year < 0 ? \"-\" : \"+\") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) +\n \"-\" + toPaddedString(2, month + 1) + \"-\" + toPaddedString(2, date) +\n // Months, dates, hours, minutes, and seconds should have two\n // digits; milliseconds should have three.\n \"T\" + toPaddedString(2, hours) + \":\" + toPaddedString(2, minutes) + \":\" + toPaddedString(2, seconds) +\n // Milliseconds are optional in ES 5.0, but required in 5.1.\n \".\" + toPaddedString(3, milliseconds) + \"Z\";\n } else {\n value = null;\n }\n } else if (typeof value.toJSON == \"function\" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, \"toJSON\"))) {\n // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the\n // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3\n // ignores all `toJSON` methods on these objects unless they are\n // defined directly on an instance.\n value = value.toJSON(property);\n }\n }\n if (callback) {\n // If a replacement function was provided, call it to obtain the value\n // for serialization.\n value = callback.call(object, property, value);\n }\n if (value === null) {\n return \"null\";\n }\n className = getClass.call(value);\n if (className == booleanClass) {\n // Booleans are represented literally.\n return \"\" + value;\n } else if (className == numberClass) {\n // JSON numbers must be finite. `Infinity` and `NaN` are serialized as\n // `\"null\"`.\n return value > -1 / 0 && value < 1 / 0 ? \"\" + value : \"null\";\n } else if (className == stringClass) {\n // Strings are double-quoted and escaped.\n return quote(\"\" + value);\n }\n // Recursively serialize objects and arrays.\n if (typeof value == \"object\") {\n // Check for cyclic structures. This is a linear search; performance\n // is inversely proportional to the number of unique nested objects.\n for (length = stack.length; length--;) {\n if (stack[length] === value) {\n // Cyclic structures cannot be serialized by `JSON.stringify`.\n throw TypeError();\n }\n }\n // Add the object to the stack of traversed objects.\n stack.push(value);\n results = [];\n // Save the current indentation level and indent one additional level.\n prefix = indentation;\n indentation += whitespace;\n if (className == arrayClass) {\n // Recursively serialize array elements.\n for (index = 0, length = value.length; index < length; index++) {\n element = serialize(index, value, callback, properties, whitespace, indentation, stack);\n results.push(element === undef ? \"null\" : element);\n }\n result = results.length ? (whitespace ? \"[\\n\" + indentation + results.join(\",\\n\" + indentation) + \"\\n\" + prefix + \"]\" : (\"[\" + results.join(\",\") + \"]\")) : \"[]\";\n } else {\n // Recursively serialize object members. Members are selected from\n // either a user-specified list of property names, or the object\n // itself.\n forEach(properties || value, function (property) {\n var element = serialize(property, value, callback, properties, whitespace, indentation, stack);\n if (element !== undef) {\n // According to ES 5.1 section 15.12.3: \"If `gap` {whitespace}\n // is not the empty string, let `member` {quote(property) + \":\"}\n // be the concatenation of `member` and the `space` character.\"\n // The \"`space` character\" refers to the literal space\n // character, not the `space` {width} argument provided to\n // `JSON.stringify`.\n results.push(quote(property) + \":\" + (whitespace ? \" \" : \"\") + element);\n }\n });\n result = results.length ? (whitespace ? \"{\\n\" + indentation + results.join(\",\\n\" + indentation) + \"\\n\" + prefix + \"}\" : (\"{\" + results.join(\",\") + \"}\")) : \"{}\";\n }\n // Remove the object from the traversed object stack.\n stack.pop();\n return result;\n }\n };\n\n // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.\n exports.stringify = function (source, filter, width) {\n var whitespace, callback, properties, className;\n if (objectTypes[typeof filter] && filter) {\n if ((className = getClass.call(filter)) == functionClass) {\n callback = filter;\n } else if (className == arrayClass) {\n // Convert the property names array into a makeshift set.\n properties = {};\n for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1));\n }\n }\n if (width) {\n if ((className = getClass.call(width)) == numberClass) {\n // Convert the `width` to an integer and create a string containing\n // `width` number of space characters.\n if ((width -= width % 1) > 0) {\n for (whitespace = \"\", width > 10 && (width = 10); whitespace.length < width; whitespace += \" \");\n }\n } else if (className == stringClass) {\n whitespace = width.length <= 10 ? width : width.slice(0, 10);\n }\n }\n // Opera <= 7.54u2 discards the values associated with empty string keys\n // (`\"\"`) only if they are used directly within an object member list\n // (e.g., `!(\"\" in { \"\": 1})`).\n return serialize(\"\", (value = {}, value[\"\"] = source, value), callback, properties, whitespace, \"\", []);\n };\n }\n\n // Public: Parses a JSON source string.\n if (!has(\"json-parse\")) {\n var fromCharCode = String.fromCharCode;\n\n // Internal: A map of escaped control characters and their unescaped\n // equivalents.\n var Unescapes = {\n 92: \"\\\\\",\n 34: '\"',\n 47: \"/\",\n 98: \"\\b\",\n 116: \"\\t\",\n 110: \"\\n\",\n 102: \"\\f\",\n 114: \"\\r\"\n };\n\n // Internal: Stores the parser state.\n var Index, Source;\n\n // Internal: Resets the parser state and throws a `SyntaxError`.\n var abort = function () {\n Index = Source = null;\n throw SyntaxError();\n };\n\n // Internal: Returns the next token, or `\"$\"` if the parser has reached\n // the end of the source string. A token may be a string, number, `null`\n // literal, or Boolean literal.\n var lex = function () {\n var source = Source, length = source.length, value, begin, position, isSigned, charCode;\n while (Index < length) {\n charCode = source.charCodeAt(Index);\n switch (charCode) {\n case 9: case 10: case 13: case 32:\n // Skip whitespace tokens, including tabs, carriage returns, line\n // feeds, and space characters.\n Index++;\n break;\n case 123: case 125: case 91: case 93: case 58: case 44:\n // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at\n // the current position.\n value = charIndexBuggy ? source.charAt(Index) : source[Index];\n Index++;\n return value;\n case 34:\n // `\"` delimits a JSON string; advance to the next character and\n // begin parsing the string. String tokens are prefixed with the\n // sentinel `@` character to distinguish them from punctuators and\n // end-of-string tokens.\n for (value = \"@\", Index++; Index < length;) {\n charCode = source.charCodeAt(Index);\n if (charCode < 32) {\n // Unescaped ASCII control characters (those with a code unit\n // less than the space character) are not permitted.\n abort();\n } else if (charCode == 92) {\n // A reverse solidus (`\\`) marks the beginning of an escaped\n // control character (including `\"`, `\\`, and `/`) or Unicode\n // escape sequence.\n charCode = source.charCodeAt(++Index);\n switch (charCode) {\n case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:\n // Revive escaped control characters.\n value += Unescapes[charCode];\n Index++;\n break;\n case 117:\n // `\\u` marks the beginning of a Unicode escape sequence.\n // Advance to the first character and validate the\n // four-digit code point.\n begin = ++Index;\n for (position = Index + 4; Index < position; Index++) {\n charCode = source.charCodeAt(Index);\n // A valid sequence comprises four hexdigits (case-\n // insensitive) that form a single hexadecimal value.\n if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) {\n // Invalid Unicode escape sequence.\n abort();\n }\n }\n // Revive the escaped character.\n value += fromCharCode(\"0x\" + source.slice(begin, Index));\n break;\n default:\n // Invalid escape sequence.\n abort();\n }\n } else {\n if (charCode == 34) {\n // An unescaped double-quote character marks the end of the\n // string.\n break;\n }\n charCode = source.charCodeAt(Index);\n begin = Index;\n // Optimize for the common case where a string is valid.\n while (charCode >= 32 && charCode != 92 && charCode != 34) {\n charCode = source.charCodeAt(++Index);\n }\n // Append the string as-is.\n value += source.slice(begin, Index);\n }\n }\n if (source.charCodeAt(Index) == 34) {\n // Advance to the next character and return the revived string.\n Index++;\n return value;\n }\n // Unterminated string.\n abort();\n default:\n // Parse numbers and literals.\n begin = Index;\n // Advance past the negative sign, if one is specified.\n if (charCode == 45) {\n isSigned = true;\n charCode = source.charCodeAt(++Index);\n }\n // Parse an integer or floating-point value.\n if (charCode >= 48 && charCode <= 57) {\n // Leading zeroes are interpreted as octal literals.\n if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) {\n // Illegal octal literal.\n abort();\n }\n isSigned = false;\n // Parse the integer component.\n for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++);\n // Floats cannot contain a leading decimal point; however, this\n // case is already accounted for by the parser.\n if (source.charCodeAt(Index) == 46) {\n position = ++Index;\n // Parse the decimal component.\n for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);\n if (position == Index) {\n // Illegal trailing decimal.\n abort();\n }\n Index = position;\n }\n // Parse exponents. The `e` denoting the exponent is\n // case-insensitive.\n charCode = source.charCodeAt(Index);\n if (charCode == 101 || charCode == 69) {\n charCode = source.charCodeAt(++Index);\n // Skip past the sign following the exponent, if one is\n // specified.\n if (charCode == 43 || charCode == 45) {\n Index++;\n }\n // Parse the exponential component.\n for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);\n if (position == Index) {\n // Illegal empty exponent.\n abort();\n }\n Index = position;\n }\n // Coerce the parsed value to a JavaScript number.\n return +source.slice(begin, Index);\n }\n // A negative sign may only precede numbers.\n if (isSigned) {\n abort();\n }\n // `true`, `false`, and `null` literals.\n if (source.slice(Index, Index + 4) == \"true\") {\n Index += 4;\n return true;\n } else if (source.slice(Index, Index + 5) == \"false\") {\n Index += 5;\n return false;\n } else if (source.slice(Index, Index + 4) == \"null\") {\n Index += 4;\n return null;\n }\n // Unrecognized token.\n abort();\n }\n }\n // Return the sentinel `$` character if the parser has reached the end\n // of the source string.\n return \"$\";\n };\n\n // Internal: Parses a JSON `value` token.\n var get = function (value) {\n var results, hasMembers;\n if (value == \"$\") {\n // Unexpected end of input.\n abort();\n }\n if (typeof value == \"string\") {\n if ((charIndexBuggy ? value.charAt(0) : value[0]) == \"@\") {\n // Remove the sentinel `@` character.\n return value.slice(1);\n }\n // Parse object and array literals.\n if (value == \"[\") {\n // Parses a JSON array, returning a new JavaScript array.\n results = [];\n for (;; hasMembers || (hasMembers = true)) {\n value = lex();\n // A closing square bracket marks the end of the array literal.\n if (value == \"]\") {\n break;\n }\n // If the array literal contains elements, the current token\n // should be a comma separating the previous element from the\n // next.\n if (hasMembers) {\n if (value == \",\") {\n value = lex();\n if (value == \"]\") {\n // Unexpected trailing `,` in array literal.\n abort();\n }\n } else {\n // A `,` must separate each array element.\n abort();\n }\n }\n // Elisions and leading commas are not permitted.\n if (value == \",\") {\n abort();\n }\n results.push(get(value));\n }\n return results;\n } else if (value == \"{\") {\n // Parses a JSON object, returning a new JavaScript object.\n results = {};\n for (;; hasMembers || (hasMembers = true)) {\n value = lex();\n // A closing curly brace marks the end of the object literal.\n if (value == \"}\") {\n break;\n }\n // If the object literal contains members, the current token\n // should be a comma separator.\n if (hasMembers) {\n if (value == \",\") {\n value = lex();\n if (value == \"}\") {\n // Unexpected trailing `,` in object literal.\n abort();\n }\n } else {\n // A `,` must separate each object member.\n abort();\n }\n }\n // Leading commas are not permitted, object property names must be\n // double-quoted strings, and a `:` must separate each property\n // name and value.\n if (value == \",\" || typeof value != \"string\" || (charIndexBuggy ? value.charAt(0) : value[0]) != \"@\" || lex() != \":\") {\n abort();\n }\n results[value.slice(1)] = get(lex());\n }\n return results;\n }\n // Unexpected token encountered.\n abort();\n }\n return value;\n };\n\n // Internal: Updates a traversed object member.\n var update = function (source, property, callback) {\n var element = walk(source, property, callback);\n if (element === undef) {\n delete source[property];\n } else {\n source[property] = element;\n }\n };\n\n // Internal: Recursively traverses a parsed JSON object, invoking the\n // `callback` function for each value. This is an implementation of the\n // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.\n var walk = function (source, property, callback) {\n var value = source[property], length;\n if (typeof value == \"object\" && value) {\n // `forEach` can't be used to traverse an array in Opera <= 8.54\n // because its `Object#hasOwnProperty` implementation returns `false`\n // for array indices (e.g., `![1, 2, 3].hasOwnProperty(\"0\")`).\n if (getClass.call(value) == arrayClass) {\n for (length = value.length; length--;) {\n update(value, length, callback);\n }\n } else {\n forEach(value, function (property) {\n update(value, property, callback);\n });\n }\n }\n return callback.call(source, property, value);\n };\n\n // Public: `JSON.parse`. See ES 5.1 section 15.12.2.\n exports.parse = function (source, callback) {\n var result, value;\n Index = 0;\n Source = \"\" + source;\n result = get(lex());\n // If a JSON string contains multiple tokens, it is invalid.\n if (lex() != \"$\") {\n abort();\n }\n // Reset the parser state.\n Index = Source = null;\n return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[\"\"] = result, value), \"\", callback) : result;\n };\n }\n }\n\n exports[\"runInContext\"] = runInContext;\n return exports;\n }\n\n if (freeExports && !isLoader) {\n // Export for CommonJS environments.\n runInContext(root, freeExports);\n } else {\n // Export for web browsers and JavaScript engines.\n var nativeJSON = root.JSON,\n previousJSON = root[\"JSON3\"],\n isRestored = false;\n\n var JSON3 = runInContext(root, (root[\"JSON3\"] = {\n // Public: Restores the original value of the global `JSON` object and\n // returns a reference to the `JSON3` object.\n \"noConflict\": function () {\n if (!isRestored) {\n isRestored = true;\n root.JSON = nativeJSON;\n root[\"JSON3\"] = previousJSON;\n nativeJSON = previousJSON = null;\n }\n return JSON3;\n }\n }));\n\n root.JSON = {\n \"parse\": JSON3.parse,\n \"stringify\": JSON3.stringify\n };\n }\n\n // Export for asynchronous module loaders.\n if (isLoader) {\n define(function () {\n return JSON3;\n });\n }\n}).call(this);\n",
40 "/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n\n(function UMD(name,context,definition){\n\t// special form of UMD for polyfilling across evironments\n\tcontext[name] = context[name] || definition();\n\tif (typeof module != \"undefined\" && module.exports) { module.exports = context[name]; }\n\telse if (typeof define == \"function\" && define.amd) { define(function $AMD$(){ return context[name]; }); }\n})(\"Promise\",typeof global != \"undefined\" ? global : this,function DEF(){\n\t/*jshint validthis:true */\n\t\"use strict\";\n\n\tvar builtInProp, cycle, scheduling_queue,\n\t\tToString = Object.prototype.toString,\n\t\ttimer = (typeof setImmediate != \"undefined\") ?\n\t\t\tfunction timer(fn) { return setImmediate(fn); } :\n\t\t\tsetTimeout\n\t;\n\n\t// dammit, IE8.\n\ttry {\n\t\tObject.defineProperty({},\"x\",{});\n\t\tbuiltInProp = function builtInProp(obj,name,val,config) {\n\t\t\treturn Object.defineProperty(obj,name,{\n\t\t\t\tvalue: val,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: config !== false\n\t\t\t});\n\t\t};\n\t}\n\tcatch (err) {\n\t\tbuiltInProp = function builtInProp(obj,name,val) {\n\t\t\tobj[name] = val;\n\t\t\treturn obj;\n\t\t};\n\t}\n\n\t// Note: using a queue instead of array for efficiency\n\tscheduling_queue = (function Queue() {\n\t\tvar first, last, item;\n\n\t\tfunction Item(fn,self) {\n\t\t\tthis.fn = fn;\n\t\t\tthis.self = self;\n\t\t\tthis.next = void 0;\n\t\t}\n\n\t\treturn {\n\t\t\tadd: function add(fn,self) {\n\t\t\t\titem = new Item(fn,self);\n\t\t\t\tif (last) {\n\t\t\t\t\tlast.next = item;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfirst = item;\n\t\t\t\t}\n\t\t\t\tlast = item;\n\t\t\t\titem = void 0;\n\t\t\t},\n\t\t\tdrain: function drain() {\n\t\t\t\tvar f = first;\n\t\t\t\tfirst = last = cycle = void 0;\n\n\t\t\t\twhile (f) {\n\t\t\t\t\tf.fn.call(f.self);\n\t\t\t\t\tf = f.next;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tfunction schedule(fn,self) {\n\t\tscheduling_queue.add(fn,self);\n\t\tif (!cycle) {\n\t\t\tcycle = timer(scheduling_queue.drain);\n\t\t}\n\t}\n\n\t// promise duck typing\n\tfunction isThenable(o) {\n\t\tvar _then, o_type = typeof o;\n\n\t\tif (o != null &&\n\t\t\t(\n\t\t\t\to_type == \"object\" || o_type == \"function\"\n\t\t\t)\n\t\t) {\n\t\t\t_then = o.then;\n\t\t}\n\t\treturn typeof _then == \"function\" ? _then : false;\n\t}\n\n\tfunction notify() {\n\t\tfor (var i=0; i<this.chain.length; i++) {\n\t\t\tnotifyIsolated(\n\t\t\t\tthis,\n\t\t\t\t(this.state === 1) ? this.chain[i].success : this.chain[i].failure,\n\t\t\t\tthis.chain[i]\n\t\t\t);\n\t\t}\n\t\tthis.chain.length = 0;\n\t}\n\n\t// NOTE: This is a separate function to isolate\n\t// the `try..catch` so that other code can be\n\t// optimized better\n\tfunction notifyIsolated(self,cb,chain) {\n\t\tvar ret, _then;\n\t\ttry {\n\t\t\tif (cb === false) {\n\t\t\t\tchain.reject(self.msg);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (cb === true) {\n\t\t\t\t\tret = self.msg;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tret = cb.call(void 0,self.msg);\n\t\t\t\t}\n\n\t\t\t\tif (ret === chain.promise) {\n\t\t\t\t\tchain.reject(TypeError(\"Promise-chain cycle\"));\n\t\t\t\t}\n\t\t\t\telse if (_then = isThenable(ret)) {\n\t\t\t\t\t_then.call(ret,chain.resolve,chain.reject);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tchain.resolve(ret);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tchain.reject(err);\n\t\t}\n\t}\n\n\tfunction resolve(msg) {\n\t\tvar _then, self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\ttry {\n\t\t\tif (_then = isThenable(msg)) {\n\t\t\t\tschedule(function(){\n\t\t\t\t\tvar def_wrapper = new MakeDefWrapper(self);\n\t\t\t\t\ttry {\n\t\t\t\t\t\t_then.call(msg,\n\t\t\t\t\t\t\tfunction $resolve$(){ resolve.apply(def_wrapper,arguments); },\n\t\t\t\t\t\t\tfunction $reject$(){ reject.apply(def_wrapper,arguments); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\treject.call(def_wrapper,err);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\telse {\n\t\t\t\tself.msg = msg;\n\t\t\t\tself.state = 1;\n\t\t\t\tif (self.chain.length > 0) {\n\t\t\t\t\tschedule(notify,self);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(new MakeDefWrapper(self),err);\n\t\t}\n\t}\n\n\tfunction reject(msg) {\n\t\tvar self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\tself.msg = msg;\n\t\tself.state = 2;\n\t\tif (self.chain.length > 0) {\n\t\t\tschedule(notify,self);\n\t\t}\n\t}\n\n\tfunction iteratePromises(Constructor,arr,resolver,rejecter) {\n\t\tfor (var idx=0; idx<arr.length; idx++) {\n\t\t\t(function IIFE(idx){\n\t\t\t\tConstructor.resolve(arr[idx])\n\t\t\t\t.then(\n\t\t\t\t\tfunction $resolver$(msg){\n\t\t\t\t\t\tresolver(idx,msg);\n\t\t\t\t\t},\n\t\t\t\t\trejecter\n\t\t\t\t);\n\t\t\t})(idx);\n\t\t}\n\t}\n\n\tfunction MakeDefWrapper(self) {\n\t\tthis.def = self;\n\t\tthis.triggered = false;\n\t}\n\n\tfunction MakeDef(self) {\n\t\tthis.promise = self;\n\t\tthis.state = 0;\n\t\tthis.triggered = false;\n\t\tthis.chain = [];\n\t\tthis.msg = void 0;\n\t}\n\n\tfunction Promise(executor) {\n\t\tif (typeof executor != \"function\") {\n\t\t\tthrow TypeError(\"Not a function\");\n\t\t}\n\n\t\tif (this.__NPO__ !== 0) {\n\t\t\tthrow TypeError(\"Not a promise\");\n\t\t}\n\n\t\t// instance shadowing the inherited \"brand\"\n\t\t// to signal an already \"initialized\" promise\n\t\tthis.__NPO__ = 1;\n\n\t\tvar def = new MakeDef(this);\n\n\t\tthis[\"then\"] = function then(success,failure) {\n\t\t\tvar o = {\n\t\t\t\tsuccess: typeof success == \"function\" ? success : true,\n\t\t\t\tfailure: typeof failure == \"function\" ? failure : false\n\t\t\t};\n\t\t\t// Note: `then(..)` itself can be borrowed to be used against\n\t\t\t// a different promise constructor for making the chained promise,\n\t\t\t// by substituting a different `this` binding.\n\t\t\to.promise = new this.constructor(function extractChain(resolve,reject) {\n\t\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t\t}\n\n\t\t\t\to.resolve = resolve;\n\t\t\t\to.reject = reject;\n\t\t\t});\n\t\t\tdef.chain.push(o);\n\n\t\t\tif (def.state !== 0) {\n\t\t\t\tschedule(notify,def);\n\t\t\t}\n\n\t\t\treturn o.promise;\n\t\t};\n\t\tthis[\"catch\"] = function $catch$(failure) {\n\t\t\treturn this.then(void 0,failure);\n\t\t};\n\n\t\ttry {\n\t\t\texecutor.call(\n\t\t\t\tvoid 0,\n\t\t\t\tfunction publicResolve(msg){\n\t\t\t\t\tresolve.call(def,msg);\n\t\t\t\t},\n\t\t\t\tfunction publicReject(msg) {\n\t\t\t\t\treject.call(def,msg);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(def,err);\n\t\t}\n\t}\n\n\tvar PromisePrototype = builtInProp({},\"constructor\",Promise,\n\t\t/*configurable=*/false\n\t);\n\n\t// Note: Android 4 cannot use `Object.defineProperty(..)` here\n\tPromise.prototype = PromisePrototype;\n\n\t// built-in \"brand\" to signal an \"uninitialized\" promise\n\tbuiltInProp(PromisePrototype,\"__NPO__\",0,\n\t\t/*configurable=*/false\n\t);\n\n\tbuiltInProp(Promise,\"resolve\",function Promise$resolve(msg) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\t// note: best \"isPromise\" check that's practical for now\n\t\tif (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n\t\t\treturn msg;\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tresolve(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"reject\",function Promise$reject(msg) {\n\t\treturn new this(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\treject(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"all\",function Promise$all(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\t\tif (arr.length === 0) {\n\t\t\treturn Constructor.resolve([]);\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tvar len = arr.length, msgs = Array(len), count = 0;\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg) {\n\t\t\t\tmsgs[idx] = msg;\n\t\t\t\tif (++count === len) {\n\t\t\t\t\tresolve(msgs);\n\t\t\t\t}\n\t\t\t},reject);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"race\",function Promise$race(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg){\n\t\t\t\tresolve(msg);\n\t\t\t},reject);\n\t\t});\n\t});\n\n\treturn Promise;\n});\n",
41 "// 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",
42 "var nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\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(window, 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// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};",
43 "/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",
44 "// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n",
45 "var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n"
46 ]
47}
\No newline at end of file