From 031995dae125d947107aaa5127fbd2c22cbe4c9d Mon Sep 17 00:00:00 2001 From: Christoph Oberhofer Date: Tue, 19 Jul 2016 23:21:26 +0200 Subject: [PATCH] Sandbox: added production-config for webpack --- dist/quagga.js | 4620 ++++++++++++++----------- dist/quagga.js.map | 2 +- dist/quagga.min.js | 8 +- example/sandbox/index.html | 2 +- example/sandbox/package.json | 23 +- example/sandbox/webpack.config.min.js | 44 + lib/quagga.js | 4619 +++++++++++++----------- lib/quagga.js.map | 2 +- 8 files changed, 5427 insertions(+), 3893 deletions(-) create mode 100644 example/sandbox/webpack.config.min.js diff --git a/dist/quagga.js b/dist/quagga.js index 87f4564..2451e35 100644 --- a/dist/quagga.js +++ b/dist/quagga.js @@ -45,7 +45,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 196); +/******/ return __webpack_require__(__webpack_require__.s = 220); /******/ }) /************************************************************************/ /******/ ([ @@ -57,10 +57,12 @@ return /******/ (function(modules) { // webpackBootstrap * * @static * @memberOf _ + * @since 0.1.0 * @type {Function} * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, + * else `false`. * @example * * _.isArray([1, 2, 3]); @@ -231,14 +233,38 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 2 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {var checkGlobal = __webpack_require__(143); + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = checkGlobal(typeof global == 'object' && global); + + /** Detect free variable `self`. */ + var freeSelf = checkGlobal(typeof self == 'object' && self); + + /** Detect `this` as the global object. */ + var thisGlobal = checkGlobal(typeof this == 'object' && this); + + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || thisGlobal || Function('return this')(); + + module.e = root; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 3 */ /***/ function(module, exports, __webpack_require__) { /** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ + * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. @@ -264,54 +290,6 @@ return /******/ (function(modules) { // webpackBootstrap module.e = isObject; -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(module, global) {var checkGlobal = __webpack_require__(133); - - /** Used to determine if values are of the language type `Object`. */ - var objectTypes = { - 'function': true, - 'object': true - }; - - /** Detect free variable `exports`. */ - var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - - /** Detect free variable `module`. */ - var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global); - - /** Detect free variable `self`. */ - var freeSelf = checkGlobal(objectTypes[typeof self] && self); - - /** Detect free variable `window`. */ - var freeWindow = checkGlobal(objectTypes[typeof window] && window); - - /** Detect `this` as the global object. */ - var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - - /** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ - var root = freeGlobal || - ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || - freeSelf || thisGlobal || Function('return this')(); - - module.e = root; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(66)(module), (function() { return this; }()))) - /***/ }, /* 4 */ /***/ function(module, exports, __webpack_require__) { @@ -322,6 +300,7 @@ return /******/ (function(modules) { // webpackBootstrap * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. @@ -350,10 +329,10 @@ return /******/ (function(modules) { // webpackBootstrap /* 5 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ && __WEBPACK_IMPORTED_MODULE_0_lodash_merge__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_merge__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_merge__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_merge___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(9); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(11); var _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; }; @@ -727,35 +706,135 @@ return /******/ (function(modules) { // webpackBootstrap /* 6 */ /***/ function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(16), - root = __webpack_require__(3); + var baseIsNative = __webpack_require__(129), + getValue = __webpack_require__(160); - /* Built-in method references that are verified to be native. */ - var Map = getNative(root, 'Map'); + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; + } - module.e = Map; + module.e = getNative; /***/ }, /* 7 */ /***/ function(module, exports, __webpack_require__) { - var baseMerge = __webpack_require__(125), - createAssigner = __webpack_require__(142); + var isSymbol = __webpack_require__(28); + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0; + + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + module.e = toKey; + + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + var baseHas = __webpack_require__(59), + baseKeys = __webpack_require__(131), + indexKeys = __webpack_require__(67), + isArrayLike = __webpack_require__(26), + isIndex = __webpack_require__(22), + isPrototype = __webpack_require__(40); + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + var isProto = isPrototype(object); + if (!(isProto || isArrayLike(object))) { + return baseKeys(object); + } + var indexes = indexKeys(object), + skipIndexes = !!indexes, + result = indexes || [], + length = result.length; + + for (var key in object) { + if (baseHas(object, key) && + !(skipIndexes && (key == 'length' || isIndex(key, length))) && + !(isProto && key == 'constructor')) { + result.push(key); + } + } + return result; + } + + module.e = keys; + + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + var baseMerge = __webpack_require__(135), + createAssigner = __webpack_require__(153); /** * This method is like `_.assign` except that it recursively merges own and - * inherited enumerable properties of source objects into the destination - * object. Source properties that resolve to `undefined` are skipped if a - * destination value exists. Array and plain object properties are merged - * recursively.Other objects and value types are overridden by assignment. - * Source objects are applied from left to right. Subsequent sources - * overwrite property assignments of previous sources. + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. * * **Note:** This method mutates `object`. * * @static * @memberOf _ + * @since 0.5.0 * @category Object * @param {Object} object The destination object. * @param {...Object} [sources] The source objects. @@ -781,7 +860,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 8 */ +/* 10 */ /***/ function(module, exports, __webpack_require__) { /* harmony default export */ exports["a"] = { @@ -827,7 +906,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 9 */ +/* 11 */ /***/ function(module, exports, __webpack_require__) { function BarcodeReader(config, supplements) { @@ -1048,7 +1127,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = BarcodeReader; /***/ }, -/* 10 */ +/* 12 */ /***/ function(module, exports, __webpack_require__) { module.e = clone @@ -1067,10 +1146,10 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 11 */ +/* 13 */ /***/ function(module, exports, __webpack_require__) { - var isArrayLikeObject = __webpack_require__(32); + var isArrayLikeObject = __webpack_require__(73); /** `Object#toString` result references. */ var argsTag = '[object Arguments]'; @@ -1082,7 +1161,8 @@ return /******/ (function(modules) { // webpackBootstrap var hasOwnProperty = objectProto.hasOwnProperty; /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; @@ -1095,9 +1175,11 @@ return /******/ (function(modules) { // webpackBootstrap * * @static * @memberOf _ + * @since 0.1.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, + * else `false`. * @example * * _.isArguments(function() { return arguments; }()); @@ -1116,10 +1198,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 12 */ +/* 14 */ /***/ function(module, exports, __webpack_require__) { - var isObject = __webpack_require__(2); + var isObject = __webpack_require__(3); /** `Object#toString` result references. */ var funcTag = '[object Function]', @@ -1129,7 +1211,8 @@ return /******/ (function(modules) { // webpackBootstrap var objectProto = Object.prototype; /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; @@ -1139,9 +1222,11 @@ return /******/ (function(modules) { // webpackBootstrap * * @static * @memberOf _ + * @since 0.1.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, + * else `false`. * @example * * _.isFunction(_); @@ -1162,7 +1247,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 13 */ +/* 15 */ /***/ function(module, exports, __webpack_require__) { /* harmony default export */ exports["a"] = { @@ -1254,34 +1339,66 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 14 */ +/* 16 */ /***/ function(module, exports, __webpack_require__) { - var stackClear = __webpack_require__(165), - stackDelete = __webpack_require__(166), - stackGet = __webpack_require__(167), - stackHas = __webpack_require__(168), - stackSet = __webpack_require__(169); + var listCacheClear = __webpack_require__(176), + listCacheDelete = __webpack_require__(177), + listCacheGet = __webpack_require__(178), + listCacheHas = __webpack_require__(179), + listCacheSet = __webpack_require__(180); /** - * Creates a stack cache object to store key-value pairs. + * Creates an list cache object. * * @private * @constructor - * @param {Array} [values] The values to cache. + * @param {Array} [entries] The key-value pairs to cache. */ - function Stack(values) { + function ListCache(entries) { var index = -1, - length = values ? values.length : 0; + length = entries ? entries.length : 0; this.clear(); while (++index < length) { - var entry = values[index]; + var entry = entries[index]; this.set(entry[0], entry[1]); } } - // Add functions to the `Stack` cache. + // Add methods to `ListCache`. + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + + module.e = ListCache; + + +/***/ }, +/* 17 */ +/***/ function(module, exports, __webpack_require__) { + + var ListCache = __webpack_require__(16), + stackClear = __webpack_require__(188), + stackDelete = __webpack_require__(189), + stackGet = __webpack_require__(190), + stackHas = __webpack_require__(191), + stackSet = __webpack_require__(192); + + /** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + this.__data__ = new ListCache(entries); + } + + // Add methods to `Stack`. Stack.prototype.clear = stackClear; Stack.prototype['delete'] = stackDelete; Stack.prototype.get = stackGet; @@ -1292,14 +1409,13 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 15 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { - var eq = __webpack_require__(21); + var eq = __webpack_require__(25); /** - * Gets the index at which the first occurrence of `key` is found in `array` - * of key-value pairs. + * Gets the index at which the `key` is found in `array` of key-value pairs. * * @private * @param {Array} array The array to search. @@ -1320,29 +1436,52 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 16 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { - var isNative = __webpack_require__(176); + var isKeyable = __webpack_require__(173); /** - * Gets the native function at `key` of `object`. + * Gets the data for `map`. * * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. */ - function getNative(object, key) { - var value = object[key]; - return isNative(value) ? value : undefined; + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; } - module.e = getNative; + module.e = getMapData; /***/ }, -/* 17 */ +/* 20 */ +/***/ function(module, exports, __webpack_require__) { + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeGetPrototype = Object.getPrototypeOf; + + /** + * Gets the `[[Prototype]]` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {null|Object} Returns the `[[Prototype]]`. + */ + function getPrototype(value) { + return nativeGetPrototype(Object(value)); + } + + module.e = getPrototype; + + +/***/ }, +/* 21 */ /***/ function(module, exports, __webpack_require__) { /** @@ -1368,7 +1507,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 18 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { /** Used as references for various `Number` constants. */ @@ -1386,39 +1525,55 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. */ function isIndex(value, length) { - value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); } module.e = isIndex; /***/ }, -/* 19 */ +/* 23 */ /***/ function(module, exports, __webpack_require__) { + var isArray = __webpack_require__(0), + isSymbol = __webpack_require__(28); + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + /** - * Checks if `value` is suitable for use as unique object key. + * Checks if `value` is a property name and not a property path. * * @private * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. */ - function isKeyable(value) { + function isKey(value, object) { + if (isArray(value)) { + return false; + } var type = typeof value; - return type == 'number' || type == 'boolean' || - (type == 'string' && value != '__proto__') || value == null; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); } - module.e = isKeyable; + module.e = isKey; /***/ }, -/* 20 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(16); + var getNative = __webpack_require__(6); /* Built-in method references that are verified to be native. */ var nativeCreate = getNative(Object, 'create'); @@ -1427,15 +1582,17 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 21 */ +/* 25 */ /***/ function(module, exports, __webpack_require__) { /** - * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) * comparison between two values to determine if they are equivalent. * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. @@ -1468,12 +1625,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 22 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { - var getLength = __webpack_require__(146), - isFunction = __webpack_require__(12), - isLength = __webpack_require__(23); + var getLength = __webpack_require__(157), + isFunction = __webpack_require__(14), + isLength = __webpack_require__(27); /** * Checks if `value` is array-like. A value is considered array-like if it's @@ -1482,6 +1639,7 @@ return /******/ (function(modules) { // webpackBootstrap * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is array-like, else `false`. @@ -1507,7 +1665,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 23 */ +/* 27 */ /***/ function(module, exports, __webpack_require__) { /** Used as references for various `Number` constants. */ @@ -1516,13 +1674,16 @@ return /******/ (function(modules) { // webpackBootstrap /** * Checks if `value` is a valid array-like length. * - * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * **Note:** This function is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @returns {boolean} Returns `true` if `value` is a valid length, + * else `false`. * @example * * _.isLength(3); @@ -1546,79 +1707,63 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 24 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { - var baseHas = __webpack_require__(52), - baseKeys = __webpack_require__(121), - indexKeys = __webpack_require__(60), - isArrayLike = __webpack_require__(22), - isIndex = __webpack_require__(18), - isPrototype = __webpack_require__(31); + var isObjectLike = __webpack_require__(4); + + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) - * for more details. + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, + * else `false`. * @example * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; + * _.isSymbol(Symbol.iterator); + * // => true * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] + * _.isSymbol('abc'); + * // => false */ - function keys(object) { - var isProto = isPrototype(object); - if (!(isProto || isArrayLike(object))) { - return baseKeys(object); - } - var indexes = indexKeys(object), - skipIndexes = !!indexes, - result = indexes || [], - length = result.length; - - for (var key in object) { - if (baseHas(object, key) && - !(skipIndexes && (key == 'length' || isIndex(key, length))) && - !(isProto && key == 'constructor')) { - result.push(key); - } - } - return result; + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); } - module.e = keys; + module.e = isSymbol; /***/ }, -/* 25 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cluster__ = __webpack_require__(68); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array_helper__ = __webpack_require__(13); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cluster__ = __webpack_require__(77); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array_helper__ = __webpack_require__(15); /* harmony export */ exports["f"] = imageRef;/* unused harmony export computeIntegralImage2 *//* unused harmony export computeIntegralImage *//* unused harmony export thresholdImage *//* unused harmony export computeHistogram *//* unused harmony export sharpenLine *//* unused harmony export determineOtsuThreshold *//* harmony export */ exports["c"] = otsuThreshold;/* unused harmony export computeBinaryImage *//* harmony export */ exports["d"] = cluster;/* unused harmony export dilate *//* unused harmony export erode *//* unused harmony export subtract *//* unused harmony export bitwiseOr *//* unused harmony export countNonZero *//* harmony export */ exports["e"] = topGeneric;/* unused harmony export grayArrayFromImage *//* unused harmony export grayArrayFromContext *//* harmony export */ exports["i"] = grayAndHalfSampleFromCanvasData;/* harmony export */ exports["j"] = computeGray;/* unused harmony export loadImageArray *//* harmony export */ exports["g"] = halfSample;/* harmony export */ exports["a"] = hsv2rgb;/* unused harmony export _computeDivisors *//* harmony export */ exports["b"] = calculatePatchSize;/* unused harmony export _parseCSSDimensionValues *//* harmony export */ exports["h"] = computeImageArea; var vec2 = { - clone: __webpack_require__(10) + clone: __webpack_require__(12) }; var vec3 = { - clone: __webpack_require__(99) + clone: __webpack_require__(108) }; /** @@ -2391,17 +2536,17 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 26 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__subImage__ = __webpack_require__(71); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(25); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(13); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__subImage__ = __webpack_require__(80); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(29); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(15); var vec2 = { - clone: __webpack_require__(10) + clone: __webpack_require__(12) }; /** @@ -2751,10 +2896,48 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = ImageWrapper; /***/ }, -/* 27 */ +/* 31 */ +/***/ function(module, exports, __webpack_require__) { + + var mapCacheClear = __webpack_require__(181), + mapCacheDelete = __webpack_require__(182), + mapCacheGet = __webpack_require__(183), + mapCacheHas = __webpack_require__(184), + mapCacheSet = __webpack_require__(185); + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `MapCache`. + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + + module.e = MapCache; + + +/***/ }, +/* 32 */ /***/ function(module, exports, __webpack_require__) { - var root = __webpack_require__(3); + var root = __webpack_require__(2); /** Built-in value references. */ var Symbol = root.Symbol; @@ -2763,7 +2946,60 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 28 */ +/* 33 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array ? array.length : 0, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + module.e = arrayMap; + + +/***/ }, +/* 34 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + + module.e = arrayPush; + + +/***/ }, +/* 35 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2771,15 +3007,16 @@ return /******/ (function(modules) { // webpackBootstrap * iteratee shorthands. * * @private - * @param {Array} array The array to iterate over. + * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as the initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. * @returns {*} Returns the accumulated value. */ function arrayReduce(array, iteratee, accumulator, initAccum) { var index = -1, - length = array.length; + length = array ? array.length : 0; if (initAccum && length) { accumulator = array[++index]; @@ -2794,120 +3031,196 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 29 */ +/* 36 */ +/***/ function(module, exports, __webpack_require__) { + + var Uint8Array = __webpack_require__(52); + + /** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; + } + + module.e = cloneArrayBuffer; + + +/***/ }, +/* 37 */ /***/ function(module, exports, __webpack_require__) { - var copyObjectWith = __webpack_require__(140); + var assignValue = __webpack_require__(55); /** * Copies properties of `source` to `object`. * * @private * @param {Object} source The object to copy properties from. - * @param {Array} props The property names to copy. + * @param {Array} props The property identifiers to copy. * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. * @returns {Object} Returns `object`. */ - function copyObject(source, props, object) { - return copyObjectWith(source, props, object); + function copyObject(source, props, object, customizer) { + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : source[key]; + + assignValue(object, key, newValue); + } + return object; } module.e = copyObject; /***/ }, -/* 30 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { - var isArray = __webpack_require__(0); + var stubArray = __webpack_require__(203); - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/; + /** Built-in value references. */ + var getOwnPropertySymbols = Object.getOwnPropertySymbols; /** - * Checks if `value` is a property name and not a property path. + * Creates an array of the own enumerable symbol properties of `object`. * * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. */ - function isKey(value, object) { - if (typeof value == 'number') { - return true; - } - return !isArray(value) && - (reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object))); + function getSymbols(object) { + // Coerce `object` to an object to avoid non-object errors in V8. + // See https://bugs.chromium.org/p/v8/issues/detail?id=3443 for more details. + return getOwnPropertySymbols(Object(object)); } - module.e = isKey; + // Fallback for IE < 11. + if (!getOwnPropertySymbols) { + getSymbols = stubArray; + } + + module.e = getSymbols; /***/ }, -/* 31 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { + var DataView = __webpack_require__(109), + Map = __webpack_require__(50), + Promise = __webpack_require__(111), + Set = __webpack_require__(113), + WeakMap = __webpack_require__(114), + toSource = __webpack_require__(72); + + /** `Object#toString` result references. */ + var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + + var dataViewTag = '[object DataView]'; + /** Used for built-in method references. */ var objectProto = Object.prototype; /** - * Checks if `value` is likely a prototype object. + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + + /** + * Gets the `toStringTag` of `value`. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + function getTag(value) { + return objectToString.call(value); + } - return value === proto; + // Fallback for data views, maps, sets, and weak maps in IE 11, + // for data views in Edge, and promises in Node.js. + if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = objectToString.call(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : undefined; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; } - module.e = isPrototype; + module.e = getTag; /***/ }, -/* 32 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { - var isArrayLike = __webpack_require__(22), - isObjectLike = __webpack_require__(4); + /** Used for built-in method references. */ + var objectProto = Object.prototype; /** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. + * Checks if `value` is likely a prototype object. * - * @static - * @memberOf _ - * @category Lang + * @private * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. */ - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); + function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; } - module.e = isArrayLikeObject; + module.e = isPrototype; /***/ }, -/* 33 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { var isArray = __webpack_require__(0), @@ -2920,7 +3233,8 @@ return /******/ (function(modules) { // webpackBootstrap var objectProto = Object.prototype; /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; @@ -2929,10 +3243,12 @@ return /******/ (function(modules) { // webpackBootstrap * Checks if `value` is classified as a `String` primitive or object. * * @static + * @since 0.1.0 * @memberOf _ * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, + * else `false`. * @example * * _.isString('abc'); @@ -2950,10 +3266,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 34 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { - var isLength = __webpack_require__(23), + var isLength = __webpack_require__(27), isObjectLike = __webpack_require__(4); /** `Object#toString` result references. */ @@ -2972,6 +3288,7 @@ return /******/ (function(modules) { // webpackBootstrap weakMapTag = '[object WeakMap]'; var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', @@ -2991,17 +3308,19 @@ return /******/ (function(modules) { // webpackBootstrap typedArrayTags[uint32Tag] = true; typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dateTag] = typedArrayTags[errorTag] = - typedArrayTags[funcTag] = typedArrayTags[mapTag] = - typedArrayTags[numberTag] = typedArrayTags[objectTag] = - typedArrayTags[regexpTag] = typedArrayTags[setTag] = - typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = + typedArrayTags[errorTag] = typedArrayTags[funcTag] = + typedArrayTags[mapTag] = typedArrayTags[numberTag] = + typedArrayTags[objectTag] = typedArrayTags[regexpTag] = + typedArrayTags[setTag] = typedArrayTags[stringTag] = + typedArrayTags[weakMapTag] = false; /** Used for built-in method references. */ var objectProto = Object.prototype; /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; @@ -3011,9 +3330,11 @@ return /******/ (function(modules) { // webpackBootstrap * * @static * @memberOf _ + * @since 3.0.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, + * else `false`. * @example * * _.isTypedArray(new Uint8Array); @@ -3031,13 +3352,13 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 35 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { - var baseKeysIn = __webpack_require__(122), - indexKeys = __webpack_require__(60), - isIndex = __webpack_require__(18), - isPrototype = __webpack_require__(31); + var baseKeysIn = __webpack_require__(132), + indexKeys = __webpack_require__(67), + isIndex = __webpack_require__(22), + isPrototype = __webpack_require__(40); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -3052,6 +3373,7 @@ return /******/ (function(modules) { // webpackBootstrap * * @static * @memberOf _ + * @since 3.0.0 * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. @@ -3091,10 +3413,80 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 36 */ +/* 44 */ +/***/ function(module, exports, __webpack_require__) { + + var apply = __webpack_require__(117), + toInteger = __webpack_require__(206); + + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeMax = Math.max; + + /** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as + * an array. + * + * **Note:** This method is based on the + * [rest parameter](https://mdn.io/rest_parameters). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.rest(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ + function rest(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + switch (start) { + case 0: return func.call(this, array); + case 1: return func.call(this, args[0], array); + case 2: return func.call(this, args[0], args[1], array); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = array; + return apply(func, this, otherArgs); + }; + } + + module.e = rest; + + +/***/ }, +/* 45 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_debug__ = __webpack_require__(8); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_debug__ = __webpack_require__(10); function contains(codeResult, list) { @@ -3151,13 +3543,13 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 37 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { var config = void 0; if (true) { - config = __webpack_require__(73); + config = __webpack_require__(82); } else if (ENV.node) { config = require('./config.node.js'); } else { @@ -3167,7 +3559,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = config; /***/ }, -/* 38 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3271,11 +3663,11 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = Tracer; /***/ }, -/* 39 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(9); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_array_helper__ = __webpack_require__(13); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(11); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_array_helper__ = __webpack_require__(15); @@ -3489,7 +3881,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = Code39Reader; /***/ }, -/* 40 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { module.e = dot @@ -3506,10 +3898,56 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 41 */ +/* 50 */ +/***/ function(module, exports, __webpack_require__) { + + var getNative = __webpack_require__(6), + root = __webpack_require__(2); + + /* Built-in method references that are verified to be native. */ + var Map = getNative(root, 'Map'); + + module.e = Map; + + +/***/ }, +/* 51 */ +/***/ function(module, exports, __webpack_require__) { + + var MapCache = __webpack_require__(31), + setCacheAdd = __webpack_require__(186), + setCacheHas = __webpack_require__(187); + + /** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ + function SetCache(values) { + var index = -1, + length = values ? values.length : 0; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } + } + + // Add methods to `SetCache`. + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + + module.e = SetCache; + + +/***/ }, +/* 52 */ /***/ function(module, exports, __webpack_require__) { - var root = __webpack_require__(3); + var root = __webpack_require__(2); /** Built-in value references. */ var Uint8Array = root.Uint8Array; @@ -3518,7 +3956,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 42 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3526,13 +3964,13 @@ return /******/ (function(modules) { // webpackBootstrap * iteratee shorthands. * * @private - * @param {Array} array The array to iterate over. + * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEach(array, iteratee) { var index = -1, - length = array.length; + length = array ? array.length : 0; while (++index < length) { if (iteratee(array[index], index, array) === false) { @@ -3546,10 +3984,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 43 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { - var eq = __webpack_require__(21); + var eq = __webpack_require__(25); /** * This function is like `assignValue` except that it doesn't assign @@ -3571,10 +4009,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 44 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { - var eq = __webpack_require__(21); + var eq = __webpack_require__(25); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -3604,203 +4042,123 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 45 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { - var assocIndexOf = __webpack_require__(15); - - /** Used for built-in method references. */ - var arrayProto = Array.prototype; - - /** Built-in value references. */ - var splice = arrayProto.splice; + var arrayPush = __webpack_require__(34), + isFlattenable = __webpack_require__(171); /** - * Removes `key` and its value from the associative array. + * The base implementation of `_.flatten` with support for restricting flattening. * * @private - * @param {Array} array The array to query. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. */ - function assocDelete(array, key) { - var index = assocIndexOf(array, key); - if (index < 0) { - return false; - } - var lastIndex = array.length - 1; - if (index == lastIndex) { - array.pop(); - } else { - splice.call(array, index, 1); - } - return true; - } + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; - module.e = assocDelete; - - -/***/ }, -/* 46 */ -/***/ function(module, exports, __webpack_require__) { - - var assocIndexOf = __webpack_require__(15); + predicate || (predicate = isFlattenable); + result || (result = []); - /** - * Gets the associative array value for `key`. - * - * @private - * @param {Array} array The array to query. - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function assocGet(array, key) { - var index = assocIndexOf(array, key); - return index < 0 ? undefined : array[index][1]; + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; } - module.e = assocGet; + module.e = baseFlatten; /***/ }, -/* 47 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { - var assocIndexOf = __webpack_require__(15); + var castPath = __webpack_require__(63), + isKey = __webpack_require__(23), + toKey = __webpack_require__(7); /** - * Checks if an associative array value for `key` exists. + * The base implementation of `_.get` without support for default values. * * @private - * @param {Array} array The array to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. */ - function assocHas(array, key) { - return assocIndexOf(array, key) > -1; - } + function baseGet(object, path) { + path = isKey(path, object) ? [path] : castPath(path); - module.e = assocHas; - - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - var assocIndexOf = __webpack_require__(15); + var index = 0, + length = path.length; - /** - * Sets the associative array `key` to `value`. - * - * @private - * @param {Array} array The array to modify. - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - */ - function assocSet(array, key, value) { - var index = assocIndexOf(array, key); - if (index < 0) { - array.push([key, value]); - } else { - array[index][1] = value; + while (object != null && index < length) { + object = object[toKey(path[index++])]; } + return (index && index == length) ? object : undefined; } - module.e = assocSet; - - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var isArray = __webpack_require__(0), - stringToPath = __webpack_require__(170); - - /** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @returns {Array} Returns the cast property path array. - */ - function baseCastPath(value) { - return isArray(value) ? value : stringToPath(value); - } - - module.e = baseCastPath; - - -/***/ }, -/* 50 */ -/***/ function(module, exports, __webpack_require__) { - - var createBaseFor = __webpack_require__(143); - - /** - * The base implementation of `baseForIn` and `baseForOwn` which iterates - * over `object` properties returned by `keysFunc` invoking `iteratee` for - * each property. Iteratee functions may exit iteration early by explicitly - * returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - module.e = baseFor; + module.e = baseGet; /***/ }, -/* 51 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { - var baseCastPath = __webpack_require__(49), - isKey = __webpack_require__(30); + var arrayPush = __webpack_require__(34), + isArray = __webpack_require__(0); /** - * The base implementation of `_.get` without support for default values. + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. * * @private * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. */ - function baseGet(object, path) { - path = isKey(path, object) ? [path + ''] : baseCastPath(path); - - var index = 0, - length = path.length; - - while (object != null && index < length) { - object = object[path[index++]]; - } - return (index && index == length) ? object : undefined; + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); } - module.e = baseGet; + module.e = baseGetAllKeys; /***/ }, -/* 52 */ +/* 59 */ /***/ function(module, exports, __webpack_require__) { + var getPrototype = __webpack_require__(20); + /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; - /** Built-in value references. */ - var getPrototypeOf = Object.getPrototypeOf; - /** * The base implementation of `_.has` without support for deep paths. * * @private - * @param {Object} object The object to query. + * @param {Object} [object] The object to query. * @param {Array|string} key The key to check. * @returns {boolean} Returns `true` if `key` exists, else `false`. */ @@ -3808,19 +4166,20 @@ return /******/ (function(modules) { // webpackBootstrap // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`, // that are composed entirely of index properties, return `false` for // `hasOwnProperty` checks of them. - return hasOwnProperty.call(object, key) || - (typeof object == 'object' && key in object && getPrototypeOf(object) === null); + return object != null && + (hasOwnProperty.call(object, key) || + (typeof object == 'object' && key in object && getPrototype(object) === null)); } module.e = baseHas; /***/ }, -/* 53 */ +/* 60 */ /***/ function(module, exports, __webpack_require__) { - var baseIsEqualDeep = __webpack_require__(118), - isObject = __webpack_require__(2), + var baseIsEqualDeep = __webpack_require__(127), + isObject = __webpack_require__(3), isObjectLike = __webpack_require__(4); /** @@ -3852,7 +4211,35 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 54 */ +/* 61 */ +/***/ function(module, exports, __webpack_require__) { + + var arrayReduce = __webpack_require__(35); + + /** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} props The property identifiers to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, props) { + object = Object(object); + return arrayReduce(props, function(result, key) { + if (key in object) { + result[key] = object[key]; + } + return result; + }, {}); + } + + module.e = basePick; + + +/***/ }, +/* 62 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3860,7 +4247,7 @@ return /******/ (function(modules) { // webpackBootstrap * * @private * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. + * @returns {Function} Returns the new accessor function. */ function baseProperty(key) { return function(object) { @@ -3872,29 +4259,28 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 55 */ +/* 63 */ /***/ function(module, exports, __webpack_require__) { - var Uint8Array = __webpack_require__(41); + var isArray = __webpack_require__(0), + stringToPath = __webpack_require__(193); /** - * Creates a clone of `arrayBuffer`. + * Casts `value` to a path array if it's not one. * * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast property path array. */ - function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; + function castPath(value) { + return isArray(value) ? value : stringToPath(value); } - module.e = cloneArrayBuffer; + module.e = castPath; /***/ }, -/* 56 */ +/* 64 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3920,10 +4306,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 57 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { - var arraySome = __webpack_require__(110); + var SetCache = __webpack_require__(51), + arraySome = __webpack_require__(120); /** Used to compose bitmasks for comparison styles. */ var UNORDERED_COMPARE_FLAG = 1, @@ -3938,14 +4325,13 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Array} other The other array to compare. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Function} customizer The function to customize comparisons. - * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details. + * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` + * for more details. * @param {Object} stack Tracks traversed `array` and `other` objects. * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. */ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) { - var index = -1, - isPartial = bitmask & PARTIAL_COMPARE_FLAG, - isUnordered = bitmask & UNORDERED_COMPARE_FLAG, + var isPartial = bitmask & PARTIAL_COMPARE_FLAG, arrLength = array.length, othLength = other.length; @@ -3957,7 +4343,10 @@ return /******/ (function(modules) { // webpackBootstrap if (stacked) { return stacked == other; } - var result = true; + var index = -1, + result = true, + seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined; + stack.set(array, other); // Ignore non-index properties. @@ -3978,14 +4367,20 @@ return /******/ (function(modules) { // webpackBootstrap break; } // Recursively compare arrays (susceptible to call stack limits). - if (isUnordered) { - if (!arraySome(other, function(othValue) { - return arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack); + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!seen.has(othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { + return seen.add(othIndex); + } })) { result = false; break; } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, customizer, bitmask, stack) + )) { result = false; break; } @@ -3998,106 +4393,37 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var Map = __webpack_require__(6), - Set = __webpack_require__(103), - WeakMap = __webpack_require__(104); - - /** `Object#toString` result references. */ - var mapTag = '[object Map]', - objectTag = '[object Object]', - setTag = '[object Set]', - weakMapTag = '[object WeakMap]'; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = Function.prototype.toString; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objectToString = objectProto.toString; - - /** Used to detect maps, sets, and weakmaps. */ - var mapCtorString = Map ? funcToString.call(Map) : '', - setCtorString = Set ? funcToString.call(Set) : '', - weakMapCtorString = WeakMap ? funcToString.call(WeakMap) : ''; - - /** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function getTag(value) { - return objectToString.call(value); - } - - // Fallback for IE 11 providing `toStringTag` values for maps, sets, and weakmaps. - if ((Map && getTag(new Map) != mapTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = objectToString.call(value), - Ctor = result == objectTag ? value.constructor : null, - ctorString = typeof Ctor == 'function' ? funcToString.call(Ctor) : ''; - - if (ctorString) { - switch (ctorString) { - case mapCtorString: return mapTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; - } - - module.e = getTag; - - -/***/ }, -/* 59 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { - var nativeCreate = __webpack_require__(20); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; + var baseGetAllKeys = __webpack_require__(58), + getSymbolsIn = __webpack_require__(159), + keysIn = __webpack_require__(43); /** - * Checks if a hash value for `key` exists. + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. * * @private - * @param {Object} hash The hash to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. */ - function hashHas(hash, key) { - return nativeCreate ? hash[key] !== undefined : hasOwnProperty.call(hash, key); + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); } - module.e = hashHas; + module.e = getAllKeysIn; /***/ }, -/* 60 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { - var baseTimes = __webpack_require__(131), - isArguments = __webpack_require__(11), + var baseTimes = __webpack_require__(139), + isArguments = __webpack_require__(13), isArray = __webpack_require__(0), - isLength = __webpack_require__(23), - isString = __webpack_require__(33); + isLength = __webpack_require__(27), + isString = __webpack_require__(41); /** * Creates an array of index keys for `object` values of arrays, @@ -4120,15 +4446,36 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 61 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { + var isObject = __webpack_require__(3); + /** - * Converts `map` to an array. + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable(value) { + return value === value && !isObject(value); + } + + module.e = isStrictComparable; + + +/***/ }, +/* 69 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Converts `map` to its key-value pairs. * * @private * @param {Object} map The map to convert. - * @returns {Array} Returns the converted array. + * @returns {Array} Returns the key-value pairs. */ function mapToArray(map) { var index = -1, @@ -4144,15 +4491,41 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 62 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { /** - * Converts `set` to an array. + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; + } + + module.e = matchesStrictComparable; + + +/***/ }, +/* 71 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Converts `set` to an array of its values. * * @private * @param {Object} set The set to convert. - * @returns {Array} Returns the converted array. + * @returns {Array} Returns the values. */ function setToArray(set) { var index = -1, @@ -4168,193 +4541,170 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 63 */ +/* 72 */ /***/ function(module, exports, __webpack_require__) { - var baseGet = __webpack_require__(51); + /** Used to resolve the decompiled source of functions. */ + var funcToString = Function.prototype.toString; /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined` the `defaultValue` is used in its place. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned if the resolved value is `undefined`. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.get(object, 'a[0].b.c'); - * // => 3 + * Converts `func` to its source code. * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 - * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' + * @private + * @param {Function} func The function to process. + * @returns {string} Returns the source code. */ - function get(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, path); - return result === undefined ? defaultValue : result; + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; } - module.e = get; + module.e = toSource; /***/ }, -/* 64 */ +/* 73 */ /***/ function(module, exports, __webpack_require__) { - var baseFlatten = __webpack_require__(114), - basePick = __webpack_require__(127), - rest = __webpack_require__(65); + var isArrayLike = __webpack_require__(26), + isObjectLike = __webpack_require__(4); /** - * Creates an object composed of the picked `object` properties. + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. * * @static * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [props] The property names to pick, specified - * individually or in arrays. - * @returns {Object} Returns the new object. + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. * @example * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * _.isArrayLikeObject([1, 2, 3]); + * // => true * - * _.pick(object, ['a', 'c']); - * // => { 'a': 1, 'c': 3 } + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false */ - var pick = rest(function(object, props) { - return object == null ? {} : basePick(object, baseFlatten(props, 1)); - }); + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } - module.e = pick; + module.e = isArrayLikeObject; /***/ }, -/* 65 */ +/* 74 */ /***/ function(module, exports, __webpack_require__) { - var apply = __webpack_require__(107), - toInteger = __webpack_require__(182); + /* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(2), + stubFalse = __webpack_require__(204); - /** Used as the `TypeError` message for "Functions" methods. */ - var FUNC_ERROR_TEXT = 'Expected a function'; + /** Detect free variable `exports`. */ + var freeExports = typeof exports == 'object' && exports; - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == 'object' && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Built-in value references. */ + var Buffer = moduleExports ? root.Buffer : undefined; /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as an array. - * - * **Note:** This method is based on the [rest parameter](https://mdn.io/rest_parameters). + * Checks if `value` is a buffer. * * @static * @memberOf _ - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. * @example * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); + * _.isBuffer(new Buffer(2)); + * // => true * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' + * _.isBuffer(new Uint8Array(2)); + * // => false */ - function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); + var isBuffer = !Buffer ? stubFalse : function(value) { + return value instanceof Buffer; + }; - while (++index < length) { - array[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, array); - case 1: return func.call(this, args[0], array); - case 2: return func.call(this, args[0], args[1], array); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = array; - return apply(func, this, otherArgs); - }; - } + module.e = isBuffer; - module.e = rest; - + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(211)(module))) /***/ }, -/* 66 */ +/* 75 */ /***/ function(module, exports, __webpack_require__) { - module.e = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - module.children = []; - Object.defineProperty(module, "exports", { - enumerable: true, - configurable: false, - get: function() { return module.e; }, - set: function(v) { return module.e = v; } - }); - Object.defineProperty(module, "loaded", { - enumerable: true, - configurable: false, - get: function() { return module.l; } - }); - Object.defineProperty(module, "id", { - enumerable: true, - configurable: false, - get: function() { return module.i; } - }); - module.webpackPolyfill = 1; - } - return module; - } + var arrayMap = __webpack_require__(33), + baseFlatten = __webpack_require__(56), + basePick = __webpack_require__(61), + rest = __webpack_require__(44), + toKey = __webpack_require__(7); + + /** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [props] The property identifiers to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = rest(function(object, props) { + return object == null ? {} : basePick(object, arrayMap(baseFlatten(props, 1), toKey)); + }); + + module.e = pick; /***/ }, -/* 67 */ +/* 76 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ && __WEBPACK_IMPORTED_MODULE_0_lodash_merge__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_merge__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_merge__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_merge___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_typedefs__ = __webpack_require__(72); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_typedefs__ = __webpack_require__(81); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_typedefs___default = __WEBPACK_IMPORTED_MODULE_1__common_typedefs__ && __WEBPACK_IMPORTED_MODULE_1__common_typedefs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1__common_typedefs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1__common_typedefs__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1__common_typedefs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1__common_typedefs___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_webrtc_adapter__ = __webpack_require__(188); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_webrtc_adapter__ = __webpack_require__(212); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_webrtc_adapter___default = __WEBPACK_IMPORTED_MODULE_2_webrtc_adapter__ && __WEBPACK_IMPORTED_MODULE_2_webrtc_adapter__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_webrtc_adapter__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_webrtc_adapter__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_webrtc_adapter___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_webrtc_adapter___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__scanner__ = __webpack_require__(93); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_image_wrapper__ = __webpack_require__(26); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__common_image_debug__ = __webpack_require__(8); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__analytics_result_collector__ = __webpack_require__(36); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__config_config__ = __webpack_require__(37); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__input_config_factory__ = __webpack_require__(77); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__scanner__ = __webpack_require__(102); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_image_wrapper__ = __webpack_require__(30); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__common_image_debug__ = __webpack_require__(10); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__analytics_result_collector__ = __webpack_require__(45); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__config_config__ = __webpack_require__(46); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__input_config_factory__ = __webpack_require__(86); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; @@ -4369,10 +4719,7 @@ return /******/ (function(modules) { // webpackBootstrap - function _fromSource(config, source) { - var inputConfig = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; - - config = /* harmony import */__WEBPACK_IMPORTED_MODULE_8__input_config_factory__["a"].bind()(config, inputConfig, source); + function fromConfig(config) { var scanner = /* harmony import */__WEBPACK_IMPORTED_MODULE_3__scanner__["a"].bind()(); return { addEventListener: function addEventListener(eventType, cb) { @@ -4440,11 +4787,22 @@ return /******/ (function(modules) { // webpackBootstrap }); }); } + }, + registerResultCollector: function registerResultCollector(resultCollector) { + scanner.registerResultCollector(resultCollector); + }, + getCanvas: function getCanvas() { + return scanner.canvas.dom.image; } }; } - var defaultScanner = /* harmony import */__WEBPACK_IMPORTED_MODULE_3__scanner__["a"].bind()(); + function _fromSource(config, source) { + var inputConfig = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + + config = /* harmony import */__WEBPACK_IMPORTED_MODULE_8__input_config_factory__["a"].bind()(config, inputConfig, source); + return fromConfig(config); + } function setConfig() { var configuration = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; @@ -4465,6 +4823,10 @@ return /******/ (function(modules) { // webpackBootstrap fromSource: function fromSource(src, inputConfig) { return _fromSource(configuration, src, inputConfig); }, + fromConfig: function fromConfig(conf) { + // check if source is given an return scanner + return createApi(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_merge___default.a.bind()({}, configuration, conf)); + }, decoder: function decoder(conf) { return setConfig(configuration, "decoder", conf); }, @@ -4477,12 +4839,6 @@ return /******/ (function(modules) { // webpackBootstrap config: function config(conf) { return createApi(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_merge___default.a.bind()({}, configuration, conf)); }, - registerResultCollector: function registerResultCollector(resultCollector) { - defaultScanner.registerResultCollector(resultCollector); - }, - getCanvas: function getCanvas() { - return defaultScanner.canvas; - }, ImageWrapper: /* harmony import */__WEBPACK_IMPORTED_MODULE_4__common_image_wrapper__["a"], ImageDebug: /* harmony import */__WEBPACK_IMPORTED_MODULE_5__common_image_debug__["a"], @@ -4495,12 +4851,12 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["default"] = createApi(); /***/ }, -/* 68 */ +/* 77 */ /***/ function(module, exports, __webpack_require__) { var vec2 = { - clone: __webpack_require__(10), - dot: __webpack_require__(40) + clone: __webpack_require__(12), + dot: __webpack_require__(49) }; /** @@ -4570,7 +4926,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 69 */ +/* 78 */ /***/ function(module, exports, __webpack_require__) { var _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; }; @@ -4586,10 +4942,14 @@ return /******/ (function(modules) { // webpackBootstrap return _extends({}, result, (_extends2 = {}, _extends2[obj] = obj in windowRef ? windowRef[obj] : function () {}, _extends2)); }, {}); + DOMHelper.setObject = function (key, value) { + DOMHelper[key] = value; + }; + /* harmony default export */ exports["a"] = DOMHelper; /***/ }, -/* 70 */ +/* 79 */ /***/ function(module, exports, __webpack_require__) { /* harmony export */ exports["a"] = createEventedElement;function createEventedElement() { @@ -4688,7 +5048,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 71 */ +/* 80 */ /***/ function(module, exports, __webpack_require__) { /** @@ -4777,7 +5137,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = SubImage; /***/ }, -/* 72 */ +/* 81 */ /***/ function(module, exports) { /* @@ -4803,7 +5163,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 73 */ +/* 82 */ /***/ function(module, exports, __webpack_require__) { module.e = { @@ -4815,8 +5175,6 @@ return /******/ (function(modules) { // webpackBootstrap height: 480, // aspectRatio: 640/480, // optional facingMode: "environment" }, - // or user - // deviceId: "38745983457387598375983759834" area: { top: "0%", right: "0%", @@ -4857,22 +5215,22 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 74 */ +/* 83 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bresenham__ = __webpack_require__(75); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_image_debug__ = __webpack_require__(8); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__ = __webpack_require__(85); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bresenham__ = __webpack_require__(84); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_image_debug__ = __webpack_require__(10); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__ = __webpack_require__(94); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__reader_ean_reader__ = __webpack_require__(5); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__ = __webpack_require__(39); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__ = __webpack_require__(86); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__ = __webpack_require__(84); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__ = __webpack_require__(92); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__ = __webpack_require__(89); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__ = __webpack_require__(87); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__ = __webpack_require__(88); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__ = __webpack_require__(91); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__ = __webpack_require__(90); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__ = __webpack_require__(48); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__ = __webpack_require__(95); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__ = __webpack_require__(93); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__ = __webpack_require__(101); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__ = __webpack_require__(98); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__ = __webpack_require__(96); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__ = __webpack_require__(97); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__ = __webpack_require__(100); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__ = __webpack_require__(99); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; @@ -4945,8 +5303,13 @@ return /******/ (function(modules) { // webpackBootstrap } _canvas.ctx.pattern = _canvas.dom.pattern.getContext("2d"); - _canvas.dom.overlay = document.querySelector("canvas.drawingBuffer"); - if (_canvas.dom.overlay) { + if ($debug) { + _canvas.dom.overlay = document.querySelector("canvas.drawingBuffer"); + if (!_canvas.dom.overlay) { + _canvas.dom.overlay = document.createElement("canvas"); + _canvas.dom.overlay.className = "drawingBuffer"; + $debug.appendChild(_canvas.dom.overlay); + } _canvas.ctx.overlay = _canvas.dom.overlay.getContext("2d"); } } @@ -5192,7 +5555,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 75 */ +/* 84 */ /***/ function(module, exports, __webpack_require__) { var Bresenham = {}; @@ -5394,19 +5757,24 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = Bresenham; /***/ }, -/* 76 */ +/* 85 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_pick__ = __webpack_require__(64); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_pick___default = __WEBPACK_IMPORTED_MODULE_0_lodash_pick__ && __WEBPACK_IMPORTED_MODULE_0_lodash_pick__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_pick__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_pick__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_pick___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_pick___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_merge__ = __webpack_require__(7); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_merge___default = __WEBPACK_IMPORTED_MODULE_1_lodash_merge__ && __WEBPACK_IMPORTED_MODULE_1_lodash_merge__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_lodash_merge__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_lodash_merge__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_lodash_merge___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_lodash_merge___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_omit__ = __webpack_require__(200); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_omit___default = __WEBPACK_IMPORTED_MODULE_0_lodash_omit__ && __WEBPACK_IMPORTED_MODULE_0_lodash_omit__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_omit__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_omit__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_omit___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_omit___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_pick__ = __webpack_require__(75); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_pick___default = __WEBPACK_IMPORTED_MODULE_1_lodash_pick__ && __WEBPACK_IMPORTED_MODULE_1_lodash_pick__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_lodash_pick__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_lodash_pick__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_lodash_pick___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_lodash_pick___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_merge__ = __webpack_require__(9); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_merge___default = __WEBPACK_IMPORTED_MODULE_2_lodash_merge__ && __WEBPACK_IMPORTED_MODULE_2_lodash_merge__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_lodash_merge__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_lodash_merge__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_lodash_merge___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_lodash_merge___default }); + var _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; }; + var streamRef; function waitForVideo(video) { @@ -5453,7 +5821,7 @@ return /******/ (function(modules) { // webpackBootstrap } function deprecatedConstraints(videoConstraints) { - var normalized = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_pick___default.a.bind()(videoConstraints, ["width", "height", "facingMode", "aspectRatio", "deviceId"]); + var normalized = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lodash_pick___default.a.bind()(videoConstraints, ["width", "height", "facingMode", "aspectRatio", "deviceId"]); if (typeof videoConstraints.minAspectRatio !== 'undefined' && videoConstraints.minAspectRatio > 0) { normalized.aspectRatio = videoConstraints.minAspectRatio; @@ -5467,7 +5835,11 @@ return /******/ (function(modules) { // webpackBootstrap } function applyCameraFacing(facing, constraints) { - if (typeof constraints.video.deviceId !== 'undefined' || !facing) { + if (typeof constraints.video.deviceId === 'string' && constraints.video.deviceId.length > 0) { + return Promise.resolve(_extends({}, constraints, { + video: _extends({}, /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_omit___default.a.bind()(constraints.video, "facingMode")) + })); + } else if (!facing) { return Promise.resolve(constraints); } if (typeof MediaStreamTrack !== 'undefined' && typeof MediaStreamTrack.getSources !== 'undefined') { @@ -5477,13 +5849,13 @@ return /******/ (function(modules) { // webpackBootstrap return sourceInfo.kind === "video" && sourceInfo.facing === facing; })[0]; if (videoSource) { - return resolve(/* harmony import */__WEBPACK_IMPORTED_MODULE_1_lodash_merge___default.a.bind()({}, constraints, { video: { deviceId: videoSource.id } })); + return resolve(/* harmony import */__WEBPACK_IMPORTED_MODULE_2_lodash_merge___default.a.bind()({}, constraints, { video: { deviceId: videoSource.id } })); } return resolve(constraints); }); }); } - return Promise.resolve(/* harmony import */__WEBPACK_IMPORTED_MODULE_1_lodash_merge___default.a.bind()({}, constraints, { video: { facingMode: facing } })); + return Promise.resolve(/* harmony import */__WEBPACK_IMPORTED_MODULE_2_lodash_merge___default.a.bind()({}, constraints, { video: { facingMode: facing } })); } function pickConstraints(videoConstraints) { @@ -5508,22 +5880,22 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 77 */ +/* 86 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty__ = __webpack_require__(175); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty__ = __webpack_require__(197); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty___default = __WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty__ && __WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_isEmpty___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_omitBy__ = __webpack_require__(180); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_omitBy__ = __webpack_require__(201); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_omitBy___default = __WEBPACK_IMPORTED_MODULE_1_lodash_omitBy__ && __WEBPACK_IMPORTED_MODULE_1_lodash_omitBy__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_lodash_omitBy__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_lodash_omitBy__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_lodash_omitBy___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_lodash_omitBy___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_pick__ = __webpack_require__(64); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_pick__ = __webpack_require__(75); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_pick___default = __WEBPACK_IMPORTED_MODULE_2_lodash_pick__ && __WEBPACK_IMPORTED_MODULE_2_lodash_pick__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_lodash_pick__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_lodash_pick__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_lodash_pick___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_lodash_pick___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_merge__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_merge__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_merge___default = __WEBPACK_IMPORTED_MODULE_3_lodash_merge__ && __WEBPACK_IMPORTED_MODULE_3_lodash_merge__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_3_lodash_merge__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_3_lodash_merge__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_3_lodash_merge___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_3_lodash_merge___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_dom_helper__ = __webpack_require__(69); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_dom_helper__ = __webpack_require__(78); /* harmony export */ exports["a"] = createConfigFromSource; @@ -5548,23 +5920,23 @@ return /******/ (function(modules) { // webpackBootstrap throw new Error('Source "HTMLImageElement": not yet supported'); // return createConfigForImage(config, inputConfig, {image: source}); } else if (source instanceof /* harmony import */__WEBPACK_IMPORTED_MODULE_4__common_dom_helper__["a"].HTMLVideoElement) { - throw new Error('Source "HTMLVideoElement": not yet supported'); - // return createConfigForVideo(config, inputConfig, {video: source}); - } else if (source instanceof /* harmony import */__WEBPACK_IMPORTED_MODULE_4__common_dom_helper__["a"].HTMLCanvasElement) { - return createConfigForCanvas(config, sourceConfig, { canvas: source }); - } else if (source instanceof /* harmony import */__WEBPACK_IMPORTED_MODULE_4__common_dom_helper__["a"].FileList) { - if (source.length > 0) { - return createConfigForFile(config, sourceConfig, source[0]); - } - } else if (source instanceof /* harmony import */__WEBPACK_IMPORTED_MODULE_4__common_dom_helper__["a"].File) { - return createConfigForFile(config, sourceConfig, source); - } else if (typeof source === 'string') { - return createConfigForString(config, sourceConfig, source); - } else if ((typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object' && (typeof source.constraints !== 'undefined' || typeof source.area !== 'undefined')) { - return createConfigForLiveStream(config, source); - } else { - throw new Error("No source given!"); - } + throw new Error('Source "HTMLVideoElement": not yet supported'); + // return createConfigForVideo(config, inputConfig, {video: source}); + } else if (source instanceof /* harmony import */__WEBPACK_IMPORTED_MODULE_4__common_dom_helper__["a"].HTMLCanvasElement) { + return createConfigForCanvas(config, sourceConfig, { canvas: source }); + } else if (source instanceof /* harmony import */__WEBPACK_IMPORTED_MODULE_4__common_dom_helper__["a"].FileList) { + if (source.length > 0) { + return createConfigForFile(config, sourceConfig, source[0]); + } + } else if (source instanceof /* harmony import */__WEBPACK_IMPORTED_MODULE_4__common_dom_helper__["a"].File) { + return createConfigForFile(config, sourceConfig, source); + } else if (typeof source === 'string') { + return createConfigForString(config, sourceConfig, source); + } else if ((typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object' && (typeof source.constraints !== 'undefined' || typeof source.area !== 'undefined')) { + return createConfigForLiveStream(config, source); + } else { + throw new Error("No source given!"); + } } function createConfigForImage(config, source) { @@ -5691,10 +6063,10 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 78 */ +/* 87 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_cv_utils__ = __webpack_require__(25); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_cv_utils__ = __webpack_require__(29); function adjustCanvasSize(canvas, targetSize) { @@ -5788,7 +6160,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = FrameGrabber; /***/ }, -/* 79 */ +/* 88 */ /***/ function(module, exports, __webpack_require__) { var ImageLoader = {}; @@ -5851,10 +6223,10 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = ImageLoader; /***/ }, -/* 80 */ +/* 89 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__image_loader__ = __webpack_require__(79); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__image_loader__ = __webpack_require__(88); var InputStream = {}; @@ -6169,16 +6541,16 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = InputStream; /***/ }, -/* 81 */ +/* 90 */ /***/ function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__ = __webpack_require__(26); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(25); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(13); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_image_debug__ = __webpack_require__(8); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__rasterizer__ = __webpack_require__(82); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__tracer__ = __webpack_require__(38); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__skeletonizer__ = __webpack_require__(83); + /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__ = __webpack_require__(30); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(29); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(15); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_image_debug__ = __webpack_require__(10); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__rasterizer__ = __webpack_require__(91); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__tracer__ = __webpack_require__(47); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__skeletonizer__ = __webpack_require__(92); /* harmony export */ exports["b"] = createLocator;/* harmony export */ exports["a"] = checkImageConstraints; @@ -6187,15 +6559,15 @@ return /******/ (function(modules) { // webpackBootstrap var vec2 = { - clone: __webpack_require__(10), - dot: __webpack_require__(40), - scale: __webpack_require__(97), - transformMat2: __webpack_require__(98) + clone: __webpack_require__(12), + dot: __webpack_require__(49), + scale: __webpack_require__(106), + transformMat2: __webpack_require__(107) }; var mat2 = { - copy: __webpack_require__(94), - create: __webpack_require__(95), - invert: __webpack_require__(96) + copy: __webpack_require__(103), + create: __webpack_require__(104), + invert: __webpack_require__(105) }; function createLocator(inputImageWrapper, config) { @@ -6758,10 +7130,10 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, -/* 82 */ +/* 91 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tracer__ = __webpack_require__(38); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tracer__ = __webpack_require__(47); /** @@ -6957,7 +7329,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = Rasterizer; /***/ }, -/* 83 */ +/* 92 */ /***/ function(module, exports, __webpack_require__) { /* @preserve ASM BEGIN */ @@ -7159,10 +7531,10 @@ return /******/ (function(modules) { // webpackBootstrap /* eslint-enable eqeqeq*/ /***/ }, -/* 84 */ +/* 93 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(9); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(11); function CodabarReader() { @@ -7449,10 +7821,10 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = CodabarReader; /***/ }, -/* 85 */ +/* 94 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(9); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(11); function Code128Reader() { @@ -7800,10 +8172,10 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = Code128Reader; /***/ }, -/* 86 */ +/* 95 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__code_39_reader__ = __webpack_require__(39); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__code_39_reader__ = __webpack_require__(48); function Code39VINReader() { @@ -7857,7 +8229,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = Code39VINReader; /***/ }, -/* 87 */ +/* 96 */ /***/ function(module, exports, __webpack_require__) { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(5); @@ -7914,7 +8286,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = EAN2Reader; /***/ }, -/* 88 */ +/* 97 */ /***/ function(module, exports, __webpack_require__) { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(5); @@ -8003,7 +8375,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = EAN5Reader; /***/ }, -/* 89 */ +/* 98 */ /***/ function(module, exports, __webpack_require__) { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(5); @@ -8054,13 +8426,13 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = EAN8Reader; /***/ }, -/* 90 */ +/* 99 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ && __WEBPACK_IMPORTED_MODULE_0_lodash_merge__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_merge__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_merge__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_merge___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(9); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(11); @@ -8376,7 +8748,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = I2of5Reader; /***/ }, -/* 91 */ +/* 100 */ /***/ function(module, exports, __webpack_require__) { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(5); @@ -8476,7 +8848,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = UPCEReader; /***/ }, -/* 92 */ +/* 101 */ /***/ function(module, exports, __webpack_require__) { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(5); @@ -8506,22 +8878,22 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = UPCReader; /***/ }, -/* 93 */ +/* 102 */ /***/ function(module, exports, __webpack_require__) { - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ && __WEBPACK_IMPORTED_MODULE_0_lodash_merge__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_merge__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_merge__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_merge___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_image_wrapper__ = __webpack_require__(26); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__locator_barcode_locator__ = __webpack_require__(81); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__decoder_barcode_decoder__ = __webpack_require__(74); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_events__ = __webpack_require__(70); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__input_camera_access__ = __webpack_require__(76); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__common_image_debug__ = __webpack_require__(8); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__analytics_result_collector__ = __webpack_require__(36); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__config_config__ = __webpack_require__(37); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_input_stream__ = __webpack_require__(80); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_frame_grabber__ = __webpack_require__(78); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_image_wrapper__ = __webpack_require__(30); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__locator_barcode_locator__ = __webpack_require__(90); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__decoder_barcode_decoder__ = __webpack_require__(83); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_events__ = __webpack_require__(79); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__input_camera_access__ = __webpack_require__(85); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__common_image_debug__ = __webpack_require__(10); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__analytics_result_collector__ = __webpack_require__(45); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__config_config__ = __webpack_require__(46); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_input_stream__ = __webpack_require__(89); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_frame_grabber__ = __webpack_require__(87); var _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; }; @@ -8538,7 +8910,7 @@ return /******/ (function(modules) { // webpackBootstrap var vec2 = { - clone: __webpack_require__(10) + clone: __webpack_require__(12) }; function createScanner() { @@ -8547,12 +8919,10 @@ return /******/ (function(modules) { // webpackBootstrap _stopped, _canvasContainer = { ctx: { - image: null, - overlay: null + image: null }, dom: { - image: null, - overlay: null + image: null } }, _inputImageWrapper, @@ -8643,18 +9013,6 @@ return /******/ (function(modules) { // webpackBootstrap _canvasContainer.ctx.image = _canvasContainer.dom.image.getContext("2d"); _canvasContainer.dom.image.width = _inputStream.getCanvasSize().x; _canvasContainer.dom.image.height = _inputStream.getCanvasSize().y; - - _canvasContainer.dom.overlay = document.querySelector("canvas.drawingBuffer"); - if (!_canvasContainer.dom.overlay) { - _canvasContainer.dom.overlay = document.createElement("canvas"); - _canvasContainer.dom.overlay.className = "drawingBuffer"; - if ($viewport) { - $viewport.appendChild(_canvasContainer.dom.overlay); - } - } - _canvasContainer.ctx.overlay = _canvasContainer.dom.overlay.getContext("2d"); - _canvasContainer.dom.overlay.width = _inputStream.getCanvasSize().x; - _canvasContainer.dom.overlay.height = _inputStream.getCanvasSize().y; } } @@ -8795,8 +9153,8 @@ return /******/ (function(modules) { // webpackBootstrap return; // all workers are busy } } else { - _framegrabber.attachData(_inputImageWrapper.data); - } + _framegrabber.attachData(_inputImageWrapper.data); + } if (_framegrabber.grab()) { if (availableWorker) { availableWorker.busy = true; @@ -8815,7 +9173,7 @@ return /******/ (function(modules) { // webpackBootstrap function startContinuousUpdate() { var next = null, - delay = 1000 / (_config.frequency || 60); + delay = 1000 / (_config.frequency === 0 ? 60 : _config.frequency || 60); _stopped = false; (function frame(timestamp) { @@ -9038,7 +9396,7 @@ return /******/ (function(modules) { // webpackBootstrap /* harmony default export */ exports["a"] = createScanner; /***/ }, -/* 94 */ +/* 103 */ /***/ function(module, exports, __webpack_require__) { module.e = copy @@ -9061,7 +9419,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 95 */ +/* 104 */ /***/ function(module, exports, __webpack_require__) { module.e = create @@ -9083,7 +9441,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 96 */ +/* 105 */ /***/ function(module, exports, __webpack_require__) { module.e = invert @@ -9116,7 +9474,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 97 */ +/* 106 */ /***/ function(module, exports, __webpack_require__) { module.e = scale @@ -9136,7 +9494,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 98 */ +/* 107 */ /***/ function(module, exports, __webpack_require__) { module.e = transformMat2 @@ -9158,7 +9516,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 99 */ +/* 108 */ /***/ function(module, exports, __webpack_require__) { module.e = clone; @@ -9178,72 +9536,74 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 100 */ +/* 109 */ /***/ function(module, exports, __webpack_require__) { - var nativeCreate = __webpack_require__(20); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** - * Creates an hash object. - * - * @private - * @constructor - * @returns {Object} Returns the new hash object. - */ - function Hash() {} + var getNative = __webpack_require__(6), + root = __webpack_require__(2); - // Avoid inheriting from `Object.prototype` when possible. - Hash.prototype = nativeCreate ? nativeCreate(null) : objectProto; + /* Built-in method references that are verified to be native. */ + var DataView = getNative(root, 'DataView'); - module.e = Hash; + module.e = DataView; /***/ }, -/* 101 */ +/* 110 */ /***/ function(module, exports, __webpack_require__) { - var mapClear = __webpack_require__(159), - mapDelete = __webpack_require__(160), - mapGet = __webpack_require__(161), - mapHas = __webpack_require__(162), - mapSet = __webpack_require__(163); + var hashClear = __webpack_require__(162), + hashDelete = __webpack_require__(163), + hashGet = __webpack_require__(164), + hashHas = __webpack_require__(165), + hashSet = __webpack_require__(166); /** - * Creates a map cache object to store key-value pairs. + * Creates a hash object. * * @private * @constructor - * @param {Array} [values] The values to cache. + * @param {Array} [entries] The key-value pairs to cache. */ - function MapCache(values) { + function Hash(entries) { var index = -1, - length = values ? values.length : 0; + length = entries ? entries.length : 0; this.clear(); while (++index < length) { - var entry = values[index]; + var entry = entries[index]; this.set(entry[0], entry[1]); } } - // Add functions to the `MapCache`. - MapCache.prototype.clear = mapClear; - MapCache.prototype['delete'] = mapDelete; - MapCache.prototype.get = mapGet; - MapCache.prototype.has = mapHas; - MapCache.prototype.set = mapSet; + // Add methods to `Hash`. + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; - module.e = MapCache; + module.e = Hash; /***/ }, -/* 102 */ +/* 111 */ +/***/ function(module, exports, __webpack_require__) { + + var getNative = __webpack_require__(6), + root = __webpack_require__(2); + + /* Built-in method references that are verified to be native. */ + var Promise = getNative(root, 'Promise'); + + module.e = Promise; + + +/***/ }, +/* 112 */ /***/ function(module, exports, __webpack_require__) { - var root = __webpack_require__(3); + var root = __webpack_require__(2); /** Built-in value references. */ var Reflect = root.Reflect; @@ -9252,11 +9612,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 103 */ +/* 113 */ /***/ function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(16), - root = __webpack_require__(3); + var getNative = __webpack_require__(6), + root = __webpack_require__(2); /* Built-in method references that are verified to be native. */ var Set = getNative(root, 'Set'); @@ -9265,11 +9625,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 104 */ +/* 114 */ /***/ function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(16), - root = __webpack_require__(3); + var getNative = __webpack_require__(6), + root = __webpack_require__(2); /* Built-in method references that are verified to be native. */ var WeakMap = getNative(root, 'WeakMap'); @@ -9278,7 +9638,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 105 */ +/* 115 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9299,7 +9659,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 106 */ +/* 116 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9319,7 +9679,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 107 */ +/* 117 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9329,7 +9689,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private * @param {Function} func The function to invoke. * @param {*} thisArg The `this` binding of `func`. - * @param {...*} args The arguments to invoke `func` with. + * @param {Array} args The arguments to invoke `func` with. * @returns {*} Returns the result of `func`. */ function apply(func, thisArg, args) { @@ -9347,60 +9707,58 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 108 */ +/* 118 */ /***/ function(module, exports, __webpack_require__) { + var baseIndexOf = __webpack_require__(126); + /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. * * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. + * @param {Array} [array] The array to search. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. */ - function arrayMap(array, iteratee) { - var index = -1, - length = array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; + function arrayIncludes(array, value) { + var length = array ? array.length : 0; + return !!length && baseIndexOf(array, value, 0) > -1; } - module.e = arrayMap; + module.e = arrayIncludes; /***/ }, -/* 109 */ +/* 119 */ /***/ function(module, exports, __webpack_require__) { /** - * Appends the elements of `values` to `array`. + * This function is like `arrayIncludes` except that it accepts a comparator. * * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. + * @param {Array} [array] The array to search. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. */ - function arrayPush(array, values) { + function arrayIncludesWith(array, value, comparator) { var index = -1, - length = values.length, - offset = array.length; + length = array ? array.length : 0; while (++index < length) { - array[offset + index] = values[index]; + if (comparator(value, array[index])) { + return true; + } } - return array; + return false; } - module.e = arrayPush; + module.e = arrayIncludesWith; /***/ }, -/* 110 */ +/* 120 */ /***/ function(module, exports, __webpack_require__) { /** @@ -9408,13 +9766,14 @@ return /******/ (function(modules) { // webpackBootstrap * shorthands. * * @private - * @param {Array} array The array to iterate over. + * @param {Array} [array] The array to iterate over. * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, else `false`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. */ function arraySome(array, predicate) { var index = -1, - length = array.length; + length = array ? array.length : 0; while (++index < length) { if (predicate(array[index], index, array)) { @@ -9428,11 +9787,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 111 */ +/* 121 */ /***/ function(module, exports, __webpack_require__) { - var copyObject = __webpack_require__(29), - keys = __webpack_require__(24); + var copyObject = __webpack_require__(37), + keys = __webpack_require__(8); /** * The base implementation of `_.assign` without support for multiple sources @@ -9451,25 +9810,26 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 112 */ +/* 122 */ /***/ function(module, exports, __webpack_require__) { - var Stack = __webpack_require__(14), - arrayEach = __webpack_require__(42), - assignValue = __webpack_require__(44), - baseAssign = __webpack_require__(111), - baseForOwn = __webpack_require__(116), - cloneBuffer = __webpack_require__(134), - copyArray = __webpack_require__(56), - copySymbols = __webpack_require__(141), - getTag = __webpack_require__(58), - initCloneArray = __webpack_require__(153), - initCloneByTag = __webpack_require__(154), - initCloneObject = __webpack_require__(155), + var Stack = __webpack_require__(17), + arrayEach = __webpack_require__(53), + assignValue = __webpack_require__(55), + baseAssign = __webpack_require__(121), + cloneBuffer = __webpack_require__(144), + copyArray = __webpack_require__(64), + copySymbols = __webpack_require__(151), + getAllKeys = __webpack_require__(156), + getTag = __webpack_require__(39), + initCloneArray = __webpack_require__(168), + initCloneByTag = __webpack_require__(169), + initCloneObject = __webpack_require__(170), isArray = __webpack_require__(0), - isBuffer = __webpack_require__(174), - isHostObject = __webpack_require__(17), - isObject = __webpack_require__(2); + isBuffer = __webpack_require__(74), + isHostObject = __webpack_require__(21), + isObject = __webpack_require__(3), + keys = __webpack_require__(8); /** `Object#toString` result references. */ var argsTag = '[object Arguments]', @@ -9489,6 +9849,7 @@ return /******/ (function(modules) { // webpackBootstrap weakMapTag = '[object WeakMap]'; var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', @@ -9502,16 +9863,16 @@ return /******/ (function(modules) { // webpackBootstrap /** Used to identify `toStringTag` values supported by `_.clone`. */ var cloneableTags = {}; cloneableTags[argsTag] = cloneableTags[arrayTag] = - cloneableTags[arrayBufferTag] = cloneableTags[boolTag] = - cloneableTags[dateTag] = cloneableTags[float32Tag] = - cloneableTags[float64Tag] = cloneableTags[int8Tag] = - cloneableTags[int16Tag] = cloneableTags[int32Tag] = - cloneableTags[mapTag] = cloneableTags[numberTag] = - cloneableTags[objectTag] = cloneableTags[regexpTag] = - cloneableTags[setTag] = cloneableTags[stringTag] = - cloneableTags[symbolTag] = cloneableTags[uint8Tag] = - cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = - cloneableTags[uint32Tag] = true; + cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = + cloneableTags[boolTag] = cloneableTags[dateTag] = + cloneableTags[float32Tag] = cloneableTags[float64Tag] = + cloneableTags[int8Tag] = cloneableTags[int16Tag] = + cloneableTags[int32Tag] = cloneableTags[mapTag] = + cloneableTags[numberTag] = cloneableTags[objectTag] = + cloneableTags[regexpTag] = cloneableTags[setTag] = + cloneableTags[stringTag] = cloneableTags[symbolTag] = + cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = + cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; @@ -9559,14 +9920,13 @@ return /******/ (function(modules) { // webpackBootstrap } result = initCloneObject(isFunc ? {} : value); if (!isDeep) { - result = baseAssign(result, value); - return isFull ? copySymbols(value, result) : result; + return copySymbols(value, baseAssign(result, value)); } } else { if (!cloneableTags[tag]) { return object ? value : {}; } - result = initCloneByTag(value, tag, isDeep); + result = initCloneByTag(value, tag, baseClone, isDeep); } } // Check for circular references and return its corresponding clone. @@ -9577,21 +9937,28 @@ return /******/ (function(modules) { // webpackBootstrap } stack.set(value, result); + if (!isArr) { + var props = isFull ? getAllKeys(value) : keys(value); + } // Recursively populate clone (susceptible to call stack limits). - (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) { + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack)); }); - return (isFull && !isArr) ? copySymbols(value, result) : result; + return result; } module.e = baseClone; /***/ }, -/* 113 */ +/* 123 */ /***/ function(module, exports, __webpack_require__) { - var isObject = __webpack_require__(2); + var isObject = __webpack_require__(3); /** Built-in value references. */ var objectCreate = Object.create; @@ -9612,125 +9979,142 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 114 */ +/* 124 */ /***/ function(module, exports, __webpack_require__) { - var arrayPush = __webpack_require__(109), - isArguments = __webpack_require__(11), - isArray = __webpack_require__(0), - isArrayLikeObject = __webpack_require__(32); + var SetCache = __webpack_require__(51), + arrayIncludes = __webpack_require__(118), + arrayIncludesWith = __webpack_require__(119), + arrayMap = __webpack_require__(33), + baseUnary = __webpack_require__(141), + cacheHas = __webpack_require__(142); + + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; /** - * The base implementation of `_.flatten` with support for restricting flattening. + * The base implementation of methods like `_.difference` without support + * for excluding multiple arrays or iteratee shorthands. * * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. */ - function baseFlatten(array, depth, isStrict, result) { - result || (result = []); - + function baseDifference(array, values, iteratee, comparator) { var index = -1, - length = array.length; + includes = arrayIncludes, + isCommon = true, + length = array.length, + result = [], + valuesLength = values.length; + if (!length) { + return result; + } + if (iteratee) { + values = arrayMap(values, baseUnary(iteratee)); + } + if (comparator) { + includes = arrayIncludesWith; + isCommon = false; + } + else if (values.length >= LARGE_ARRAY_SIZE) { + includes = cacheHas; + isCommon = false; + values = new SetCache(values); + } + outer: while (++index < length) { - var value = array[index]; - if (depth > 0 && isArrayLikeObject(value) && - (isStrict || isArray(value) || isArguments(value))) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, isStrict, result); - } else { - arrayPush(result, value); + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === computed) { + continue outer; + } } - } else if (!isStrict) { - result[result.length] = value; + result.push(value); + } + else if (!includes(values, computed, comparator)) { + result.push(value); } } return result; } - module.e = baseFlatten; + module.e = baseDifference; /***/ }, -/* 115 */ +/* 125 */ /***/ function(module, exports, __webpack_require__) { - var baseFor = __webpack_require__(50), - keysIn = __webpack_require__(35); - /** - * The base implementation of `_.forIn` without support for iteratee shorthands. + * The base implementation of `_.hasIn` without support for deep paths. * * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. */ - function baseForIn(object, iteratee) { - return object == null ? object : baseFor(object, iteratee, keysIn); + function baseHasIn(object, key) { + return object != null && key in Object(object); } - module.e = baseForIn; + module.e = baseHasIn; /***/ }, -/* 116 */ +/* 126 */ /***/ function(module, exports, __webpack_require__) { - var baseFor = __webpack_require__(50), - keys = __webpack_require__(24); + var indexOfNaN = __webpack_require__(167); /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. * * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. + * @param {Array} array The array to search. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } + function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return indexOfNaN(array, fromIndex); + } + var index = fromIndex - 1, + length = array.length; - module.e = baseForOwn; - - -/***/ }, -/* 117 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHasIn(object, key) { - return key in Object(object); + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; } - module.e = baseHasIn; + module.e = baseIndexOf; /***/ }, -/* 118 */ +/* 127 */ /***/ function(module, exports, __webpack_require__) { - var Stack = __webpack_require__(14), - equalArrays = __webpack_require__(57), - equalByTag = __webpack_require__(144), - equalObjects = __webpack_require__(145), - getTag = __webpack_require__(58), + var Stack = __webpack_require__(17), + equalArrays = __webpack_require__(65), + equalByTag = __webpack_require__(154), + equalObjects = __webpack_require__(155), + getTag = __webpack_require__(39), isArray = __webpack_require__(0), - isHostObject = __webpack_require__(17), - isTypedArray = __webpack_require__(34); + isHostObject = __webpack_require__(21), + isTypedArray = __webpack_require__(42); /** Used to compose bitmasks for comparison styles. */ var PARTIAL_COMPARE_FLAG = 2; @@ -9756,7 +10140,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} other The other object to compare. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Function} [customizer] The function to customize comparisons. - * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details. + * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` + * for more details. * @param {Object} [stack] Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ @@ -9789,8 +10174,11 @@ return /******/ (function(modules) { // webpackBootstrap othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack); - return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, bitmask, stack); + return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack); } } if (!isSameTag) { @@ -9804,11 +10192,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 119 */ +/* 128 */ /***/ function(module, exports, __webpack_require__) { - var Stack = __webpack_require__(14), - baseIsEqual = __webpack_require__(53); + var Stack = __webpack_require__(17), + baseIsEqual = __webpack_require__(60); /** Used to compose bitmasks for comparison styles. */ var UNORDERED_COMPARE_FLAG = 1, @@ -9853,9 +10241,10 @@ return /******/ (function(modules) { // webpackBootstrap return false; } } else { - var stack = new Stack, - result = customizer ? customizer(objValue, srcValue, key, object, source, stack) : undefined; - + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack) : result @@ -9871,14 +10260,67 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 120 */ +/* 129 */ +/***/ function(module, exports, __webpack_require__) { + + var isFunction = __webpack_require__(14), + isHostObject = __webpack_require__(21), + isMasked = __webpack_require__(174), + isObject = __webpack_require__(3), + toSource = __webpack_require__(72); + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + + module.e = baseIsNative; + + +/***/ }, +/* 130 */ /***/ function(module, exports, __webpack_require__) { - var baseMatches = __webpack_require__(123), - baseMatchesProperty = __webpack_require__(124), - identity = __webpack_require__(173), + var baseMatches = __webpack_require__(133), + baseMatchesProperty = __webpack_require__(134), + identity = __webpack_require__(196), isArray = __webpack_require__(0), - property = __webpack_require__(181); + property = __webpack_require__(202); /** * The base implementation of `_.iteratee`. @@ -9888,14 +10330,15 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Function} Returns the iteratee. */ function baseIteratee(value) { - var type = typeof value; - if (type == 'function') { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { return value; } if (value == null) { return identity; } - if (type == 'object') { + if (typeof value == 'object') { return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); @@ -9907,7 +10350,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 121 */ +/* 131 */ /***/ function(module, exports, __webpack_require__) { /* Built-in method references for those with the same name as other `lodash` methods. */ @@ -9929,11 +10372,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 122 */ +/* 132 */ /***/ function(module, exports, __webpack_require__) { - var Reflect = __webpack_require__(102), - iteratorToArray = __webpack_require__(158); + var Reflect = __webpack_require__(112), + iteratorToArray = __webpack_require__(175); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -9971,32 +10414,24 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 123 */ +/* 133 */ /***/ function(module, exports, __webpack_require__) { - var baseIsMatch = __webpack_require__(119), - getMatchData = __webpack_require__(147); + var baseIsMatch = __webpack_require__(128), + getMatchData = __webpack_require__(158), + matchesStrictComparable = __webpack_require__(70); /** * The base implementation of `_.matches` which doesn't clone `source`. * * @private * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new function. + * @returns {Function} Returns the new spec function. */ function baseMatches(source) { var matchData = getMatchData(source); if (matchData.length == 1 && matchData[0][2]) { - var key = matchData[0][0], - value = matchData[0][1]; - - return function(object) { - if (object == null) { - return false; - } - return object[key] === value && - (value !== undefined || (key in Object(object))); - }; + return matchesStrictComparable(matchData[0][0], matchData[0][1]); } return function(object) { return object === source || baseIsMatch(object, source, matchData); @@ -10007,12 +10442,16 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 124 */ +/* 134 */ /***/ function(module, exports, __webpack_require__) { - var baseIsEqual = __webpack_require__(53), - get = __webpack_require__(63), - hasIn = __webpack_require__(172); + var baseIsEqual = __webpack_require__(60), + get = __webpack_require__(194), + hasIn = __webpack_require__(195), + isKey = __webpack_require__(23), + isStrictComparable = __webpack_require__(68), + matchesStrictComparable = __webpack_require__(70), + toKey = __webpack_require__(7); /** Used to compose bitmasks for comparison styles. */ var UNORDERED_COMPARE_FLAG = 1, @@ -10024,9 +10463,12 @@ return /******/ (function(modules) { // webpackBootstrap * @private * @param {string} path The path of the property to get. * @param {*} srcValue The value to match. - * @returns {Function} Returns the new function. + * @returns {Function} Returns the new spec function. */ function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } return function(object) { var objValue = get(object, path); return (objValue === undefined && objValue === srcValue) @@ -10039,17 +10481,17 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 125 */ +/* 135 */ /***/ function(module, exports, __webpack_require__) { - var Stack = __webpack_require__(14), - arrayEach = __webpack_require__(42), - assignMergeValue = __webpack_require__(43), - baseMergeDeep = __webpack_require__(126), + var Stack = __webpack_require__(17), + arrayEach = __webpack_require__(53), + assignMergeValue = __webpack_require__(54), + baseMergeDeep = __webpack_require__(136), isArray = __webpack_require__(0), - isObject = __webpack_require__(2), - isTypedArray = __webpack_require__(34), - keysIn = __webpack_require__(35); + isObject = __webpack_require__(3), + isTypedArray = __webpack_require__(42), + keysIn = __webpack_require__(43); /** * The base implementation of `_.merge` without support for multiple sources. @@ -10059,16 +10501,16 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} source The source object. * @param {number} srcIndex The index of `source`. * @param {Function} [customizer] The function to customize merged values. - * @param {Object} [stack] Tracks traversed source values and their merged counterparts. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. */ function baseMerge(object, source, srcIndex, customizer, stack) { if (object === source) { return; } - var props = (isArray(source) || isTypedArray(source)) - ? undefined - : keysIn(source); - + if (!(isArray(source) || isTypedArray(source))) { + var props = keysIn(source); + } arrayEach(props || source, function(srcValue, key) { if (props) { key = srcValue; @@ -10095,20 +10537,20 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 126 */ +/* 136 */ /***/ function(module, exports, __webpack_require__) { - var assignMergeValue = __webpack_require__(43), - baseClone = __webpack_require__(112), - copyArray = __webpack_require__(56), - isArguments = __webpack_require__(11), + var assignMergeValue = __webpack_require__(54), + baseClone = __webpack_require__(122), + copyArray = __webpack_require__(64), + isArguments = __webpack_require__(13), isArray = __webpack_require__(0), - isArrayLikeObject = __webpack_require__(32), - isFunction = __webpack_require__(12), - isObject = __webpack_require__(2), - isPlainObject = __webpack_require__(177), - isTypedArray = __webpack_require__(34), - toPlainObject = __webpack_require__(185); + isArrayLikeObject = __webpack_require__(73), + isFunction = __webpack_require__(14), + isObject = __webpack_require__(3), + isPlainObject = __webpack_require__(198), + isTypedArray = __webpack_require__(42), + toPlainObject = __webpack_require__(208); /** * A specialized version of `baseMerge` for arrays and objects which performs @@ -10122,7 +10564,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {number} srcIndex The index of `source`. * @param {Function} mergeFunc The function to merge values. * @param {Function} [customizer] The function to customize assigned values. - * @param {Object} [stack] Tracks traversed source values and their merged counterparts. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. */ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { var objValue = object[key], @@ -10150,7 +10593,7 @@ return /******/ (function(modules) { // webpackBootstrap } else { isCommon = false; - newValue = baseClone(srcValue, !customizer); + newValue = baseClone(srcValue, true); } } else if (isPlainObject(srcValue) || isArguments(srcValue)) { @@ -10159,7 +10602,7 @@ return /******/ (function(modules) { // webpackBootstrap } else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { isCommon = false; - newValue = baseClone(srcValue, !customizer); + newValue = baseClone(srcValue, true); } else { newValue = objValue; @@ -10183,38 +10626,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayReduce = __webpack_require__(28); - - /** - * The base implementation of `_.pick` without support for individual - * property names. - * - * @private - * @param {Object} object The source object. - * @param {string[]} props The property names to pick. - * @returns {Object} Returns the new object. - */ - function basePick(object, props) { - object = Object(object); - return arrayReduce(props, function(result, key) { - if (key in object) { - result[key] = object[key]; - } - return result; - }, {}); - } - - module.e = basePick; - - -/***/ }, -/* 128 */ +/* 137 */ /***/ function(module, exports, __webpack_require__) { - var baseForIn = __webpack_require__(115); + var getAllKeysIn = __webpack_require__(66); /** * The base implementation of `_.pickBy` without support for iteratee shorthands. @@ -10225,12 +10640,19 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Object} Returns the new object. */ function basePickBy(object, predicate) { - var result = {}; - baseForIn(object, function(value, key) { + var index = -1, + props = getAllKeysIn(object), + length = props.length, + result = {}; + + while (++index < length) { + var key = props[index], + value = object[key]; + if (predicate(value, key)) { result[key] = value; } - }); + } return result; } @@ -10238,17 +10660,17 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 129 */ +/* 138 */ /***/ function(module, exports, __webpack_require__) { - var baseGet = __webpack_require__(51); + var baseGet = __webpack_require__(57); /** * A specialized version of `baseProperty` which supports deep paths. * * @private * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new function. + * @returns {Function} Returns the new accessor function. */ function basePropertyDeep(path) { return function(object) { @@ -10260,94 +10682,109 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 130 */ +/* 139 */ /***/ function(module, exports, __webpack_require__) { /** - * The base implementation of `_.slice` without an iteratee call guard. + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. * * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. */ - function baseSlice(array, start, end) { + function baseTimes(n, iteratee) { var index = -1, - length = array.length; - - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; + result = Array(n); - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; + while (++index < n) { + result[index] = iteratee(index); } return result; } - module.e = baseSlice; + module.e = baseTimes; /***/ }, -/* 131 */ +/* 140 */ /***/ function(module, exports, __webpack_require__) { + var Symbol = __webpack_require__(32), + isSymbol = __webpack_require__(28); + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. * * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. + * @param {*} value The value to process. + * @returns {string} Returns the string. */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; } - return result; + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } - module.e = baseTimes; + module.e = baseToString; /***/ }, -/* 132 */ +/* 141 */ /***/ function(module, exports, __webpack_require__) { - var arrayMap = __webpack_require__(108); + /** + * The base implementation of `_.unary` without support for storing wrapper metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + module.e = baseUnary; + + +/***/ }, +/* 142 */ +/***/ function(module, exports, __webpack_require__) { + /** - * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array - * of key-value pairs for `object` corresponding to the property names of `props`. + * Checks if a cache value for `key` exists. * * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the new array of key-value pairs. + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ - function baseToPairs(object, props) { - return arrayMap(props, function(key) { - return [key, object[key]]; - }); + function cacheHas(cache, key) { + return cache.has(key); } - module.e = baseToPairs; + module.e = cacheHas; /***/ }, -/* 133 */ +/* 143 */ /***/ function(module, exports, __webpack_require__) { /** @@ -10365,7 +10802,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 134 */ +/* 144 */ /***/ function(module, exports, __webpack_require__) { /** @@ -10389,29 +10826,54 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 135 */ +/* 145 */ +/***/ function(module, exports, __webpack_require__) { + + var cloneArrayBuffer = __webpack_require__(36); + + /** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + + module.e = cloneDataView; + + +/***/ }, +/* 146 */ /***/ function(module, exports, __webpack_require__) { - var addMapEntry = __webpack_require__(105), - arrayReduce = __webpack_require__(28), - mapToArray = __webpack_require__(61); + var addMapEntry = __webpack_require__(115), + arrayReduce = __webpack_require__(35), + mapToArray = __webpack_require__(69); /** * Creates a clone of `map`. * * @private * @param {Object} map The map to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the cloned map. */ - function cloneMap(map) { - return arrayReduce(mapToArray(map), addMapEntry, new map.constructor); + function cloneMap(map, isDeep, cloneFunc) { + var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map); + return arrayReduce(array, addMapEntry, new map.constructor); } module.e = cloneMap; /***/ }, -/* 136 */ +/* 147 */ /***/ function(module, exports, __webpack_require__) { /** Used to match `RegExp` flags from their coerced string values. */ @@ -10434,32 +10896,35 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 137 */ +/* 148 */ /***/ function(module, exports, __webpack_require__) { - var addSetEntry = __webpack_require__(106), - arrayReduce = __webpack_require__(28), - setToArray = __webpack_require__(62); + var addSetEntry = __webpack_require__(116), + arrayReduce = __webpack_require__(35), + setToArray = __webpack_require__(71); /** * Creates a clone of `set`. * * @private * @param {Object} set The set to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the cloned set. */ - function cloneSet(set) { - return arrayReduce(setToArray(set), addSetEntry, new set.constructor); + function cloneSet(set, isDeep, cloneFunc) { + var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set); + return arrayReduce(array, addSetEntry, new set.constructor); } module.e = cloneSet; /***/ }, -/* 138 */ +/* 149 */ /***/ function(module, exports, __webpack_require__) { - var Symbol = __webpack_require__(27); + var Symbol = __webpack_require__(32); /** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, @@ -10480,10 +10945,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 139 */ +/* 150 */ /***/ function(module, exports, __webpack_require__) { - var cloneArrayBuffer = __webpack_require__(55); + var cloneArrayBuffer = __webpack_require__(36); /** * Creates a clone of `typedArray`. @@ -10502,71 +10967,45 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 140 */ +/* 151 */ /***/ function(module, exports, __webpack_require__) { - var assignValue = __webpack_require__(44); + var copyObject = __webpack_require__(37), + getSymbols = __webpack_require__(38); /** - * This function is like `copyObject` except that it accepts a function to - * customize copied values. + * Copies own symbol properties of `source` to `object`. * * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property names to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. * @returns {Object} Returns `object`. */ - function copyObjectWith(source, props, object, customizer) { - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : source[key]; - - assignValue(object, key, newValue); - } - return object; + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); } - module.e = copyObjectWith; + module.e = copySymbols; /***/ }, -/* 141 */ +/* 152 */ /***/ function(module, exports, __webpack_require__) { - var copyObject = __webpack_require__(29), - getSymbols = __webpack_require__(148); + var root = __webpack_require__(2); - /** - * Copies own symbol properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } + /** Used to detect overreaching core-js shims. */ + var coreJsData = root['__core-js_shared__']; - module.e = copySymbols; + module.e = coreJsData; /***/ }, -/* 142 */ +/* 153 */ /***/ function(module, exports, __webpack_require__) { - var isIterateeCall = __webpack_require__(156), - rest = __webpack_require__(65); + var isIterateeCall = __webpack_require__(172), + rest = __webpack_require__(44); /** * Creates a function like `_.assign`. @@ -10582,7 +11021,7 @@ return /******/ (function(modules) { // webpackBootstrap customizer = length > 1 ? sources[length - 1] : undefined, guard = length > 2 ? sources[2] : undefined; - customizer = typeof customizer == 'function' + customizer = (assigner.length > 3 && typeof customizer == 'function') ? (length--, customizer) : undefined; @@ -10605,45 +11044,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 143 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Creates a base function for methods like `_.forIn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - module.e = createBaseFor; - - -/***/ }, -/* 144 */ +/* 154 */ /***/ function(module, exports, __webpack_require__) { - var Symbol = __webpack_require__(27), - Uint8Array = __webpack_require__(41), - equalArrays = __webpack_require__(57), - mapToArray = __webpack_require__(61), - setToArray = __webpack_require__(62); + var Symbol = __webpack_require__(32), + Uint8Array = __webpack_require__(52), + equalArrays = __webpack_require__(65), + mapToArray = __webpack_require__(69), + setToArray = __webpack_require__(71); /** Used to compose bitmasks for comparison styles. */ var UNORDERED_COMPARE_FLAG = 1, @@ -10660,7 +11068,8 @@ return /******/ (function(modules) { // webpackBootstrap stringTag = '[object String]', symbolTag = '[object Symbol]'; - var arrayBufferTag = '[object ArrayBuffer]'; + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; /** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, @@ -10679,12 +11088,21 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} tag The `toStringTag` of the objects to compare. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Function} customizer The function to customize comparisons. - * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details. + * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` + * for more details. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) { switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + case arrayBufferTag: if ((object.byteLength != other.byteLength) || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { @@ -10694,8 +11112,9 @@ return /******/ (function(modules) { // webpackBootstrap case boolTag: case dateTag: - // Coerce dates and booleans to numbers, dates to milliseconds and booleans - // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. + // Coerce dates and booleans to numbers, dates to milliseconds and + // booleans to `1` or `0` treating invalid dates coerced to `NaN` as + // not equal. return +object == +other; case errorTag: @@ -10707,8 +11126,9 @@ return /******/ (function(modules) { // webpackBootstrap case regexpTag: case stringTag: - // Coerce regexes to strings and treat strings primitives and string - // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype.tostring + // for more details. return object == (other + ''); case mapTag: @@ -10726,8 +11146,11 @@ return /******/ (function(modules) { // webpackBootstrap if (stacked) { return stacked == other; } + bitmask |= UNORDERED_COMPARE_FLAG; + stack.set(object, other); + // Recursively compare objects (susceptible to call stack limits). - return equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask | UNORDERED_COMPARE_FLAG, stack.set(object, other)); + return equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); case symbolTag: if (symbolValueOf) { @@ -10741,11 +11164,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 145 */ +/* 155 */ /***/ function(module, exports, __webpack_require__) { - var baseHas = __webpack_require__(52), - keys = __webpack_require__(24); + var baseHas = __webpack_require__(59), + keys = __webpack_require__(8); /** Used to compose bitmasks for comparison styles. */ var PARTIAL_COMPARE_FLAG = 2; @@ -10759,7 +11182,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} other The other object to compare. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Function} customizer The function to customize comparisons. - * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details. + * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` + * for more details. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ @@ -10829,16 +11253,39 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 146 */ +/* 156 */ +/***/ function(module, exports, __webpack_require__) { + + var baseGetAllKeys = __webpack_require__(58), + getSymbols = __webpack_require__(38), + keys = __webpack_require__(8); + + /** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + + module.e = getAllKeys; + + +/***/ }, +/* 157 */ /***/ function(module, exports, __webpack_require__) { - var baseProperty = __webpack_require__(54); + var baseProperty = __webpack_require__(62); /** * Gets the "length" property value of `object`. * - * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) - * that affects Safari on at least iOS 8.1-8.3 ARM64. + * **Note:** This function is used to avoid a + * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects + * Safari on at least iOS 8.1-8.3 ARM64. * * @private * @param {Object} object The object to query. @@ -10850,11 +11297,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 147 */ +/* 158 */ /***/ function(module, exports, __webpack_require__) { - var isStrictComparable = __webpack_require__(157), - toPairs = __webpack_require__(184); + var isStrictComparable = __webpack_require__(68), + keys = __webpack_require__(8); /** * Gets the property names, values, and compare flags of `object`. @@ -10864,52 +11311,83 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Array} Returns the match data of `object`. */ function getMatchData(object) { - var result = toPairs(object), + var result = keys(object), length = result.length; while (length--) { - result[length][2] = isStrictComparable(result[length][1]); + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; + } + + module.e = getMatchData; + + +/***/ }, +/* 159 */ +/***/ function(module, exports, __webpack_require__) { + + var arrayPush = __webpack_require__(34), + getPrototype = __webpack_require__(20), + getSymbols = __webpack_require__(38); + + /** Built-in value references. */ + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + + /** + * Creates an array of the own and inherited enumerable symbol properties + * of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbolsIn = !getOwnPropertySymbols ? getSymbols : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); } return result; - } + }; - module.e = getMatchData; + module.e = getSymbolsIn; /***/ }, -/* 148 */ +/* 160 */ /***/ function(module, exports, __webpack_require__) { - /** Built-in value references. */ - var getOwnPropertySymbols = Object.getOwnPropertySymbols; - /** - * Creates an array of the own symbol properties of `object`. + * Gets the value at `key` of `object`. * * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. */ - var getSymbols = getOwnPropertySymbols || function() { - return []; - }; + function getValue(object, key) { + return object == null ? undefined : object[key]; + } - module.e = getSymbols; + module.e = getValue; /***/ }, -/* 149 */ +/* 161 */ /***/ function(module, exports, __webpack_require__) { - var baseCastPath = __webpack_require__(49), - isArguments = __webpack_require__(11), + var castPath = __webpack_require__(63), + isArguments = __webpack_require__(13), isArray = __webpack_require__(0), - isIndex = __webpack_require__(18), - isKey = __webpack_require__(30), - isLength = __webpack_require__(23), - isString = __webpack_require__(33), - last = __webpack_require__(179), - parent = __webpack_require__(164); + isIndex = __webpack_require__(22), + isKey = __webpack_require__(23), + isLength = __webpack_require__(27), + isString = __webpack_require__(41), + toKey = __webpack_require__(7); /** * Checks if `path` exists on `object`. @@ -10921,54 +11399,76 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {boolean} Returns `true` if `path` exists, else `false`. */ function hasPath(object, path, hasFunc) { - if (object == null) { - return false; - } - var result = hasFunc(object, path); - if (!result && !isKey(path)) { - path = baseCastPath(path); - object = parent(object, path); - if (object != null) { - path = last(path); - result = hasFunc(object, path); + path = isKey(path, object) ? [path] : castPath(path); + + var result, + index = -1, + length = path.length; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; } + object = object[key]; } - var length = object ? object.length : undefined; - return result || ( - !!length && isLength(length) && isIndex(path, length) && - (isArray(object) || isString(object) || isArguments(object)) - ); + if (result) { + return result; + } + var length = object ? object.length : 0; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isString(object) || isArguments(object)); } module.e = hasPath; /***/ }, -/* 150 */ +/* 162 */ /***/ function(module, exports, __webpack_require__) { - var hashHas = __webpack_require__(59); + var nativeCreate = __webpack_require__(24); + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + } + module.e = hashClear; + + +/***/ }, +/* 163 */ +/***/ function(module, exports, __webpack_require__) { + /** * Removes `key` and its value from the hash. * * @private + * @name delete + * @memberOf Hash * @param {Object} hash The hash to modify. * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ - function hashDelete(hash, key) { - return hashHas(hash, key) && delete hash[key]; + function hashDelete(key) { + return this.has(key) && delete this.__data__[key]; } module.e = hashDelete; /***/ }, -/* 151 */ +/* 164 */ /***/ function(module, exports, __webpack_require__) { - var nativeCreate = __webpack_require__(20); + var nativeCreate = __webpack_require__(24); /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; @@ -10983,26 +11483,57 @@ return /******/ (function(modules) { // webpackBootstrap * Gets the hash value for `key`. * * @private - * @param {Object} hash The hash to query. + * @name get + * @memberOf Hash * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ - function hashGet(hash, key) { + function hashGet(key) { + var data = this.__data__; if (nativeCreate) { - var result = hash[key]; + var result = data[key]; return result === HASH_UNDEFINED ? undefined : result; } - return hasOwnProperty.call(hash, key) ? hash[key] : undefined; + return hasOwnProperty.call(data, key) ? data[key] : undefined; } module.e = hashGet; /***/ }, -/* 152 */ +/* 165 */ +/***/ function(module, exports, __webpack_require__) { + + var nativeCreate = __webpack_require__(24); + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); + } + + module.e = hashHas; + + +/***/ }, +/* 166 */ /***/ function(module, exports, __webpack_require__) { - var nativeCreate = __webpack_require__(20); + var nativeCreate = __webpack_require__(24); /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; @@ -11011,19 +11542,52 @@ return /******/ (function(modules) { // webpackBootstrap * Sets the hash `key` to `value`. * * @private - * @param {Object} hash The hash to modify. + * @name set + * @memberOf Hash * @param {string} key The key of the value to set. * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. */ - function hashSet(hash, key, value) { - hash[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + function hashSet(key, value) { + var data = this.__data__; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; } module.e = hashSet; /***/ }, -/* 153 */ +/* 167 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Gets the index at which the first occurrence of `NaN` is found in `array`. + * + * @private + * @param {Array} array The array to search. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched `NaN`, else `-1`. + */ + function indexOfNaN(array, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + var other = array[index]; + if (other !== other) { + return index; + } + } + return -1; + } + + module.e = indexOfNaN; + + +/***/ }, +/* 168 */ /***/ function(module, exports, __webpack_require__) { /** Used for built-in method references. */ @@ -11055,15 +11619,16 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 154 */ +/* 169 */ /***/ function(module, exports, __webpack_require__) { - var cloneArrayBuffer = __webpack_require__(55), - cloneMap = __webpack_require__(135), - cloneRegExp = __webpack_require__(136), - cloneSet = __webpack_require__(137), - cloneSymbol = __webpack_require__(138), - cloneTypedArray = __webpack_require__(139); + var cloneArrayBuffer = __webpack_require__(36), + cloneDataView = __webpack_require__(145), + cloneMap = __webpack_require__(146), + cloneRegExp = __webpack_require__(147), + cloneSet = __webpack_require__(148), + cloneSymbol = __webpack_require__(149), + cloneTypedArray = __webpack_require__(150); /** `Object#toString` result references. */ var boolTag = '[object Boolean]', @@ -11076,6 +11641,7 @@ return /******/ (function(modules) { // webpackBootstrap symbolTag = '[object Symbol]'; var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', @@ -11095,10 +11661,11 @@ return /******/ (function(modules) { // webpackBootstrap * @private * @param {Object} object The object to clone. * @param {string} tag The `toStringTag` of the object to clone. + * @param {Function} cloneFunc The function to clone values. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the initialized clone. */ - function initCloneByTag(object, tag, isDeep) { + function initCloneByTag(object, tag, cloneFunc, isDeep) { var Ctor = object.constructor; switch (tag) { case arrayBufferTag: @@ -11108,13 +11675,16 @@ return /******/ (function(modules) { // webpackBootstrap case dateTag: return new Ctor(+object); + case dataViewTag: + return cloneDataView(object, isDeep); + case float32Tag: case float64Tag: case int8Tag: case int16Tag: case int32Tag: case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: return cloneTypedArray(object, isDeep); case mapTag: - return cloneMap(object); + return cloneMap(object, isDeep, cloneFunc); case numberTag: case stringTag: @@ -11124,7 +11694,7 @@ return /******/ (function(modules) { // webpackBootstrap return cloneRegExp(object); case setTag: - return cloneSet(object); + return cloneSet(object, isDeep, cloneFunc); case symbolTag: return cloneSymbol(object); @@ -11135,14 +11705,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 155 */ +/* 170 */ /***/ function(module, exports, __webpack_require__) { - var baseCreate = __webpack_require__(113), - isPrototype = __webpack_require__(31); - - /** Built-in value references. */ - var getPrototypeOf = Object.getPrototypeOf; + var baseCreate = __webpack_require__(123), + getPrototype = __webpack_require__(20), + isPrototype = __webpack_require__(40); /** * Initializes an object clone. @@ -11153,7 +11721,7 @@ return /******/ (function(modules) { // webpackBootstrap */ function initCloneObject(object) { return (typeof object.constructor == 'function' && !isPrototype(object)) - ? baseCreate(getPrototypeOf(object)) + ? baseCreate(getPrototype(object)) : {}; } @@ -11161,13 +11729,34 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 156 */ +/* 171 */ +/***/ function(module, exports, __webpack_require__) { + + var isArguments = __webpack_require__(13), + isArray = __webpack_require__(0); + + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value); + } + + module.e = isFlattenable; + + +/***/ }, +/* 172 */ /***/ function(module, exports, __webpack_require__) { - var eq = __webpack_require__(21), - isArrayLike = __webpack_require__(22), - isIndex = __webpack_require__(18), - isObject = __webpack_require__(2); + var eq = __webpack_require__(25), + isArrayLike = __webpack_require__(26), + isIndex = __webpack_require__(22), + isObject = __webpack_require__(3); /** * Checks if the given arguments are from an iteratee call. @@ -11176,7 +11765,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {*} value The potential iteratee value argument. * @param {*} index The potential iteratee index or key argument. * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. */ function isIterateeCall(value, index, object) { if (!isObject(object)) { @@ -11184,8 +11774,9 @@ return /******/ (function(modules) { // webpackBootstrap } var type = typeof index; if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object)) { + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { return eq(object[index], value); } return false; @@ -11195,56 +11786,219 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 157 */ +/* 173 */ /***/ function(module, exports, __webpack_require__) { - var isObject = __webpack_require__(2); - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * Checks if `value` is suitable for use as unique object key. * * @private * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. */ - function isStrictComparable(value) { - return value === value && !isObject(value); + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); } - module.e = isStrictComparable; + module.e = isKeyable; /***/ }, -/* 158 */ +/* 174 */ +/***/ function(module, exports, __webpack_require__) { + + var coreJsData = __webpack_require__(152); + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + module.e = isMasked; + + +/***/ }, +/* 175 */ /***/ function(module, exports, __webpack_require__) { /** * Converts `iterator` to an array. * * @private - * @param {Object} iterator The iterator to convert. - * @returns {Array} Returns the converted array. + * @param {Object} iterator The iterator to convert. + * @returns {Array} Returns the converted array. + */ + function iteratorToArray(iterator) { + var data, + result = []; + + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; + } + + module.e = iteratorToArray; + + +/***/ }, +/* 176 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + } + + module.e = listCacheClear; + + +/***/ }, +/* 177 */ +/***/ function(module, exports, __webpack_require__) { + + var assocIndexOf = __webpack_require__(18); + + /** Used for built-in method references. */ + var arrayProto = Array.prototype; + + /** Built-in value references. */ + var splice = arrayProto.splice; + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + return true; + } + + module.e = listCacheDelete; + + +/***/ }, +/* 178 */ +/***/ function(module, exports, __webpack_require__) { + + var assocIndexOf = __webpack_require__(18); + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + module.e = listCacheGet; + + +/***/ }, +/* 179 */ +/***/ function(module, exports, __webpack_require__) { + + var assocIndexOf = __webpack_require__(18); + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + + module.e = listCacheHas; + + +/***/ }, +/* 180 */ +/***/ function(module, exports, __webpack_require__) { + + var assocIndexOf = __webpack_require__(18); + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. */ - function iteratorToArray(iterator) { - var data, - result = []; + function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); - while (!(data = iterator.next()).done) { - result.push(data.value); + if (index < 0) { + data.push([key, value]); + } else { + data[index][1] = value; } - return result; + return this; } - module.e = iteratorToArray; + module.e = listCacheSet; /***/ }, -/* 159 */ +/* 181 */ /***/ function(module, exports, __webpack_require__) { - var Hash = __webpack_require__(100), - Map = __webpack_require__(6); + var Hash = __webpack_require__(110), + ListCache = __webpack_require__(16), + Map = __webpack_require__(50); /** * Removes all key-value entries from the map. @@ -11253,25 +12007,22 @@ return /******/ (function(modules) { // webpackBootstrap * @name clear * @memberOf MapCache */ - function mapClear() { + function mapCacheClear() { this.__data__ = { 'hash': new Hash, - 'map': Map ? new Map : [], + 'map': new (Map || ListCache), 'string': new Hash }; } - module.e = mapClear; + module.e = mapCacheClear; /***/ }, -/* 160 */ +/* 182 */ /***/ function(module, exports, __webpack_require__) { - var Map = __webpack_require__(6), - assocDelete = __webpack_require__(45), - hashDelete = __webpack_require__(150), - isKeyable = __webpack_require__(19); + var getMapData = __webpack_require__(19); /** * Removes `key` and its value from the map. @@ -11282,25 +12033,18 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ - function mapDelete(key) { - var data = this.__data__; - if (isKeyable(key)) { - return hashDelete(typeof key == 'string' ? data.string : data.hash, key); - } - return Map ? data.map['delete'](key) : assocDelete(data.map, key); + function mapCacheDelete(key) { + return getMapData(this, key)['delete'](key); } - module.e = mapDelete; + module.e = mapCacheDelete; /***/ }, -/* 161 */ +/* 183 */ /***/ function(module, exports, __webpack_require__) { - var Map = __webpack_require__(6), - assocGet = __webpack_require__(46), - hashGet = __webpack_require__(151), - isKeyable = __webpack_require__(19); + var getMapData = __webpack_require__(19); /** * Gets the map value for `key`. @@ -11311,25 +12055,18 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ - function mapGet(key) { - var data = this.__data__; - if (isKeyable(key)) { - return hashGet(typeof key == 'string' ? data.string : data.hash, key); - } - return Map ? data.map.get(key) : assocGet(data.map, key); + function mapCacheGet(key) { + return getMapData(this, key).get(key); } - module.e = mapGet; + module.e = mapCacheGet; /***/ }, -/* 162 */ +/* 184 */ /***/ function(module, exports, __webpack_require__) { - var Map = __webpack_require__(6), - assocHas = __webpack_require__(47), - hashHas = __webpack_require__(59), - isKeyable = __webpack_require__(19); + var getMapData = __webpack_require__(19); /** * Checks if a map value for `key` exists. @@ -11340,25 +12077,18 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ - function mapHas(key) { - var data = this.__data__; - if (isKeyable(key)) { - return hashHas(typeof key == 'string' ? data.string : data.hash, key); - } - return Map ? data.map.has(key) : assocHas(data.map, key); + function mapCacheHas(key) { + return getMapData(this, key).has(key); } - module.e = mapHas; + module.e = mapCacheHas; /***/ }, -/* 163 */ +/* 185 */ /***/ function(module, exports, __webpack_require__) { - var Map = __webpack_require__(6), - assocSet = __webpack_require__(48), - hashSet = __webpack_require__(152), - isKeyable = __webpack_require__(19); + var getMapData = __webpack_require__(19); /** * Sets the map `key` to `value`. @@ -11368,49 +12098,67 @@ return /******/ (function(modules) { // webpackBootstrap * @memberOf MapCache * @param {string} key The key of the value to set. * @param {*} value The value to set. - * @returns {Object} Returns the map cache object. + * @returns {Object} Returns the map cache instance. */ - function mapSet(key, value) { - var data = this.__data__; - if (isKeyable(key)) { - hashSet(typeof key == 'string' ? data.string : data.hash, key, value); - } else if (Map) { - data.map.set(key, value); - } else { - assocSet(data.map, key, value); - } + function mapCacheSet(key, value) { + getMapData(this, key).set(key, value); return this; } - module.e = mapSet; + module.e = mapCacheSet; /***/ }, -/* 164 */ +/* 186 */ /***/ function(module, exports, __webpack_require__) { - var baseSlice = __webpack_require__(130), - get = __webpack_require__(63); + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** - * Gets the parent value at `path` of `object`. + * Adds `value` to the array cache. * * @private - * @param {Object} object The object to query. - * @param {Array} path The path to get the parent value of. - * @returns {*} Returns the parent value. + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + + module.e = setCacheAdd; + + +/***/ }, +/* 187 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. */ - function parent(object, path) { - return path.length == 1 ? object : get(object, baseSlice(path, 0, -1)); + function setCacheHas(value) { + return this.__data__.has(value); } - module.e = parent; + module.e = setCacheHas; /***/ }, -/* 165 */ +/* 188 */ /***/ function(module, exports, __webpack_require__) { + var ListCache = __webpack_require__(16); + /** * Removes all key-value entries from the stack. * @@ -11419,18 +12167,16 @@ return /******/ (function(modules) { // webpackBootstrap * @memberOf Stack */ function stackClear() { - this.__data__ = { 'array': [], 'map': null }; + this.__data__ = new ListCache; } module.e = stackClear; /***/ }, -/* 166 */ +/* 189 */ /***/ function(module, exports, __webpack_require__) { - var assocDelete = __webpack_require__(45); - /** * Removes `key` and its value from the stack. * @@ -11441,21 +12187,16 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function stackDelete(key) { - var data = this.__data__, - array = data.array; - - return array ? assocDelete(array, key) : data.map['delete'](key); + return this.__data__['delete'](key); } module.e = stackDelete; /***/ }, -/* 167 */ +/* 190 */ /***/ function(module, exports, __webpack_require__) { - var assocGet = __webpack_require__(46); - /** * Gets the stack value for `key`. * @@ -11466,21 +12207,16 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} Returns the entry value. */ function stackGet(key) { - var data = this.__data__, - array = data.array; - - return array ? assocGet(array, key) : data.map.get(key); + return this.__data__.get(key); } module.e = stackGet; /***/ }, -/* 168 */ +/* 191 */ /***/ function(module, exports, __webpack_require__) { - var assocHas = __webpack_require__(47); - /** * Checks if a stack value for `key` exists. * @@ -11491,21 +12227,18 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function stackHas(key) { - var data = this.__data__, - array = data.array; - - return array ? assocHas(array, key) : data.map.has(key); + return this.__data__.has(key); } module.e = stackHas; /***/ }, -/* 169 */ +/* 192 */ /***/ function(module, exports, __webpack_require__) { - var MapCache = __webpack_require__(101), - assocSet = __webpack_require__(48); + var ListCache = __webpack_require__(16), + MapCache = __webpack_require__(31); /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; @@ -11518,24 +12251,14 @@ return /******/ (function(modules) { // webpackBootstrap * @memberOf Stack * @param {string} key The key of the value to set. * @param {*} value The value to set. - * @returns {Object} Returns the stack cache object. + * @returns {Object} Returns the stack cache instance. */ function stackSet(key, value) { - var data = this.__data__, - array = data.array; - - if (array) { - if (array.length < (LARGE_ARRAY_SIZE - 1)) { - assocSet(array, key, value); - } else { - data.array = null; - data.map = new MapCache(array); - } - } - var map = data.map; - if (map) { - map.set(key, value); + var cache = this.__data__; + if (cache instanceof ListCache && cache.__data__.length == LARGE_ARRAY_SIZE) { + cache = this.__data__ = new MapCache(cache.__data__); } + cache.set(key, value); return this; } @@ -11543,13 +12266,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 170 */ +/* 193 */ /***/ function(module, exports, __webpack_require__) { - var toString = __webpack_require__(186); + var memoize = __webpack_require__(199), + toString = __webpack_require__(209); /** Used to match property names within property paths. */ - var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g; + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g; /** Used to match backslashes in property paths. */ var reEscapeChar = /\\(\\)?/g; @@ -11561,93 +12285,105 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} string The string to convert. * @returns {Array} Returns the property path array. */ - function stringToPath(string) { + var stringToPath = memoize(function(string) { var result = []; toString(string).replace(rePropName, function(match, number, quote, string) { result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); }); return result; - } + }); module.e = stringToPath; /***/ }, -/* 171 */ +/* 194 */ /***/ function(module, exports, __webpack_require__) { + var baseGet = __webpack_require__(57); + /** - * Creates a function that returns `value`. + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is used in its place. * * @static * @memberOf _ - * @category Util - * @param {*} value The value to return from the new function. - * @returns {Function} Returns the new function. + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. * @example * - * var object = { 'user': 'fred' }; - * var getter = _.constant(object); + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; * - * getter() === object; - * // => true + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' */ - function constant(value) { - return function() { - return value; - }; + function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; } - module.e = constant; + module.e = get; /***/ }, -/* 172 */ +/* 195 */ /***/ function(module, exports, __webpack_require__) { - var baseHasIn = __webpack_require__(117), - hasPath = __webpack_require__(149); + var baseHasIn = __webpack_require__(125), + hasPath = __webpack_require__(161); /** * Checks if `path` is a direct or inherited property of `object`. * * @static * @memberOf _ + * @since 4.0.0 * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @returns {boolean} Returns `true` if `path` exists, else `false`. * @example * - * var object = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) }); + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); * * _.hasIn(object, 'a'); * // => true * - * _.hasIn(object, 'a.b.c'); + * _.hasIn(object, 'a.b'); * // => true * - * _.hasIn(object, ['a', 'b', 'c']); + * _.hasIn(object, ['a', 'b']); * // => true * * _.hasIn(object, 'b'); * // => false */ function hasIn(object, path) { - return hasPath(object, path, baseHasIn); + return object != null && hasPath(object, path, baseHasIn); } module.e = hasIn; /***/ }, -/* 173 */ +/* 196 */ /***/ function(module, exports, __webpack_require__) { /** * This method returns the first argument given to it. * * @static + * @since 0.1.0 * @memberOf _ * @category Util * @param {*} value Any value. @@ -11656,7 +12392,7 @@ return /******/ (function(modules) { // webpackBootstrap * * var object = { 'user': 'fred' }; * - * _.identity(object) === object; + * console.log(_.identity(object) === object); * // => true */ function identity(value) { @@ -11667,69 +12403,22 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 174 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(module) {var constant = __webpack_require__(171), - root = __webpack_require__(3); - - /** Used to determine if values are of the language type `Object`. */ - var objectTypes = { - 'function': true, - 'object': true - }; - - /** Detect free variable `exports`. */ - var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) - ? exports - : undefined; - - /** Detect free variable `module`. */ - var freeModule = (objectTypes[typeof module] && module && !module.nodeType) - ? module - : undefined; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = (freeModule && freeModule.exports === freeExports) - ? freeExports - : undefined; - - /** Built-in value references. */ - var Buffer = moduleExports ? root.Buffer : undefined; - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = !Buffer ? constant(false) : function(value) { - return value instanceof Buffer; - }; - - module.e = isBuffer; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(66)(module))) - -/***/ }, -/* 175 */ +/* 197 */ /***/ function(module, exports, __webpack_require__) { - var isArguments = __webpack_require__(11), + var getTag = __webpack_require__(39), + isArguments = __webpack_require__(13), isArray = __webpack_require__(0), - isArrayLike = __webpack_require__(22), - isFunction = __webpack_require__(12), - isString = __webpack_require__(33); + isArrayLike = __webpack_require__(26), + isBuffer = __webpack_require__(74), + isFunction = __webpack_require__(14), + isObjectLike = __webpack_require__(4), + isString = __webpack_require__(41), + keys = __webpack_require__(8); + + /** `Object#toString` result references. */ + var mapTag = '[object Map]', + setTag = '[object Set]'; /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -11737,13 +12426,25 @@ return /******/ (function(modules) { // webpackBootstrap /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; + /** Built-in value references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + + /** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */ + var nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf'); + /** - * Checks if `value` is an empty collection or object. A value is considered - * empty if it's an `arguments` object, array, string, or jQuery-like collection - * with a length of `0` or has no own enumerable properties. + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. * * @static * @memberOf _ + * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is empty, else `false`. @@ -11766,34 +12467,37 @@ return /******/ (function(modules) { // webpackBootstrap */ function isEmpty(value) { if (isArrayLike(value) && - (isArray(value) || isString(value) || - isFunction(value.splice) || isArguments(value))) { + (isArray(value) || isString(value) || isFunction(value.splice) || + isArguments(value) || isBuffer(value))) { return !value.length; } + if (isObjectLike(value)) { + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + } for (var key in value) { if (hasOwnProperty.call(value, key)) { return false; } } - return true; + return !(nonEnumShadows && keys(value).length); } module.e = isEmpty; /***/ }, -/* 176 */ +/* 198 */ /***/ function(module, exports, __webpack_require__) { - var isFunction = __webpack_require__(12), - isHostObject = __webpack_require__(17), + var getPrototype = __webpack_require__(20), + isHostObject = __webpack_require__(21), isObjectLike = __webpack_require__(4); - /** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - - /** Used to detect host constructors (Safari > 5). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; + /** `Object#toString` result references. */ + var objectTag = '[object Object]'; /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -11804,79 +12508,27 @@ return /******/ (function(modules) { // webpackBootstrap /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (value == null) { - return false; - } - if (isFunction(value)) { - return reIsNative.test(funcToString.call(value)); - } - return isObjectLike(value) && - (isHostObject(value) ? reIsNative : reIsHostCtor).test(value); - } - - module.e = isNative; - - -/***/ }, -/* 177 */ -/***/ function(module, exports, __webpack_require__) { - - var isHostObject = __webpack_require__(17), - isObjectLike = __webpack_require__(4); - - /** `Object#toString` result references. */ - var objectTag = '[object Object]'; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = Function.prototype.toString; - /** Used to infer the `Object` constructor. */ var objectCtorString = funcToString.call(Object); /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; - /** Built-in value references. */ - var getPrototypeOf = Object.getPrototypeOf; - /** * Checks if `value` is a plain object, that is, an object created by the * `Object` constructor or one with a `[[Prototype]]` of `null`. * * @static * @memberOf _ + * @since 0.8.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @returns {boolean} Returns `true` if `value` is a plain object, + * else `false`. * @example * * function Foo() { @@ -11900,11 +12552,11 @@ return /******/ (function(modules) { // webpackBootstrap objectToString.call(value) != objectTag || isHostObject(value)) { return false; } - var proto = getPrototypeOf(value); + var proto = getPrototype(value); if (proto === null) { return true; } - var Ctor = proto.constructor; + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; return (typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString); } @@ -11913,90 +12565,146 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 178 */ +/* 199 */ /***/ function(module, exports, __webpack_require__) { - var isObjectLike = __webpack_require__(4); - - /** `Object#toString` result references. */ - var symbolTag = '[object Symbol]'; + var MapCache = __webpack_require__(31); - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objectToString = objectProto.toString; + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; /** - * Checks if `value` is classified as a `Symbol` primitive or object. + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object) + * method interface of `delete`, `get`, `has`, and `set`. * * @static * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. * @example * - * _.isSymbol(Symbol.iterator); - * // => true + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; * - * _.isSymbol('abc'); - * // => false + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; */ - function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && objectToString.call(value) == symbolTag); + function memoize(func, resolver) { + if (typeof func != 'function' || (resolver && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result); + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; } - module.e = isSymbol; + // Assign cache to `_.memoize`. + memoize.Cache = MapCache; + + module.e = memoize; /***/ }, -/* 179 */ +/* 200 */ /***/ function(module, exports, __webpack_require__) { + var arrayMap = __webpack_require__(33), + baseDifference = __webpack_require__(124), + baseFlatten = __webpack_require__(56), + basePick = __webpack_require__(61), + getAllKeysIn = __webpack_require__(66), + rest = __webpack_require__(44), + toKey = __webpack_require__(7); + /** - * Gets the last element of `array`. + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable string keyed properties of `object` that are + * not omitted. * * @static + * @since 0.1.0 * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [props] The property identifiers to omit. + * @returns {Object} Returns the new object. * @example * - * _.last([1, 2, 3]); - * // => 3 + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } */ - function last(array) { - var length = array ? array.length : 0; - return length ? array[length - 1] : undefined; - } + var omit = rest(function(object, props) { + if (object == null) { + return {}; + } + props = arrayMap(baseFlatten(props, 1), toKey); + return basePick(object, baseDifference(getAllKeysIn(object), props)); + }); - module.e = last; + module.e = omit; /***/ }, -/* 180 */ +/* 201 */ /***/ function(module, exports, __webpack_require__) { - var baseIteratee = __webpack_require__(120), - basePickBy = __webpack_require__(128); + var baseIteratee = __webpack_require__(130), + basePickBy = __webpack_require__(137); /** * The opposite of `_.pickBy`; this method creates an object composed of - * the own and inherited enumerable properties of `object` that `predicate` - * doesn't return truthy for. The predicate is invoked with two arguments: - * (value, key). + * the own and inherited enumerable string keyed properties of `object` that + * `predicate` doesn't return truthy for. The predicate is invoked with two + * arguments: (value, key). * * @static * @memberOf _ + * @since 4.0.0 * @category Object * @param {Object} object The source object. - * @param {Function|Object|string} [predicate=_.identity] The function invoked per property. + * @param {Array|Function|Object|string} [predicate=_.identity] + * The function invoked per property. * @returns {Object} Returns the new object. * @example * @@ -12016,64 +12724,165 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 181 */ +/* 202 */ /***/ function(module, exports, __webpack_require__) { - var baseProperty = __webpack_require__(54), - basePropertyDeep = __webpack_require__(129), - isKey = __webpack_require__(30); + var baseProperty = __webpack_require__(62), + basePropertyDeep = __webpack_require__(138), + isKey = __webpack_require__(23), + toKey = __webpack_require__(7); /** * Creates a function that returns the value at `path` of a given object. * * @static * @memberOf _ + * @since 2.4.0 * @category Util * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new function. + * @returns {Function} Returns the new accessor function. * @example * * var objects = [ - * { 'a': { 'b': { 'c': 2 } } }, - * { 'a': { 'b': { 'c': 1 } } } + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } * ]; * - * _.map(objects, _.property('a.b.c')); + * _.map(objects, _.property('a.b')); * // => [2, 1] * - * _.map(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); * // => [1, 2] */ function property(path) { - return isKey(path) ? baseProperty(path) : basePropertyDeep(path); + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); } module.e = property; /***/ }, -/* 182 */ +/* 203 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * A method that returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ + function stubArray() { + return []; + } + + module.e = stubArray; + + +/***/ }, +/* 204 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * A method that returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ + function stubFalse() { + return false; + } + + module.e = stubFalse; + + +/***/ }, +/* 205 */ /***/ function(module, exports, __webpack_require__) { - var toNumber = __webpack_require__(183); + var toNumber = __webpack_require__(207); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, MAX_INTEGER = 1.7976931348623157e+308; + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + + module.e = toFinite; + + +/***/ }, +/* 206 */ +/***/ function(module, exports, __webpack_require__) { + + var toFinite = __webpack_require__(205); + /** * Converts `value` to an integer. * - * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * - * _.toInteger(3); + * _.toInteger(3.2); * // => 3 * * _.toInteger(Number.MIN_VALUE); @@ -12082,31 +12891,26 @@ return /******/ (function(modules) { // webpackBootstrap * _.toInteger(Infinity); * // => 1.7976931348623157e+308 * - * _.toInteger('3'); + * _.toInteger('3.2'); * // => 3 */ function toInteger(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - var remainder = value % 1; - return value === value ? (remainder ? value - remainder : value) : 0; + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; } module.e = toInteger; /***/ }, -/* 183 */ +/* 207 */ /***/ function(module, exports, __webpack_require__) { - var isFunction = __webpack_require__(12), - isObject = __webpack_require__(2); + var isFunction = __webpack_require__(14), + isObject = __webpack_require__(3), + isSymbol = __webpack_require__(28); /** Used as references for various `Number` constants. */ var NAN = 0 / 0; @@ -12131,13 +12935,14 @@ return /******/ (function(modules) { // webpackBootstrap * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to process. * @returns {number} Returns the number. * @example * - * _.toNumber(3); - * // => 3 + * _.toNumber(3.2); + * // => 3.2 * * _.toNumber(Number.MIN_VALUE); * // => 5e-324 @@ -12145,10 +12950,16 @@ return /******/ (function(modules) { // webpackBootstrap * _.toNumber(Infinity); * // => Infinity * - * _.toNumber('3'); - * // => 3 + * _.toNumber('3.2'); + * // => 3.2 */ function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } if (isObject(value)) { var other = isFunction(value.valueOf) ? value.valueOf() : value; value = isObject(other) ? (other + '') : other; @@ -12167,53 +12978,19 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 184 */ -/***/ function(module, exports, __webpack_require__) { - - var baseToPairs = __webpack_require__(132), - keys = __webpack_require__(24); - - /** - * Creates an array of own enumerable key-value pairs for `object` which - * can be consumed by `_.fromPairs`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the new array of key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairs(new Foo); - * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) - */ - function toPairs(object) { - return baseToPairs(object, keys(object)); - } - - module.e = toPairs; - - -/***/ }, -/* 185 */ +/* 208 */ /***/ function(module, exports, __webpack_require__) { - var copyObject = __webpack_require__(29), - keysIn = __webpack_require__(35); + var copyObject = __webpack_require__(37), + keysIn = __webpack_require__(43); /** - * Converts `value` to a plain object flattening inherited enumerable - * properties of `value` to own properties of the plain object. + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. * * @static * @memberOf _ + * @since 3.0.0 * @category Lang * @param {*} value The value to convert. * @returns {Object} Returns the converted plain object. @@ -12239,25 +13016,18 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 186 */ +/* 209 */ /***/ function(module, exports, __webpack_require__) { - var Symbol = __webpack_require__(27), - isSymbol = __webpack_require__(178); - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0; - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; + var baseToString = __webpack_require__(140); /** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` and `undefined` values. The sign of `-0` is preserved. + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to process. * @returns {string} Returns the string. @@ -12273,25 +13043,14 @@ return /******/ (function(modules) { // webpackBootstrap * // => '1,2,3' */ function toString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (value == null) { - return ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + return value == null ? '' : baseToString(value); } module.e = toString; /***/ }, -/* 187 */ +/* 210 */ /***/ function(module, exports, __webpack_require__) { /* eslint-env node */ @@ -12788,7 +13547,39 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 188 */ +/* 211 */ +/***/ function(module, exports, __webpack_require__) { + + module.e = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + module.children = []; + Object.defineProperty(module, "exports", { + enumerable: true, + configurable: false, + get: function() { return module.e; }, + set: function(v) { return module.e = v; } + }); + Object.defineProperty(module, "loaded", { + enumerable: true, + configurable: false, + get: function() { return module.l; } + }); + Object.defineProperty(module, "id", { + enumerable: true, + configurable: false, + get: function() { return module.i; } + }); + module.webpackPolyfill = 1; + } + return module; + } + + +/***/ }, +/* 212 */ /***/ function(module, exports, __webpack_require__) { /* @@ -12819,10 +13610,10 @@ return /******/ (function(modules) { // webpackBootstrap // require('./utils').disableLog(false); // Browser shims. - var chromeShim = __webpack_require__(189) || null; - var edgeShim = __webpack_require__(191) || null; - var firefoxShim = __webpack_require__(193) || null; - var safariShim = __webpack_require__(195) || null; + var chromeShim = __webpack_require__(213) || null; + var edgeShim = __webpack_require__(215) || null; + var firefoxShim = __webpack_require__(217) || null; + var safariShim = __webpack_require__(219) || null; // Shim browser if found. switch (browserDetails.browser) { @@ -12886,7 +13677,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 189 */ +/* 213 */ /***/ function(module, exports, __webpack_require__) { @@ -13078,23 +13869,23 @@ return /******/ (function(modules) { // webpackBootstrap }); } + ['createOffer', 'createAnswer'].forEach(function(method) { + var nativeMethod = webkitRTCPeerConnection.prototype[method]; + webkitRTCPeerConnection.prototype[method] = function() { + var self = this; + if (arguments.length < 1 || (arguments.length === 1 && + typeof arguments[0] === 'object')) { + var opts = arguments.length === 1 ? arguments[0] : undefined; + return new Promise(function(resolve, reject) { + nativeMethod.apply(self, [resolve, reject, opts]); + }); + } + return nativeMethod.apply(this, arguments); + }; + }); + // add promise support -- natively available in Chrome 51 if (browserDetails.version < 51) { - ['createOffer', 'createAnswer'].forEach(function(method) { - var nativeMethod = webkitRTCPeerConnection.prototype[method]; - webkitRTCPeerConnection.prototype[method] = function() { - var self = this; - if (arguments.length < 1 || (arguments.length === 1 && - typeof arguments[0] === 'object')) { - var opts = arguments.length === 1 ? arguments[0] : undefined; - return new Promise(function(resolve, reject) { - nativeMethod.apply(self, [resolve, reject, opts]); - }); - } - return nativeMethod.apply(this, arguments); - }; - }); - ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate'] .forEach(function(method) { var nativeMethod = webkitRTCPeerConnection.prototype[method]; @@ -13168,14 +13959,14 @@ return /******/ (function(modules) { // webpackBootstrap shimOnTrack: chromeShim.shimOnTrack, shimSourceObject: chromeShim.shimSourceObject, shimPeerConnection: chromeShim.shimPeerConnection, - shimGetUserMedia: __webpack_require__(190), + shimGetUserMedia: __webpack_require__(214), attachMediaStream: chromeShim.attachMediaStream, reattachMediaStream: chromeShim.reattachMediaStream }; /***/ }, -/* 190 */ +/* 214 */ /***/ function(module, exports, __webpack_require__) { /* @@ -13370,7 +14161,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 191 */ +/* 215 */ /***/ function(module, exports, __webpack_require__) { /* @@ -13383,7 +14174,7 @@ return /******/ (function(modules) { // webpackBootstrap /* eslint-env node */ 'use strict'; - var SDPUtils = __webpack_require__(187); + var SDPUtils = __webpack_require__(210); var logging = __webpack_require__(1).log; var edgeShim = { @@ -13463,17 +14254,24 @@ return /******/ (function(modules) { // webpackBootstrap break; } } + this.usingBundle = config && config.bundlePolicy === 'max-bundle'; + if (config && config.iceServers) { // Edge does not like // 1) stun: // 2) turn: that does not have all of turn:host:port?transport=udp - this.iceOptions.iceServers = config.iceServers.filter(function(server) { + var iceServers = JSON.parse(JSON.stringify(config.iceServers)); + this.iceOptions.iceServers = iceServers.filter(function(server) { if (server && server.urls) { - server.urls = server.urls.filter(function(url) { + var urls = server.urls; + if (typeof urls === 'string') { + urls = [urls]; + } + urls = urls.filter(function(url) { return url.indexOf('turn:') === 0 && url.indexOf('transport=udp') !== -1; })[0]; - return !!server.urls; + return !!urls; } return false; }); @@ -13631,6 +14429,18 @@ return /******/ (function(modules) { // webpackBootstrap event.candidate.candidate = SDPUtils.writeCandidate(cand); } + // update local description. + var sections = SDPUtils.splitSections(self.localDescription.sdp); + if (event.candidate.candidate.indexOf('typ endOfCandidates') + === -1) { + sections[event.candidate.sdpMLineIndex + 1] += + 'a=' + event.candidate.candidate + '\r\n'; + } else { + sections[event.candidate.sdpMLineIndex + 1] += + 'a=end-of-candidates\r\n'; + } + self.localDescription.sdp = sections.join(''); + var complete = self.transceivers.every(function(transceiver) { return transceiver.iceGatherer && transceiver.iceGatherer.state === 'completed'; @@ -13765,17 +14575,21 @@ return /******/ (function(modules) { // webpackBootstrap // ice-lite only includes host candidates in the SDP so we can // use setRemoteCandidates (which implies an // RTCIceCandidateComplete) - iceTransport.setRemoteCandidates(cands); + if (cands.length) { + iceTransport.setRemoteCandidates(cands); + } } - iceTransport.start(iceGatherer, remoteIceParameters, - isIceLite ? 'controlling' : 'controlled'); - var remoteDtlsParameters = SDPUtils.getDtlsParameters( mediaSection, sessionpart); if (isIceLite) { remoteDtlsParameters.role = 'server'; } - dtlsTransport.start(remoteDtlsParameters); + + if (!self.usingBundle || sdpMLineIndex === 0) { + iceTransport.start(iceGatherer, remoteIceParameters, + isIceLite ? 'controlling' : 'controlled'); + dtlsTransport.start(remoteDtlsParameters); + } // Calculate intersection of capabilities. var params = self._getCommonCapabilities(localCapabilities, @@ -13843,6 +14657,8 @@ return /******/ (function(modules) { // webpackBootstrap var sessionpart = sections.shift(); var isIceLite = SDPUtils.matchPrefix(sessionpart, 'a=ice-lite').length > 0; + this.usingBundle = SDPUtils.matchPrefix(sessionpart, + 'a=group:BUNDLE ').length > 0; sections.forEach(function(mediaSection, sdpMLineIndex) { var lines = SDPUtils.splitLines(mediaSection); var mline = lines[0].substr(2).split(' '); @@ -13906,8 +14722,12 @@ return /******/ (function(modules) { // webpackBootstrap return cand.component === '1'; }); if (description.type === 'offer' && !rejected) { - var transports = self._createIceAndDtlsTransports(mid, - sdpMLineIndex); + var transports = self.usingBundle && sdpMLineIndex > 0 ? { + iceGatherer: self.transceivers[0].iceGatherer, + iceTransport: self.transceivers[0].iceTransport, + dtlsTransport: self.transceivers[0].dtlsTransport + } : self._createIceAndDtlsTransports(mid, sdpMLineIndex); + if (isComplete) { transports.iceTransport.setRemoteCandidates(cands); } @@ -13970,12 +14790,14 @@ return /******/ (function(modules) { // webpackBootstrap remoteCapabilities; self.transceivers[sdpMLineIndex].cname = cname; - if (isIceLite || isComplete) { + if ((isIceLite || isComplete) && cands.length) { iceTransport.setRemoteCandidates(cands); } - iceTransport.start(iceGatherer, remoteIceParameters, - 'controlling'); - dtlsTransport.start(remoteDtlsParameters); + if (!self.usingBundle || sdpMLineIndex === 0) { + iceTransport.start(iceGatherer, remoteIceParameters, + 'controlling'); + dtlsTransport.start(remoteDtlsParameters); + } self._transceive(transceiver, direction === 'sendrecv' || direction === 'recvonly', @@ -14208,7 +15030,11 @@ return /******/ (function(modules) { // webpackBootstrap var kind = mline.kind; var mid = SDPUtils.generateIdentifier(); - var transports = self._createIceAndDtlsTransports(mid, sdpMLineIndex); + var transports = self.usingBundle && sdpMLineIndex > 0 ? { + iceGatherer: transceivers[0].iceGatherer, + iceTransport: transceivers[0].iceTransport, + dtlsTransport: transceivers[0].dtlsTransport + } : self._createIceAndDtlsTransports(mid, sdpMLineIndex); var localCapabilities = RTCRtpSender.getCapabilities(kind); var rtpSender; @@ -14239,6 +15065,13 @@ return /******/ (function(modules) { // webpackBootstrap sendEncodingParameters: sendEncodingParameters, recvEncodingParameters: null }; + }); + if (this.usingBundle) { + sdp += 'a=group:BUNDLE ' + transceivers.map(function(t) { + return t.mid; + }).join(' ') + '\r\n'; + } + tracks.forEach(function(mline, sdpMLineIndex) { var transceiver = transceivers[sdpMLineIndex]; sdp += SDPUtils.writeMediaSection(transceiver, transceiver.localCapabilities, 'offer', self.localStreams[0]); @@ -14259,6 +15092,11 @@ return /******/ (function(modules) { // webpackBootstrap var self = this; var sdp = SDPUtils.writeSessionBoilerplate(); + if (this.usingBundle) { + sdp += 'a=group:BUNDLE ' + this.transceivers.map(function(t) { + return t.mid; + }).join(' ') + '\r\n'; + } this.transceivers.forEach(function(transceiver) { // Calculate intersection of capabilities. var commonCapabilities = self._getCommonCapabilities( @@ -14282,7 +15120,7 @@ return /******/ (function(modules) { // webpackBootstrap window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) { if (candidate === null) { this.transceivers.forEach(function(transceiver) { - transceiver.iceTransport.addIceCandidate({}); + transceiver.iceTransport.addRemoteCandidate({}); }); } else { var mLineIndex = candidate.sdpMLineIndex; @@ -14371,14 +15209,14 @@ return /******/ (function(modules) { // webpackBootstrap // Expose public methods. module.e = { shimPeerConnection: edgeShim.shimPeerConnection, - shimGetUserMedia: __webpack_require__(192), + shimGetUserMedia: __webpack_require__(216), attachMediaStream: edgeShim.attachMediaStream, reattachMediaStream: edgeShim.reattachMediaStream }; /***/ }, -/* 192 */ +/* 216 */ /***/ function(module, exports, __webpack_require__) { /* @@ -14416,7 +15254,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 193 */ +/* 217 */ /***/ function(module, exports, __webpack_require__) { /* @@ -14567,109 +15405,6 @@ return /******/ (function(modules) { // webpackBootstrap }; }, - shimGetUserMedia: function() { - // getUserMedia constraints shim. - var getUserMedia_ = function(constraints, onSuccess, onError) { - var constraintsToFF37_ = function(c) { - if (typeof c !== 'object' || c.require) { - return c; - } - var require = []; - Object.keys(c).forEach(function(key) { - if (key === 'require' || key === 'advanced' || - key === 'mediaSource') { - return; - } - var r = c[key] = (typeof c[key] === 'object') ? - c[key] : {ideal: c[key]}; - if (r.min !== undefined || - r.max !== undefined || r.exact !== undefined) { - require.push(key); - } - if (r.exact !== undefined) { - if (typeof r.exact === 'number') { - r. min = r.max = r.exact; - } else { - c[key] = r.exact; - } - delete r.exact; - } - if (r.ideal !== undefined) { - c.advanced = c.advanced || []; - var oc = {}; - if (typeof r.ideal === 'number') { - oc[key] = {min: r.ideal, max: r.ideal}; - } else { - oc[key] = r.ideal; - } - c.advanced.push(oc); - delete r.ideal; - if (!Object.keys(r).length) { - delete c[key]; - } - } - }); - if (require.length) { - c.require = require; - } - return c; - }; - constraints = JSON.parse(JSON.stringify(constraints)); - if (browserDetails.version < 38) { - logging('spec: ' + JSON.stringify(constraints)); - if (constraints.audio) { - constraints.audio = constraintsToFF37_(constraints.audio); - } - if (constraints.video) { - constraints.video = constraintsToFF37_(constraints.video); - } - logging('ff37: ' + JSON.stringify(constraints)); - } - return navigator.mozGetUserMedia(constraints, onSuccess, onError); - }; - - navigator.getUserMedia = getUserMedia_; - - // Returns the result of getUserMedia as a Promise. - var getUserMediaPromise_ = function(constraints) { - return new Promise(function(resolve, reject) { - navigator.getUserMedia(constraints, resolve, reject); - }); - }; - - // Shim for mediaDevices on older versions. - if (!navigator.mediaDevices) { - navigator.mediaDevices = {getUserMedia: getUserMediaPromise_, - addEventListener: function() { }, - removeEventListener: function() { } - }; - } - navigator.mediaDevices.enumerateDevices = - navigator.mediaDevices.enumerateDevices || function() { - return new Promise(function(resolve) { - var infos = [ - {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''}, - {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''} - ]; - resolve(infos); - }); - }; - - if (browserDetails.version < 41) { - // Work around http://bugzil.la/1169665 - var orgEnumerateDevices = - navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices); - navigator.mediaDevices.enumerateDevices = function() { - return orgEnumerateDevices().then(undefined, function(e) { - if (e.name === 'NotFoundError') { - return []; - } - throw e; - }); - }; - } - }, - // Attach a media stream to an element. attachMediaStream: function(element, stream) { logging('DEPRECATED, attachMediaStream will soon be removed.'); @@ -14687,14 +15422,14 @@ return /******/ (function(modules) { // webpackBootstrap shimOnTrack: firefoxShim.shimOnTrack, shimSourceObject: firefoxShim.shimSourceObject, shimPeerConnection: firefoxShim.shimPeerConnection, - shimGetUserMedia: __webpack_require__(194), + shimGetUserMedia: __webpack_require__(218), attachMediaStream: firefoxShim.attachMediaStream, reattachMediaStream: firefoxShim.reattachMediaStream }; /***/ }, -/* 194 */ +/* 218 */ /***/ function(module, exports, __webpack_require__) { /* @@ -14790,12 +15525,10 @@ return /******/ (function(modules) { // webpackBootstrap }); }; - navigator.getUserMedia = getUserMedia_; - // Returns the result of getUserMedia as a Promise. var getUserMediaPromise_ = function(constraints) { return new Promise(function(resolve, reject) { - navigator.getUserMedia(constraints, resolve, reject); + getUserMedia_(constraints, resolve, reject); }); }; @@ -14839,11 +15572,20 @@ return /******/ (function(modules) { // webpackBootstrap }); }; } + navigator.getUserMedia = function(constraints, onSuccess, onError) { + if (browserDetails.version < 44) { + return getUserMedia_(constraints, onSuccess, onError); + } + // Replace Firefox 44+'s deprecation warning with unprefixed version. + console.warn('navigator.getUserMedia has been replaced by ' + + 'navigator.mediaDevices.getUserMedia'); + navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError); + }; }; /***/ }, -/* 195 */ +/* 219 */ /***/ function(module, exports, __webpack_require__) { /* @@ -14883,10 +15625,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 196 */ +/* 220 */ /***/ function(module, exports, __webpack_require__) { - module.e = __webpack_require__(67); + module.e = __webpack_require__(76); /***/ } diff --git a/dist/quagga.js.map b/dist/quagga.js.map index 5c6c40a..6e42561 100644 --- a/dist/quagga.js.map +++ b/dist/quagga.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/myModuleDefinition","webpack:///webpack/bootstrap 2413397707785b8f0777","webpack:///./~/lodash/isArray.js","webpack:///./~/webrtc-adapter/src/js/utils.js","webpack:///./~/lodash/isObject.js","webpack:///./~/lodash/_root.js","webpack:///./~/lodash/isObjectLike.js","webpack:///./src/reader/ean_reader.js","webpack:///./~/lodash/_Map.js","webpack:///./~/lodash/merge.js","webpack:///./src/common/image_debug.js","webpack:///./src/reader/barcode_reader.js","webpack:///./~/gl-vec2/clone.js","webpack:///./~/lodash/isArguments.js","webpack:///./~/lodash/isFunction.js","webpack:///./src/common/array_helper.js","webpack:///./~/lodash/_Stack.js","webpack:///./~/lodash/_assocIndexOf.js","webpack:///./~/lodash/_getNative.js","webpack:///./~/lodash/_isHostObject.js","webpack:///./~/lodash/_isIndex.js","webpack:///./~/lodash/_isKeyable.js","webpack:///./~/lodash/_nativeCreate.js","webpack:///./~/lodash/eq.js","webpack:///./~/lodash/isArrayLike.js","webpack:///./~/lodash/isLength.js","webpack:///./~/lodash/keys.js","webpack:///./src/common/cv_utils.js","webpack:///./src/common/image_wrapper.js","webpack:///./~/lodash/_Symbol.js","webpack:///./~/lodash/_arrayReduce.js","webpack:///./~/lodash/_copyObject.js","webpack:///./~/lodash/_isKey.js","webpack:///./~/lodash/_isPrototype.js","webpack:///./~/lodash/isArrayLikeObject.js","webpack:///./~/lodash/isString.js","webpack:///./~/lodash/isTypedArray.js","webpack:///./~/lodash/keysIn.js","webpack:///./src/analytics/result_collector.js","webpack:///./src/config/config.js","webpack:///./src/locator/tracer.js","webpack:///./src/reader/code_39_reader.js","webpack:///./~/gl-vec2/dot.js","webpack:///./~/lodash/_Uint8Array.js","webpack:///./~/lodash/_arrayEach.js","webpack:///./~/lodash/_assignMergeValue.js","webpack:///./~/lodash/_assignValue.js","webpack:///./~/lodash/_assocDelete.js","webpack:///./~/lodash/_assocGet.js","webpack:///./~/lodash/_assocHas.js","webpack:///./~/lodash/_assocSet.js","webpack:///./~/lodash/_baseCastPath.js","webpack:///./~/lodash/_baseFor.js","webpack:///./~/lodash/_baseGet.js","webpack:///./~/lodash/_baseHas.js","webpack:///./~/lodash/_baseIsEqual.js","webpack:///./~/lodash/_baseProperty.js","webpack:///./~/lodash/_cloneArrayBuffer.js","webpack:///./~/lodash/_copyArray.js","webpack:///./~/lodash/_equalArrays.js","webpack:///./~/lodash/_getTag.js","webpack:///./~/lodash/_hashHas.js","webpack:///./~/lodash/_indexKeys.js","webpack:///./~/lodash/_mapToArray.js","webpack:///./~/lodash/_setToArray.js","webpack:///./~/lodash/get.js","webpack:///./~/lodash/pick.js","webpack:///./~/lodash/rest.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/quagga.js","webpack:///./src/common/cluster.js","webpack:///./src/common/dom_helper.js","webpack:///./src/common/events.js","webpack:///./src/common/subImage.js","webpack:///./src/common/typedefs.js","webpack:///./src/config/config.dev.js","webpack:///./src/decoder/barcode_decoder.js","webpack:///./src/decoder/bresenham.js","webpack:///./src/input/camera_access.js","webpack:///./src/input/config_factory.js","webpack:///./src/input/frame_grabber.js","webpack:///./src/input/image_loader.js","webpack:///./src/input/input_stream.js","webpack:///./src/locator/barcode_locator.js","webpack:///./src/locator/rasterizer.js","webpack:///./src/locator/skeletonizer.js","webpack:///./src/reader/codabar_reader.js","webpack:///./src/reader/code_128_reader.js","webpack:///./src/reader/code_39_vin_reader.js","webpack:///./src/reader/ean_2_reader.js","webpack:///./src/reader/ean_5_reader.js","webpack:///./src/reader/ean_8_reader.js","webpack:///./src/reader/i2of5_reader.js","webpack:///./src/reader/upc_e_reader.js","webpack:///./src/reader/upc_reader.js","webpack:///./src/scanner.js","webpack:///./~/gl-mat2/copy.js","webpack:///./~/gl-mat2/create.js","webpack:///./~/gl-mat2/invert.js","webpack:///./~/gl-vec2/scale.js","webpack:///./~/gl-vec2/transformMat2.js","webpack:///./~/gl-vec3/clone.js","webpack:///./~/lodash/_Hash.js","webpack:///./~/lodash/_MapCache.js","webpack:///./~/lodash/_Reflect.js","webpack:///./~/lodash/_Set.js","webpack:///./~/lodash/_WeakMap.js","webpack:///./~/lodash/_addMapEntry.js","webpack:///./~/lodash/_addSetEntry.js","webpack:///./~/lodash/_apply.js","webpack:///./~/lodash/_arrayMap.js","webpack:///./~/lodash/_arrayPush.js","webpack:///./~/lodash/_arraySome.js","webpack:///./~/lodash/_baseAssign.js","webpack:///./~/lodash/_baseClone.js","webpack:///./~/lodash/_baseCreate.js","webpack:///./~/lodash/_baseFlatten.js","webpack:///./~/lodash/_baseForIn.js","webpack:///./~/lodash/_baseForOwn.js","webpack:///./~/lodash/_baseHasIn.js","webpack:///./~/lodash/_baseIsEqualDeep.js","webpack:///./~/lodash/_baseIsMatch.js","webpack:///./~/lodash/_baseIteratee.js","webpack:///./~/lodash/_baseKeys.js","webpack:///./~/lodash/_baseKeysIn.js","webpack:///./~/lodash/_baseMatches.js","webpack:///./~/lodash/_baseMatchesProperty.js","webpack:///./~/lodash/_baseMerge.js","webpack:///./~/lodash/_baseMergeDeep.js","webpack:///./~/lodash/_basePick.js","webpack:///./~/lodash/_basePickBy.js","webpack:///./~/lodash/_basePropertyDeep.js","webpack:///./~/lodash/_baseSlice.js","webpack:///./~/lodash/_baseTimes.js","webpack:///./~/lodash/_baseToPairs.js","webpack:///./~/lodash/_checkGlobal.js","webpack:///./~/lodash/_cloneBuffer.js","webpack:///./~/lodash/_cloneMap.js","webpack:///./~/lodash/_cloneRegExp.js","webpack:///./~/lodash/_cloneSet.js","webpack:///./~/lodash/_cloneSymbol.js","webpack:///./~/lodash/_cloneTypedArray.js","webpack:///./~/lodash/_copyObjectWith.js","webpack:///./~/lodash/_copySymbols.js","webpack:///./~/lodash/_createAssigner.js","webpack:///./~/lodash/_createBaseFor.js","webpack:///./~/lodash/_equalByTag.js","webpack:///./~/lodash/_equalObjects.js","webpack:///./~/lodash/_getLength.js","webpack:///./~/lodash/_getMatchData.js","webpack:///./~/lodash/_getSymbols.js","webpack:///./~/lodash/_hasPath.js","webpack:///./~/lodash/_hashDelete.js","webpack:///./~/lodash/_hashGet.js","webpack:///./~/lodash/_hashSet.js","webpack:///./~/lodash/_initCloneArray.js","webpack:///./~/lodash/_initCloneByTag.js","webpack:///./~/lodash/_initCloneObject.js","webpack:///./~/lodash/_isIterateeCall.js","webpack:///./~/lodash/_isStrictComparable.js","webpack:///./~/lodash/_iteratorToArray.js","webpack:///./~/lodash/_mapClear.js","webpack:///./~/lodash/_mapDelete.js","webpack:///./~/lodash/_mapGet.js","webpack:///./~/lodash/_mapHas.js","webpack:///./~/lodash/_mapSet.js","webpack:///./~/lodash/_parent.js","webpack:///./~/lodash/_stackClear.js","webpack:///./~/lodash/_stackDelete.js","webpack:///./~/lodash/_stackGet.js","webpack:///./~/lodash/_stackHas.js","webpack:///./~/lodash/_stackSet.js","webpack:///./~/lodash/_stringToPath.js","webpack:///./~/lodash/constant.js","webpack:///./~/lodash/hasIn.js","webpack:///./~/lodash/identity.js","webpack:///./~/lodash/isBuffer.js","webpack:///./~/lodash/isEmpty.js","webpack:///./~/lodash/isNative.js","webpack:///./~/lodash/isPlainObject.js","webpack:///./~/lodash/isSymbol.js","webpack:///./~/lodash/last.js","webpack:///./~/lodash/omitBy.js","webpack:///./~/lodash/property.js","webpack:///./~/lodash/toInteger.js","webpack:///./~/lodash/toNumber.js","webpack:///./~/lodash/toPairs.js","webpack:///./~/lodash/toPlainObject.js","webpack:///./~/lodash/toString.js","webpack:///./~/sdp/sdp.js","webpack:///./~/webrtc-adapter/src/js/adapter_core.js","webpack:///./~/webrtc-adapter/src/js/chrome/chrome_shim.js","webpack:///./~/webrtc-adapter/src/js/chrome/getusermedia.js","webpack:///./~/webrtc-adapter/src/js/edge/edge_shim.js","webpack:///./~/webrtc-adapter/src/js/edge/getusermedia.js","webpack:///./~/webrtc-adapter/src/js/firefox/firefox_shim.js","webpack:///./~/webrtc-adapter/src/js/firefox/getusermedia.js","webpack:///./~/webrtc-adapter/src/js/safari/safari_shim.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACRA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,cAAa,QAAQ;AACrB,eAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AAC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AAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;;AAEA;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,kBAAiB;AACjB,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;gtCCtDA;AACA;AACA,KAAM,OAAO;AACT,YAAO,oBAAQ,EAAR,CAAP;EADE;AAGN,KAAM,OAAO;AACT,YAAO,oBAAQ,EAAR,CAAP;EADE;;;;;;;AASC,UAAS,QAAT,CAAkB,CAAlB,EAAqB,CAArB,EAAwB;AAC3B,SAAI,OAAO;AACP,YAAG,CAAH;AACA,YAAG,CAAH;AACA,iBAAQ,kBAAW;AACf,oBAAO,KAAK,KA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ACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1EA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrDA;;AAEA,UAAS,QAAT,CAAkB,UAAlB,EAA8B,IAA9B,EAAoC;AAChC,SAAI,IAAJ,EAAU;AACN,gBAAO,KAAK,IAAL,CAAU,UAAU,IAAV,EAAgB;AAC7B,oBAAO,OAAO,IAAP,CAAY,IAAZ,EAAkB,KAAlB,CAAwB,UAAU,GAAV,EAAe;AAC1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AEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;AChBA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,aAAa;AACxB,cAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,aAAa;AACxB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;;AAEA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1DA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,aAAa;AACxB,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,qBAAqB;AAChC;AACA,cAAa,OAAO;AACpB;AACA;AACA,kBAAiB;AACjB;AACA;AACA,WAAU;AACV;AACA;AACA,6BAA4B;AAC5B,EAAC;;AAED;;;;;;;ACzBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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C;UAAjC;AASd,iBAAQ,gBAAR;MA9CJ,CApcqB;EAAzB;;AAsfA,6CAAe,aAAf,C;;;;;;ACtgBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,KAAK;AAChB,YAAW,KAAK;AAChB,cAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA,cAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;;AAEA;AACA;AACA;AACA;AACA,YAAW,KAAK;AAChB,YAAW,KAAK;AAChB,cAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA,YAAW,KAAK;AAChB,YAAW,KAAK;AAChB,YAAW,OAAO;AAClB,cAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACdA;;AAEA;AACA;AACA;AACA,YAAW,KAAK;AAChB,YAAW,KAAK;AAChB,YAAW,KAAK;AAChB,cAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AChBA;;AAEA;AACA;AACA;AACA,YAAW,KAAK;AAChB,cAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACdA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;;AAEA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;;AAEA;AACA;;AAEA;;;;;;;ACLA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACNA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACNA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,KAAK;AAChB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AClIA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,aAAa;AACxB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7EA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5DA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C,eAAe;AAC5D;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjFA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,IAAI;AACP;;AAEA;;;;;;;ACrBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA;;;;;;;ACXA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO,WAAW;AAC7B,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACpCA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjFA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACzEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;;AAEA;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AClBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AClBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,SAAS;AACtB;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,aAAa;AACxB,cAAa,QAAQ;AACrB;AACA;AACA,2BAA0B,gBAAgB,gBAAgB,SAAS,GAAG,GAAG;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrDA;AACA;AACA;;AAEA;AACA,qCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpDA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,uBAAuB;AAClC,cAAa,OAAO;AACpB;AACA;AACA,kBAAiB;AACjB;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;AC7BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,OAAO,OAAO,SAAS,EAAE,EAAE;AACjC,OAAM,OAAO,OAAO,SAAS,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3CA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1DA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7CA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC;AACvC;AACA,qCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAoB;AACpB,2BAA0B;AAC1B;AACA;AACA;AACA,0DAAyD;AACzD,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,kDAAiD;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,kBAAkB,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC1eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;AC1FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA,cAAa;AACb,YAAW;AACX;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,YAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,YAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA,UAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA,YAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA2D,YAAY;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA,0DAAyD,qBAAqB;AAC9E,0DAAyD;AACzD;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA,cAAa;AACb,YAAW;AACX,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,qBAAqB;AAC9C;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,sCAAsC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW;;AAEX;AACA;AACA,gCAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe;;AAEf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA,YAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;AACA,gBAAe;AACf,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD;AACrD,UAAS;AACT,QAAO;AACP;AACA;AACA,0BAAyB,8BAA8B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,YAAW;AACX;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACz+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,yCAAyC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA,cAAa;AACb,YAAW;AACX;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,gCAAgC;AAC3D;AACA;AACA,gCAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA,iCAAgC;AAChC,uCAAsC,EAAE;AACxC,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,gEAAgE;AAC/E,gBAAe;AACf;AACA;AACA,YAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,+BAA8B;AAC9B,qCAAoC,EAAE;AACtC,wCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,gEAAgE;AAC7E,cAAa;AACb;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA8B,EAAE;;AAEhC;AACA,oDAAmD,EAAE;AACrD,+CAA8C,EAAE;;AAEhD;AACA;AACA,sCAAqC,EAAE;;AAEvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"quagga.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(factory.toString()).default;\n\telse if(typeof exports === 'object')\n\t\texports[\"Quagga\"] = factory(factory.toString()).default;\n\telse\n\t\troot[\"Quagga\"] = factory(factory.toString()).default;\n})(this, function(__factorySource__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/myModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].e;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\te: {},\n \t\t\ti: moduleId,\n \t\t\tl: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.e, module, module.e, __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.e;\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// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 196);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 2413397707785b8f0777\n **/","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @type {Function}\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isArray.js\n ** module id = 0\n ** module chunks = 0\n **/","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nvar logDisabled_ = true;\n\n// Utility methods.\nvar utils = {\n disableLog: function(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n },\n\n log: function() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n },\n\n /**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\n extractVersion: function(uastring, expr, pos) {\n var match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n },\n\n /**\n * Browser detector.\n *\n * @return {object} result containing browser, version and minVersion\n * properties.\n */\n detectBrowser: function() {\n // Returned result object.\n var result = {};\n result.browser = null;\n result.version = null;\n result.minVersion = null;\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n // Firefox.\n if (navigator.mozGetUserMedia) {\n result.browser = 'firefox';\n result.version = this.extractVersion(navigator.userAgent,\n /Firefox\\/([0-9]+)\\./, 1);\n result.minVersion = 31;\n\n // all webkit-based browsers\n } else if (navigator.webkitGetUserMedia) {\n // Chrome, Chromium, Webview, Opera, all use the chrome shim for now\n if (window.webkitRTCPeerConnection) {\n result.browser = 'chrome';\n result.version = this.extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/([0-9]+)\\./, 2);\n result.minVersion = 38;\n\n // Safari or unknown webkit-based\n // for the time being Safari has support for MediaStreams but not webRTC\n } else {\n // Safari UA substrings of interest for reference:\n // - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr)\n // - safari UI version: Version/9.0.3 (unique to Safari)\n // - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr)\n //\n // if the webkit version and safari UI webkit versions are equals,\n // ... this is a stable version.\n //\n // only the internal webkit version is important today to know if\n // media streams are supported\n //\n if (navigator.userAgent.match(/Version\\/(\\d+).(\\d+)/)) {\n result.browser = 'safari';\n result.version = this.extractVersion(navigator.userAgent,\n /AppleWebKit\\/([0-9]+)\\./, 1);\n result.minVersion = 602;\n\n // unknown webkit-based browser\n } else {\n result.browser = 'Unsupported webkit-based browser ' +\n 'with GUM support but no WebRTC support.';\n return result;\n }\n }\n\n // Edge.\n } else if (navigator.mediaDevices &&\n navigator.userAgent.match(/Edge\\/(\\d+).(\\d+)$/)) {\n result.browser = 'edge';\n result.version = this.extractVersion(navigator.userAgent,\n /Edge\\/(\\d+).(\\d+)$/, 2);\n result.minVersion = 10547;\n\n // Default fallthrough: not supported.\n } else {\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n // Warn if version is less than minVersion.\n if (result.version < result.minVersion) {\n utils.log('Browser: ' + result.browser + ' Version: ' + result.version +\n ' < minimum supported version: ' + result.minVersion +\n '\\n some things might not work!');\n }\n\n return result;\n }\n};\n\n// Export.\nmodule.exports = {\n log: utils.log,\n disableLog: utils.disableLog,\n browserDetails: utils.detectBrowser(),\n extractVersion: utils.extractVersion\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/webrtc-adapter/src/js/utils.js\n ** module id = 1\n ** module chunks = 0\n **/","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\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\nmodule.exports = isObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isObject.js\n ** module id = 2\n ** module chunks = 0\n **/","var checkGlobal = require('./_checkGlobal');\n\n/** Used to determine if values are of the language type `Object`. */\nvar objectTypes = {\n 'function': true,\n 'object': true\n};\n\n/** Detect free variable `exports`. */\nvar freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)\n ? exports\n : undefined;\n\n/** Detect free variable `module`. */\nvar freeModule = (objectTypes[typeof module] && module && !module.nodeType)\n ? module\n : undefined;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);\n\n/** Detect free variable `self`. */\nvar freeSelf = checkGlobal(objectTypes[typeof self] && self);\n\n/** Detect free variable `window`. */\nvar freeWindow = checkGlobal(objectTypes[typeof window] && window);\n\n/** Detect `this` as the global object. */\nvar thisGlobal = checkGlobal(objectTypes[typeof this] && this);\n\n/**\n * Used as a reference to the global object.\n *\n * The `this` value is used if it's the global object to avoid Greasemonkey's\n * restricted `window` object, otherwise the `window` object is used.\n */\nvar root = freeGlobal ||\n ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||\n freeSelf || thisGlobal || Function('return this')();\n\nmodule.exports = root;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_root.js\n ** module id = 3\n ** module chunks = 0\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 * @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\nmodule.exports = isObjectLike;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isObjectLike.js\n ** module id = 4\n ** module chunks = 0\n **/","import BarcodeReader from './barcode_reader';\r\nimport {merge} from 'lodash';\r\n\r\nfunction EANReader(opts, supplements) {\r\n opts = merge(getDefaulConfig(), opts);\r\n BarcodeReader.call(this, opts, supplements);\r\n}\r\n\r\nfunction getDefaulConfig() {\r\n var config = {};\r\n\r\n Object.keys(EANReader.CONFIG_KEYS).forEach(function(key) {\r\n config[key] = EANReader.CONFIG_KEYS[key].default;\r\n });\r\n return config;\r\n}\r\n\r\nvar properties = {\r\n CODE_L_START: {value: 0},\r\n CODE_G_START: {value: 10},\r\n START_PATTERN: {value: [1, 1, 1]},\r\n STOP_PATTERN: {value: [1, 1, 1]},\r\n MIDDLE_PATTERN: {value: [1, 1, 1, 1, 1]},\r\n EXTENSION_START_PATTERN: {value: [1, 1, 2]},\r\n CODE_PATTERN: {value: [\r\n [3, 2, 1, 1],\r\n [2, 2, 2, 1],\r\n [2, 1, 2, 2],\r\n [1, 4, 1, 1],\r\n [1, 1, 3, 2],\r\n [1, 2, 3, 1],\r\n [1, 1, 1, 4],\r\n [1, 3, 1, 2],\r\n [1, 2, 1, 3],\r\n [3, 1, 1, 2],\r\n [1, 1, 2, 3],\r\n [1, 2, 2, 2],\r\n [2, 2, 1, 2],\r\n [1, 1, 4, 1],\r\n [2, 3, 1, 1],\r\n [1, 3, 2, 1],\r\n [4, 1, 1, 1],\r\n [2, 1, 3, 1],\r\n [3, 1, 2, 1],\r\n [2, 1, 1, 3]\r\n ]},\r\n CODE_FREQUENCY: {value: [0, 11, 13, 14, 19, 25, 28, 21, 22, 26]},\r\n SINGLE_CODE_ERROR: {value: 0.70},\r\n AVG_CODE_ERROR: {value: 0.48},\r\n FORMAT: {value: \"ean_13\", writeable: false}\r\n};\r\n\r\nEANReader.prototype = Object.create(BarcodeReader.prototype, properties);\r\nEANReader.prototype.constructor = EANReader;\r\n\r\nEANReader.prototype._decodeCode = function(start, coderange) {\r\n var counter = [0, 0, 0, 0],\r\n i,\r\n self = this,\r\n offset = start,\r\n isWhite = !self._row[offset],\r\n counterPos = 0,\r\n bestMatch = {\r\n error: Number.MAX_VALUE,\r\n code: -1,\r\n start: start,\r\n end: start\r\n },\r\n code,\r\n error;\r\n\r\n if (!coderange) {\r\n coderange = self.CODE_PATTERN.length;\r\n }\r\n\r\n for ( i = offset; i < self._row.length; i++) {\r\n if (self._row[i] ^ isWhite) {\r\n counter[counterPos]++;\r\n } else {\r\n if (counterPos === counter.length - 1) {\r\n for (code = 0; code < coderange; code++) {\r\n error = self._matchPattern(counter, self.CODE_PATTERN[code]);\r\n if (error < bestMatch.error) {\r\n bestMatch.code = code;\r\n bestMatch.error = error;\r\n }\r\n }\r\n bestMatch.end = i;\r\n if (bestMatch.error > self.AVG_CODE_ERROR) {\r\n return null;\r\n }\r\n return bestMatch;\r\n } else {\r\n counterPos++;\r\n }\r\n counter[counterPos] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nEANReader.prototype._findPattern = function(pattern, offset, isWhite, tryHarder, epsilon) {\r\n var counter = [],\r\n self = this,\r\n i,\r\n counterPos = 0,\r\n bestMatch = {\r\n error: Number.MAX_VALUE,\r\n code: -1,\r\n start: 0,\r\n end: 0\r\n },\r\n error,\r\n j,\r\n sum;\r\n\r\n if (!offset) {\r\n offset = self._nextSet(self._row);\r\n }\r\n\r\n if (isWhite === undefined) {\r\n isWhite = false;\r\n }\r\n\r\n if (tryHarder === undefined) {\r\n tryHarder = true;\r\n }\r\n\r\n if ( epsilon === undefined) {\r\n epsilon = self.AVG_CODE_ERROR;\r\n }\r\n\r\n for ( i = 0; i < pattern.length; i++) {\r\n counter[i] = 0;\r\n }\r\n\r\n for ( i = offset; i < self._row.length; i++) {\r\n if (self._row[i] ^ isWhite) {\r\n counter[counterPos]++;\r\n } else {\r\n if (counterPos === counter.length - 1) {\r\n sum = 0;\r\n for ( j = 0; j < counter.length; j++) {\r\n sum += counter[j];\r\n }\r\n error = self._matchPattern(counter, pattern);\r\n\r\n if (error < epsilon) {\r\n bestMatch.error = error;\r\n bestMatch.start = i - sum;\r\n bestMatch.end = i;\r\n return bestMatch;\r\n }\r\n if (tryHarder) {\r\n for ( j = 0; j < counter.length - 2; j++) {\r\n counter[j] = counter[j + 2];\r\n }\r\n counter[counter.length - 2] = 0;\r\n counter[counter.length - 1] = 0;\r\n counterPos--;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n counterPos++;\r\n }\r\n counter[counterPos] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nEANReader.prototype._findStart = function() {\r\n var self = this,\r\n leadingWhitespaceStart,\r\n offset = self._nextSet(self._row),\r\n startInfo;\r\n\r\n while (!startInfo) {\r\n startInfo = self._findPattern(self.START_PATTERN, offset);\r\n if (!startInfo) {\r\n return null;\r\n }\r\n leadingWhitespaceStart = startInfo.start - (startInfo.end - startInfo.start);\r\n if (leadingWhitespaceStart >= 0) {\r\n if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) {\r\n return startInfo;\r\n }\r\n }\r\n offset = startInfo.end;\r\n startInfo = null;\r\n }\r\n};\r\n\r\nEANReader.prototype._verifyTrailingWhitespace = function(endInfo) {\r\n var self = this,\r\n trailingWhitespaceEnd;\r\n\r\n trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start);\r\n if (trailingWhitespaceEnd < self._row.length) {\r\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\r\n return endInfo;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nEANReader.prototype._findEnd = function(offset, isWhite) {\r\n var self = this,\r\n endInfo = self._findPattern(self.STOP_PATTERN, offset, isWhite, false);\r\n\r\n return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null;\r\n};\r\n\r\nEANReader.prototype._calculateFirstDigit = function(codeFrequency) {\r\n var i,\r\n self = this;\r\n\r\n for ( i = 0; i < self.CODE_FREQUENCY.length; i++) {\r\n if (codeFrequency === self.CODE_FREQUENCY[i]) {\r\n return i;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nEANReader.prototype._decodePayload = function(code, result, decodedCodes) {\r\n var i,\r\n self = this,\r\n codeFrequency = 0x0,\r\n firstDigit;\r\n\r\n for ( i = 0; i < 6; i++) {\r\n code = self._decodeCode(code.end);\r\n if (!code) {\r\n return null;\r\n }\r\n if (code.code >= self.CODE_G_START) {\r\n code.code = code.code - self.CODE_G_START;\r\n codeFrequency |= 1 << (5 - i);\r\n } else {\r\n codeFrequency |= 0 << (5 - i);\r\n }\r\n result.push(code.code);\r\n decodedCodes.push(code);\r\n }\r\n\r\n firstDigit = self._calculateFirstDigit(codeFrequency);\r\n if (firstDigit === null) {\r\n return null;\r\n }\r\n result.unshift(firstDigit);\r\n\r\n code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false);\r\n if (code === null) {\r\n return null;\r\n }\r\n decodedCodes.push(code);\r\n\r\n for ( i = 0; i < 6; i++) {\r\n code = self._decodeCode(code.end, self.CODE_G_START);\r\n if (!code) {\r\n return null;\r\n }\r\n decodedCodes.push(code);\r\n result.push(code.code);\r\n }\r\n\r\n return code;\r\n};\r\n\r\nEANReader.prototype._decode = function() {\r\n var startInfo,\r\n self = this,\r\n code,\r\n result = [],\r\n decodedCodes = [],\r\n resultInfo = {};\r\n\r\n startInfo = self._findStart();\r\n if (!startInfo) {\r\n return null;\r\n }\r\n code = {\r\n code: startInfo.code,\r\n start: startInfo.start,\r\n end: startInfo.end\r\n };\r\n decodedCodes.push(code);\r\n code = self._decodePayload(code, result, decodedCodes);\r\n if (!code) {\r\n return null;\r\n }\r\n code = self._findEnd(code.end, false);\r\n if (!code){\r\n return null;\r\n }\r\n\r\n decodedCodes.push(code);\r\n\r\n // Checksum\r\n if (!self._checksum(result)) {\r\n return null;\r\n }\r\n\r\n if (this.supplements.length > 0) {\r\n let ext = this._decodeExtensions(code.end);\r\n if (!ext) {\r\n return null;\r\n }\r\n let lastCode = ext.decodedCodes[ext.decodedCodes.length-1],\r\n endInfo = {\r\n start: lastCode.start + (((lastCode.end - lastCode.start) / 2) | 0),\r\n end: lastCode.end\r\n };\r\n if(!self._verifyTrailingWhitespace(endInfo)) {\r\n return null;\r\n }\r\n resultInfo = {\r\n supplement: ext,\r\n code: result.join(\"\") + ext.code\r\n }\r\n }\r\n\r\n return {\r\n code: result.join(\"\"),\r\n start: startInfo.start,\r\n end: code.end,\r\n codeset: \"\",\r\n startInfo: startInfo,\r\n decodedCodes: decodedCodes,\r\n ...resultInfo\r\n };\r\n};\r\n\r\nEANReader.prototype._decodeExtensions = function(offset) {\r\n var i,\r\n start = this._nextSet(this._row, offset),\r\n startInfo = this._findPattern(this.EXTENSION_START_PATTERN, start, false, false),\r\n result;\r\n\r\n if (startInfo === null) {\r\n return null;\r\n }\r\n\r\n for (i = 0; i < this.supplements.length; i++) {\r\n result = this.supplements[i].decode(this._row, startInfo.end);\r\n if (result !== null) {\r\n return {\r\n code: result.code,\r\n start,\r\n startInfo,\r\n end: result.end,\r\n codeset: \"\",\r\n decodedCodes: result.decodedCodes\r\n }\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nEANReader.prototype._checksum = function(result) {\r\n var sum = 0, i;\r\n\r\n for ( i = result.length - 2; i >= 0; i -= 2) {\r\n sum += result[i];\r\n }\r\n sum *= 3;\r\n for ( i = result.length - 1; i >= 0; i -= 2) {\r\n sum += result[i];\r\n }\r\n return sum % 10 === 0;\r\n};\r\n\r\nEANReader.CONFIG_KEYS = {\r\n supplements: {\r\n 'type': 'arrayOf(string)',\r\n 'default': [],\r\n 'description': 'Allowed extensions to be decoded (2 and/or 5)'\r\n }\r\n};\r\n\r\nexport default (EANReader);\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reader/ean_reader.js\n **/","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_Map.js\n ** module id = 6\n ** module chunks = 0\n **/","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable properties of source objects into the destination\n * object. Source properties that resolve to `undefined` are skipped if a\n * destination value exists. Array and plain object properties are merged\n * recursively.Other objects and value types are overridden by assignment.\n * Source objects are applied from left to right. Subsequent sources\n * overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/merge.js\n ** module id = 7\n ** module chunks = 0\n **/","export default {\r\n drawRect: function(pos, size, ctx, style){\r\n ctx.strokeStyle = style.color;\r\n ctx.fillStyle = style.color;\r\n ctx.lineWidth = 1;\r\n ctx.beginPath();\r\n ctx.strokeRect(pos.x, pos.y, size.x, size.y);\r\n },\r\n drawPath: function(path, def, ctx, style) {\r\n ctx.strokeStyle = style.color;\r\n ctx.fillStyle = style.color;\r\n ctx.lineWidth = style.lineWidth;\r\n ctx.beginPath();\r\n ctx.moveTo(path[0][def.x], path[0][def.y]);\r\n for (var j = 1; j < path.length; j++) {\r\n ctx.lineTo(path[j][def.x], path[j][def.y]);\r\n }\r\n ctx.closePath();\r\n ctx.stroke();\r\n },\r\n drawImage: function(imageData, size, ctx) {\r\n var canvasData = ctx.getImageData(0, 0, size.x, size.y),\r\n data = canvasData.data,\r\n imageDataPos = imageData.length,\r\n canvasDataPos = data.length,\r\n value;\r\n\r\n if (canvasDataPos / imageDataPos !== 4) {\r\n return false;\r\n }\r\n while (imageDataPos--){\r\n value = imageData[imageDataPos];\r\n data[--canvasDataPos] = 255;\r\n data[--canvasDataPos] = value;\r\n data[--canvasDataPos] = value;\r\n data[--canvasDataPos] = value;\r\n }\r\n ctx.putImageData(canvasData, 0, 0);\r\n return true;\r\n }\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/image_debug.js\n **/","function BarcodeReader(config, supplements) {\r\n this._row = [];\r\n this.config = config || {};\r\n this.supplements = supplements;\r\n return this;\r\n}\r\n\r\nBarcodeReader.prototype._nextUnset = function(line, start) {\r\n var i;\r\n\r\n if (start === undefined) {\r\n start = 0;\r\n }\r\n for (i = start; i < line.length; i++) {\r\n if (!line[i]) {\r\n return i;\r\n }\r\n }\r\n return line.length;\r\n};\r\n\r\nBarcodeReader.prototype._matchPattern = function(counter, code, maxSingleError) {\r\n var i,\r\n error = 0,\r\n singleError = 0,\r\n sum = 0,\r\n modulo = 0,\r\n barWidth,\r\n count,\r\n scaled;\r\n\r\n maxSingleError = maxSingleError || this.SINGLE_CODE_ERROR || 1;\r\n\r\n for (i = 0; i < counter.length; i++) {\r\n sum += counter[i];\r\n modulo += code[i];\r\n }\r\n if (sum < modulo) {\r\n return Number.MAX_VALUE;\r\n }\r\n barWidth = sum / modulo;\r\n maxSingleError *= barWidth;\r\n\r\n for (i = 0; i < counter.length; i++) {\r\n count = counter[i];\r\n scaled = code[i] * barWidth;\r\n singleError = Math.abs(count - scaled) / scaled;\r\n if (singleError > maxSingleError) {\r\n return Number.MAX_VALUE;\r\n }\r\n error += singleError;\r\n }\r\n return error / modulo;\r\n};\r\n\r\nBarcodeReader.prototype._nextSet = function(line, offset) {\r\n var i;\r\n\r\n offset = offset || 0;\r\n for (i = offset; i < line.length; i++) {\r\n if (line[i]) {\r\n return i;\r\n }\r\n }\r\n return line.length;\r\n};\r\n\r\nBarcodeReader.prototype._correctBars = function(counter, correction, indices) {\r\n var length = indices.length,\r\n tmp = 0;\r\n while(length--) {\r\n tmp = counter[indices[length]] * (1 - ((1 - correction) / 2));\r\n if (tmp > 1) {\r\n counter[indices[length]] = tmp;\r\n }\r\n }\r\n}\r\n\r\nBarcodeReader.prototype._matchTrace = function(cmpCounter, epsilon) {\r\n var counter = [],\r\n i,\r\n self = this,\r\n offset = self._nextSet(self._row),\r\n isWhite = !self._row[offset],\r\n counterPos = 0,\r\n bestMatch = {\r\n error: Number.MAX_VALUE,\r\n code: -1,\r\n start: 0\r\n },\r\n error;\r\n\r\n if (cmpCounter) {\r\n for ( i = 0; i < cmpCounter.length; i++) {\r\n counter.push(0);\r\n }\r\n for ( i = offset; i < self._row.length; i++) {\r\n if (self._row[i] ^ isWhite) {\r\n counter[counterPos]++;\r\n } else {\r\n if (counterPos === counter.length - 1) {\r\n error = self._matchPattern(counter, cmpCounter);\r\n\r\n if (error < epsilon) {\r\n bestMatch.start = i - offset;\r\n bestMatch.end = i;\r\n bestMatch.counter = counter;\r\n return bestMatch;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n counterPos++;\r\n }\r\n counter[counterPos] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n } else {\r\n counter.push(0);\r\n for ( i = offset; i < self._row.length; i++) {\r\n if (self._row[i] ^ isWhite) {\r\n counter[counterPos]++;\r\n } else {\r\n counterPos++;\r\n counter.push(0);\r\n counter[counterPos] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n }\r\n\r\n // if cmpCounter was not given\r\n bestMatch.start = offset;\r\n bestMatch.end = self._row.length - 1;\r\n bestMatch.counter = counter;\r\n return bestMatch;\r\n};\r\n\r\nBarcodeReader.prototype.decodePattern = function(pattern) {\r\n var self = this,\r\n result;\r\n\r\n self._row = pattern;\r\n result = self._decode();\r\n if (result === null) {\r\n self._row.reverse();\r\n result = self._decode();\r\n if (result) {\r\n result.direction = BarcodeReader.DIRECTION.REVERSE;\r\n result.start = self._row.length - result.start;\r\n result.end = self._row.length - result.end;\r\n }\r\n } else {\r\n result.direction = BarcodeReader.DIRECTION.FORWARD;\r\n }\r\n if (result) {\r\n result.format = self.FORMAT;\r\n }\r\n return result;\r\n};\r\n\r\nBarcodeReader.prototype._matchRange = function(start, end, value) {\r\n var i;\r\n\r\n start = start < 0 ? 0 : start;\r\n for (i = start; i < end; i++) {\r\n if (this._row[i] !== value) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\nBarcodeReader.prototype._fillCounters = function(offset, end, isWhite) {\r\n var self = this,\r\n counterPos = 0,\r\n i,\r\n counters = [];\r\n\r\n isWhite = (typeof isWhite !== 'undefined') ? isWhite : true;\r\n offset = (typeof offset !== 'undefined') ? offset : self._nextUnset(self._row);\r\n end = end || self._row.length;\r\n\r\n counters[counterPos] = 0;\r\n for (i = offset; i < end; i++) {\r\n if (self._row[i] ^ isWhite) {\r\n counters[counterPos]++;\r\n } else {\r\n counterPos++;\r\n counters[counterPos] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n return counters;\r\n};\r\n\r\nObject.defineProperty(BarcodeReader.prototype, \"FORMAT\", {\r\n value: 'unknown',\r\n writeable: false\r\n});\r\n\r\nBarcodeReader.DIRECTION = {\r\n FORWARD: 1,\r\n REVERSE: -1\r\n};\r\n\r\nBarcodeReader.Exception = {\r\n StartNotFoundException: \"Start-Info was not found!\",\r\n CodeNotFoundException: \"Code could not be found!\",\r\n PatternNotFoundException: \"Pattern could not be found!\"\r\n};\r\n\r\nBarcodeReader.CONFIG_KEYS = {};\r\n\r\nexport default BarcodeReader;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reader/barcode_reader.js\n **/","module.exports = clone\n\n/**\n * Creates a new vec2 initialized with values from an existing vector\n *\n * @param {vec2} a vector to clone\n * @returns {vec2} a new 2D vector\n */\nfunction clone(a) {\n var out = new Float32Array(2)\n out[0] = a[0]\n out[1] = a[1]\n return out\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/gl-vec2/clone.js\n ** module id = 10\n ** module chunks = 0\n **/","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\nmodule.exports = isArguments;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isArguments.js\n ** module id = 11\n ** module chunks = 0\n **/","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8 which returns 'object' for typed array and weak map constructors,\n // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\nmodule.exports = isFunction;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isFunction.js\n ** module id = 12\n ** module chunks = 0\n **/","export default {\r\n init: function(arr, val) {\r\n var l = arr.length;\r\n while (l--) {\r\n arr[l] = val;\r\n }\r\n },\r\n\r\n /**\r\n * Shuffles the content of an array\r\n * @return {Array} the array itself shuffled\r\n */\r\n shuffle: function(arr) {\r\n var i = arr.length - 1, j, x;\r\n for (i; i >= 0; i--) {\r\n j = Math.floor(Math.random() * i);\r\n x = arr[i];\r\n arr[i] = arr[j];\r\n arr[j] = x;\r\n }\r\n return arr;\r\n },\r\n\r\n toPointList: function(arr) {\r\n var i, j, row = [], rows = [];\r\n for ( i = 0; i < arr.length; i++) {\r\n row = [];\r\n for ( j = 0; j < arr[i].length; j++) {\r\n row[j] = arr[i][j];\r\n }\r\n rows[i] = \"[\" + row.join(\",\") + \"]\";\r\n }\r\n return \"[\" + rows.join(\",\\r\\n\") + \"]\";\r\n },\r\n\r\n /**\r\n * returns the elements which's score is bigger than the threshold\r\n * @return {Array} the reduced array\r\n */\r\n threshold: function(arr, threshold, scoreFunc) {\r\n var i, queue = [];\r\n for ( i = 0; i < arr.length; i++) {\r\n if (scoreFunc.apply(arr, [arr[i]]) >= threshold) {\r\n queue.push(arr[i]);\r\n }\r\n }\r\n return queue;\r\n },\r\n\r\n maxIndex: function(arr) {\r\n var i, max = 0;\r\n for ( i = 0; i < arr.length; i++) {\r\n if (arr[i] > arr[max]) {\r\n max = i;\r\n }\r\n }\r\n return max;\r\n },\r\n\r\n max: function(arr) {\r\n var i, max = 0;\r\n for ( i = 0; i < arr.length; i++) {\r\n if (arr[i] > max) {\r\n max = arr[i];\r\n }\r\n }\r\n return max;\r\n },\r\n\r\n sum: function(arr) {\r\n var length = arr.length,\r\n sum = 0;\r\n\r\n while (length--) {\r\n sum += arr[length];\r\n }\r\n return sum;\r\n }\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/array_helper.js\n **/","var stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction Stack(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = values[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add functions to the `Stack` cache.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_Stack.js\n ** module id = 14\n ** module chunks = 0\n **/","var eq = require('./eq');\n\n/**\n * Gets the index at which the first occurrence of `key` is found in `array`\n * of key-value pairs.\n *\n * @private\n * @param {Array} array The array to search.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_assocIndexOf.js\n ** module id = 15\n ** module chunks = 0\n **/","var isNative = require('./isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_getNative.js\n ** module id = 16\n ** module chunks = 0\n **/","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\nmodule.exports = isHostObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_isHostObject.js\n ** module id = 17\n ** module chunks = 0\n **/","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_isIndex.js\n ** module id = 18\n ** module chunks = 0\n **/","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return type == 'number' || type == 'boolean' ||\n (type == 'string' && value != '__proto__') || value == null;\n}\n\nmodule.exports = isKeyable;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_isKeyable.js\n ** module id = 19\n ** module chunks = 0\n **/","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_nativeCreate.js\n ** module id = 20\n ** module chunks = 0\n **/","/**\n * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'user': 'fred' };\n * var other = { 'user': 'fred' };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/eq.js\n ** module id = 21\n ** module chunks = 0\n **/","var getLength = require('./_getLength'),\n isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value)) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isArrayLike.js\n ** module id = 22\n ** module chunks = 0\n **/","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isLength.js\n ** module id = 23\n ** module chunks = 0\n **/","var baseHas = require('./_baseHas'),\n baseKeys = require('./_baseKeys'),\n indexKeys = require('./_indexKeys'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n var isProto = isPrototype(object);\n if (!(isProto || isArrayLike(object))) {\n return baseKeys(object);\n }\n var indexes = indexKeys(object),\n skipIndexes = !!indexes,\n result = indexes || [],\n length = result.length;\n\n for (var key in object) {\n if (baseHas(object, key) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length))) &&\n !(isProto && key == 'constructor')) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = keys;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/keys.js\n ** module id = 24\n ** module chunks = 0\n **/","import Cluster2 from './cluster';\r\nimport ArrayHelper from './array_helper';\r\nconst vec2 = {\r\n clone: require('gl-vec2/clone')\r\n};\r\nconst vec3 = {\r\n clone: require('gl-vec3/clone')\r\n};\r\n\r\n/**\r\n * @param x x-coordinate\r\n * @param y y-coordinate\r\n * @return ImageReference {x,y} Coordinate\r\n */\r\nexport function imageRef(x, y) {\r\n var that = {\r\n x: x,\r\n y: y,\r\n toVec2: function() {\r\n return vec2.clone([this.x, this.y]);\r\n },\r\n toVec3: function() {\r\n return vec3.clone([this.x, this.y, 1]);\r\n },\r\n round: function() {\r\n this.x = this.x > 0.0 ? Math.floor(this.x + 0.5) : Math.floor(this.x - 0.5);\r\n this.y = this.y > 0.0 ? Math.floor(this.y + 0.5) : Math.floor(this.y - 0.5);\r\n return this;\r\n }\r\n };\r\n return that;\r\n};\r\n\r\n/**\r\n * Computes an integral image of a given grayscale image.\r\n * @param imageDataContainer {ImageDataContainer} the image to be integrated\r\n */\r\nexport function computeIntegralImage2(imageWrapper, integralWrapper) {\r\n var imageData = imageWrapper.data;\r\n var width = imageWrapper.size.x;\r\n var height = imageWrapper.size.y;\r\n var integralImageData = integralWrapper.data;\r\n var sum = 0, posA = 0, posB = 0, posC = 0, posD = 0, x, y;\r\n\r\n // sum up first column\r\n posB = width;\r\n sum = 0;\r\n for ( y = 1; y < height; y++) {\r\n sum += imageData[posA];\r\n integralImageData[posB] += sum;\r\n posA += width;\r\n posB += width;\r\n }\r\n\r\n posA = 0;\r\n posB = 1;\r\n sum = 0;\r\n for ( x = 1; x < width; x++) {\r\n sum += imageData[posA];\r\n integralImageData[posB] += sum;\r\n posA++;\r\n posB++;\r\n }\r\n\r\n for ( y = 1; y < height; y++) {\r\n posA = y * width + 1;\r\n posB = (y - 1) * width + 1;\r\n posC = y * width;\r\n posD = (y - 1) * width;\r\n for ( x = 1; x < width; x++) {\r\n integralImageData[posA] +=\r\n imageData[posA] + integralImageData[posB] + integralImageData[posC] - integralImageData[posD];\r\n posA++;\r\n posB++;\r\n posC++;\r\n posD++;\r\n }\r\n }\r\n};\r\n\r\nexport function computeIntegralImage(imageWrapper, integralWrapper) {\r\n var imageData = imageWrapper.data;\r\n var width = imageWrapper.size.x;\r\n var height = imageWrapper.size.y;\r\n var integralImageData = integralWrapper.data;\r\n var sum = 0;\r\n\r\n // sum up first row\r\n for (var i = 0; i < width; i++) {\r\n sum += imageData[i];\r\n integralImageData[i] = sum;\r\n }\r\n\r\n for (var v = 1; v < height; v++) {\r\n sum = 0;\r\n for (var u = 0; u < width; u++) {\r\n sum += imageData[v * width + u];\r\n integralImageData[((v) * width) + u] = sum + integralImageData[(v - 1) * width + u];\r\n }\r\n }\r\n};\r\n\r\nexport function thresholdImage(imageWrapper, threshold, targetWrapper) {\r\n if (!targetWrapper) {\r\n targetWrapper = imageWrapper;\r\n }\r\n var imageData = imageWrapper.data, length = imageData.length, targetData = targetWrapper.data;\r\n\r\n while (length--) {\r\n targetData[length] = imageData[length] < threshold ? 1 : 0;\r\n }\r\n};\r\n\r\nexport function computeHistogram(imageWrapper, bitsPerPixel) {\r\n if (!bitsPerPixel) {\r\n bitsPerPixel = 8;\r\n }\r\n var imageData = imageWrapper.data,\r\n length = imageData.length,\r\n bitShift = 8 - bitsPerPixel,\r\n bucketCnt = 1 << bitsPerPixel,\r\n hist = new Int32Array(bucketCnt);\r\n\r\n while (length--) {\r\n hist[imageData[length] >> bitShift]++;\r\n }\r\n return hist;\r\n};\r\n\r\nexport function sharpenLine(line) {\r\n var i,\r\n length = line.length,\r\n left = line[0],\r\n center = line[1],\r\n right;\r\n\r\n for (i = 1; i < length - 1; i++) {\r\n right = line[i + 1];\r\n // -1 4 -1 kernel\r\n line[i - 1] = (((center * 2) - left - right)) & 255;\r\n left = center;\r\n center = right;\r\n }\r\n return line;\r\n};\r\n\r\nexport function determineOtsuThreshold(imageWrapper, bitsPerPixel) {\r\n if (!bitsPerPixel) {\r\n bitsPerPixel = 8;\r\n }\r\n var hist,\r\n threshold,\r\n bitShift = 8 - bitsPerPixel;\r\n\r\n function px(init, end) {\r\n var sum = 0, i;\r\n for ( i = init; i <= end; i++) {\r\n sum += hist[i];\r\n }\r\n return sum;\r\n }\r\n\r\n function mx(init, end) {\r\n var i, sum = 0;\r\n\r\n for ( i = init; i <= end; i++) {\r\n sum += i * hist[i];\r\n }\r\n\r\n return sum;\r\n }\r\n\r\n function determineThreshold() {\r\n var vet = [0], p1, p2, p12, k, m1, m2, m12,\r\n max = (1 << bitsPerPixel) - 1;\r\n\r\n hist = computeHistogram(imageWrapper, bitsPerPixel);\r\n for ( k = 1; k < max; k++) {\r\n p1 = px(0, k);\r\n p2 = px(k + 1, max);\r\n p12 = p1 * p2;\r\n if (p12 === 0) {\r\n p12 = 1;\r\n }\r\n m1 = mx(0, k) * p2;\r\n m2 = mx(k + 1, max) * p1;\r\n m12 = m1 - m2;\r\n vet[k] = m12 * m12 / p12;\r\n }\r\n return ArrayHelper.maxIndex(vet);\r\n }\r\n\r\n threshold = determineThreshold();\r\n return threshold << bitShift;\r\n};\r\n\r\nexport function otsuThreshold(imageWrapper, targetWrapper) {\r\n var threshold = determineOtsuThreshold(imageWrapper);\r\n\r\n thresholdImage(imageWrapper, threshold, targetWrapper);\r\n return threshold;\r\n};\r\n\r\n// local thresholding\r\nexport function computeBinaryImage(imageWrapper, integralWrapper, targetWrapper) {\r\n computeIntegralImage(imageWrapper, integralWrapper);\r\n\r\n if (!targetWrapper) {\r\n targetWrapper = imageWrapper;\r\n }\r\n var imageData = imageWrapper.data;\r\n var targetData = targetWrapper.data;\r\n var width = imageWrapper.size.x;\r\n var height = imageWrapper.size.y;\r\n var integralImageData = integralWrapper.data;\r\n var sum = 0, v, u, kernel = 3, A, B, C, D, avg, size = (kernel * 2 + 1) * (kernel * 2 + 1);\r\n\r\n // clear out top & bottom-border\r\n for ( v = 0; v <= kernel; v++) {\r\n for ( u = 0; u < width; u++) {\r\n targetData[((v) * width) + u] = 0;\r\n targetData[(((height - 1) - v) * width) + u] = 0;\r\n }\r\n }\r\n\r\n // clear out left & right border\r\n for ( v = kernel; v < height - kernel; v++) {\r\n for ( u = 0; u <= kernel; u++) {\r\n targetData[((v) * width) + u] = 0;\r\n targetData[((v) * width) + (width - 1 - u)] = 0;\r\n }\r\n }\r\n\r\n for ( v = kernel + 1; v < height - kernel - 1; v++) {\r\n for ( u = kernel + 1; u < width - kernel; u++) {\r\n A = integralImageData[(v - kernel - 1) * width + (u - kernel - 1)];\r\n B = integralImageData[(v - kernel - 1) * width + (u + kernel)];\r\n C = integralImageData[(v + kernel) * width + (u - kernel - 1)];\r\n D = integralImageData[(v + kernel) * width + (u + kernel)];\r\n sum = D - C - B + A;\r\n avg = sum / (size);\r\n targetData[v * width + u] = imageData[v * width + u] > (avg + 5) ? 0 : 1;\r\n }\r\n }\r\n};\r\n\r\nexport function cluster(points, threshold, property) {\r\n var i, k, cluster, point, clusters = [];\r\n\r\n if (!property) {\r\n property = \"rad\";\r\n }\r\n\r\n function addToCluster(newPoint) {\r\n var found = false;\r\n for ( k = 0; k < clusters.length; k++) {\r\n cluster = clusters[k];\r\n if (cluster.fits(newPoint)) {\r\n cluster.add(newPoint);\r\n found = true;\r\n }\r\n }\r\n return found;\r\n }\r\n\r\n // iterate over each cloud\r\n for ( i = 0; i < points.length; i++) {\r\n point = Cluster2.createPoint(points[i], i, property);\r\n if (!addToCluster(point)) {\r\n clusters.push(Cluster2.create(point, threshold));\r\n }\r\n }\r\n return clusters;\r\n};\r\n\r\nexport const Tracer = {\r\n trace: function(points, vec) {\r\n var iteration, maxIterations = 10, top = [], result = [], centerPos = 0, currentPos = 0;\r\n\r\n function trace(idx, forward) {\r\n var from, to, toIdx, predictedPos, thresholdX = 1, thresholdY = Math.abs(vec[1] / 10), found = false;\r\n\r\n function match(pos, predicted) {\r\n if (pos.x > (predicted.x - thresholdX)\r\n && pos.x < (predicted.x + thresholdX)\r\n && pos.y > (predicted.y - thresholdY)\r\n && pos.y < (predicted.y + thresholdY)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // check if the next index is within the vec specifications\r\n // if not, check as long as the threshold is met\r\n\r\n from = points[idx];\r\n if (forward) {\r\n predictedPos = {\r\n x: from.x + vec[0],\r\n y: from.y + vec[1]\r\n };\r\n } else {\r\n predictedPos = {\r\n x: from.x - vec[0],\r\n y: from.y - vec[1]\r\n };\r\n }\r\n\r\n toIdx = forward ? idx + 1 : idx - 1;\r\n to = points[toIdx];\r\n while (to && ( found = match(to, predictedPos)) !== true && (Math.abs(to.y - from.y) < vec[1])) {\r\n toIdx = forward ? toIdx + 1 : toIdx - 1;\r\n to = points[toIdx];\r\n }\r\n\r\n return found ? toIdx : null;\r\n }\r\n\r\n for ( iteration = 0; iteration < maxIterations; iteration++) {\r\n // randomly select point to start with\r\n centerPos = Math.floor(Math.random() * points.length);\r\n\r\n // trace forward\r\n top = [];\r\n currentPos = centerPos;\r\n top.push(points[currentPos]);\r\n while (( currentPos = trace(currentPos, true)) !== null) {\r\n top.push(points[currentPos]);\r\n }\r\n if (centerPos > 0) {\r\n currentPos = centerPos;\r\n while (( currentPos = trace(currentPos, false)) !== null) {\r\n top.push(points[currentPos]);\r\n }\r\n }\r\n\r\n if (top.length > result.length) {\r\n result = top;\r\n }\r\n }\r\n return result;\r\n }\r\n};\r\n\r\nexport const DILATE = 1;\r\nexport const ERODE = 2;\r\n\r\nexport function dilate(inImageWrapper, outImageWrapper) {\r\n var v,\r\n u,\r\n inImageData = inImageWrapper.data,\r\n outImageData = outImageWrapper.data,\r\n height = inImageWrapper.size.y,\r\n width = inImageWrapper.size.x,\r\n sum,\r\n yStart1,\r\n yStart2,\r\n xStart1,\r\n xStart2;\r\n\r\n for ( v = 1; v < height - 1; v++) {\r\n for ( u = 1; u < width - 1; u++) {\r\n yStart1 = v - 1;\r\n yStart2 = v + 1;\r\n xStart1 = u - 1;\r\n xStart2 = u + 1;\r\n sum = inImageData[yStart1 * width + xStart1] + inImageData[yStart1 * width + xStart2] +\r\n inImageData[v * width + u] +\r\n inImageData[yStart2 * width + xStart1] + inImageData[yStart2 * width + xStart2];\r\n outImageData[v * width + u] = sum > 0 ? 1 : 0;\r\n }\r\n }\r\n};\r\n\r\nexport function erode(inImageWrapper, outImageWrapper) {\r\n var v,\r\n u,\r\n inImageData = inImageWrapper.data,\r\n outImageData = outImageWrapper.data,\r\n height = inImageWrapper.size.y,\r\n width = inImageWrapper.size.x,\r\n sum,\r\n yStart1,\r\n yStart2,\r\n xStart1,\r\n xStart2;\r\n\r\n for ( v = 1; v < height - 1; v++) {\r\n for ( u = 1; u < width - 1; u++) {\r\n yStart1 = v - 1;\r\n yStart2 = v + 1;\r\n xStart1 = u - 1;\r\n xStart2 = u + 1;\r\n sum = inImageData[yStart1 * width + xStart1] + inImageData[yStart1 * width + xStart2] +\r\n inImageData[v * width + u] +\r\n inImageData[yStart2 * width + xStart1] + inImageData[yStart2 * width + xStart2];\r\n outImageData[v * width + u] = sum === 5 ? 1 : 0;\r\n }\r\n }\r\n};\r\n\r\nexport function subtract(aImageWrapper, bImageWrapper, resultImageWrapper) {\r\n if (!resultImageWrapper) {\r\n resultImageWrapper = aImageWrapper;\r\n }\r\n var length = aImageWrapper.data.length,\r\n aImageData = aImageWrapper.data,\r\n bImageData = bImageWrapper.data,\r\n cImageData = resultImageWrapper.data;\r\n\r\n while (length--) {\r\n cImageData[length] = aImageData[length] - bImageData[length];\r\n }\r\n};\r\n\r\nexport function bitwiseOr(aImageWrapper, bImageWrapper, resultImageWrapper) {\r\n if (!resultImageWrapper) {\r\n resultImageWrapper = aImageWrapper;\r\n }\r\n var length = aImageWrapper.data.length,\r\n aImageData = aImageWrapper.data,\r\n bImageData = bImageWrapper.data,\r\n cImageData = resultImageWrapper.data;\r\n\r\n while (length--) {\r\n cImageData[length] = aImageData[length] || bImageData[length];\r\n }\r\n};\r\n\r\nexport function countNonZero(imageWrapper) {\r\n var length = imageWrapper.data.length, data = imageWrapper.data, sum = 0;\r\n\r\n while (length--) {\r\n sum += data[length];\r\n }\r\n return sum;\r\n};\r\n\r\nexport function topGeneric(list, top, scoreFunc) {\r\n var i, minIdx = 0, min = 0, queue = [], score, hit, pos;\r\n\r\n for ( i = 0; i < top; i++) {\r\n queue[i] = {\r\n score: 0,\r\n item: null\r\n };\r\n }\r\n\r\n for ( i = 0; i < list.length; i++) {\r\n score = scoreFunc.apply(this, [list[i]]);\r\n if (score > min) {\r\n hit = queue[minIdx];\r\n hit.score = score;\r\n hit.item = list[i];\r\n min = Number.MAX_VALUE;\r\n for ( pos = 0; pos < top; pos++) {\r\n if (queue[pos].score < min) {\r\n min = queue[pos].score;\r\n minIdx = pos;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return queue;\r\n};\r\n\r\nexport function grayArrayFromImage(htmlImage, offsetX, ctx, array) {\r\n ctx.drawImage(htmlImage, offsetX, 0, htmlImage.width, htmlImage.height);\r\n var ctxData = ctx.getImageData(offsetX, 0, htmlImage.width, htmlImage.height).data;\r\n computeGray(ctxData, array);\r\n};\r\n\r\nexport function grayArrayFromContext(ctx, size, offset, array) {\r\n var ctxData = ctx.getImageData(offset.x, offset.y, size.x, size.y).data;\r\n computeGray(ctxData, array);\r\n};\r\n\r\nexport function grayAndHalfSampleFromCanvasData(canvasData, size, outArray) {\r\n var topRowIdx = 0;\r\n var bottomRowIdx = size.x;\r\n var endIdx = Math.floor(canvasData.length / 4);\r\n var outWidth = size.x / 2;\r\n var outImgIdx = 0;\r\n var inWidth = size.x;\r\n var i;\r\n\r\n while (bottomRowIdx < endIdx) {\r\n for ( i = 0; i < outWidth; i++) {\r\n outArray[outImgIdx] = Math.floor((\r\n (0.299 * canvasData[topRowIdx * 4 + 0] +\r\n 0.587 * canvasData[topRowIdx * 4 + 1] +\r\n 0.114 * canvasData[topRowIdx * 4 + 2]) +\r\n (0.299 * canvasData[(topRowIdx + 1) * 4 + 0] +\r\n 0.587 * canvasData[(topRowIdx + 1) * 4 + 1] +\r\n 0.114 * canvasData[(topRowIdx + 1) * 4 + 2]) +\r\n (0.299 * canvasData[(bottomRowIdx) * 4 + 0] +\r\n 0.587 * canvasData[(bottomRowIdx) * 4 + 1] +\r\n 0.114 * canvasData[(bottomRowIdx) * 4 + 2]) +\r\n (0.299 * canvasData[(bottomRowIdx + 1) * 4 + 0] +\r\n 0.587 * canvasData[(bottomRowIdx + 1) * 4 + 1] +\r\n 0.114 * canvasData[(bottomRowIdx + 1) * 4 + 2])) / 4);\r\n outImgIdx++;\r\n topRowIdx = topRowIdx + 2;\r\n bottomRowIdx = bottomRowIdx + 2;\r\n }\r\n topRowIdx = topRowIdx + inWidth;\r\n bottomRowIdx = bottomRowIdx + inWidth;\r\n }\r\n};\r\n\r\nexport function computeGray(imageData, outArray, config) {\r\n var l = (imageData.length / 4) | 0,\r\n i,\r\n singleChannel = config && config.singleChannel === true;\r\n\r\n if (singleChannel) {\r\n for (i = 0; i < l; i++) {\r\n outArray[i] = imageData[i * 4 + 0];\r\n }\r\n } else {\r\n for (i = 0; i < l; i++) {\r\n outArray[i] = Math.floor(\r\n 0.299 * imageData[i * 4 + 0] + 0.587 * imageData[i * 4 + 1] + 0.114 * imageData[i * 4 + 2]);\r\n }\r\n }\r\n};\r\n\r\nexport function loadImageArray(src, callback, canvas) {\r\n if (!canvas) {\r\n canvas = document.createElement('canvas');\r\n }\r\n var img = new Image();\r\n img.callback = callback;\r\n img.onload = function() {\r\n canvas.width = this.width;\r\n canvas.height = this.height;\r\n var ctx = canvas.getContext('2d');\r\n ctx.drawImage(this, 0, 0);\r\n var array = new Uint8Array(this.width * this.height);\r\n ctx.drawImage(this, 0, 0);\r\n var data = ctx.getImageData(0, 0, this.width, this.height).data;\r\n computeGray(data, array);\r\n this.callback(array, {\r\n x: this.width,\r\n y: this.height\r\n }, this);\r\n };\r\n img.src = src;\r\n};\r\n\r\n/**\r\n * @param inImg {ImageWrapper} input image to be sampled\r\n * @param outImg {ImageWrapper} to be stored in\r\n */\r\nexport function halfSample(inImgWrapper, outImgWrapper) {\r\n var inImg = inImgWrapper.data;\r\n var inWidth = inImgWrapper.size.x;\r\n var outImg = outImgWrapper.data;\r\n var topRowIdx = 0;\r\n var bottomRowIdx = inWidth;\r\n var endIdx = inImg.length;\r\n var outWidth = inWidth / 2;\r\n var outImgIdx = 0;\r\n while (bottomRowIdx < endIdx) {\r\n for (var i = 0; i < outWidth; i++) {\r\n outImg[outImgIdx] = Math.floor(\r\n (inImg[topRowIdx] + inImg[topRowIdx + 1] + inImg[bottomRowIdx] + inImg[bottomRowIdx + 1]) / 4);\r\n outImgIdx++;\r\n topRowIdx = topRowIdx + 2;\r\n bottomRowIdx = bottomRowIdx + 2;\r\n }\r\n topRowIdx = topRowIdx + inWidth;\r\n bottomRowIdx = bottomRowIdx + inWidth;\r\n }\r\n};\r\n\r\nexport function hsv2rgb(hsv, rgb) {\r\n var h = hsv[0],\r\n s = hsv[1],\r\n v = hsv[2],\r\n c = v * s,\r\n x = c * (1 - Math.abs((h / 60) % 2 - 1)),\r\n m = v - c,\r\n r = 0,\r\n g = 0,\r\n b = 0;\r\n\r\n rgb = rgb || [0, 0, 0];\r\n\r\n if (h < 60) {\r\n r = c;\r\n g = x;\r\n } else if (h < 120) {\r\n r = x;\r\n g = c;\r\n } else if (h < 180) {\r\n g = c;\r\n b = x;\r\n } else if (h < 240) {\r\n g = x;\r\n b = c;\r\n } else if (h < 300) {\r\n r = x;\r\n b = c;\r\n } else if (h < 360) {\r\n r = c;\r\n b = x;\r\n }\r\n rgb[0] = ((r + m) * 255) | 0;\r\n rgb[1] = ((g + m) * 255) | 0;\r\n rgb[2] = ((b + m) * 255) | 0;\r\n return rgb;\r\n};\r\n\r\nexport function _computeDivisors(n) {\r\n var largeDivisors = [],\r\n divisors = [],\r\n i;\r\n\r\n for (i = 1; i < Math.sqrt(n) + 1; i++) {\r\n if (n % i === 0) {\r\n divisors.push(i);\r\n if (i !== n / i) {\r\n largeDivisors.unshift(Math.floor(n / i));\r\n }\r\n }\r\n }\r\n return divisors.concat(largeDivisors);\r\n};\r\n\r\nfunction _computeIntersection(arr1, arr2) {\r\n var i = 0,\r\n j = 0,\r\n result = [];\r\n\r\n while (i < arr1.length && j < arr2.length) {\r\n if (arr1[i] === arr2[j]) {\r\n result.push(arr1[i]);\r\n i++;\r\n j++;\r\n } else if (arr1[i] > arr2[j]) {\r\n j++;\r\n } else {\r\n i++;\r\n }\r\n }\r\n return result;\r\n};\r\n\r\nexport function calculatePatchSize(patchSize, imgSize) {\r\n var divisorsX = _computeDivisors(imgSize.x),\r\n divisorsY = _computeDivisors(imgSize.y),\r\n wideSide = Math.max(imgSize.x, imgSize.y),\r\n common = _computeIntersection(divisorsX, divisorsY),\r\n nrOfPatchesList = [8, 10, 15, 20, 32, 60, 80],\r\n nrOfPatchesMap = {\r\n \"x-small\": 5,\r\n \"small\": 4,\r\n \"medium\": 3,\r\n \"large\": 2,\r\n \"x-large\": 1\r\n },\r\n nrOfPatchesIdx = nrOfPatchesMap[patchSize] || nrOfPatchesMap.medium,\r\n nrOfPatches = nrOfPatchesList[nrOfPatchesIdx],\r\n desiredPatchSize = Math.floor(wideSide / nrOfPatches),\r\n optimalPatchSize;\r\n\r\n function findPatchSizeForDivisors(divisors) {\r\n var i = 0,\r\n found = divisors[Math.floor(divisors.length / 2)];\r\n\r\n while (i < (divisors.length - 1) && divisors[i] < desiredPatchSize) {\r\n i++;\r\n }\r\n if (i > 0) {\r\n if (Math.abs(divisors[i] - desiredPatchSize) > Math.abs(divisors[i - 1] - desiredPatchSize)) {\r\n found = divisors[i - 1];\r\n } else {\r\n found = divisors[i];\r\n }\r\n }\r\n if (desiredPatchSize / found < nrOfPatchesList[nrOfPatchesIdx + 1] / nrOfPatchesList[nrOfPatchesIdx] &&\r\n desiredPatchSize / found > nrOfPatchesList[nrOfPatchesIdx - 1] / nrOfPatchesList[nrOfPatchesIdx] ) {\r\n return {x: found, y: found};\r\n }\r\n return null;\r\n }\r\n\r\n optimalPatchSize = findPatchSizeForDivisors(common);\r\n if (!optimalPatchSize) {\r\n optimalPatchSize = findPatchSizeForDivisors(_computeDivisors(wideSide));\r\n if (!optimalPatchSize) {\r\n optimalPatchSize = findPatchSizeForDivisors((_computeDivisors(desiredPatchSize * nrOfPatches)));\r\n }\r\n }\r\n return optimalPatchSize;\r\n};\r\n\r\nexport function _parseCSSDimensionValues(value) {\r\n var dimension = {\r\n value: parseFloat(value),\r\n unit: value.indexOf(\"%\") === value.length - 1 ? \"%\" : \"%\"\r\n };\r\n\r\n return dimension;\r\n};\r\n\r\nexport const _dimensionsConverters = {\r\n top: function(dimension, context) {\r\n if (dimension.unit === \"%\") {\r\n return Math.floor(context.height * (dimension.value / 100));\r\n }\r\n },\r\n right: function(dimension, context) {\r\n if (dimension.unit === \"%\") {\r\n return Math.floor(context.width - (context.width * (dimension.value / 100)));\r\n }\r\n },\r\n bottom: function(dimension, context) {\r\n if (dimension.unit === \"%\") {\r\n return Math.floor(context.height - (context.height * (dimension.value / 100)));\r\n }\r\n },\r\n left: function(dimension, context) {\r\n if (dimension.unit === \"%\") {\r\n return Math.floor(context.width * (dimension.value / 100));\r\n }\r\n }\r\n};\r\n\r\nexport function computeImageArea(inputWidth, inputHeight, area) {\r\n var context = {width: inputWidth, height: inputHeight};\r\n\r\n var parsedArea = Object.keys(area).reduce(function(result, key) {\r\n var value = area[key],\r\n parsed = _parseCSSDimensionValues(value),\r\n calculated = _dimensionsConverters[key](parsed, context);\r\n\r\n result[key] = calculated;\r\n return result;\r\n }, {});\r\n\r\n return {\r\n sx: parsedArea.left,\r\n sy: parsedArea.top,\r\n sw: parsedArea.right - parsedArea.left,\r\n sh: parsedArea.bottom - parsedArea.top\r\n };\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/cv_utils.js\n **/","import SubImage from './subImage';\r\nimport {hsv2rgb} from '../common/cv_utils';\r\nimport ArrayHelper from '../common/array_helper';\r\nconst vec2 = {\r\n clone: require('gl-vec2/clone'),\r\n};\r\n\r\n/**\r\n * Represents a basic image combining the data and size.\r\n * In addition, some methods for manipulation are contained.\r\n * @param size {x,y} The size of the image in pixel\r\n * @param data {Array} If given, a flat array containing the pixel data\r\n * @param ArrayType {Type} If given, the desired DataType of the Array (may be typed/non-typed)\r\n * @param initialize {Boolean} Indicating if the array should be initialized on creation.\r\n * @returns {ImageWrapper}\r\n */\r\nfunction ImageWrapper(size, data, ArrayType, initialize) {\r\n if (!data) {\r\n if (ArrayType) {\r\n this.data = new ArrayType(size.x * size.y);\r\n if (ArrayType === Array && initialize) {\r\n ArrayHelper.init(this.data, 0);\r\n }\r\n } else {\r\n this.data = new Uint8Array(size.x * size.y);\r\n if (Uint8Array === Array && initialize) {\r\n ArrayHelper.init(this.data, 0);\r\n }\r\n }\r\n } else {\r\n this.data = data;\r\n }\r\n this.size = size;\r\n}\r\n\r\n/**\r\n * tests if a position is within the image with a given offset\r\n * @param imgRef {x, y} The location to test\r\n * @param border Number the padding value in pixel\r\n * @returns {Boolean} true if location inside the image's border, false otherwise\r\n * @see cvd/image.h\r\n */\r\nImageWrapper.prototype.inImageWithBorder = function(imgRef, border) {\r\n return (imgRef.x >= border)\r\n && (imgRef.y >= border)\r\n && (imgRef.x < (this.size.x - border))\r\n && (imgRef.y < (this.size.y - border));\r\n};\r\n\r\n/**\r\n * Performs bilinear sampling\r\n * @param inImg Image to extract sample from\r\n * @param x the x-coordinate\r\n * @param y the y-coordinate\r\n * @returns the sampled value\r\n * @see cvd/vision.h\r\n */\r\nImageWrapper.sample = function(inImg, x, y) {\r\n var lx = Math.floor(x);\r\n var ly = Math.floor(y);\r\n var w = inImg.size.x;\r\n var base = ly * inImg.size.x + lx;\r\n var a = inImg.data[base + 0];\r\n var b = inImg.data[base + 1];\r\n var c = inImg.data[base + w];\r\n var d = inImg.data[base + w + 1];\r\n var e = a - b;\r\n x -= lx;\r\n y -= ly;\r\n\r\n var result = Math.floor(x * (y * (e - c + d) - e) + y * (c - a) + a);\r\n return result;\r\n};\r\n\r\n/**\r\n * Initializes a given array. Sets each element to zero.\r\n * @param array {Array} The array to initialize\r\n */\r\nImageWrapper.clearArray = function(array) {\r\n var l = array.length;\r\n while (l--) {\r\n array[l] = 0;\r\n }\r\n};\r\n\r\n/**\r\n * Creates a {SubImage} from the current image ({this}).\r\n * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner)\r\n * @param size {ImageRef} The size of the resulting image\r\n * @returns {SubImage} A shared part of the original image\r\n */\r\nImageWrapper.prototype.subImage = function(from, size) {\r\n return new SubImage(from, size, this);\r\n};\r\n\r\n/**\r\n * Creates an {ImageWrapper) and copies the needed underlying image-data area\r\n * @param imageWrapper {ImageWrapper} The target {ImageWrapper} where the data should be copied\r\n * @param from {ImageRef} The location where to copy from (top-left location)\r\n */\r\nImageWrapper.prototype.subImageAsCopy = function(imageWrapper, from) {\r\n var sizeY = imageWrapper.size.y, sizeX = imageWrapper.size.x;\r\n var x, y;\r\n for ( x = 0; x < sizeX; x++) {\r\n for ( y = 0; y < sizeY; y++) {\r\n imageWrapper.data[y * sizeX + x] = this.data[(from.y + y) * this.size.x + from.x + x];\r\n }\r\n }\r\n};\r\n\r\nImageWrapper.prototype.copyTo = function(imageWrapper) {\r\n var length = this.data.length, srcData = this.data, dstData = imageWrapper.data;\r\n\r\n while (length--) {\r\n dstData[length] = srcData[length];\r\n }\r\n};\r\n\r\n/**\r\n * Retrieves a given pixel position from the image\r\n * @param x {Number} The x-position\r\n * @param y {Number} The y-position\r\n * @returns {Number} The grayscale value at the pixel-position\r\n */\r\nImageWrapper.prototype.get = function(x, y) {\r\n return this.data[y * this.size.x + x];\r\n};\r\n\r\n/**\r\n * Retrieves a given pixel position from the image\r\n * @param x {Number} The x-position\r\n * @param y {Number} The y-position\r\n * @returns {Number} The grayscale value at the pixel-position\r\n */\r\nImageWrapper.prototype.getSafe = function(x, y) {\r\n var i;\r\n\r\n if (!this.indexMapping) {\r\n this.indexMapping = {\r\n x: [],\r\n y: []\r\n };\r\n for (i = 0; i < this.size.x; i++) {\r\n this.indexMapping.x[i] = i;\r\n this.indexMapping.x[i + this.size.x] = i;\r\n }\r\n for (i = 0; i < this.size.y; i++) {\r\n this.indexMapping.y[i] = i;\r\n this.indexMapping.y[i + this.size.y] = i;\r\n }\r\n }\r\n return this.data[(this.indexMapping.y[y + this.size.y]) * this.size.x + this.indexMapping.x[x + this.size.x]];\r\n};\r\n\r\n/**\r\n * Sets a given pixel position in the image\r\n * @param x {Number} The x-position\r\n * @param y {Number} The y-position\r\n * @param value {Number} The grayscale value to set\r\n * @returns {ImageWrapper} The Image itself (for possible chaining)\r\n */\r\nImageWrapper.prototype.set = function(x, y, value) {\r\n this.data[y * this.size.x + x] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets the border of the image (1 pixel) to zero\r\n */\r\nImageWrapper.prototype.zeroBorder = function() {\r\n var i, width = this.size.x, height = this.size.y, data = this.data;\r\n for ( i = 0; i < width; i++) {\r\n data[i] = data[(height - 1) * width + i] = 0;\r\n }\r\n for ( i = 1; i < height - 1; i++) {\r\n data[i * width] = data[i * width + (width - 1)] = 0;\r\n }\r\n};\r\n\r\n/**\r\n * Inverts a binary image in place\r\n */\r\nImageWrapper.prototype.invert = function() {\r\n var data = this.data, length = data.length;\r\n\r\n while (length--) {\r\n data[length] = data[length] ? 0 : 1;\r\n }\r\n};\r\n\r\nImageWrapper.prototype.convolve = function(kernel) {\r\n var x, y, kx, ky, kSize = (kernel.length / 2) | 0, accu = 0;\r\n for ( y = 0; y < this.size.y; y++) {\r\n for ( x = 0; x < this.size.x; x++) {\r\n accu = 0;\r\n for ( ky = -kSize; ky <= kSize; ky++) {\r\n for ( kx = -kSize; kx <= kSize; kx++) {\r\n accu += kernel[ky + kSize][kx + kSize] * this.getSafe(x + kx, y + ky);\r\n }\r\n }\r\n this.data[y * this.size.x + x] = accu;\r\n }\r\n }\r\n};\r\n\r\nImageWrapper.prototype.moments = function(labelcount) {\r\n var data = this.data,\r\n x,\r\n y,\r\n height = this.size.y,\r\n width = this.size.x,\r\n val,\r\n ysq,\r\n labelsum = [],\r\n i,\r\n label,\r\n mu11,\r\n mu02,\r\n mu20,\r\n x_,\r\n y_,\r\n tmp,\r\n result = [],\r\n PI = Math.PI,\r\n PI_4 = PI / 4;\r\n\r\n if (labelcount <= 0) {\r\n return result;\r\n }\r\n\r\n for ( i = 0; i < labelcount; i++) {\r\n labelsum[i] = {\r\n m00: 0,\r\n m01: 0,\r\n m10: 0,\r\n m11: 0,\r\n m02: 0,\r\n m20: 0,\r\n theta: 0,\r\n rad: 0\r\n };\r\n }\r\n\r\n for ( y = 0; y < height; y++) {\r\n ysq = y * y;\r\n for ( x = 0; x < width; x++) {\r\n val = data[y * width + x];\r\n if (val > 0) {\r\n label = labelsum[val - 1];\r\n label.m00 += 1;\r\n label.m01 += y;\r\n label.m10 += x;\r\n label.m11 += x * y;\r\n label.m02 += ysq;\r\n label.m20 += x * x;\r\n }\r\n }\r\n }\r\n\r\n for ( i = 0; i < labelcount; i++) {\r\n label = labelsum[i];\r\n if (!isNaN(label.m00) && label.m00 !== 0) {\r\n x_ = label.m10 / label.m00;\r\n y_ = label.m01 / label.m00;\r\n mu11 = label.m11 / label.m00 - x_ * y_;\r\n mu02 = label.m02 / label.m00 - y_ * y_;\r\n mu20 = label.m20 / label.m00 - x_ * x_;\r\n tmp = (mu02 - mu20) / (2 * mu11);\r\n tmp = 0.5 * Math.atan(tmp) + (mu11 >= 0 ? PI_4 : -PI_4 ) + PI;\r\n label.theta = (tmp * 180 / PI + 90) % 180 - 90;\r\n if (label.theta < 0) {\r\n label.theta += 180;\r\n }\r\n label.rad = tmp > PI ? tmp - PI : tmp;\r\n label.vec = vec2.clone([Math.cos(tmp), Math.sin(tmp)]);\r\n result.push(label);\r\n }\r\n }\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * Displays the {ImageWrapper} in a given canvas\r\n * @param canvas {Canvas} The canvas element to write to\r\n * @param scale {Number} Scale which is applied to each pixel-value\r\n */\r\nImageWrapper.prototype.show = function(canvas, scale) {\r\n var ctx,\r\n frame,\r\n data,\r\n current,\r\n pixel,\r\n x,\r\n y;\r\n\r\n if (!scale) {\r\n scale = 1.0;\r\n }\r\n ctx = canvas.getContext('2d');\r\n canvas.width = this.size.x;\r\n canvas.height = this.size.y;\r\n frame = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n data = frame.data;\r\n current = 0;\r\n for (y = 0; y < this.size.y; y++) {\r\n for (x = 0; x < this.size.x; x++) {\r\n pixel = y * this.size.x + x;\r\n current = this.get(x, y) * scale;\r\n data[pixel * 4 + 0] = current;\r\n data[pixel * 4 + 1] = current;\r\n data[pixel * 4 + 2] = current;\r\n data[pixel * 4 + 3] = 255;\r\n }\r\n }\r\n //frame.data = data;\r\n ctx.putImageData(frame, 0, 0);\r\n};\r\n\r\n/**\r\n * Displays the {SubImage} in a given canvas\r\n * @param canvas {Canvas} The canvas element to write to\r\n * @param scale {Number} Scale which is applied to each pixel-value\r\n */\r\nImageWrapper.prototype.overlay = function(canvas, scale, from) {\r\n if (!scale || scale < 0 || scale > 360) {\r\n scale = 360;\r\n }\r\n var hsv = [0, 1, 1];\r\n var rgb = [0, 0, 0];\r\n var whiteRgb = [255, 255, 255];\r\n var blackRgb = [0, 0, 0];\r\n var result = [];\r\n var ctx = canvas.getContext('2d');\r\n var frame = ctx.getImageData(from.x, from.y, this.size.x, this.size.y);\r\n var data = frame.data;\r\n var length = this.data.length;\r\n while (length--) {\r\n hsv[0] = this.data[length] * scale;\r\n result = hsv[0] <= 0 ? whiteRgb : hsv[0] >= 360 ? blackRgb : hsv2rgb(hsv, rgb);\r\n data[length * 4 + 0] = result[0];\r\n data[length * 4 + 1] = result[1];\r\n data[length * 4 + 2] = result[2];\r\n data[length * 4 + 3] = 255;\r\n }\r\n ctx.putImageData(frame, from.x, from.y);\r\n};\r\n\r\nexport default ImageWrapper;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/image_wrapper.js\n **/","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_Symbol.js\n ** module id = 27\n ** module chunks = 0\n **/","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_arrayReduce.js\n ** module id = 28\n ** module chunks = 0\n **/","var copyObjectWith = require('./_copyObjectWith');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object) {\n return copyObjectWith(source, props, object);\n}\n\nmodule.exports = copyObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_copyObject.js\n ** module id = 29\n ** module chunks = 0\n **/","var isArray = require('./isArray');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (typeof value == 'number') {\n return true;\n }\n return !isArray(value) &&\n (reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object)));\n}\n\nmodule.exports = isKey;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_isKey.js\n ** module id = 30\n ** module chunks = 0\n **/","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_isPrototype.js\n ** module id = 31\n ** module chunks = 0\n **/","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object, else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isArrayLikeObject.js\n ** module id = 32\n ** module chunks = 0\n **/","var isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isString.js\n ** module id = 33\n ** module chunks = 0\n **/","var isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isTypedArray.js\n ** module id = 34\n ** module chunks = 0\n **/","var baseKeysIn = require('./_baseKeysIn'),\n indexKeys = require('./_indexKeys'),\n isIndex = require('./_isIndex'),\n isPrototype = require('./_isPrototype');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n var index = -1,\n isProto = isPrototype(object),\n props = baseKeysIn(object),\n propsLength = props.length,\n indexes = indexKeys(object),\n skipIndexes = !!indexes,\n result = indexes || [],\n length = result.length;\n\n while (++index < propsLength) {\n var key = props[index];\n if (!(skipIndexes && (key == 'length' || isIndex(key, length))) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/keysIn.js\n ** module id = 35\n ** module chunks = 0\n **/","import ImageDebug from '../common/image_debug';\r\n\r\nfunction contains(codeResult, list) {\r\n if (list) {\r\n return list.some(function (item) {\r\n return Object.keys(item).every(function (key) {\r\n return item[key] === codeResult[key];\r\n });\r\n });\r\n }\r\n return false;\r\n}\r\n\r\nfunction passesFilter(codeResult, filter) {\r\n if (typeof filter === 'function') {\r\n return filter(codeResult);\r\n }\r\n return true;\r\n}\r\n\r\nexport default {\r\n create: function(config) {\r\n var canvas = document.createElement(\"canvas\"),\r\n ctx = canvas.getContext(\"2d\"),\r\n results = [],\r\n capacity = config.capacity || 20,\r\n capture = config.capture === true;\r\n\r\n function matchesConstraints(codeResult) {\r\n return capacity\r\n && codeResult\r\n && !contains(codeResult, config.blacklist)\r\n && passesFilter(codeResult, config.filter);\r\n }\r\n\r\n return {\r\n addResult: function(data, imageSize, codeResult) {\r\n var result = {};\r\n\r\n if (matchesConstraints(codeResult)) {\r\n capacity--;\r\n result.codeResult = codeResult;\r\n if (capture) {\r\n canvas.width = imageSize.x;\r\n canvas.height = imageSize.y;\r\n ImageDebug.drawImage(data, imageSize, ctx);\r\n result.frame = canvas.toDataURL();\r\n }\r\n results.push(result);\r\n }\r\n },\r\n getResults: function() {\r\n return results;\r\n }\r\n };\r\n }\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/analytics/result_collector.js\n **/","let config;\r\n\r\nif (ENV.development){\r\n config = require('./config.dev.js');\r\n} else if (ENV.node) {\r\n config = require('./config.node.js');\r\n} else {\r\n config = require('./config.prod.js');\r\n}\r\n\r\nexport default config;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/config/config.js\n **/","/**\r\n * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization\r\n */\r\nvar Tracer = {\r\n searchDirections: [[0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1], [-1, 0], [-1, 1]],\r\n create: function(imageWrapper, labelWrapper) {\r\n var imageData = imageWrapper.data,\r\n labelData = labelWrapper.data,\r\n searchDirections = this.searchDirections,\r\n width = imageWrapper.size.x,\r\n pos;\r\n\r\n function trace(current, color, label, edgelabel) {\r\n var i,\r\n y,\r\n x;\r\n\r\n for ( i = 0; i < 7; i++) {\r\n y = current.cy + searchDirections[current.dir][0];\r\n x = current.cx + searchDirections[current.dir][1];\r\n pos = y * width + x;\r\n if ((imageData[pos] === color) && ((labelData[pos] === 0) || (labelData[pos] === label))) {\r\n labelData[pos] = label;\r\n current.cy = y;\r\n current.cx = x;\r\n return true;\r\n } else {\r\n if (labelData[pos] === 0) {\r\n labelData[pos] = edgelabel;\r\n }\r\n current.dir = (current.dir + 1) % 8;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function vertex2D(x, y, dir) {\r\n return {\r\n dir: dir,\r\n x: x,\r\n y: y,\r\n next: null,\r\n prev: null\r\n };\r\n }\r\n\r\n function contourTracing(sy, sx, label, color, edgelabel) {\r\n var Fv = null,\r\n Cv,\r\n P,\r\n ldir,\r\n current = {\r\n cx: sx,\r\n cy: sy,\r\n dir: 0\r\n };\r\n\r\n if (trace(current, color, label, edgelabel)) {\r\n Fv = vertex2D(sx, sy, current.dir);\r\n Cv = Fv;\r\n ldir = current.dir;\r\n P = vertex2D(current.cx, current.cy, 0);\r\n P.prev = Cv;\r\n Cv.next = P;\r\n P.next = null;\r\n Cv = P;\r\n do {\r\n current.dir = (current.dir + 6) % 8;\r\n trace(current, color, label, edgelabel);\r\n if (ldir !== current.dir) {\r\n Cv.dir = current.dir;\r\n P = vertex2D(current.cx, current.cy, 0);\r\n P.prev = Cv;\r\n Cv.next = P;\r\n P.next = null;\r\n Cv = P;\r\n } else {\r\n Cv.dir = ldir;\r\n Cv.x = current.cx;\r\n Cv.y = current.cy;\r\n }\r\n ldir = current.dir;\r\n } while (current.cx !== sx || current.cy !== sy);\r\n Fv.prev = Cv.prev;\r\n Cv.prev.next = Fv;\r\n }\r\n return Fv;\r\n }\r\n\r\n return {\r\n trace: function(current, color, label, edgelabel) {\r\n return trace(current, color, label, edgelabel);\r\n },\r\n contourTracing: function(sy, sx, label, color, edgelabel) {\r\n return contourTracing(sy, sx, label, color, edgelabel);\r\n }\r\n };\r\n }\r\n};\r\n\r\nexport default (Tracer);\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/locator/tracer.js\n **/","import BarcodeReader from './barcode_reader';\r\nimport ArrayHelper from '../common/array_helper';\r\n\r\nfunction Code39Reader() {\r\n BarcodeReader.call(this);\r\n}\r\n\r\nvar properties = {\r\n ALPHABETH_STRING: {value: \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%\"},\r\n ALPHABET: {value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,\r\n 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 45, 46, 32, 42, 36, 47, 43, 37]},\r\n CHARACTER_ENCODINGS: {value: [0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064, 0x109, 0x049,\r\n 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C, 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106,\r\n 0x046, 0x016, 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x094, 0x0A8, 0x0A2, 0x08A, 0x02A\r\n ]},\r\n ASTERISK: {value: 0x094},\r\n FORMAT: {value: \"code_39\", writeable: false}\r\n};\r\n\r\nCode39Reader.prototype = Object.create(BarcodeReader.prototype, properties);\r\nCode39Reader.prototype.constructor = Code39Reader;\r\n\r\nCode39Reader.prototype._toCounters = function(start, counter) {\r\n var self = this,\r\n numCounters = counter.length,\r\n end = self._row.length,\r\n isWhite = !self._row[start],\r\n i,\r\n counterPos = 0;\r\n\r\n ArrayHelper.init(counter, 0);\r\n\r\n for ( i = start; i < end; i++) {\r\n if (self._row[i] ^ isWhite) {\r\n counter[counterPos]++;\r\n } else {\r\n counterPos++;\r\n if (counterPos === numCounters) {\r\n break;\r\n } else {\r\n counter[counterPos] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n }\r\n\r\n return counter;\r\n};\r\n\r\nCode39Reader.prototype._decode = function() {\r\n var self = this,\r\n counters = [0, 0, 0, 0, 0, 0, 0, 0, 0],\r\n result = [],\r\n start = self._findStart(),\r\n decodedChar,\r\n lastStart,\r\n pattern,\r\n nextStart;\r\n\r\n if (!start) {\r\n return null;\r\n }\r\n nextStart = self._nextSet(self._row, start.end);\r\n\r\n do {\r\n counters = self._toCounters(nextStart, counters);\r\n pattern = self._toPattern(counters);\r\n if (pattern < 0) {\r\n return null;\r\n }\r\n decodedChar = self._patternToChar(pattern);\r\n if (decodedChar < 0){\r\n return null;\r\n }\r\n result.push(decodedChar);\r\n lastStart = nextStart;\r\n nextStart += ArrayHelper.sum(counters);\r\n nextStart = self._nextSet(self._row, nextStart);\r\n } while (decodedChar !== '*');\r\n result.pop();\r\n\r\n if (!result.length) {\r\n return null;\r\n }\r\n\r\n if (!self._verifyTrailingWhitespace(lastStart, nextStart, counters)) {\r\n return null;\r\n }\r\n\r\n return {\r\n code: result.join(\"\"),\r\n start: start.start,\r\n end: nextStart,\r\n startInfo: start,\r\n decodedCodes: result\r\n };\r\n};\r\n\r\nCode39Reader.prototype._verifyTrailingWhitespace = function(lastStart, nextStart, counters) {\r\n var trailingWhitespaceEnd,\r\n patternSize = ArrayHelper.sum(counters);\r\n\r\n trailingWhitespaceEnd = nextStart - lastStart - patternSize;\r\n if ((trailingWhitespaceEnd * 3) >= patternSize) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nCode39Reader.prototype._patternToChar = function(pattern) {\r\n var i,\r\n self = this;\r\n\r\n for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) {\r\n if (self.CHARACTER_ENCODINGS[i] === pattern) {\r\n return String.fromCharCode(self.ALPHABET[i]);\r\n }\r\n }\r\n return -1;\r\n};\r\n\r\nCode39Reader.prototype._findNextWidth = function(counters, current) {\r\n var i,\r\n minWidth = Number.MAX_VALUE;\r\n\r\n for (i = 0; i < counters.length; i++) {\r\n if (counters[i] < minWidth && counters[i] > current) {\r\n minWidth = counters[i];\r\n }\r\n }\r\n\r\n return minWidth;\r\n};\r\n\r\nCode39Reader.prototype._toPattern = function(counters) {\r\n var numCounters = counters.length,\r\n maxNarrowWidth = 0,\r\n numWideBars = numCounters,\r\n wideBarWidth = 0,\r\n self = this,\r\n pattern,\r\n i;\r\n\r\n while (numWideBars > 3) {\r\n maxNarrowWidth = self._findNextWidth(counters, maxNarrowWidth);\r\n numWideBars = 0;\r\n pattern = 0;\r\n for (i = 0; i < numCounters; i++) {\r\n if (counters[i] > maxNarrowWidth) {\r\n pattern |= 1 << (numCounters - 1 - i);\r\n numWideBars++;\r\n wideBarWidth += counters[i];\r\n }\r\n }\r\n\r\n if (numWideBars === 3) {\r\n for (i = 0; i < numCounters && numWideBars > 0; i++) {\r\n if (counters[i] > maxNarrowWidth) {\r\n numWideBars--;\r\n if ((counters[i] * 2) >= wideBarWidth) {\r\n return -1;\r\n }\r\n }\r\n }\r\n return pattern;\r\n }\r\n }\r\n return -1;\r\n};\r\n\r\nCode39Reader.prototype._findStart = function() {\r\n var self = this,\r\n offset = self._nextSet(self._row),\r\n patternStart = offset,\r\n counter = [0, 0, 0, 0, 0, 0, 0, 0, 0],\r\n counterPos = 0,\r\n isWhite = false,\r\n i,\r\n j,\r\n whiteSpaceMustStart;\r\n\r\n for ( i = offset; i < self._row.length; i++) {\r\n if (self._row[i] ^ isWhite) {\r\n counter[counterPos]++;\r\n } else {\r\n if (counterPos === counter.length - 1) {\r\n // find start pattern\r\n if (self._toPattern(counter) === self.ASTERISK) {\r\n whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - ((i - patternStart) / 4)));\r\n if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) {\r\n return {\r\n start: patternStart,\r\n end: i\r\n };\r\n }\r\n }\r\n\r\n patternStart += counter[0] + counter[1];\r\n for ( j = 0; j < 7; j++) {\r\n counter[j] = counter[j + 2];\r\n }\r\n counter[7] = 0;\r\n counter[8] = 0;\r\n counterPos--;\r\n } else {\r\n counterPos++;\r\n }\r\n counter[counterPos] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nexport default Code39Reader;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/reader/code_39_reader.js\n **/","module.exports = dot\n\n/**\n * Calculates the dot product of two vec2's\n *\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {Number} dot product of a and b\n */\nfunction dot(a, b) {\n return a[0] * b[0] + a[1] * b[1]\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/gl-vec2/dot.js\n ** module id = 40\n ** module chunks = 0\n **/","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_Uint8Array.js\n ** module id = 41\n ** module chunks = 0\n **/","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_arrayEach.js\n ** module id = 42\n ** module chunks = 0\n **/","var eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (typeof key == 'number' && value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\nmodule.exports = assignMergeValue;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_assignMergeValue.js\n ** module id = 43\n ** module chunks = 0\n **/","var eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\nmodule.exports = assignValue;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_assignValue.js\n ** module id = 44\n ** module chunks = 0\n **/","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the associative array.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction assocDelete(array, key) {\n var index = assocIndexOf(array, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = array.length - 1;\n if (index == lastIndex) {\n array.pop();\n } else {\n splice.call(array, index, 1);\n }\n return true;\n}\n\nmodule.exports = assocDelete;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_assocDelete.js\n ** module id = 45\n ** module chunks = 0\n **/","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the associative array value for `key`.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction assocGet(array, key) {\n var index = assocIndexOf(array, key);\n return index < 0 ? undefined : array[index][1];\n}\n\nmodule.exports = assocGet;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_assocGet.js\n ** module id = 46\n ** module chunks = 0\n **/","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if an associative array value for `key` exists.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction assocHas(array, key) {\n return assocIndexOf(array, key) > -1;\n}\n\nmodule.exports = assocHas;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_assocHas.js\n ** module id = 47\n ** module chunks = 0\n **/","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the associative array `key` to `value`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n */\nfunction assocSet(array, key, value) {\n var index = assocIndexOf(array, key);\n if (index < 0) {\n array.push([key, value]);\n } else {\n array[index][1] = value;\n }\n}\n\nmodule.exports = assocSet;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_assocSet.js\n ** module id = 48\n ** module chunks = 0\n **/","var isArray = require('./isArray'),\n stringToPath = require('./_stringToPath');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction baseCastPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\nmodule.exports = baseCastPath;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_baseCastPath.js\n ** module id = 49\n ** module chunks = 0\n **/","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_baseFor.js\n ** module id = 50\n ** module chunks = 0\n **/","var baseCastPath = require('./_baseCastPath'),\n isKey = require('./_isKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path + ''] : baseCastPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[path[index++]];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_baseGet.js\n ** module id = 51\n ** module chunks = 0\n **/","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar getPrototypeOf = Object.getPrototypeOf;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`,\n // that are composed entirely of index properties, return `false` for\n // `hasOwnProperty` checks of them.\n return hasOwnProperty.call(object, key) ||\n (typeof object == 'object' && key in object && getPrototypeOf(object) === null);\n}\n\nmodule.exports = baseHas;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_baseHas.js\n ** module id = 52\n ** module chunks = 0\n **/","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObject = require('./isObject'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_baseIsEqual.js\n ** module id = 53\n ** module chunks = 0\n **/","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_baseProperty.js\n ** module id = 54\n ** module chunks = 0\n **/","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_cloneArrayBuffer.js\n ** module id = 55\n ** module chunks = 0\n **/","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_copyArray.js\n ** module id = 56\n ** module chunks = 0\n **/","var arraySome = require('./_arraySome');\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var index = -1,\n isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n isUnordered = bitmask & UNORDERED_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked) {\n return stacked == other;\n }\n var result = true;\n stack.set(array, other);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (isUnordered) {\n if (!arraySome(other, function(othValue) {\n return arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack);\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n return result;\n}\n\nmodule.exports = equalArrays;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_equalArrays.js\n ** module id = 57\n ** module chunks = 0\n **/","var Map = require('./_Map'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = Function.prototype.toString;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect maps, sets, and weakmaps. */\nvar mapCtorString = Map ? funcToString.call(Map) : '',\n setCtorString = Set ? funcToString.call(Set) : '',\n weakMapCtorString = WeakMap ? funcToString.call(WeakMap) : '';\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction getTag(value) {\n return objectToString.call(value);\n}\n\n// Fallback for IE 11 providing `toStringTag` values for maps, sets, and weakmaps.\nif ((Map && getTag(new Map) != mapTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : null,\n ctorString = typeof Ctor == 'function' ? funcToString.call(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case mapCtorString: return mapTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_getTag.js\n ** module id = 58\n ** module chunks = 0\n **/","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @param {Object} hash The hash to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(hash, key) {\n return nativeCreate ? hash[key] !== undefined : hasOwnProperty.call(hash, key);\n}\n\nmodule.exports = hashHas;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_hashHas.js\n ** module id = 59\n ** module chunks = 0\n **/","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isLength = require('./isLength'),\n isString = require('./isString');\n\n/**\n * Creates an array of index keys for `object` values of arrays,\n * `arguments` objects, and strings, otherwise `null` is returned.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array|null} Returns index keys, else `null`.\n */\nfunction indexKeys(object) {\n var length = object ? object.length : undefined;\n if (isLength(length) &&\n (isArray(object) || isString(object) || isArguments(object))) {\n return baseTimes(length, String);\n }\n return null;\n}\n\nmodule.exports = indexKeys;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_indexKeys.js\n ** module id = 60\n ** module chunks = 0\n **/","/**\n * Converts `map` to an array.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_mapToArray.js\n ** module id = 61\n ** module chunks = 0\n **/","/**\n * Converts `set` to an array.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_setToArray.js\n ** module id = 62\n ** module chunks = 0\n **/","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined` the `defaultValue` is used in its place.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned if the resolved value is `undefined`.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/get.js\n ** module id = 63\n ** module chunks = 0\n **/","var baseFlatten = require('./_baseFlatten'),\n basePick = require('./_basePick'),\n rest = require('./rest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [props] The property names to pick, specified\n * individually or in arrays.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = rest(function(object, props) {\n return object == null ? {} : basePick(object, baseFlatten(props, 1));\n});\n\nmodule.exports = pick;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/pick.js\n ** module id = 64\n ** module chunks = 0\n **/","var apply = require('./_apply'),\n toInteger = require('./toInteger');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, array);\n case 1: return func.call(this, args[0], array);\n case 2: return func.call(this, args[0], args[1], array);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = rest;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/rest.js\n ** module id = 65\n ** module chunks = 0\n **/","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tObject.defineProperty(module, \"exports\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tconfigurable: false,\r\n\t\t\tget: function() { return module.e; },\r\n\t\t\tset: function(v) { return module.e = v; }\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tconfigurable: false,\r\n\t\t\tget: function() { return module.l; }\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tconfigurable: false,\r\n\t\t\tget: function() { return module.i; }\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/buildin/module.js\n ** module id = 66\n ** module chunks = 0\n **/","import './common/typedefs';\r\nimport 'webrtc-adapter';\r\nimport createScanner from './scanner';\r\nimport ImageWrapper from './common/image_wrapper';\r\nimport ImageDebug from './common/image_debug';\r\nimport ResultCollector from './analytics/result_collector';\r\nimport Config from './config/config';\r\nimport {merge} from 'lodash';\r\nimport {createConfigFromSource} from './input/config_factory';\r\n\r\nfunction fromSource(config, source, inputConfig = {}) {\r\n config = createConfigFromSource(config, inputConfig, source);\r\n const scanner = createScanner();\r\n return {\r\n addEventListener(eventType, cb) {\r\n scanner.subscribe(eventType, cb);\r\n return this;\r\n },\r\n removeEventListener(eventType, cb) {\r\n scanner.unsubscribe(eventType, cb);\r\n return this;\r\n },\r\n start() {\r\n scanner.init(config, (error) => {\r\n if (error) {\r\n console.log(error);\r\n throw error;\r\n }\r\n scanner.start();\r\n });\r\n return this;\r\n },\r\n stop() {\r\n scanner.stop();\r\n return this;\r\n },\r\n toPromise() {\r\n if (config.inputStream.type === 'LiveStream'\r\n || config.inputStream.type === 'VideoStream') {\r\n let cancelRequested = false;\r\n return {\r\n cancel() {\r\n cancelRequested = true;\r\n },\r\n promise: new Promise((resolve, reject) => {\r\n function onProcessed(result) {\r\n if (result && result.codeResult && result.codeResult.code) {\r\n scanner.stop();\r\n scanner.unsubscribe(\"processed\", onProcessed);\r\n resolve(result);\r\n }\r\n if (cancelRequested) {\r\n scanner.stop();\r\n scanner.unsubscribe(\"processed\", onProcessed);\r\n reject(\"cancelled!\");\r\n }\r\n }\r\n scanner.subscribe(\"processed\", onProcessed);\r\n this.start();\r\n })\r\n };\r\n } else {\r\n return new Promise((resolve, reject) => {\r\n scanner.decodeSingle(config, (result) => {\r\n if (result && result.codeResult && result.codeResult.code) {\r\n return resolve(result);\r\n }\r\n return reject(result);\r\n });\r\n });\r\n }\r\n }\r\n };\r\n}\r\n\r\nconst defaultScanner = createScanner();\r\n\r\nfunction setConfig(configuration = {}, key, config = {}) {\r\n var mergedConfig = merge({}, configuration, {[key]: config});\r\n return createApi(mergedConfig);\r\n}\r\n\r\nfunction createApi(configuration = Config) {\r\n return {\r\n fromSource(src, inputConfig) {\r\n return fromSource(configuration, src, inputConfig);\r\n },\r\n decoder(conf) {\r\n return setConfig(configuration, \"decoder\", conf);\r\n },\r\n locator(conf) {\r\n return setConfig(configuration, \"locator\", conf);\r\n },\r\n throttle(timeInMs) {\r\n return setConfig(configuration, \"frequency\", 1000 / parseInt(timeInMs));\r\n },\r\n config(conf) {\r\n return createApi(merge({}, configuration, conf));\r\n },\r\n registerResultCollector(resultCollector) {\r\n defaultScanner.registerResultCollector(resultCollector);\r\n },\r\n getCanvas() {\r\n return defaultScanner.canvas;\r\n },\r\n ImageWrapper,\r\n ImageDebug,\r\n ResultCollector,\r\n _worker: {\r\n createScanner\r\n }\r\n };\r\n}\r\nexport default createApi();\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/quagga.js\n **/","const vec2 = {\r\n clone: require('gl-vec2/clone'),\r\n dot: require('gl-vec2/dot')\r\n};\r\n\r\n/**\r\n * Creates a cluster for grouping similar orientations of datapoints\r\n */\r\nexport default {\r\n create: function(point, threshold) {\r\n var points = [],\r\n center = {\r\n rad: 0,\r\n vec: vec2.clone([0, 0])\r\n },\r\n pointMap = {};\r\n\r\n function init() {\r\n add(point);\r\n updateCenter();\r\n }\r\n\r\n function add(pointToAdd) {\r\n pointMap[pointToAdd.id] = pointToAdd;\r\n points.push(pointToAdd);\r\n }\r\n\r\n function updateCenter() {\r\n var i, sum = 0;\r\n for ( i = 0; i < points.length; i++) {\r\n sum += points[i].rad;\r\n }\r\n center.rad = sum / points.length;\r\n center.vec = vec2.clone([Math.cos(center.rad), Math.sin(center.rad)]);\r\n }\r\n\r\n init();\r\n\r\n return {\r\n add: function(pointToAdd) {\r\n if (!pointMap[pointToAdd.id]) {\r\n add(pointToAdd);\r\n updateCenter();\r\n }\r\n },\r\n fits: function(otherPoint) {\r\n // check cosine similarity to center-angle\r\n var similarity = Math.abs(vec2.dot(otherPoint.point.vec, center.vec));\r\n if (similarity > threshold) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n getPoints: function() {\r\n return points;\r\n },\r\n getCenter: function() {\r\n return center;\r\n }\r\n };\r\n },\r\n createPoint: function(newPoint, id, property) {\r\n return {\r\n rad: newPoint[property],\r\n point: newPoint,\r\n id: id\r\n };\r\n }\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/cluster.js\n **/","const hasWindow = typeof window !== 'undefined';\r\nconst windowRef = hasWindow ? window : {};\r\n\r\nconst windowObjects = [\r\n \"MediaStream\",\r\n \"HTMLImageElement\",\r\n \"HTMLVideoElement\",\r\n \"HTMLCanvasElement\",\r\n \"FileList\",\r\n \"File\",\r\n \"URL\"\r\n];\r\n\r\nconst DOMHelper = windowObjects.reduce((result, obj) => {\r\n return {\r\n ...result,\r\n [obj]: obj in windowRef ? windowRef[obj] : () => {}\r\n };\r\n}, {});\r\n\r\nexport default DOMHelper;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/dom_helper.js\n **/","export default function createEventedElement() {\r\n var events = {};\r\n\r\n function getEvent(eventName) {\r\n if (!events[eventName]) {\r\n events[eventName] = {\r\n subscribers: []\r\n };\r\n }\r\n return events[eventName];\r\n }\r\n\r\n function clearEvents(){\r\n events = {};\r\n }\r\n\r\n function publishSubscription(subscription, data) {\r\n if (subscription.async) {\r\n setTimeout(function() {\r\n subscription.callback(data);\r\n }, 4);\r\n } else {\r\n subscription.callback(data);\r\n }\r\n }\r\n\r\n function subscribe(event, callback, async) {\r\n var subscription;\r\n\r\n if ( typeof callback === \"function\") {\r\n subscription = {\r\n callback: callback,\r\n async: async\r\n };\r\n } else {\r\n subscription = callback;\r\n if (!subscription.callback) {\r\n throw \"Callback was not specified on options\";\r\n }\r\n }\r\n\r\n getEvent(event).subscribers.push(subscription);\r\n }\r\n\r\n return {\r\n subscribe: function(event, callback, async) {\r\n return subscribe(event, callback, async);\r\n },\r\n publish: function(eventName, data) {\r\n var event = getEvent(eventName),\r\n subscribers = event.subscribers;\r\n\r\n // Publish one-time subscriptions\r\n subscribers.filter(function(subscriber) {\r\n return !!subscriber.once;\r\n }).forEach((subscriber) => {\r\n publishSubscription(subscriber, data);\r\n });\r\n\r\n // remove them from the subscriber\r\n event.subscribers = subscribers.filter(function(subscriber) {\r\n return !subscriber.once;\r\n });\r\n\r\n // publish the rest\r\n event.subscribers.forEach((subscriber) => {\r\n publishSubscription(subscriber, data);\r\n });\r\n },\r\n once: function(event, callback, async) {\r\n subscribe(event, {\r\n callback: callback,\r\n async: async,\r\n once: true\r\n });\r\n },\r\n unsubscribe: function(eventName, callback) {\r\n var event;\r\n\r\n if (eventName) {\r\n event = getEvent(eventName);\r\n if (event && callback) {\r\n event.subscribers = event.subscribers.filter(function(subscriber){\r\n return subscriber.callback !== callback;\r\n });\r\n } else {\r\n event.subscribers = [];\r\n }\r\n } else {\r\n clearEvents();\r\n }\r\n }\r\n };\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/events.js\n **/","/**\r\n * Construct representing a part of another {ImageWrapper}. Shares data\r\n * between the parent and the child.\r\n * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner)\r\n * @param size {ImageRef} The size of the resulting image\r\n * @param I {ImageWrapper} The {ImageWrapper} to share from\r\n * @returns {SubImage} A shared part of the original image\r\n */\r\nfunction SubImage(from, size, I) {\r\n if (!I) {\r\n I = {\r\n data: null,\r\n size: size\r\n };\r\n }\r\n this.data = I.data;\r\n this.originalSize = I.size;\r\n this.I = I;\r\n\r\n this.from = from;\r\n this.size = size;\r\n}\r\n\r\n/**\r\n * Displays the {SubImage} in a given canvas\r\n * @param canvas {Canvas} The canvas element to write to\r\n * @param scale {Number} Scale which is applied to each pixel-value\r\n */\r\nSubImage.prototype.show = function(canvas, scale) {\r\n var ctx,\r\n frame,\r\n data,\r\n current,\r\n y,\r\n x,\r\n pixel;\r\n\r\n if (!scale) {\r\n scale = 1.0;\r\n }\r\n ctx = canvas.getContext('2d');\r\n canvas.width = this.size.x;\r\n canvas.height = this.size.y;\r\n frame = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n data = frame.data;\r\n current = 0;\r\n for (y = 0; y < this.size.y; y++) {\r\n for (x = 0; x < this.size.x; x++) {\r\n pixel = y * this.size.x + x;\r\n current = this.get(x, y) * scale;\r\n data[pixel * 4 + 0] = current;\r\n data[pixel * 4 + 1] = current;\r\n data[pixel * 4 + 2] = current;\r\n data[pixel * 4 + 3] = 255;\r\n }\r\n }\r\n frame.data = data;\r\n ctx.putImageData(frame, 0, 0);\r\n};\r\n\r\n/**\r\n * Retrieves a given pixel position from the {SubImage}\r\n * @param x {Number} The x-position\r\n * @param y {Number} The y-position\r\n * @returns {Number} The grayscale value at the pixel-position\r\n */\r\nSubImage.prototype.get = function(x, y) {\r\n return this.data[(this.from.y + y) * this.originalSize.x + this.from.x + x];\r\n};\r\n\r\n/**\r\n * Updates the underlying data from a given {ImageWrapper}\r\n * @param image {ImageWrapper} The updated image\r\n */\r\nSubImage.prototype.updateData = function(image) {\r\n this.originalSize = image.size;\r\n this.data = image.data;\r\n};\r\n\r\n/**\r\n * Updates the position of the shared area\r\n * @param from {x,y} The new location\r\n * @returns {SubImage} returns {this} for possible chaining\r\n */\r\nSubImage.prototype.updateFrom = function(from) {\r\n this.from = from;\r\n return this;\r\n};\r\n\r\nexport default (SubImage);\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/subImage.js\n **/","/*\r\n * typedefs.js\r\n * Normalizes browser-specific prefixes\r\n */\r\n\r\nif (typeof window !== 'undefined') {\r\n window.requestAnimFrame = (function () {\r\n return window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n window.msRequestAnimationFrame ||\r\n function (/* function FrameRequestCallback */ callback) {\r\n window.setTimeout(callback, 1000 / 60);\r\n };\r\n })();\r\n}\r\nMath.imul = Math.imul || function(a, b) {\r\n var ah = (a >>> 16) & 0xffff,\r\n al = a & 0xffff,\r\n bh = (b >>> 16) & 0xffff,\r\n bl = b & 0xffff;\r\n // the shift by 0 fixes the sign on the high part\r\n // the final |0 converts the unsigned value into a signed value\r\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/common/typedefs.js\n **/","module.exports = {\r\n inputStream: {\r\n name: \"Live\",\r\n type: \"LiveStream\",\r\n constraints: {\r\n width: 640,\r\n height: 480,\r\n // aspectRatio: 640/480, // optional\r\n facingMode: \"environment\", // or user\r\n // deviceId: \"38745983457387598375983759834\"\r\n },\r\n area: {\r\n top: \"0%\",\r\n right: \"0%\",\r\n left: \"0%\",\r\n bottom: \"0%\"\r\n },\r\n singleChannel: false // true: only the red color-channel is read\r\n },\r\n locate: true,\r\n numOfWorkers: 2,\r\n decoder: {\r\n readers: [\r\n 'code_128_reader'\r\n ],\r\n debug: {\r\n drawBoundingBox: false,\r\n showFrequency: false,\r\n drawScanline: false,\r\n showPattern: false\r\n }\r\n },\r\n locator: {\r\n halfSample: true,\r\n patchSize: \"medium\", // x-small, small, medium, large, x-large\r\n debug: {\r\n showCanvas: false,\r\n showPatches: false,\r\n showFoundPatches: false,\r\n showSkeleton: false,\r\n showLabels: false,\r\n showPatchLabels: false,\r\n showRemainingPatchLabels: false,\r\n boxFromPatches: {\r\n showTransformed: false,\r\n showTransformedBox: false,\r\n showBB: false\r\n }\r\n }\r\n }\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/config/config.dev.js\n **/","import Bresenham from './bresenham';\r\nimport ImageDebug from '../common/image_debug';\r\nimport Code128Reader from '../reader/code_128_reader';\r\nimport EANReader from '../reader/ean_reader';\r\nimport Code39Reader from '../reader/code_39_reader';\r\nimport Code39VINReader from '../reader/code_39_vin_reader';\r\nimport CodabarReader from '../reader/codabar_reader';\r\nimport UPCReader from '../reader/upc_reader';\r\nimport EAN8Reader from '../reader/ean_8_reader';\r\nimport EAN2Reader from '../reader/ean_2_reader';\r\nimport EAN5Reader from '../reader/ean_5_reader';\r\nimport UPCEReader from '../reader/upc_e_reader';\r\nimport I2of5Reader from '../reader/i2of5_reader';\r\n\r\nconst READERS = {\r\n code_128_reader: Code128Reader,\r\n ean_reader: EANReader,\r\n ean_5_reader: EAN5Reader,\r\n ean_2_reader: EAN2Reader,\r\n ean_8_reader: EAN8Reader,\r\n code_39_reader: Code39Reader,\r\n code_39_vin_reader: Code39VINReader,\r\n codabar_reader: CodabarReader,\r\n upc_reader: UPCReader,\r\n upc_e_reader: UPCEReader,\r\n i2of5_reader: I2of5Reader\r\n};\r\nexport default {\r\n create: function(config, inputImageWrapper) {\r\n var _canvas = {\r\n ctx: {\r\n frequency: null,\r\n pattern: null,\r\n overlay: null\r\n },\r\n dom: {\r\n frequency: null,\r\n pattern: null,\r\n overlay: null\r\n }\r\n },\r\n _barcodeReaders = [];\r\n\r\n initCanvas();\r\n initReaders();\r\n initConfig();\r\n\r\n function initCanvas() {\r\n if (ENV.development && typeof document !== 'undefined') {\r\n var $debug = document.querySelector(\"#debug.detection\");\r\n _canvas.dom.frequency = document.querySelector(\"canvas.frequency\");\r\n if (!_canvas.dom.frequency) {\r\n _canvas.dom.frequency = document.createElement(\"canvas\");\r\n _canvas.dom.frequency.className = \"frequency\";\r\n if ($debug) {\r\n $debug.appendChild(_canvas.dom.frequency);\r\n }\r\n }\r\n _canvas.ctx.frequency = _canvas.dom.frequency.getContext(\"2d\");\r\n\r\n _canvas.dom.pattern = document.querySelector(\"canvas.patternBuffer\");\r\n if (!_canvas.dom.pattern) {\r\n _canvas.dom.pattern = document.createElement(\"canvas\");\r\n _canvas.dom.pattern.className = \"patternBuffer\";\r\n if ($debug) {\r\n $debug.appendChild(_canvas.dom.pattern);\r\n }\r\n }\r\n _canvas.ctx.pattern = _canvas.dom.pattern.getContext(\"2d\");\r\n\r\n _canvas.dom.overlay = document.querySelector(\"canvas.drawingBuffer\");\r\n if (_canvas.dom.overlay) {\r\n _canvas.ctx.overlay = _canvas.dom.overlay.getContext(\"2d\");\r\n }\r\n }\r\n }\r\n\r\n function initReaders() {\r\n config.readers.forEach(function(readerConfig) {\r\n var reader,\r\n configuration = {},\r\n supplements = [];\r\n\r\n if (typeof readerConfig === 'object') {\r\n reader = readerConfig.format;\r\n configuration = readerConfig.config;\r\n } else if (typeof readerConfig === 'string') {\r\n reader = readerConfig;\r\n }\r\n if (ENV.development) {\r\n console.log(\"Before registering reader: \", reader);\r\n }\r\n if (configuration.supplements) {\r\n supplements = configuration\r\n .supplements.map((supplement) => {\r\n return new READERS[supplement]();\r\n });\r\n }\r\n _barcodeReaders.push(new READERS[reader](configuration, supplements));\r\n });\r\n if (ENV.development) {\r\n console.log(\"Registered Readers: \" + _barcodeReaders\r\n .map((reader) => JSON.stringify({format: reader.FORMAT, config: reader.config}))\r\n .join(', '));\r\n }\r\n }\r\n\r\n function initConfig() {\r\n if (ENV.development && typeof document !== 'undefined') {\r\n var i,\r\n vis = [{\r\n node: _canvas.dom.frequency,\r\n prop: config.debug.showFrequency\r\n }, {\r\n node: _canvas.dom.pattern,\r\n prop: config.debug.showPattern\r\n }];\r\n\r\n for (i = 0; i < vis.length; i++) {\r\n if (vis[i].prop === true) {\r\n vis[i].node.style.display = \"block\";\r\n } else {\r\n vis[i].node.style.display = \"none\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * extend the line on both ends\r\n * @param {Array} line\r\n * @param {Number} angle\r\n */\r\n function getExtendedLine(line, angle, ext) {\r\n function extendLine(amount) {\r\n var extension = {\r\n y: amount * Math.sin(angle),\r\n x: amount * Math.cos(angle)\r\n };\r\n\r\n line[0].y -= extension.y;\r\n line[0].x -= extension.x;\r\n line[1].y += extension.y;\r\n line[1].x += extension.x;\r\n }\r\n\r\n // check if inside image\r\n extendLine(ext);\r\n while (ext > 1 && (!inputImageWrapper.inImageWithBorder(line[0], 0)\r\n || !inputImageWrapper.inImageWithBorder(line[1], 0))) {\r\n ext -= Math.ceil(ext / 2);\r\n extendLine(-ext);\r\n }\r\n return line;\r\n }\r\n\r\n function getLine(box) {\r\n return [{\r\n x: (box[1][0] - box[0][0]) / 2 + box[0][0],\r\n y: (box[1][1] - box[0][1]) / 2 + box[0][1]\r\n }, {\r\n x: (box[3][0] - box[2][0]) / 2 + box[2][0],\r\n y: (box[3][1] - box[2][1]) / 2 + box[2][1]\r\n }];\r\n }\r\n\r\n function tryDecode(line) {\r\n var result = null,\r\n i,\r\n barcodeLine = Bresenham.getBarcodeLine(inputImageWrapper, line[0], line[1]);\r\n\r\n if (ENV.development && config.debug.showFrequency) {\r\n ImageDebug.drawPath(line, {x: 'x', y: 'y'}, _canvas.ctx.overlay, {color: 'red', lineWidth: 3});\r\n Bresenham.debug.printFrequency(barcodeLine.line, _canvas.dom.frequency);\r\n }\r\n\r\n Bresenham.toBinaryLine(barcodeLine);\r\n\r\n if (ENV.development && config.debug.showPattern) {\r\n Bresenham.debug.printPattern(barcodeLine.line, _canvas.dom.pattern);\r\n }\r\n\r\n for ( i = 0; i < _barcodeReaders.length && result === null; i++) {\r\n result = _barcodeReaders[i].decodePattern(barcodeLine.line);\r\n }\r\n if (result === null){\r\n return null;\r\n }\r\n return {\r\n codeResult: result,\r\n barcodeLine: barcodeLine\r\n };\r\n }\r\n\r\n /**\r\n * This method slices the given area apart and tries to detect a barcode-pattern\r\n * for each slice. It returns the decoded barcode, or null if nothing was found\r\n * @param {Array} box\r\n * @param {Array} line\r\n * @param {Number} lineAngle\r\n */\r\n function tryDecodeBruteForce(box, line, lineAngle) {\r\n var sideLength = Math.sqrt(Math.pow(box[1][0] - box[0][0], 2) + Math.pow((box[1][1] - box[0][1]), 2)),\r\n i,\r\n slices = 16,\r\n result = null,\r\n dir,\r\n extension,\r\n xdir = Math.sin(lineAngle),\r\n ydir = Math.cos(lineAngle);\r\n\r\n for ( i = 1; i < slices && result === null; i++) {\r\n // move line perpendicular to angle\r\n dir = sideLength / slices * i * (i % 2 === 0 ? -1 : 1);\r\n extension = {\r\n y: dir * xdir,\r\n x: dir * ydir\r\n };\r\n line[0].y += extension.x;\r\n line[0].x -= extension.y;\r\n line[1].y += extension.x;\r\n line[1].x -= extension.y;\r\n\r\n result = tryDecode(line);\r\n }\r\n return result;\r\n }\r\n\r\n function getLineLength(line) {\r\n return Math.sqrt(\r\n Math.pow(Math.abs(line[1].y - line[0].y), 2) +\r\n Math.pow(Math.abs(line[1].x - line[0].x), 2));\r\n }\r\n\r\n /**\r\n * With the help of the configured readers (Code128 or EAN) this function tries to detect a\r\n * valid barcode pattern within the given area.\r\n * @param {Object} box The area to search in\r\n * @returns {Object} the result {codeResult, line, angle, pattern, threshold}\r\n */\r\n function decodeFromBoundingBox(box) {\r\n var line,\r\n lineAngle,\r\n ctx = _canvas.ctx.overlay,\r\n result,\r\n lineLength;\r\n\r\n if (ENV.development) {\r\n if (config.debug.drawBoundingBox && ctx) {\r\n ImageDebug.drawPath(box, {x: 0, y: 1}, ctx, {color: \"blue\", lineWidth: 2});\r\n }\r\n }\r\n\r\n line = getLine(box);\r\n lineLength = getLineLength(line);\r\n lineAngle = Math.atan2(line[1].y - line[0].y, line[1].x - line[0].x);\r\n line = getExtendedLine(line, lineAngle, Math.floor(lineLength * 0.1));\r\n if (line === null){\r\n return null;\r\n }\r\n\r\n result = tryDecode(line);\r\n if (result === null) {\r\n result = tryDecodeBruteForce(box, line, lineAngle);\r\n }\r\n\r\n if (result === null) {\r\n return null;\r\n }\r\n\r\n if (ENV.development && result && config.debug.drawScanline && ctx) {\r\n ImageDebug.drawPath(line, {x: 'x', y: 'y'}, ctx, {color: 'red', lineWidth: 3});\r\n }\r\n\r\n return {\r\n codeResult: result.codeResult,\r\n line: line,\r\n angle: lineAngle,\r\n pattern: result.barcodeLine.line,\r\n threshold: result.barcodeLine.threshold\r\n };\r\n }\r\n\r\n return {\r\n decodeFromBoundingBox: function(box) {\r\n return decodeFromBoundingBox(box);\r\n },\r\n decodeFromBoundingBoxes: function(boxes) {\r\n var i, result,\r\n barcodes = [],\r\n multiple = config.multiple;\r\n\r\n for ( i = 0; i < boxes.length; i++) {\r\n const box = boxes[i];\r\n result = decodeFromBoundingBox(box) || {};\r\n result.box = box;\r\n\r\n if (multiple) {\r\n barcodes.push(result);\r\n } else if (result.codeResult) {\r\n return result;\r\n }\r\n }\r\n\r\n if (multiple) {\r\n return {\r\n barcodes\r\n };\r\n }\r\n },\r\n setReaders: function(readers) {\r\n config.readers = readers;\r\n _barcodeReaders.length = 0;\r\n initReaders();\r\n }\r\n };\r\n }\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/decoder/barcode_decoder.js\n **/","var Bresenham = {};\r\n\r\nvar Slope = {\r\n DIR: {\r\n UP: 1,\r\n DOWN: -1\r\n }\r\n};\r\n/**\r\n * Scans a line of the given image from point p1 to p2 and returns a result object containing\r\n * gray-scale values (0-255) of the underlying pixels in addition to the min\r\n * and max values.\r\n * @param {Object} imageWrapper\r\n * @param {Object} p1 The start point {x,y}\r\n * @param {Object} p2 The end point {x,y}\r\n * @returns {line, min, max}\r\n */\r\nBresenham.getBarcodeLine = function(imageWrapper, p1, p2) {\r\n var x0 = p1.x | 0,\r\n y0 = p1.y | 0,\r\n x1 = p2.x | 0,\r\n y1 = p2.y | 0,\r\n steep = Math.abs(y1 - y0) > Math.abs(x1 - x0),\r\n deltax,\r\n deltay,\r\n error,\r\n ystep,\r\n y,\r\n tmp,\r\n x,\r\n line = [],\r\n imageData = imageWrapper.data,\r\n width = imageWrapper.size.x,\r\n sum = 0,\r\n val,\r\n min = 255,\r\n max = 0;\r\n\r\n function read(a, b) {\r\n val = imageData[b * width + a];\r\n sum += val;\r\n min = val < min ? val : min;\r\n max = val > max ? val : max;\r\n line.push(val);\r\n }\r\n\r\n if (steep) {\r\n tmp = x0;\r\n x0 = y0;\r\n y0 = tmp;\r\n\r\n tmp = x1;\r\n x1 = y1;\r\n y1 = tmp;\r\n }\r\n if (x0 > x1) {\r\n tmp = x0;\r\n x0 = x1;\r\n x1 = tmp;\r\n\r\n tmp = y0;\r\n y0 = y1;\r\n y1 = tmp;\r\n }\r\n deltax = x1 - x0;\r\n deltay = Math.abs(y1 - y0);\r\n error = (deltax / 2) | 0;\r\n y = y0;\r\n ystep = y0 < y1 ? 1 : -1;\r\n for ( x = x0; x < x1; x++) {\r\n if (steep){\r\n read(y, x);\r\n } else {\r\n read(x, y);\r\n }\r\n error = error - deltay;\r\n if (error < 0) {\r\n y = y + ystep;\r\n error = error + deltax;\r\n }\r\n }\r\n\r\n return {\r\n line: line,\r\n min: min,\r\n max: max\r\n };\r\n};\r\n\r\n/**\r\n * Converts the result from getBarcodeLine into a binary representation\r\n * also considering the frequency and slope of the signal for more robust results\r\n * @param {Object} result {line, min, max}\r\n */\r\nBresenham.toBinaryLine = function(result) {\r\n var min = result.min,\r\n max = result.max,\r\n line = result.line,\r\n slope,\r\n slope2,\r\n center = min + (max - min) / 2,\r\n extrema = [],\r\n currentDir,\r\n dir,\r\n threshold = (max - min) / 12,\r\n rThreshold = -threshold,\r\n i,\r\n j;\r\n\r\n // 1. find extrema\r\n currentDir = line[0] > center ? Slope.DIR.UP : Slope.DIR.DOWN;\r\n extrema.push({\r\n pos: 0,\r\n val: line[0]\r\n });\r\n for ( i = 0; i < line.length - 2; i++) {\r\n slope = (line[i + 1] - line[i]);\r\n slope2 = (line[i + 2] - line[i + 1]);\r\n if ((slope + slope2) < rThreshold && line[i + 1] < (center * 1.5)) {\r\n dir = Slope.DIR.DOWN;\r\n } else if ((slope + slope2) > threshold && line[i + 1] > (center * 0.5)) {\r\n dir = Slope.DIR.UP;\r\n } else {\r\n dir = currentDir;\r\n }\r\n\r\n if (currentDir !== dir) {\r\n extrema.push({\r\n pos: i,\r\n val: line[i]\r\n });\r\n currentDir = dir;\r\n }\r\n }\r\n extrema.push({\r\n pos: line.length,\r\n val: line[line.length - 1]\r\n });\r\n\r\n for ( j = extrema[0].pos; j < extrema[1].pos; j++) {\r\n line[j] = line[j] > center ? 0 : 1;\r\n }\r\n\r\n // iterate over extrema and convert to binary based on avg between minmax\r\n for ( i = 1; i < extrema.length - 1; i++) {\r\n if (extrema[i + 1].val > extrema[i].val) {\r\n threshold = (extrema[i].val + ((extrema[i + 1].val - extrema[i].val) / 3) * 2) | 0;\r\n } else {\r\n threshold = (extrema[i + 1].val + ((extrema[i].val - extrema[i + 1].val) / 3)) | 0;\r\n }\r\n\r\n for ( j = extrema[i].pos; j < extrema[i + 1].pos; j++) {\r\n line[j] = line[j] > threshold ? 0 : 1;\r\n }\r\n }\r\n\r\n return {\r\n line: line,\r\n threshold: threshold\r\n };\r\n};\r\n\r\n/**\r\n * Used for development only\r\n */\r\nBresenham.debug = {\r\n printFrequency: function(line, canvas) {\r\n var i,\r\n ctx = canvas.getContext(\"2d\");\r\n canvas.width = line.length;\r\n canvas.height = 256;\r\n\r\n ctx.beginPath();\r\n ctx.strokeStyle = \"blue\";\r\n for ( i = 0; i < line.length; i++) {\r\n ctx.moveTo(i, 255);\r\n ctx.lineTo(i, 255 - line[i]);\r\n }\r\n ctx.stroke();\r\n ctx.closePath();\r\n },\r\n\r\n printPattern: function(line, canvas) {\r\n var ctx = canvas.getContext(\"2d\"), i;\r\n\r\n canvas.width = line.length;\r\n ctx.fillColor = \"black\";\r\n for ( i = 0; i < line.length; i++) {\r\n if (line[i] === 1) {\r\n ctx.fillRect(i, 0, 1, 100);\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default Bresenham;\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/decoder/bresenham.js\n **/","import {merge, pick} from 'lodash';\r\n\r\nvar streamRef;\r\n\r\nfunction waitForVideo(video) {\r\n return new Promise((resolve, reject) => {\r\n let attempts = 10;\r\n\r\n function checkVideo() {\r\n if (attempts > 0) {\r\n if (video.videoWidth > 0 && video.videoHeight > 0) {\r\n if (ENV.development) {\r\n console.log(video.videoWidth + \"px x \" + video.videoHeight + \"px\");\r\n }\r\n resolve();\r\n } else {\r\n window.setTimeout(checkVideo, 500);\r\n }\r\n } else {\r\n reject('Unable to play video stream. Is webcam working?');\r\n }\r\n attempts--;\r\n }\r\n checkVideo();\r\n });\r\n}\r\n\r\n/**\r\n * Tries to attach the camera-stream to a given video-element\r\n * and calls the callback function when the content is ready\r\n * @param {Object} constraints\r\n * @param {Object} video\r\n */\r\nfunction initCamera(video, constraints) {\r\n return navigator.mediaDevices.getUserMedia(constraints)\r\n .then((stream) => {\r\n return new Promise((resolve) => {\r\n streamRef = stream;\r\n video.setAttribute(\"autoplay\", 'true');\r\n video.srcObject = stream;\r\n video.addEventListener('loadedmetadata', () => {\r\n video.play();\r\n resolve();\r\n });\r\n });\r\n })\r\n .then(waitForVideo.bind(null, video));\r\n}\r\n\r\nfunction deprecatedConstraints(videoConstraints) {\r\n const normalized = pick(videoConstraints, [\"width\", \"height\", \"facingMode\",\r\n \"aspectRatio\", \"deviceId\"]);\r\n\r\n if (typeof videoConstraints.minAspectRatio !== 'undefined' &&\r\n videoConstraints.minAspectRatio > 0) {\r\n normalized.aspectRatio = videoConstraints.minAspectRatio;\r\n console.log(\"WARNING: Constraint 'minAspectRatio' is deprecated; Use 'aspectRatio' instead\");\r\n }\r\n if (typeof videoConstraints.facing !== 'undefined') {\r\n normalized.facingMode = videoConstraints.facing;\r\n console.log(\"WARNING: Constraint 'facing' is deprecated. Use 'facingMode' instead'\");\r\n }\r\n return normalized;\r\n}\r\n\r\nfunction applyCameraFacing(facing, constraints) {\r\n if (typeof constraints.video.deviceId !== 'undefined' || !facing){\r\n return Promise.resolve(constraints);\r\n }\r\n if ( typeof MediaStreamTrack !== 'undefined' &&\r\n typeof MediaStreamTrack.getSources !== 'undefined') {\r\n return new Promise((resolve) => {\r\n MediaStreamTrack.getSources((sourceInfos) => {\r\n const videoSource = sourceInfos.filter((sourceInfo) => (\r\n sourceInfo.kind === \"video\" && sourceInfo.facing === facing\r\n ))[0];\r\n if (videoSource) {\r\n return resolve(merge({}, constraints,\r\n {video: {deviceId: videoSource.id}}));\r\n }\r\n return resolve(constraints);\r\n });\r\n });\r\n }\r\n return Promise.resolve(merge({}, constraints, {video: {facingMode: facing}}));\r\n}\r\n\r\nfunction pickConstraints(videoConstraints) {\r\n const constraints = {\r\n audio: false,\r\n video: deprecatedConstraints(videoConstraints)\r\n };\r\n return applyCameraFacing(constraints.video.facingMode, constraints);\r\n}\r\n\r\nexport default {\r\n request: function(video, videoConstraints) {\r\n return pickConstraints(videoConstraints)\r\n .then(initCamera.bind(null, video));\r\n },\r\n release: function() {\r\n var tracks = streamRef && streamRef.getVideoTracks();\r\n if (tracks && tracks.length) {\r\n tracks[0].stop();\r\n }\r\n streamRef = null;\r\n }\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/input/camera_access.js\n **/","import {merge, pick, omitBy, isEmpty} from 'lodash';\r\n\r\nimport DOMHelper from '../common/dom_helper';\r\n\r\nconst isDataURL = {regex: /^\\s*data:([a-z]+\\/[a-z0-9\\-\\+]+(;[a-z\\-]+\\=[a-z0-9\\-]+)?)?(;base64)?,[a-z0-9\\!\\$\\&\\'\\,\\(\\)\\*\\+\\,\\;\\=\\-\\.\\_\\~\\:\\@\\/\\?\\%\\s]*\\s*$/i}, // eslint-disable-line max-len\r\n isBlobURL = {regex: /^\\s*blob:(.*)$/i},\r\n isMediaURL = {regex: /^(?:(?:http[s]?|ftp):\\/)?\\/?(?:(?:[^:\\/\\s]+)(?:(?:\\/\\w+)*\\/))?([\\w\\-]+\\.([^#?\\s]+))(?:.*)?(?:#[\\w\\-]+)?$/i}, // eslint-disable-line max-len\r\n isImageExt = {regex: /(jpe?g|png|gif|tiff)(?:\\s+|$)/i},\r\n isVideoExt = {regex: /(webm|ogg|mp4|m4v)/i};\r\n\r\nexport function createConfigFromSource(config, sourceConfig, source) {\r\n if (source instanceof DOMHelper.MediaStream) {\r\n return createConfigForStream(config, sourceConfig, {srcObject: source});\r\n } else if (source instanceof DOMHelper.HTMLImageElement) {\r\n throw new Error('Source \"HTMLImageElement\": not yet supported');\r\n // return createConfigForImage(config, inputConfig, {image: source});\r\n } else if (source instanceof DOMHelper.HTMLVideoElement) {\r\n throw new Error('Source \"HTMLVideoElement\": not yet supported');\r\n // return createConfigForVideo(config, inputConfig, {video: source});\r\n } else if (source instanceof DOMHelper.HTMLCanvasElement) {\r\n return createConfigForCanvas(config, sourceConfig, {canvas: source});\r\n } else if (source instanceof DOMHelper.FileList) {\r\n if (source.length > 0) {\r\n return createConfigForFile(config, sourceConfig, source[0]);\r\n }\r\n } else if (source instanceof DOMHelper.File) {\r\n return createConfigForFile(config, sourceConfig, source);\r\n } else if (typeof source === 'string') {\r\n return createConfigForString(config, sourceConfig, source);\r\n } else if (typeof source === 'object'\r\n && (typeof source.constraints !== 'undefined'\r\n || typeof source.area !== 'undefined')) {\r\n return createConfigForLiveStream(config, source);\r\n } else {\r\n throw new Error(\"No source given!\");\r\n }\r\n}\r\n\r\nfunction createConfigForImage(config, source, inputConfig = {}) {\r\n const staticImageConfig = {\r\n inputStream: merge({\r\n type: \"ImageStream\",\r\n sequence: false,\r\n size: 800\r\n }, source),\r\n numOfWorkers: (ENV.development && config.debug) ? 0 : 1\r\n };\r\n return merge(\r\n config,\r\n staticImageConfig,\r\n {numOfWorkers: typeof config.numOfWorkers === 'number' && config.numOfWorkers > 0 ? 1 : 0},\r\n {inputStream: omitBy(pick(config.inputStream, ['size']), isEmpty)},\r\n {inputStream: inputConfig});\r\n}\r\n\r\nfunction createConfigForMimeType(config, inputConfig, {src, mime}) {\r\n const [, type] = mime.match(/^(video|image)\\/(.*)$/i) || [];\r\n if (type === 'video') {\r\n return createConfigForVideo(config, {src}, inputConfig);\r\n } else if (type === 'image') {\r\n return createConfigForImage(config, {src}, inputConfig);\r\n }\r\n throw new Error(`Source with mimetype: \"${type}\" not supported`);\r\n}\r\n\r\nfunction createConfigForFile(config, inputConfig, file) {\r\n const src = DOMHelper.URL.createObjectURL(file);\r\n return createConfigForMimeType(config, inputConfig, {\r\n src,\r\n mime: file.type\r\n });\r\n}\r\n\r\nfunction createConfigForString(config, inputConfig = {}, source) {\r\n const [, mime] = source.match(isDataURL.regex) || [];\r\n if (mime) {\r\n return createConfigForMimeType(config, inputConfig, {src: source, mime});\r\n }\r\n const blobURL = source.match(isBlobURL.regex);\r\n if (blobURL) {\r\n throw new Error(`Source \"objectURL\": not supported`);\r\n }\r\n const [, , ext] = source.match(isMediaURL.regex) || [];\r\n if (ext) {\r\n return createConfigForMediaExtension(config, inputConfig, {src: source, ext});\r\n }\r\n throw new Error(`Source \"${source}\": not recognized`);\r\n}\r\n\r\nfunction createConfigForMediaExtension(config, inputConfig, {src, ext}) {\r\n if (ext.match(isImageExt.regex)) {\r\n return createConfigForImage(config, {src}, inputConfig);\r\n } else if (ext.match(isVideoExt.regex)) {\r\n return createConfigForVideo(config, {src}, inputConfig);\r\n }\r\n throw new Error(`Source \"MediaString\": not recognized`);\r\n}\r\n\r\nfunction createConfigForCanvas (config, {canvas}, inputConfig = {}) {\r\n // TODO: adjust stream & frame-grabber\r\n // once/continous\r\n throw new Error('Source \"Canvas\": not implemented!');\r\n}\r\n\r\nfunction createConfigForVideo (config, source, inputConfig = {}) {\r\n return merge({},\r\n config,\r\n {\r\n inputStream: merge({\r\n type: \"VideoStream\"\r\n }, source)\r\n }, {\r\n inputStream: inputConfig\r\n });\r\n}\r\n\r\nfunction createConfigForStream(config, {srcObject}, inputConfig = {}) {\r\n // TODO: attach to