xgplayer-transmuxer 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/index.min.js +2 -0
  2. package/dist/index.min.js.map +1 -0
  3. package/es/codec/aac.d.ts +34 -0
  4. package/es/codec/aac.js +242 -0
  5. package/es/codec/avc.d.ts +35 -0
  6. package/es/codec/avc.js +250 -0
  7. package/es/codec/hevc.d.ts +38 -0
  8. package/es/codec/hevc.js +202 -0
  9. package/es/codec/index.d.ts +4 -0
  10. package/es/codec/nalu.d.ts +11 -0
  11. package/es/codec/nalu.js +194 -0
  12. package/es/flv/amf.d.ts +16 -0
  13. package/es/flv/amf.js +247 -0
  14. package/es/flv/fixer.d.ts +31 -0
  15. package/es/flv/fixer.js +437 -0
  16. package/es/flv/index.d.ts +65 -0
  17. package/es/flv/index.js +441 -0
  18. package/es/index.d.ts +5 -0
  19. package/es/index.js +13 -0
  20. package/es/model/audio-sample.d.ts +18 -0
  21. package/es/model/audio-sample.js +26 -0
  22. package/es/model/audio-track.d.ts +38 -0
  23. package/es/model/audio-track.js +94 -0
  24. package/es/model/index.d.ts +6 -0
  25. package/es/model/metadata-track.d.ts +36 -0
  26. package/es/model/metadata-track.js +100 -0
  27. package/es/model/types.d.ts +26 -0
  28. package/es/model/types.js +31 -0
  29. package/es/model/video-sample.d.ts +44 -0
  30. package/es/model/video-sample.js +66 -0
  31. package/es/model/video-track.d.ts +45 -0
  32. package/es/model/video-track.js +99 -0
  33. package/es/mp4/fmp4-remuxer.d.ts +32 -0
  34. package/es/mp4/fmp4-remuxer.js +172 -0
  35. package/es/mp4/index.d.ts +4 -0
  36. package/es/mp4/logger.d.ts +13 -0
  37. package/es/mp4/logger.js +97 -0
  38. package/es/mp4/mp4-demuxer.d.ts +24 -0
  39. package/es/mp4/mp4-demuxer.js +268 -0
  40. package/es/mp4/mp4-parser.d.ts +161 -0
  41. package/es/mp4/mp4-parser.js +776 -0
  42. package/es/mp4/mp4-remuxer.d.ts +23 -0
  43. package/es/mp4/mp4-remuxer.js +273 -0
  44. package/es/mp4/mp4.d.ts +56 -0
  45. package/es/mp4/mp4.js +574 -0
  46. package/es/mpeg-ts/fixer.d.ts +23 -0
  47. package/es/mpeg-ts/fixer.js +383 -0
  48. package/es/mpeg-ts/index.d.ts +60 -0
  49. package/es/mpeg-ts/index.js +480 -0
  50. package/es/utils/env.d.ts +4 -0
  51. package/es/utils/env.js +10 -0
  52. package/es/utils/exp-golomb.d.ts +17 -0
  53. package/es/utils/exp-golomb.js +172 -0
  54. package/es/utils/index.d.ts +11 -0
  55. package/es/utils/index.js +77 -0
  56. package/es/utils/logger.d.ts +9 -0
  57. package/es/utils/logger.js +45 -0
  58. package/es/utils/utf8.d.ts +9 -0
  59. package/es/utils/utf8.js +91 -0
  60. package/package.json +25 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.min.js","sources":["../../../node_modules/core-js/internals/global.js","../../../node_modules/core-js/internals/fails.js","../../../node_modules/core-js/internals/descriptors.js","../../../node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/core-js/internals/engine-v8-version.js","../../../node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/core-js/internals/classof-raw.js","../../../node_modules/core-js/internals/indexed-object.js","../../../node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/core-js/internals/is-object.js","../../../node_modules/core-js/internals/get-built-in.js","../../../node_modules/core-js/internals/engine-user-agent.js","../../../node_modules/core-js/internals/native-symbol.js","../../../node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/core-js/internals/is-symbol.js","../../../node_modules/core-js/internals/ordinary-to-primitive.js","../../../node_modules/core-js/internals/set-global.js","../../../node_modules/core-js/internals/shared-store.js","../../../node_modules/core-js/internals/shared.js","../../../node_modules/core-js/internals/to-object.js","../../../node_modules/core-js/internals/has.js","../../../node_modules/core-js/internals/uid.js","../../../node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/core-js/internals/to-primitive.js","../../../node_modules/core-js/internals/to-property-key.js","../../../node_modules/core-js/internals/document-create-element.js","../../../node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/core-js/internals/an-object.js","../../../node_modules/core-js/internals/object-define-property.js","../../../node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/core-js/internals/inspect-source.js","../../../node_modules/core-js/internals/internal-state.js","../../../node_modules/core-js/internals/native-weak-map.js","../../../node_modules/core-js/internals/shared-key.js","../../../node_modules/core-js/internals/hidden-keys.js","../../../node_modules/core-js/internals/redefine.js","../../../node_modules/core-js/internals/to-integer.js","../../../node_modules/core-js/internals/to-length.js","../../../node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/core-js/internals/array-includes.js","../../../node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/core-js/internals/own-keys.js","../../../node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/core-js/internals/is-forced.js","../../../node_modules/core-js/internals/export.js","../../../node_modules/core-js/internals/object-keys.js","../../../node_modules/core-js/modules/es.object.keys.js","../../../node_modules/core-js/internals/is-array.js","../../../node_modules/core-js/internals/object-create.js","../../../node_modules/core-js/internals/to-string.js","../../../node_modules/core-js/internals/object-define-properties.js","../../../node_modules/core-js/internals/html.js","../../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../../node_modules/core-js/internals/well-known-symbol-wrapped.js","../../../node_modules/core-js/internals/path.js","../../../node_modules/core-js/internals/define-well-known-symbol.js","../../../node_modules/core-js/internals/set-to-string-tag.js","../../../node_modules/core-js/internals/a-function.js","../../../node_modules/core-js/internals/function-bind-context.js","../../../node_modules/core-js/internals/array-species-constructor.js","../../../node_modules/core-js/internals/array-species-create.js","../../../node_modules/core-js/internals/array-iteration.js","../../../node_modules/core-js/modules/es.symbol.js","../../../node_modules/core-js/internals/array-method-has-species-support.js","../../../node_modules/core-js/modules/es.array.filter.js","../../../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../../../node_modules/core-js/internals/dom-iterables.js","../../../node_modules/core-js/internals/array-method-is-strict.js","../../../node_modules/core-js/internals/array-for-each.js","../../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../../node_modules/core-js/internals/create-property.js","../../../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/core-js/modules/es.array.concat.js","../../../node_modules/core-js/modules/es.array.map.js","../../../node_modules/core-js/internals/add-to-unscopables.js","../../../node_modules/core-js/modules/es.array.includes.js","../../../node_modules/core-js/internals/is-regexp.js","../../../node_modules/core-js/internals/not-a-regexp.js","../../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../../node_modules/core-js/modules/es.string.includes.js","../src/model/types.js","../src/model/video-track.js","../src/model/audio-track.js","../src/model/video-sample.js","../src/model/audio-sample.js","../../../node_modules/core-js/internals/function-bind.js","../../../node_modules/core-js/modules/es.reflect.construct.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../src/model/metadata-track.js","../../../node_modules/core-js/internals/number-is-finite.js","../../../node_modules/core-js/modules/es.number.is-finite.js","../../../node_modules/core-js/internals/a-possible-prototype.js","../../../node_modules/core-js/internals/object-set-prototype-of.js","../../../node_modules/core-js/internals/inherit-if-required.js","../../../node_modules/core-js/internals/string-trim.js","../../../node_modules/core-js/modules/es.number.constructor.js","../../../node_modules/core-js/modules/es.array.splice.js","../../../node_modules/core-js/internals/iterators-core.js","../../../node_modules/core-js/internals/iterators.js","../../../node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/core-js/internals/create-iterator-constructor.js","../../../node_modules/core-js/internals/define-iterator.js","../../../node_modules/core-js/modules/es.array.iterator.js","../../../node_modules/core-js/internals/to-string-tag-support.js","../../../node_modules/core-js/internals/classof.js","../../../node_modules/core-js/internals/object-to-string.js","../../../node_modules/core-js/modules/es.object.to-string.js","../../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../../node_modules/core-js/internals/array-buffer-view-core.js","../../../node_modules/core-js/internals/array-buffer-native.js","../../../node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","../../../node_modules/core-js/internals/redefine-all.js","../../../node_modules/core-js/internals/an-instance.js","../../../node_modules/core-js/internals/to-index.js","../../../node_modules/core-js/internals/ieee754.js","../../../node_modules/core-js/internals/array-fill.js","../../../node_modules/core-js/internals/array-buffer.js","../../../node_modules/core-js/internals/is-integer.js","../../../node_modules/core-js/internals/to-positive-integer.js","../../../node_modules/core-js/internals/to-offset.js","../../../node_modules/core-js/internals/get-iterator-method.js","../../../node_modules/core-js/internals/is-array-iterator-method.js","../../../node_modules/core-js/internals/typed-array-from.js","../../../node_modules/core-js/internals/set-species.js","../../../node_modules/core-js/internals/typed-array-constructor.js","../../../node_modules/core-js/modules/es.typed-array.uint8-array.js","../../../node_modules/core-js/internals/array-copy-within.js","../../../node_modules/core-js/modules/es.typed-array.copy-within.js","../../../node_modules/core-js/modules/es.typed-array.every.js","../../../node_modules/core-js/modules/es.typed-array.fill.js","../../../node_modules/core-js/internals/species-constructor.js","../../../node_modules/core-js/internals/typed-array-species-constructor.js","../../../node_modules/core-js/internals/typed-array-from-species-and-list.js","../../../node_modules/core-js/internals/array-from-constructor-and-list.js","../../../node_modules/core-js/modules/es.typed-array.filter.js","../../../node_modules/core-js/modules/es.typed-array.find.js","../../../node_modules/core-js/modules/es.typed-array.find-index.js","../../../node_modules/core-js/modules/es.typed-array.for-each.js","../../../node_modules/core-js/modules/es.typed-array.includes.js","../../../node_modules/core-js/modules/es.typed-array.index-of.js","../../../node_modules/core-js/modules/es.typed-array.iterator.js","../../../node_modules/core-js/modules/es.typed-array.join.js","../../../node_modules/core-js/internals/array-last-index-of.js","../../../node_modules/core-js/modules/es.typed-array.last-index-of.js","../../../node_modules/core-js/modules/es.typed-array.map.js","../../../node_modules/core-js/internals/array-reduce.js","../../../node_modules/core-js/modules/es.typed-array.reduce.js","../../../node_modules/core-js/modules/es.typed-array.reduce-right.js","../../../node_modules/core-js/modules/es.typed-array.reverse.js","../../../node_modules/core-js/modules/es.typed-array.set.js","../../../node_modules/core-js/modules/es.typed-array.slice.js","../../../node_modules/core-js/modules/es.typed-array.some.js","../../../node_modules/core-js/internals/array-sort.js","../../../node_modules/core-js/internals/engine-ff-version.js","../../../node_modules/core-js/internals/engine-is-ie-or-edge.js","../../../node_modules/core-js/internals/engine-webkit-version.js","../../../node_modules/core-js/modules/es.typed-array.sort.js","../../../node_modules/core-js/modules/es.typed-array.subarray.js","../../../node_modules/core-js/modules/es.typed-array.to-locale-string.js","../../../node_modules/core-js/modules/es.typed-array.to-string.js","../../../node_modules/core-js/internals/regexp-flags.js","../../../node_modules/core-js/modules/es.regexp.to-string.js","../src/utils/exp-golomb.js","../../../node_modules/core-js/modules/es.function.name.js","../src/utils/logger.js","../../../node_modules/core-js/modules/es.array.join.js","../src/utils/utf8.js","../src/utils/env.js","../src/utils/index.js","../src/codec/nalu.js","../src/codec/avc.js","../src/codec/aac.js","../src/codec/hevc.js","../src/flv/fixer.js","../src/flv/amf.js","../src/flv/index.js","../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../src/mpeg-ts/fixer.js","../src/mpeg-ts/index.js","../../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../../node_modules/core-js/modules/es.array.find.js","../src/mp4/mp4.js","../src/mp4/logger.js","../src/mp4/fmp4-remuxer.js","../src/mp4/mp4-remuxer.js","../../../node_modules/core-js/modules/es.array.slice.js","../../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../../node_modules/core-js/internals/string-repeat.js","../../../node_modules/core-js/internals/string-pad.js","../../../node_modules/core-js/internals/string-pad-webkit-bug.js","../../../node_modules/core-js/modules/es.string.pad-start.js","../../../node_modules/core-js/internals/iterator-close.js","../../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../../node_modules/core-js/internals/array-from.js","../../../node_modules/core-js/modules/es.array.from.js","../../../node_modules/core-js/internals/string-multibyte.js","../../../node_modules/core-js/modules/es.string.iterator.js","../../../node_modules/core-js/modules/es.regexp.flags.js","../src/mp4/mp4-parser.js","../src/mp4/mp4-demuxer.js","../src/index.umd.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n","var isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.16.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var isSymbol = require('../internals/is-symbol');\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~toString(requireObjectCoercible(this))\n .indexOf(toString(notARegExp(searchString)), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","/** @enum {string} */\nexport const TrackType = {\n VIDEO: 'video',\n AUDIO: 'audio',\n METADATA: 'metadata'\n}\n\n/** @enum {string} */\nexport const VideoCodecType = {\n AVC: 'avc',\n HEVC: 'hevc'\n}\n\n/** @enum {string} */\nexport const AudioCodecType = {\n AAC: 'aac',\n G711PCMA: 'g7110a',\n G711PCMU: 'g7110m'\n}\n\n/** @enum {string} */\nexport const WarningType = {\n LARGE_AV_SHIFT: 'LARGE_AV_SHIFT',\n LARGE_VIDEO_GAP: 'LARGE_VIDEO_GAP',\n LARGE_VIDEO_GAP_BETWEEN_CHUNK: 'LARGE_VIDEO_GAP_BETWEEN_CHUNK',\n LARGE_AUDIO_GAP: 'LARGE_AUDIO_GAP',\n AUDIO_FILLED: 'AUDIO_FILLED',\n AUDIO_DROPPED: 'AUDIO_DROPPED'\n}\n","import { TrackType, VideoCodecType } from './types'\n\nexport class VideoTrack {\n /** @readonly */\n id = 1\n\n /** @readonly */\n type = TrackType.VIDEO\n\n codecType = VideoCodecType.AVC\n\n pid = -1 // ts use\n\n /** @type {Uint8Array} */\n hvcC = null // if exist, demuxer will use this\n\n codec = ''\n\n timescale = 0\n\n formatTimescale = 0\n\n sequenceNumber = 0\n\n baseMediaDecodeTime = 0\n\n baseDts = 0\n\n duration = 0\n\n warnings = []\n\n /** @type {import('./video-sample').VideoSample[]} */\n samples = []\n\n /** @type {Uint8Array[]} */\n pps = []\n\n /** @type {Uint8Array[]} */\n sps = []\n\n /** @type {Uint8Array[]} */\n vps = []\n\n fpsNum = 0\n\n fpsDen = 0\n\n /** @type {[number, number]} */\n sarRatio = [] // [hSpacing, vSpacing]\n\n width = 0\n\n height = 0\n\n nalUnitSize = 4\n\n present = false\n\n /** @type {any} */\n ext\n\n reset () {\n this.sequenceNumber =\n this.width =\n this.height =\n this.fpsDen =\n this.fpsNum =\n this.duration =\n this.baseMediaDecodeTime =\n this.timescale = 0\n this.codec = ''\n this.present = false\n this.pid = -1\n this.pps = []\n this.sps = []\n this.vps = []\n this.sarRatio = []\n this.samples = []\n this.warnings = []\n this.hvcC = null\n }\n\n /**\n * @returns {boolean}\n */\n exist () {\n return !!(this.pps.length && this.sps.length && this.codec)\n }\n\n /**\n * @returns {boolean}\n */\n hasSample () {\n return !!this.samples.length\n }\n}\n","import { TrackType, AudioCodecType } from './types'\n\nexport class AudioTrack {\n /** @readonly */\n id = 2\n\n /** @readonly */\n type = TrackType.AUDIO\n\n codecType = AudioCodecType.AAC\n\n pid = -1\n\n codec = ''\n\n sequenceNumber = 0\n\n sampleDuration = 0\n\n timescale = 0\n\n formatTimescale = 0\n\n baseMediaDecodeTime = 0\n\n duration = 0\n\n warnings = []\n\n /** @type {import('./audio-sample').AudioSample[]} */\n samples = []\n\n baseDts = 0\n\n sampleSize = 16\n\n sampleRate = 0\n\n channelCount = 0\n\n objectType = 0\n\n sampleRateIndex = 0\n\n /** @type {number[]} */\n config = []\n\n present = false\n\n /** @type {any} */\n ext\n\n reset () {\n this.sequenceNumber = 0\n this.timescale = 0\n this.sampleDuration = 0\n this.sampleRate = 0\n this.channelCount = 0\n this.baseMediaDecodeTime = 0\n this.present = false\n this.pid = -1\n this.codec = ''\n this.samples = []\n this.config = []\n this.warnings = []\n }\n\n /**\n * @returns {boolean}\n */\n exist () {\n return !!(this.sampleRate && this.channelCount && this.codec)\n }\n\n /**\n * @returns {boolean}\n */\n hasSample () {\n return !!this.samples.length\n }\n}\n","/**\n * @typedef {Object} VideoFlag\n * @property {number} [isLeading=0]\n * @property {number} [dependsOn=1]\n * @property {number} [isDependedOn=0]\n * @property {number} [hasRedundancy=0]\n * @property {number} [paddingValue=0]\n * @property {number} [degradationPriority=0]\n * @property {number} [isNonSyncSample=1]\n */\n\nexport class VideoSample {\n /** @type {VideoFlag} */\n flag = {}\n\n keyframe = false\n\n gopId = 0\n\n duration = 0\n\n size = 0\n\n units = []\n\n chromaFormat = 420\n\n /**\n * @param {number} pts\n * @param {number} dts\n * @param {Uint8Array[]} [units]\n */\n constructor (pts, dts, units) {\n this.originPts = this.pts = pts\n this.originDts = this.dts = dts\n if (units) this.units = units\n }\n\n /**\n * @returns {number}\n */\n get cts () {\n return this.pts - this.dts\n }\n\n setToKeyframe () {\n this.keyframe = true\n this.flag.dependsOn = 2\n this.flag.isNonSyncSample = 0\n }\n}\n","export class AudioSample {\n duration = 1024\n\n flag = { dependsOn: 2, isNonSyncSample: 0 }\n\n /**\n * @param {number} pts\n * @param {Uint8Array} data\n * @param {number} [duration=1024]\n */\n constructor (pts, data, duration) {\n this.originPts = this.pts = this.dts = pts\n this.data = data\n this.size = data.byteLength\n if (duration) this.duration = duration\n }\n}\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import { TrackType } from './types'\n\nclass Sample {\n time = 0 // second\n\n /**\n * @param {Object} data\n * @param {number} pts\n */\n constructor (data, pts) {\n this.data = data\n this.originPts = this.pts = pts\n }\n}\n\nexport class FlvScriptSample extends Sample {}\n\nexport class SeiSample extends Sample {}\n\nexport class MetadataTrack {\n /** @readonly */\n id = 3\n\n /** @readonly */\n type = TrackType.METADATA\n\n timescale = 0\n\n /** @type {FlvScriptSample[]} */\n flvScriptSamples = []\n\n /** @type {SeiSample[]} */\n seiSamples = []\n\n /**\n * @returns {boolean}\n */\n exist () {\n return !!((this.flvScriptSamples.length || this.seiSamples.length) && this.timescale)\n }\n\n reset () {\n this.timescale = 0\n this.flvScriptSamples = []\n this.seiSamples = []\n }\n\n /**\n * @returns {boolean}\n */\n hasSample () {\n return !!(this.flvScriptSamples.length || this.seiSamples.length)\n }\n}\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a number');\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf && !isPrototypeOf.call(TypedArray, C)) {\n throw TypeError('Target is not a typed array constructor');\n } return C;\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.es/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isInteger = require('../internals/is-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isInteger(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","module.exports = function (Constructor, list) {\n var index = 0;\n var length = list.length;\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $lastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// TODO: use something more complex like timsort?\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar aFunction = require('../internals/a-function');\nvar toLength = require('../internals/to-length');\nvar internalSort = require('../internals/array-sort');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && Uint16Array.prototype.sort;\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !fails(function () {\n var array = new Uint16Array(2);\n array.sort(null);\n array.sort({});\n});\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n array.sort(function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n var array = this;\n if (comparefn !== undefined) aFunction(comparefn);\n if (STABLE_SORT) return nativeSort.call(array, comparefn);\n\n aTypedArray(array);\n var arrayLength = toLength(array.length);\n var items = Array(arrayLength);\n var index;\n\n for (index = 0; index < arrayLength; index++) {\n items[index] = array[index];\n }\n\n items = internalSort(array, getSortCompare(comparefn));\n\n for (index = 0; index < arrayLength; index++) {\n array[index] = items[index];\n }\n\n return array;\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","export class ExpGolomb {\n _bytesAvailable\n\n _bitsAvailable = 0\n\n _word = 0\n\n constructor (data) {\n if (!data) throw new Error('ExpGolomb data params is required')\n this._data = data\n this._bytesAvailable = data.byteLength\n if (this._bytesAvailable) this._loadWord()\n }\n\n _loadWord () {\n const position = this._data.byteLength - this._bytesAvailable\n const availableBytes = Math.min(4, this._bytesAvailable)\n if (availableBytes === 0) throw new Error('No bytes available')\n\n const workingBytes = new Uint8Array(4)\n workingBytes.set(this._data.subarray(position, position + availableBytes))\n\n this._word = new DataView(workingBytes.buffer).getUint32(0)\n this._bitsAvailable = availableBytes * 8\n this._bytesAvailable -= availableBytes\n }\n\n skipBits (count) {\n if (this._bitsAvailable > count) {\n this._word <<= count\n this._bitsAvailable -= count\n } else {\n count -= this._bitsAvailable\n const skipBytes = Math.floor(count / 8)\n count -= (skipBytes * 8)\n this._bytesAvailable -= skipBytes\n this._loadWord()\n this._word <<= count\n this._bitsAvailable -= count\n }\n }\n\n readBits (size) {\n if (size > 32) {\n throw new Error('Cannot read more than 32 bits')\n }\n\n let bits = Math.min(this._bitsAvailable, size)\n const val = this._word >>> (32 - bits)\n\n this._bitsAvailable -= bits\n if (this._bitsAvailable > 0) {\n this._word <<= bits\n } else if (this._bytesAvailable > 0) {\n this._loadWord()\n }\n\n bits = size - bits\n if (bits > 0 && this._bitsAvailable) {\n return (val << bits) | this.readBits(bits)\n }\n return val\n }\n\n skipLZ () {\n let leadingZeroCount\n for (\n leadingZeroCount = 0;\n leadingZeroCount < this._bitsAvailable;\n ++leadingZeroCount\n ) {\n if ((this._word & (0x80000000 >>> leadingZeroCount)) !== 0) {\n this._word <<= leadingZeroCount\n this._bitsAvailable -= leadingZeroCount\n return leadingZeroCount\n }\n }\n this._loadWord()\n return leadingZeroCount + this.skipLZ()\n }\n\n skipUEG () {\n this.skipBits(1 + this.skipLZ())\n }\n\n readUEG () {\n const clz = this.skipLZ()\n return this.readBits(clz + 1) - 1\n }\n\n readEG () {\n const val = this.readUEG()\n if (1 & val) {\n return (1 + val) >>> 1\n }\n return -1 * (val >>> 1)\n }\n\n readBool () {\n return this.readBits(1) === 1\n }\n\n readUByte () {\n return this.readBits(8)\n }\n\n skipScalingList (count) {\n let lastScale = 8\n let nextScale = 8\n let deltaScale\n for (let j = 0; j < count; j++) {\n if (nextScale !== 0) {\n deltaScale = this.readEG()\n nextScale = (lastScale + deltaScale + 256) % 256\n }\n lastScale = nextScale === 0 ? lastScale : nextScale\n }\n }\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","export class Logger {\n constructor (name) {\n this.name = name || ''\n this._prefix = `[${this.name}]`\n }\n\n warn (...args) {\n if (Logger.disabled) return\n console.warn(this._prefix, ...args)\n }\n\n static disabled = true\n\n static enable () {\n Logger.disabled = false\n }\n\n static disable () {\n Logger.disabled = true\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","export class UTF8 {\n /**\n *\n * @param {Uint8Array} uint8array\n * @return {string}\n */\n static decode (uint8array) {\n const out = []\n const input = uint8array\n let i = 0\n const length = uint8array.length\n\n while (i < length) {\n if (input[i] < 0x80) {\n out.push(String.fromCharCode(input[i]))\n ++i\n continue\n } else if (input[i] < 0xC0) {\n // fallthrough\n } else if (input[i] < 0xE0) {\n if (UTF8._checkContinuation(input, i, 1)) {\n const ucs4 = (input[i] & 0x1F) << 6 | (input[i + 1] & 0x3F)\n if (ucs4 >= 0x80) {\n out.push(String.fromCharCode(ucs4 & 0xFFFF))\n i += 2\n continue\n }\n }\n } else if (input[i] < 0xF0) {\n if (UTF8._checkContinuation(input, i, 2)) {\n const ucs4 = (input[i] & 0xF) << 12 | (input[i + 1] & 0x3F) << 6 | input[i + 2] & 0x3F\n if (ucs4 >= 0x800 && (ucs4 & 0xF800) !== 0xD800) {\n out.push(String.fromCharCode(ucs4 & 0xFFFF))\n i += 3\n continue\n }\n }\n } else if (input[i] < 0xF8) {\n if (UTF8._checkContinuation(input, i, 3)) {\n let ucs4 = (input[i] & 0x7) << 18 | (input[i + 1] & 0x3F) << 12 |\n (input[i + 2] & 0x3F) << 6 | (input[i + 3] & 0x3F)\n if (ucs4 > 0x10000 && ucs4 < 0x110000) {\n ucs4 -= 0x10000\n out.push(String.fromCharCode((ucs4 >>> 10) | 0xD800))\n out.push(String.fromCharCode((ucs4 & 0x3FF) | 0xDC00))\n i += 4\n continue\n }\n }\n }\n out.push(String.fromCharCode(0xFFFD))\n ++i\n }\n\n return out.join('')\n }\n\n static _checkContinuation (uint8array, start, checkLength) {\n let array = uint8array\n if (start + checkLength < array.length) {\n while (checkLength--) {\n if ((array[++start] & 0xC0) !== 0x80) {\n return false\n }\n }\n return true\n } else {\n return false\n }\n }\n}\n","export const isBrowser = typeof window !== 'undefined'\n\nconst ua = isBrowser && navigator.userAgent.toLocaleLowerCase()\n\nexport const isSafari = isBrowser && /^((?!chrome|android).)*safari/.test(ua)\nexport const isFirefox = isBrowser && ua.includes('firefox')\nexport const isAndroid = isBrowser && ua.includes('android')\n","/* c8 ignore next 4 */\nexport { ExpGolomb } from './exp-golomb'\nexport { Logger } from './logger'\nexport { UTF8 } from './utf8'\nexport * from './env'\n\nexport function concatUint8Array (...arr) {\n arr = arr.filter(Boolean)\n const data = new Uint8Array(arr.reduce((p, c) => p + c.byteLength, 0))\n let prevLen = 0\n arr.forEach((d) => {\n data.set(d, prevLen)\n prevLen += d.byteLength\n })\n return data\n}\n\nexport const MAX_SIZE = Math.pow(2, 32)\n\nexport function readBig16 (data, i = 0) {\n return (data[i] << 8) + (data[i + 1] || 0)\n}\n\nexport function readBig24 (data, i = 0) {\n return (data[i] << 16) + (data[i + 1] << 8) + (data[i + 2] || 0)\n}\n\nexport function readBig32 (data, i = 0) {\n return (data[i] << 24 >>> 0) + (data[i + 1] << 16) + (data[i + 2] << 8) + (data[i + 3] || 0)\n}\n\nexport function readBig64 (data, i = 0) {\n return readBig32(data, i) * MAX_SIZE + readBig32(data, i + 4)\n}\n\nexport function getAvcCodec (codecs) {\n let codec = 'avc1.'\n let h\n for (let i = 0; i < 3; i++) {\n h = codecs[i].toString(16)\n if (h.length < 2) h = `0${h}`\n codec += h\n }\n return codec\n}\n","import { readBig32 } from '../utils'\n\nexport class NALu {\n static parseAnnexB (data) {\n const len = data.length\n let start = 2\n let end = 0\n while (data[start] != null && data[start] !== 1) {\n start++\n }\n start++\n end = start + 2\n\n if (end >= len) return []\n\n const units = []\n\n while (end < len) {\n switch (data[end]) {\n case 0:\n if (data[end - 1] !== 0) {\n end += 2\n break\n } else if (data[end - 2] !== 0) {\n end++\n break\n }\n\n if (start !== end - 2) units.push(data.subarray(start, end - 2))\n\n do {\n end++\n } while (data[end] !== 1 && end < len)\n start = end + 1\n end = start + 2\n break\n case 1:\n if (data[end - 1] !== 0 || data[end - 2] !== 0) {\n end += 3\n break\n }\n if (start !== end - 2) units.push(data.subarray(start, end - 2))\n start = end + 1\n end = start + 2\n break\n default:\n end += 3\n break\n }\n }\n\n if (start < len) units.push(data.subarray(start))\n\n return units\n }\n\n static parseAvcC (data, size = 4) {\n if (data.length < 4) return\n const dataLen = data.length\n const units = []\n\n let offset = 0\n let length\n while ((offset + size) < dataLen) {\n length = readBig32(data, offset)\n if (size === 3) length >>>= 8\n offset += size\n\n if (!length) continue\n if (offset + length > dataLen) {\n break\n }\n\n units.push(data.subarray(offset, offset + length))\n offset += length\n }\n\n return units\n }\n\n static parseSEI (unit) {\n const len = unit.length\n let i = 1\n let type = 0\n let size = 0\n let uuid = ''\n\n while (unit[i] === 255) {\n type += 255\n i++\n }\n type += unit[i++]\n\n while (unit[i] === 255) {\n size += 255\n i++\n }\n size += unit[i++]\n\n if (type === 5 && len > i + 16) {\n for (let j = 0; j < 16; j++) {\n uuid += unit[i].toString(16)\n i++\n }\n }\n\n return {\n payload: unit.subarray(i), type, size, uuid\n }\n }\n\n static removeEPB (uint) {\n const length = uint.byteLength\n const emulationPreventionBytesPositions = []\n let i = 1\n\n while (i < length - 2) {\n if (uint[i] === 0 && uint[i + 1] === 0 && uint[i + 2] === 0x03) {\n emulationPreventionBytesPositions.push(i + 2)\n i += 2\n } else {\n i++\n }\n }\n\n if (!emulationPreventionBytesPositions.length) return uint\n\n const newLength = length - emulationPreventionBytesPositions.length\n const newData = new Uint8Array(newLength)\n\n let sourceIndex = 0\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === emulationPreventionBytesPositions[0]) {\n sourceIndex++\n emulationPreventionBytesPositions.shift()\n }\n newData[i] = uint[sourceIndex]\n }\n\n return newData\n }\n}\n","import { NALu } from './nalu'\nimport { ExpGolomb, getAvcCodec } from '../utils'\n\nexport class AVC {\n static parseAVCDecoderConfigurationRecord (data) {\n if (data.length < 7) return\n const nalUnitSize = (data[4] & 3) + 1\n\n let spsParsed\n const spsArr = []\n const ppsArr = []\n\n let offset = 6\n const spsCount = data[5] & 0x1f\n let spsSize\n for (let i = 0; i < spsCount; i++) {\n spsSize = (data[offset] << 8) | data[offset + 1]\n offset += 2\n if (!spsSize) continue\n\n const sps = data.subarray(offset, offset + spsSize)\n offset += spsSize\n spsArr.push(sps)\n\n if (!spsParsed) {\n spsParsed = AVC.parseSPS(NALu.removeEPB(sps))\n }\n }\n\n const ppsCount = data[offset]\n offset++\n let ppsSize\n for (let i = 0; i < ppsCount; i++) {\n ppsSize = (data[offset] << 8) | data[offset + 1]\n offset += 2\n if (!ppsSize) continue\n ppsArr.push(data.subarray(offset, offset + ppsSize))\n offset += ppsSize\n }\n\n return {\n sps: spsParsed,\n spsArr,\n ppsArr,\n nalUnitSize\n }\n }\n\n static parseSPS (unit) {\n const eg = new ExpGolomb(unit)\n eg.readUByte()\n\n const profileIdc = eg.readUByte()\n const profileCompatibility = eg.readUByte()\n const levelIdc = eg.readUByte()\n eg.skipUEG()\n\n let chromaFormat = 420\n if (\n profileIdc === 100 ||\n profileIdc === 110 ||\n profileIdc === 122 ||\n profileIdc === 244 ||\n profileIdc === 44 ||\n profileIdc === 83 ||\n profileIdc === 86 ||\n profileIdc === 118 ||\n profileIdc === 128 ||\n profileIdc === 138 ||\n profileIdc === 144\n ) {\n const chromaFormatIdc = eg.readUEG()\n if (chromaFormatIdc <= 3) chromaFormat = [0, 420, 422, 444][chromaFormatIdc]\n if (chromaFormatIdc === 3) eg.skipBits(1)\n eg.skipUEG()\n eg.skipUEG()\n eg.skipBits(1)\n if (eg.readBool()) {\n const scalingListCount = chromaFormatIdc !== 3 ? 8 : 12\n for (let i = 0; i < scalingListCount; i++) {\n if (eg.readBool()) {\n if (i < 6) {\n eg.skipScalingList(16)\n } else {\n eg.skipScalingList(64)\n }\n }\n }\n }\n }\n\n eg.skipUEG()\n const picOrderCntType = eg.readUEG()\n if (picOrderCntType === 0) {\n eg.readUEG()\n } else if (picOrderCntType === 1) {\n eg.skipBits(1)\n eg.skipUEG()\n eg.skipUEG()\n const numRefFramesInPicOrderCntCycle = eg.readUEG()\n for (let i = 0; i < numRefFramesInPicOrderCntCycle; i++) {\n eg.skipUEG()\n }\n }\n\n eg.skipUEG()\n eg.skipBits(1)\n const picWidthInMbsMinus1 = eg.readUEG()\n const picHeightInMapUnitsMinus1 = eg.readUEG()\n const frameMbsOnlyFlag = eg.readBits(1)\n if (frameMbsOnlyFlag === 0) eg.skipBits(1)\n eg.skipBits(1)\n\n let frameCropLeftOffset = 0\n let frameCropRightOffset = 0\n let frameCropTopOffset = 0\n let frameCropBottomOffset = 0\n\n if (eg.readBool()) {\n frameCropLeftOffset = eg.readUEG()\n frameCropRightOffset = eg.readUEG()\n frameCropTopOffset = eg.readUEG()\n frameCropBottomOffset = eg.readUEG()\n }\n\n let sarRatio\n let fixedFrame\n let fpsNum\n let fpsDen\n let fps\n if (eg.readBool()) {\n if (eg.readBool()) {\n const aspectRatioIdc = eg.readUByte()\n switch (aspectRatioIdc) {\n case 1: sarRatio = [1, 1]; break\n case 2: sarRatio = [12, 11]; break\n case 3: sarRatio = [10, 11]; break\n case 4: sarRatio = [16, 11]; break\n case 5: sarRatio = [40, 33]; break\n case 6: sarRatio = [24, 11]; break\n case 7: sarRatio = [20, 11]; break\n case 8: sarRatio = [32, 11]; break\n case 9: sarRatio = [80, 33]; break\n case 10: sarRatio = [18, 11]; break\n case 11: sarRatio = [15, 11]; break\n case 12: sarRatio = [64, 33]; break\n case 13: sarRatio = [160, 99]; break\n case 14: sarRatio = [4, 3]; break\n case 15: sarRatio = [3, 2]; break\n case 16: sarRatio = [2, 1]; break\n case 255: {\n sarRatio = [\n (eg.readUByte() << 8) | eg.readUByte(),\n (eg.readUByte() << 8) | eg.readUByte()\n ]\n break\n }\n }\n }\n\n if (eg.readBool()) eg.readBool()\n\n if (eg.readBool()) {\n eg.readBits(4)\n if (eg.readBool()) eg.readBits(24)\n }\n\n if (eg.readBool()) {\n eg.readUEG()\n eg.readUEG()\n }\n\n if (eg.readBool()) {\n const numUnitsInTick = eg.readBits(32)\n const timeScale = eg.readBits(32)\n fixedFrame = eg.readBool()\n\n fpsNum = timeScale\n fpsDen = numUnitsInTick * 2\n fps = fpsNum / fpsDen\n }\n }\n\n return {\n codec: getAvcCodec(unit.subarray(1, 4)),\n profileIdc,\n profileCompatibility,\n levelIdc,\n chromaFormat,\n width: Math.ceil(\n (picWidthInMbsMinus1 + 1) * 16 -\n 2 * (frameCropLeftOffset + frameCropRightOffset)\n ),\n height:\n (2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16 -\n (frameMbsOnlyFlag ? 2 : 4) *\n (frameCropTopOffset + frameCropBottomOffset),\n sarRatio,\n fpsNum,\n fpsDen,\n fps,\n fixedFrame\n }\n }\n}\n","import { isFirefox, isAndroid } from '../utils'\n\nexport class AAC {\n static FREQ = [\n 96000,\n 88200,\n 64000,\n 48000,\n 44100,\n 32000,\n 24000,\n 22050,\n 16000,\n 12000,\n 11025,\n 8000,\n 7350\n ];\n\n static getRateIndexByRate (rate) {\n return AAC.FREQ.indexOf(rate)\n }\n\n static parseADTS (data, pts) {\n const len = data.length\n let i = 0\n\n while ((i + 2) < len) {\n if (data[i] === 0xff && (data[i + 1] & 0xf6) === 0xf0) {\n break\n }\n i++\n }\n\n if (i >= len) return\n\n const skip = i\n const frames = []\n const samplingFrequencyIndex = (data[i + 2] & 0x3c) >>> 2\n const sampleRate = AAC.FREQ[samplingFrequencyIndex]\n if (!sampleRate) throw new Error(`Invalid sampling index: ${samplingFrequencyIndex}`)\n const objectType = ((data[i + 2] & 0xc0) >>> 6) + 1\n const channelCount = ((data[i + 2] & 1) << 2) | ((data[i + 3] & 0xc0) >>> 6)\n const { config, codec } = AAC._getConfig(samplingFrequencyIndex, channelCount, objectType)\n\n let protectionSkipBytes\n let frameLength\n let frameIndex = 0\n const duration = AAC.getFrameDuration(sampleRate)\n\n while ((i + 7) < len) {\n if ((data[i] !== 0xff) || (data[i + 1] & 0xF6) !== 0xf0) {\n i++\n continue\n }\n\n frameLength = ((data[i + 3] & 0x03) << 11) | (data[i + 4] << 3) | ((data[i + 5] & 0xe0) >> 5)\n if ((len - i) < frameLength) break\n\n protectionSkipBytes = (~data[i + 1] & 0x01) * 2\n frames.push({\n pts: pts + frameIndex * duration,\n data: data.subarray(i + 7 + protectionSkipBytes, i + frameLength)\n })\n\n frameIndex++\n i += frameLength\n }\n\n return {\n skip,\n remaining: i >= len ? undefined : data.subarray(i),\n frames,\n samplingFrequencyIndex,\n sampleRate,\n objectType,\n channelCount,\n codec,\n config,\n originCodec: `mp4a.40.${objectType}`\n }\n }\n\n static parseAudioSpecificConfig (data) {\n if (!data.length) return\n const objectType = data[0] >>> 3\n const samplingFrequencyIndex = ((data[0] & 0x07) << 1) | (data[1] >>> 7)\n const channelCount = (data[1] & 0x78) >>> 3\n const sampleRate = AAC.FREQ[samplingFrequencyIndex]\n if (!sampleRate) throw new Error(`Invalid sampling index: ${samplingFrequencyIndex}`)\n const { config, codec } = AAC._getConfig(samplingFrequencyIndex, channelCount, objectType)\n\n return {\n samplingFrequencyIndex,\n sampleRate,\n objectType,\n channelCount,\n config,\n codec,\n originCodec: `mp4a.40.${objectType}`\n }\n }\n\n static getFrameDuration (rate, timescale = 90000) {\n return 1024 * timescale / rate\n }\n\n static _getConfig (samplingIndex, channelCount, originObjectType) {\n const config = []\n let objectType\n let extensionSamplingIndex\n if (isFirefox) {\n if (samplingIndex >= 6) { // use SBR (HE-AAC)\n objectType = 5\n extensionSamplingIndex = samplingIndex - 3\n } else { // use LC-AAC\n objectType = 2\n extensionSamplingIndex = samplingIndex\n }\n } else if (isAndroid) { // use LC-AAC\n objectType = 2\n extensionSamplingIndex = samplingIndex\n } else { // use HE-AAC\n objectType = originObjectType\n extensionSamplingIndex = samplingIndex\n\n if (samplingIndex >= 6) {\n extensionSamplingIndex = samplingIndex - 3\n } else if (channelCount === 1) { // Mono channel, use LC-AAC\n objectType = 2\n extensionSamplingIndex = samplingIndex\n }\n }\n\n config[0] = objectType << 3\n config[0] |= (samplingIndex & 0x0e) >> 1\n config[1] = (samplingIndex & 0x01) << 7\n config[1] |= channelCount << 3\n if (objectType === 5) {\n config[1] |= ((extensionSamplingIndex & 0x0e) >> 1)\n config[2] = (extensionSamplingIndex & 0x01) << 7\n config[2] |= (2 << 2)\n config[3] = 0\n }\n\n return {\n config,\n codec: `mp4a.40.${objectType}`\n }\n }\n\n /* c8 ignore next 65 */\n static getSilentFrame (codec, channelCount) {\n switch (codec) {\n case 'mp4a.40.2':\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80])\n } if (channelCount === 2) {\n return new Uint8Array([\n 0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80\n ])\n } if (channelCount === 3) {\n return new Uint8Array([\n 0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64,\n 0x00, 0x8e\n ])\n } if (channelCount === 4) {\n return new Uint8Array([\n 0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64,\n 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38\n ])\n } if (channelCount === 5) {\n return new Uint8Array([\n 0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64,\n 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38\n ])\n } if (channelCount === 6) {\n return new Uint8Array([\n 0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64,\n 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2,\n 0x00, 0x20, 0x08, 0xe0\n ])\n }\n break\n default:\n if (channelCount === 1) {\n return new Uint8Array([\n 0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0,\n 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5e\n ])\n } if (channelCount === 2) {\n return new Uint8Array([\n 0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0,\n 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5e\n ])\n } if (channelCount === 3) {\n return new Uint8Array([\n 0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0,\n 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5e\n ])\n }\n break\n }\n }\n}\n","import { NALu } from './nalu'\nimport { ExpGolomb } from '../utils'\n\nexport class HEVC {\n static parseHEVCDecoderConfigurationRecord (data) {\n if (data.length < 23) return\n const nalUnitSize = (data[21] & 3) + 1\n\n let spsParsed\n const spsArr = []\n const ppsArr = []\n const vpsArr = []\n\n let offset = 23\n const numOfArrays = data[22]\n\n let nalUnitType\n let numNalus\n let nalSize\n for (let i = 0; i < numOfArrays; i++) {\n nalUnitType = data[offset] & 0x3f\n numNalus = (data[offset + 1] << 8) | data[offset + 2]\n\n offset += 3\n\n for (let j = 0; j < numNalus; j++) {\n nalSize = (data[offset] << 8) | data[offset + 1]\n offset += 2\n if (!nalSize) continue\n switch (nalUnitType) {\n case 32:\n vpsArr.push(data.subarray(offset, offset + nalSize))\n break\n case 33: {\n const sps = data.subarray(offset, offset + nalSize)\n if (!spsParsed) spsParsed = HEVC.parseSPS(NALu.removeEPB(sps))\n spsArr.push(sps)\n }\n break\n case 34:\n ppsArr.push(data.subarray(offset, offset + nalSize))\n break\n }\n\n offset += nalSize\n }\n }\n\n return {\n sps: spsParsed,\n spsArr,\n ppsArr,\n vpsArr,\n nalUnitSize\n }\n }\n\n static parseSPS (unit) {\n const eg = new ExpGolomb(unit)\n eg.readUByte()\n eg.readUByte()\n\n eg.readBits(4)\n const spsMaxSubLayersMinus1 = eg.readBits(3)\n eg.readBits(1)\n\n const tierLevel = this._parseProfileTierLevel(eg, spsMaxSubLayersMinus1)\n\n eg.readUEG() // sps_seq_parameter_set_id\n\n const chromaFormatIdc = eg.readUEG()\n let chromaFormat = 420\n if (chromaFormatIdc <= 3) chromaFormat = [0, 420, 422, 444][chromaFormatIdc]\n\n let separateColourPlaneFlag = 0\n if (chromaFormatIdc === 3) {\n separateColourPlaneFlag = eg.readBits(1)\n }\n\n let width = eg.readUEG() // pic_width_in_luma_samples\n let height = eg.readUEG() // pic_height_in_luma_samples\n\n const conformanceWindowFlag = eg.readBits(1)\n\n let confWinLeftOffset\n let confWinRightOffset\n let confWinTopOffset\n let confWinBottomOffset\n if (conformanceWindowFlag === 1) {\n confWinLeftOffset = eg.readUEG() // conf_win_left_offset\n confWinRightOffset = eg.readUEG() // conf_win_right_offset\n confWinTopOffset = eg.readUEG() // conf_win_top_offset\n confWinBottomOffset = eg.readUEG() // conf_win_bottom_offset\n }\n\n const bitDepthLumaMinus8 = eg.readUEG() // bit_depth_luma_minus8\n const bitDepthChromaMinus8 = eg.readUEG() // bit_depth_chroma_minus8\n\n if (conformanceWindowFlag === 1) {\n const subWidthC = (((chromaFormatIdc === 1) || (chromaFormatIdc === 2)) && (separateColourPlaneFlag === 0)) ? 2 : 1\n const subHeightC = ((chromaFormatIdc === 1) && (separateColourPlaneFlag === 0)) ? 2 : 1\n width -= (subWidthC * (confWinRightOffset + confWinLeftOffset))\n height -= (subHeightC * (confWinBottomOffset + confWinTopOffset))\n }\n\n return {\n codec: 'hev1.1.6.L93.B0',\n width,\n height,\n chromaFormat,\n bitDepthLumaMinus8,\n bitDepthChromaMinus8,\n generalProfileSpace: tierLevel.generalProfileSpace,\n generalTierFlag: tierLevel.generalTierFlag,\n generalProfileIdc: tierLevel.generalProfileIdc,\n generalLevelIdc: tierLevel.generalLevelIdc\n }\n }\n\n static _parseProfileTierLevel (eg, maxSubLayersMinus1, profilePresentFlag = 1) {\n let generalProfileSpace\n let generalTierFlag\n let generalProfileIdc\n\n if (profilePresentFlag) {\n generalProfileSpace = eg.readBits(2)\n generalTierFlag = eg.readBits(1)\n generalProfileIdc = eg.readBits(5)\n }\n\n eg.readBits(32)\n\n eg.readBits(1) // general_progressive_source_flag\n eg.readBits(1) // general_interlaced_source_flag\n eg.readBits(1) // general_non_packed_constraint_flag\n eg.readBits(1) // general_frame_only_constraint_flag\n\n eg.readBits(16)\n eg.readBits(16)\n eg.readBits(12)\n\n const generalLevelIdc = eg.readUByte()\n\n const subLayerProfilePresentFlag = []\n const subLayerLevelPresentFlag = []\n for (let j = 0; j < maxSubLayersMinus1; j++) {\n subLayerProfilePresentFlag[j] = eg.readBits(1)\n subLayerLevelPresentFlag[j] = eg.readBits(1)\n }\n\n if (maxSubLayersMinus1 > 0) {\n eg.readBits((8 - maxSubLayersMinus1) * 2)\n }\n\n for (let i = 0; i < maxSubLayersMinus1; i++) {\n if (subLayerProfilePresentFlag[i] !== 0) {\n eg.readBits(2)\n eg.readBits(1)\n eg.readBits(5)\n\n eg.readBits(16)\n eg.readBits(16)\n\n eg.readBits(4)\n\n eg.readBits(16)\n eg.readBits(16)\n eg.readBits(12)\n }\n if (subLayerLevelPresentFlag[i] !== 0) {\n eg.readBits(8)\n }\n }\n\n return {\n generalProfileSpace,\n generalTierFlag,\n generalProfileIdc,\n generalLevelIdc\n }\n }\n}\n","import { AudioCodecType, AudioSample, WarningType } from '../model'\nimport { AAC } from '../codec'\nimport { isSafari } from '../utils'\n\nconst LARGE_AV_FIRST_FRAME_GAP = 500 // ms\nconst AUDIO_GAP_OVERLAP_THRESHOLD_COUNT = 3\nconst MAX_SILENT_FRAME_DURATION = 1000 // ms\nconst AUDIO_EXCETION_LOG_EMIT_DURATION = 5000 // 5s\nconst MAX_VIDEO_FRAME_DURATION = 1000 // ms\nconst MAX_DTS_DELTA_WITH_NEXT_CHUNK = 200 // ms\nconst VIDEO_EXCETION_LOG_EMIT_DURATION = 5000 // 5s\nconst TRACK_BREACKED_CHECK_TIME = 5\n\nexport class FlvFixer {\n constructor (videoTrack, audioTrack, metadataTrack) {\n this.videoTrack = videoTrack\n this.audioTrack = audioTrack\n this.metadataTrack = metadataTrack\n\n this._baseDts = -1\n this._baseDtsInited = false\n\n this._audioNextPts = undefined\n this._videoNextDts = undefined\n\n this._audioTimestampBreak = 0\n this._videoTimestampBreak = 0\n\n this._lastAudioExceptionGapDot = -Infinity\n this._lastAudioExceptionOverlapDot = -Infinity\n this._lastAudioExceptionLargeGapDot = -Infinity\n\n this._lastVideoExceptionLargeGapDot = -Infinity\n this._lastVideoExceptionChunkFirstDtsDot = -Infinity\n }\n\n /**\n * @param {number} startTime 点播seek到的时间点\n * @param {boolean} discontinuity 是否换流\n * @param {boolean} contiguous 前后chunk时间戳是否连续\n */\n fix (startTime = 0, discontinuity = false, contiguous = true) {\n startTime = Math.round(startTime * 1000)\n const videoTrack = this.videoTrack\n const audioTrack = this.audioTrack\n\n if (discontinuity || !contiguous) {\n this._videoLastSample = null\n this._audioNextPts = undefined\n this._videoNextDts = undefined\n this._audioTimestampBreak = 0\n this._videoTimestampBreak = 0\n this._lastAudioExceptionGapDot = -Infinity\n this._lastAudioExceptionOverlapDot = -Infinity\n this._lastAudioExceptionLargeGapDot = -Infinity\n this._lastVideoExceptionLargeGapDot = -Infinity\n this._lastVideoExceptionChunkFirstDtsDot = -Infinity\n }\n\n if (discontinuity && !contiguous) {\n this._baseDtsInited = false\n }\n\n if (!this._baseDtsInited) {\n this._calculateBaseDts(audioTrack, videoTrack)\n }\n\n if (!this._baseDtsInited) return\n\n if (!contiguous && startTime) {\n this._audioNextPts = this._videoNextDts = startTime\n }\n\n this._resetBaseDtsWhenStreamBreaked()\n\n this._fixAudio(audioTrack)\n\n this._fixVideo(videoTrack)\n\n if (this.metadataTrack.exist()) {\n const timescale = this.metadataTrack.timescale\n this.metadataTrack.seiSamples.forEach(s => {\n s.pts = s.originPts - this._baseDts\n s.time = Math.max(0, s.pts) / timescale\n })\n this.metadataTrack.flvScriptSamples.forEach(s => {\n s.pts = s.originPts - this._baseDts\n s.time = Math.max(0, s.pts) / timescale\n })\n }\n\n if (videoTrack.samples.length) {\n videoTrack.baseMediaDecodeTime = videoTrack.samples[0].dts\n }\n if (audioTrack.samples.length) {\n audioTrack.baseMediaDecodeTime = audioTrack.samples[0].pts * audioTrack.timescale / 1000\n }\n }\n\n _fixVideo (videoTrack) {\n let samples = videoTrack.samples\n\n if (!samples.length) return\n\n samples.forEach(x => {\n x.dts -= this._baseDts\n x.pts -= this._baseDts\n })\n\n let refSampleDurationInt\n if (videoTrack.fpsNum && videoTrack.fpsDen) {\n refSampleDurationInt = videoTrack.timescale * (videoTrack.fpsDen / videoTrack.fpsNum)\n } else {\n let first = videoTrack.samples[0]\n let last = videoTrack.samples[samples.length - 1]\n refSampleDurationInt = Math.floor((last.dts - first.dts) / (samples.length - 1))\n }\n\n let lastSample = samples.pop()\n\n if (this._videoLastSample) {\n samples.unshift(this._videoLastSample)\n }\n\n this._videoLastSample = lastSample\n\n if (!samples.length) return\n\n if (this._videoNextDts === undefined) {\n let samp0 = samples[0]\n this._videoNextDts = samp0.dts\n }\n\n let len = samples.length\n let sampleDuration = 0\n let firstSample = samples[0]\n let vDelta = this._videoNextDts - firstSample.dts\n\n if (Math.abs(vDelta) > MAX_DTS_DELTA_WITH_NEXT_CHUNK) {\n // emit large delta of first sample with expect\n if (Math.abs(firstSample.dts - this._lastVideoExceptionChunkFirstDtsDot) > VIDEO_EXCETION_LOG_EMIT_DURATION) {\n this._lastVideoExceptionChunkFirstDtsDot = firstSample.dts\n\n videoTrack.warnings.push({\n type: WarningType.LARGE_VIDEO_GAP_BETWEEN_CHUNK,\n nextDts: this._videoNextDts,\n firstSampleDts: firstSample.dts,\n nextSampleDts: samples[1]?.dts,\n sampleDuration: vDelta\n })\n }\n\n // only video breaked\n if (this._videoTimestampBreak >= TRACK_BREACKED_CHECK_TIME) {\n this._videoNextDts = firstSample.dts\n this._videoTimestampBreak = 0\n } else {\n // resolve first frame only\n firstSample.dts += vDelta\n firstSample.pts += vDelta\n }\n }\n\n for (let i = 0; i < len; i++) {\n let dts = samples[i].dts\n let nextSample = samples[i + 1]\n\n if (i < len - 1) {\n sampleDuration = nextSample.dts - dts\n } else if (lastSample) {\n sampleDuration = lastSample.dts - dts\n } else {\n sampleDuration = refSampleDurationInt\n }\n\n if (sampleDuration > MAX_VIDEO_FRAME_DURATION || sampleDuration < 0) {\n this._videoTimestampBreak++\n // emit stream breaked\n if (Math.abs(dts - this._lastVideoExceptionLargeGapDot) > VIDEO_EXCETION_LOG_EMIT_DURATION) {\n this._lastVideoExceptionLargeGapDot = dts\n videoTrack.warnings.push({\n type: WarningType.LARGE_VIDEO_GAP,\n time: dts / videoTrack.timescale,\n dts,\n originDts: samples[i].originDts,\n nextDts: this._videoNextDts,\n sampleDuration,\n refSampleDuration: refSampleDurationInt\n })\n }\n\n sampleDuration = refSampleDurationInt\n }\n\n samples[i].duration = sampleDuration\n this._videoNextDts += sampleDuration\n }\n }\n\n _fixAudio (audioTrack) {\n let samples = audioTrack.samples\n if (!samples.length) return\n\n // offset origin timestamp\n samples.forEach(x => {\n x.dts = x.pts -= this._baseDts\n })\n\n this._doFixAudioInternal(audioTrack, samples, 1000)\n }\n\n _calculateBaseDts (audioTrack, videoTrack) {\n let audioSamps = audioTrack.samples\n let videoSamps = videoTrack.samples\n\n if (!audioSamps.length && !videoSamps.length) {\n return false\n }\n\n let audioBasePts = Infinity\n let videoBaseDts = Infinity\n\n if (audioSamps.length) {\n audioTrack.baseDts = audioBasePts = audioSamps[0].pts\n }\n\n if (videoSamps.length) {\n videoTrack.baseDts = videoBaseDts = videoSamps[0].dts\n }\n\n this._baseDts = Math.min(audioBasePts, videoBaseDts)\n\n let delta = videoBaseDts - audioBasePts\n\n if (Number.isFinite(delta) && Math.abs(delta) > LARGE_AV_FIRST_FRAME_GAP) {\n videoTrack.warnings.push({\n type: WarningType.LARGE_AV_SHIFT,\n videoBaseDts,\n audioBasePts,\n baseDts: this._baseDts,\n delta\n })\n }\n\n this._baseDtsInited = true\n return true\n }\n\n _resetBaseDtsWhenStreamBreaked () {\n if (this._baseDtsInited && this._videoTimestampBreak && this._audioTimestampBreak) {\n /**\n * timestamp breaked\n * _audioNextDts\n * ---------------------|\n * (_baseDts) _videoNextDts\n * ----------------------|\n * <----------------\n * nextVideo.dts\n * ----------------------------------------|\n * nextAudio.dts\n * ---------------------------------------|\n */\n\n // calc baseDts base on new samples\n let calc = this._calculateBaseDts(this.audioTrack, this.videoTrack)\n\n if (!calc) return\n\n // consider the expect dts for next frame\n this._baseDts -= Math.min(this._audioNextPts, this._videoNextDts)\n this._videoLastSample = null\n this._videoTimestampBreak = 0\n this._audioTimestampBreak = 0\n }\n }\n\n _doFixAudioInternal (audioTrack, samples, timescale) {\n if (!audioTrack.sampleDuration) {\n audioTrack.sampleDuration = audioTrack.codecType === AudioCodecType.AAC\n ? AAC.getFrameDuration(audioTrack.timescale, timescale)\n : this._getG711Duration(audioTrack)\n }\n const refSampleDuration = audioTrack.sampleDuration\n\n const sampleDurationInSampleRate = audioTrack.codecType === AudioCodecType.AAC ? 1024 : refSampleDuration * audioTrack.timescale / 1000\n\n if (this._audioNextPts === undefined) {\n let samp0 = samples[0]\n this._audioNextPts = samp0.pts\n }\n\n for (let i = 0; i < samples.length; i++) {\n let nextPts = this._audioNextPts\n let sample = samples[i]\n let delta = sample.pts - nextPts\n\n // only audio breaked\n if (i === 0 && this._audioTimestampBreak >= TRACK_BREACKED_CHECK_TIME) {\n nextPts = this._audioNextPts = sample.dts\n delta = 0\n this._audioTimestampBreak = 0\n }\n\n // fill frames\n // delta >= 3 * refSampleDurationInt\n // delta <= 500s\n if (!this._audioTimestampBreak && delta >= AUDIO_GAP_OVERLAP_THRESHOLD_COUNT * refSampleDuration && delta <= MAX_SILENT_FRAME_DURATION && !isSafari) {\n const silentFrame = this._getSilentFrame(audioTrack) || samples[0].data.subarray()\n const count = Math.floor(delta / refSampleDuration)\n\n if (Math.abs(sample.pts - this._lastAudioExceptionGapDot) > AUDIO_EXCETION_LOG_EMIT_DURATION) {\n this._lastAudioExceptionGapDot = sample.pts\n audioTrack.warnings.push({\n type: WarningType.AUDIO_FILLED,\n pts: sample.pts,\n originPts: sample.originPts,\n count,\n nextPts,\n refSampleDuration\n })\n }\n\n for (let j = 0; j < count; j++) {\n const silentSample = new AudioSample(Math.floor(this._audioNextPts + refSampleDuration) - Math.floor(this._audioNextPts), silentFrame, sampleDurationInSampleRate)\n silentSample.originPts = Math.floor(this._baseDts + nextPts)\n samples.splice(i, 0, silentSample)\n this._audioNextPts += refSampleDuration\n i++\n }\n\n i--\n // delta <= -3 * refSampleDurationInt\n // delta >= -500ms\n } else if (delta <= -AUDIO_GAP_OVERLAP_THRESHOLD_COUNT * refSampleDuration && delta >= -1 * MAX_SILENT_FRAME_DURATION) {\n // need discard frames\n if (Math.abs(sample.pts - this._lastAudioExceptionOverlapDot) > AUDIO_EXCETION_LOG_EMIT_DURATION) {\n this._lastAudioExceptionOverlapDot = sample.pts\n\n audioTrack.warnings.push({\n type: WarningType.AUDIO_DROPPED,\n pts: sample.pts,\n originPts: sample.originPts,\n nextPts,\n refSampleDuration\n })\n }\n samples.splice(i, 1)\n i--\n } else {\n if (Math.abs(delta) > MAX_SILENT_FRAME_DURATION) {\n this._audioTimestampBreak++\n\n if (Math.abs(sample.pts - this._lastAudioExceptionLargeGapDot) > AUDIO_EXCETION_LOG_EMIT_DURATION) {\n this._lastAudioExceptionLargeGapDot = sample.pts\n audioTrack.warnings.push({\n type: WarningType.LARGE_AUDIO_GAP,\n time: sample.pts / 1000,\n pts: sample.pts,\n originPts: sample.originPts,\n nextPts,\n sampleDuration: delta,\n refSampleDuration\n })\n }\n }\n\n sample.dts = sample.pts = nextPts\n sample.duration = sampleDurationInSampleRate\n this._audioNextPts += refSampleDuration\n }\n }\n }\n\n _getG711Duration (track) {\n const { sampleSize, channelCount, sampleRate } = track\n const samp0 = track.samples[0]\n if (!samp0) return\n return samp0.data.byteLength * 2 / channelCount / (sampleSize / 8) / sampleRate * 1000\n }\n\n _getSilentFrame (track) {\n if (track.codecType === AudioCodecType.AAC) return AAC.getSilentFrame(track.codec, track.channelCount)\n return new Uint8Array(8 * track.sampleDuration * track.channelCount)\n }\n}\n","import { UTF8 } from '../utils'\n\nexport class AMF {\n static parse (data) {\n if (data.length < 3) return\n\n const ret = {}\n const name = AMF._parseValue(new DataView(data.buffer, data.byteOffset, data.byteLength))\n const value = AMF._parseValue(new DataView(data.buffer, data.byteOffset + name.size, data.byteLength - name.size))\n ret[name.data] = value.data\n\n return ret\n }\n\n static _parseValue (view) {\n const dataLen = view.byteLength\n let type = view.getUint8(0)\n let offset = 1\n let isEnd = false\n let value\n\n switch (type) {\n case 0: // Number(Double) type\n value = view.getFloat64(1)\n offset += 8\n break\n case 1: { // Boolean type\n value = !!view.getUint8(1)\n offset += 1\n break\n }\n case 2: { // String type\n const { data, size } = AMF._parseString(new DataView(view.buffer, view.byteOffset + offset, view.byteLength - offset))\n value = data\n offset += size\n }\n break\n case 3: { // Object(s) type\n value = {}\n let terminal = 0\n if ((view.getUint32(dataLen - 4) & 0x00FFFFFF) === 9) {\n terminal = 3\n }\n while (offset < dataLen - 4) { // 4 === type(UI8) + ScriptDataObjectEnd(UI24)\n const { size, data, isEnd } = AMF._parseObject(new DataView(view.buffer, view.byteOffset + offset, view.byteLength - offset - terminal))\n if (isEnd) break\n value[data.name] = data.value\n offset += size\n }\n if (offset <= dataLen - 3) {\n let marker = view.getUint32(offset - 1) & 0x00FFFFFF\n if (marker === 9) offset += 3\n }\n }\n break\n case 8: { // ECMA array type (Mixed array)\n value = {}\n offset += 4 // ECMAArrayLength(UI32)\n let terminal = 0 // workaround for malformed MixedArrays which has missing ScriptDataObjectEnd\n if ((view.getUint32(dataLen - 4) & 0x00FFFFFF) === 9) {\n terminal = 3\n }\n while (offset < dataLen - 8) { // 8 === type(UI8) + ECMAArrayLength(UI32) + ScriptDataVariableEnd(UI24)\n const { size, data, isEnd } = AMF._parseObject(new DataView(view.buffer, view.byteOffset + offset, view.byteLength - offset - terminal))\n if (isEnd) break\n value[data.name] = data.value\n offset += size\n }\n if (offset <= dataLen - 3) {\n let marker = view.getUint32(offset - 1) & 0x00FFFFFF\n if (marker === 9) {\n offset += 3\n }\n }\n }\n break\n case 9: // ScriptDataObjectEnd\n value = undefined\n offset = 1\n isEnd = true\n break\n case 10: { // Strict array type\n value = []\n const strictArrayLength = view.getUint32(1)\n offset += 4\n for (let i = 0; i < strictArrayLength; i++) {\n const { data, size } = AMF._parseValue(new DataView(view.buffer, view.byteOffset + offset, view.byteLength - offset))\n value.push(data)\n offset += size\n }\n }\n break\n case 11: { // Date type\n const timestamp = view.getFloat64(offset) + view.getInt16(offset + 8) * 60000\n value = new Date(timestamp)\n offset += 10\n }\n break\n case 12: { // Long string type\n const length = view.getUint32(1)\n offset += 4\n value = ''\n if (length > 0) {\n value = UTF8.decode(new Uint8Array(view.buffer, view.byteOffset + offset, length))\n }\n offset += length\n }\n break\n default:\n offset = dataLen\n break\n }\n\n return {\n data: value,\n size: offset,\n isEnd\n }\n }\n\n static _parseString (view) {\n const length = view.getUint16(0)\n let data = ''\n if (length > 0) {\n data = UTF8.decode(new Uint8Array(view.buffer, view.byteOffset + 2, length))\n }\n\n return {\n data,\n size: 2 + length\n }\n }\n\n static _parseObject (view) {\n if (view.byteLength < 3) return\n\n const name = AMF._parseString(view)\n const value = AMF._parseValue(new DataView(view.buffer, view.byteOffset + name.size, view.byteLength - name.size))\n\n return {\n data: {\n name: name.data,\n value: value.data\n },\n size: name.size + value.size,\n isEnd: value.isEnd\n }\n }\n}\n","import { VideoTrack, AudioTrack, MetadataTrack, AudioSample, VideoSample, VideoCodecType, AudioCodecType, FlvScriptSample, SeiSample } from '../model'\nimport { FlvFixer } from './fixer'\nimport { concatUint8Array, Logger, readBig32 } from '../utils'\nimport { AAC, AVC, HEVC, NALu } from '../codec'\nimport { AMF } from './amf'\n\nconst logger = new Logger('FlvDemuxer')\n\n/**\n * @typedef {Object} DemuxResult\n * @property {VideoTrack} videoTrack\n * @property {AudioTrack} audioTrack\n * @property {MetadataTrack} metadataTrack\n */\n\nexport class FlvDemuxer {\n _headerParsed = false\n _remainingData = null\n _gopId = 0\n _needAddMetaBeforeKeyFrameNal = true // 标识H265流中关键帧Nal之前是否需要插入vps、sps、pps Nal\n\n static AUDIO_RATE = [5500, 11000, 22000, 44000]\n\n /**\n * @param {VideoTrack} [videoTrack]\n * @param {AudioTrack} [audioTrack]\n * @param {MetadataTrack} [metadataTrack]\n */\n constructor (videoTrack, audioTrack, metadataTrack) {\n this.videoTrack = videoTrack || new VideoTrack()\n this.audioTrack = audioTrack || new AudioTrack()\n this.metadataTrack = metadataTrack || new MetadataTrack()\n this._fixer = new FlvFixer(this.videoTrack, this.audioTrack, this.metadataTrack)\n }\n\n /**\n * @param {Uint8Array} data\n * @param {boolean} [discontinuity=false]\n * @param {boolean} [contiguous=true]\n * @returns {DemuxResult}\n */\n demux (data, discontinuity = false, contiguous = true) {\n const { audioTrack, videoTrack, metadataTrack } = this\n\n if (discontinuity || !contiguous) {\n this._remainingData = null\n this._headerParsed = false\n }\n\n if (discontinuity) {\n videoTrack.reset()\n audioTrack.reset()\n metadataTrack.reset()\n } else {\n videoTrack.samples = []\n audioTrack.samples = []\n metadataTrack.seiSamples = []\n metadataTrack.flvScriptSamples = []\n videoTrack.warnings = []\n audioTrack.warnings = []\n\n if (this._remainingData) {\n data = concatUint8Array(this._remainingData, data)\n this._remainingData = null\n }\n }\n\n if (!data.length) {\n return {\n videoTrack,\n audioTrack,\n metadataTrack\n }\n }\n\n let offset = 0\n if (!this._headerParsed) {\n if (!FlvDemuxer.probe(data)) {\n throw new Error('Invalid flv file')\n }\n audioTrack.present = ((data[4] & 4) >>> 2) !== 0\n videoTrack.present = (data[4] & 1) !== 0\n this._headerParsed = true\n offset = readBig32(data, 5) + 4 // skip prev tag size\n }\n\n const dataLen = data.length\n\n let tagType\n let dataSize\n let timestamp\n let bodyData\n let prevTagSize\n while ((offset + 15) < dataLen) { // header and prev tag size\n tagType = data[offset]\n dataSize = (data[offset + 1] << 16) | (data[offset + 2] << 8) | data[offset + 3]\n if (offset + 15 + dataSize > dataLen) break\n timestamp = (\n (data[offset + 7] << 24 >>> 0) +\n (data[offset + 4] << 16) +\n (data[offset + 5] << 8) +\n data[offset + 6]\n )\n\n offset += 11\n bodyData = data.subarray(offset, offset + dataSize)\n if (tagType === 8) {\n this._parseAudio(bodyData, timestamp)\n } else if (tagType === 9) {\n this._parseVideo(bodyData, timestamp)\n } else if (tagType === 18) {\n this._parseScript(bodyData, timestamp)\n } else {\n logger.warn(`Invalid tag type: ${tagType}`)\n }\n\n offset += dataSize\n prevTagSize = readBig32(data, offset)\n if (prevTagSize !== 11 + dataSize) {\n logger.warn(`Invalid PrevTagSize ${prevTagSize} (${11 + dataSize})`)\n }\n\n offset += 4\n }\n\n if (offset < dataLen) {\n this._remainingData = data.subarray(offset)\n }\n\n audioTrack.formatTimescale = videoTrack.formatTimescale = videoTrack.timescale = metadataTrack.timescale = 1000\n audioTrack.timescale = audioTrack.sampleRate || 0\n\n if (!audioTrack.exist() && audioTrack.hasSample()) {\n audioTrack.reset()\n }\n if (!videoTrack.exist() && videoTrack.hasSample()) {\n videoTrack.reset()\n }\n\n return {\n videoTrack,\n audioTrack,\n metadataTrack\n }\n }\n\n /**\n * @param {number} [startTime=0]\n * @param {boolean} [discontinuity=false]\n * @param {boolean} [contiguous=true]\n * @returns {DemuxResult}\n */\n fix (startTime, discontinuity, contiguous) {\n this._fixer.fix(startTime, discontinuity, contiguous)\n return {\n videoTrack: this.videoTrack,\n audioTrack: this.audioTrack,\n metadataTrack: this.metadataTrack\n }\n }\n\n /**\n * @param {Uint8Array} data\n * @param {boolean} [discontinuity=false]\n * @param {boolean} [contiguous=true]\n * @param {number} [startTime=0]\n * @returns {DemuxResult}\n */\n demuxAndFix (data, discontinuity, contiguous, startTime) {\n this.demux(data, discontinuity, contiguous)\n return this.fix(startTime, discontinuity, contiguous)\n }\n\n /**\n * @param { Uint8Array } data\n * @returns {boolean}\n */\n static probe (data) {\n if (data[0] !== 0x46 || data[1] !== 0x4C || data[2] !== 0x56 || data[3] !== 0x01) {\n return false\n }\n return readBig32(data, 5) >= 9\n }\n\n _parseAudio (data, pts) {\n if (!data.length) return\n\n const format = (data[0] & 0xf0) >>> 4\n const track = this.audioTrack\n\n if (\n format !== 10 && // AAC\n format !== 7 && // G.711 A-law logarithmic PCM\n format !== 8 // G.711 mu-law logarithmic PCM\n ) {\n logger.warn(`Unsupported sound format: ${format}`)\n track.reset()\n return\n }\n\n if (format !== 10) {\n const soundRate = (data[0] & 0x0c) >> 2\n const soundSize = (data[0] & 0x02) >> 1\n const soundType = (data[0] & 0x01)\n track.sampleRate = FlvDemuxer.AUDIO_RATE[soundRate]\n track.sampleSize = soundSize ? 16 : 8\n track.channelCount = soundType + 1\n }\n\n if (format === 10) {\n this._parseAac(data, pts)\n } else {\n this._parseG711(data, pts, format)\n }\n }\n\n _parseG711 (data, pts, format) {\n const track = this.audioTrack\n track.codecType = format === 7 ? AudioCodecType.G711PCMA : AudioCodecType.G711PCMU\n track.sampleRate = 8000\n track.codec = track.codecType\n track.samples.push(new AudioSample(pts, data.subarray(1)))\n }\n\n _parseAac (data, pts) {\n const track = this.audioTrack\n track.codecType = AudioCodecType.AAC\n\n if (data[1] === 0) { // AACPacketType\n const ret = AAC.parseAudioSpecificConfig(data.subarray(2))\n if (ret) {\n track.codec = ret.codec\n track.channelCount = ret.channelCount\n track.sampleRate = ret.sampleRate\n track.config = ret.config\n track.objectType = ret.objectType\n track.sampleRateIndex = ret.samplingFrequencyIndex\n } else {\n track.reset()\n logger.warn('Cannot parse AudioSpecificConfig', data)\n }\n } else if (data[1] === 1) { // Raw AAC frame data\n if (pts == null) return\n track.samples.push(new AudioSample(pts, data.subarray(2)))\n } else {\n logger.warn(`Unknown AACPacketType: ${data[1]}`)\n }\n }\n\n _parseVideo (data, dts) {\n if (data.length < 6) return\n\n const frameType = (data[0] & 0xf0) >>> 4\n const codecId = data[0] & 0x0f\n\n const track = this.videoTrack\n\n if (\n codecId !== 7 && // AVC\n codecId !== 12 // HEVC\n ) {\n track.reset()\n logger.warn(`Unsupported codecId: ${codecId}`)\n return\n }\n\n const isHevc = codecId === 12\n track.codecType = isHevc ? VideoCodecType.HEVC : VideoCodecType.AVC\n\n const packetType = data[1]\n const cts = (((data[2] << 16) | (data[3] << 8) | (data[4])) << 8) >> 8\n\n if (packetType === 0) { // DecoderConfigurationRecord\n const configData = data.subarray(5)\n const ret = isHevc\n ? HEVC.parseHEVCDecoderConfigurationRecord(configData)\n : AVC.parseAVCDecoderConfigurationRecord(configData)\n if (ret) {\n const { sps, ppsArr, spsArr, vpsArr, nalUnitSize } = ret\n if (sps) {\n track.codec = sps.codec\n track.width = sps.width\n track.height = sps.height\n track.sarRatio = sps.sarRatio\n track.fpsNum = sps.fpsNum\n track.fpsDen = sps.fpsDen\n track.chromaFormat = sps.chromaFormat\n }\n if (spsArr.length) track.sps = spsArr\n if (ppsArr.length) track.pps = ppsArr\n if (vpsArr && vpsArr.length) track.vps = vpsArr\n if (nalUnitSize) track.nalUnitSize = nalUnitSize\n } else {\n logger.warn(`Cannot parse ${isHevc ? 'HEVC' : 'AVC'}DecoderConfigurationRecord`, data)\n }\n } else if (packetType === 1) { // One or more NALUs\n let units = NALu.parseAvcC(data.subarray(5), track.nalUnitSize)\n\n units = this._checkAddMetaNalToUnits(isHevc, units, track)\n\n if (units && units.length) {\n const sample = new VideoSample(dts + cts, dts, units)\n if (frameType === 1) {\n sample.setToKeyframe()\n }\n track.samples.push(sample)\n\n units.forEach(unit => {\n const type = isHevc ? (unit[0] >>> 1) & 0x3f : unit[0] & 0x1f\n switch (type) {\n case 5: // IDR\n case 16: // HEVC BLA_W_LP\n case 17: // HEVC BLA_W_RADL\n case 18: // HEVC BLA_N_LP\n case 19: // HEVC IDR_W_RADL\n case 20: // HEVC IDR_N_LP\n case 21: // HEVC CRA_NUT\n case 22: // HEVC RSV_IRAP_VCL22\n case 23: // HEVC RSV_IRAP_VCL23\n if ((!isHevc && type !== 5) || (isHevc && type === 5)) break\n sample.setToKeyframe()\n break\n case 6: // SEI\n case 39: // HEVC PREFIX_SEI\n case 40: // HEVC SUFFIX_SEI\n if ((!isHevc && type !== 6) || (isHevc && type === 6)) break\n this.metadataTrack.seiSamples.push(new SeiSample(\n NALu.parseSEI(NALu.removeEPB(unit)),\n dts + cts\n ))\n break\n }\n })\n\n if (sample.keyframe) {\n this._gopId++\n }\n sample.gopId = this._gopId\n } else {\n logger.warn('Cannot parse NALUs', data)\n }\n } else if (packetType === 2) {\n // AVC end of sequence, Empty\n } else {\n logger.warn(`Unknown AVCPacketType: ${packetType}`)\n }\n }\n\n _checkAddMetaNalToUnits (hevc, units, track) {\n if (!hevc || !this._needAddMetaBeforeKeyFrameNal) {\n this._needAddMetaBeforeKeyFrameNal = false\n return units\n }\n\n const nalTypes = units.map(x => (x[0] >>> 1) & 0x3f)\n\n if (nalTypes.includes(32)) {\n this._needAddMetaBeforeKeyFrameNal = false\n return units\n }\n\n units.unshift(track.pps[0])\n units.unshift(track.sps[0])\n units.unshift(track.vps[0])\n\n return units.filter(Boolean)\n }\n\n _parseScript (data, pts) {\n this.metadataTrack.flvScriptSamples.push(new FlvScriptSample(AMF.parse(data), pts))\n }\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { AudioSample, WarningType } from '../model'\nimport { AAC } from '../codec'\nimport { isSafari } from '../utils'\n\nconst LARGE_AV_FIRST_FRAME_GAP = 90000 / 2 // 500ms\nconst AUDIO_GAP_OVERLAP_THRESHOLD_COUNT = 3\nconst MAX_SILENT_FRAME_DURATION = 90000 // 1s\nconst AUDIO_EXCETION_LOG_EMIT_DURATION = 5 * 90000 // 5s\nconst MAX_VIDEO_FRAME_DURATION = 90000 // 1s\nconst MAX_DTS_DELTA_WITH_NEXT_CHUNK = 90000 / 2 // 500ms\n\nexport class TsFixer {\n constructor (videoTrack, audioTrack, metadataTrack) {\n this.videoTrack = videoTrack\n this.audioTrack = audioTrack\n this.metadataTrack = metadataTrack\n\n this._baseDts = -1\n this._baseDtsInited = false\n\n this._audioNextPts = undefined\n this._videoNextDts = undefined\n\n this._audioTimestampBreak = false\n this._videoTimestampBreak = false\n\n this._lastAudioExceptionGapDot = 0\n this._lastAudioExceptionOverlapDot = 0\n this._lastAudioExceptionLargeGapDot = 0\n }\n\n fix (startTime = 0, discontinuity = false, contiguous = true) {\n startTime = Math.round(startTime * 90000)\n const videoTrack = this.videoTrack\n const audioTrack = this.audioTrack\n\n let vSamples = videoTrack.samples\n let aSamples = audioTrack.samples\n\n if (!vSamples.length && !aSamples.length) return\n\n let firstVideoSample = vSamples[0]\n let firstAudioSample = aSamples[0]\n\n // consider av delta\n let vaDelta = 0\n\n if (vSamples.length && aSamples.length) {\n vaDelta = firstVideoSample.dts - firstAudioSample.pts\n }\n\n if (!this._baseDtsInited) {\n this._calculateBaseDts(this.audioTrack, this.videoTrack)\n }\n\n // recalc baseDts\n if (discontinuity) {\n this._calculateBaseDts(this.audioTrack, this.videoTrack)\n this._baseDts -= startTime\n }\n\n // id discontinue, recalc nextDts, consider av delta of firstframe\n if (!contiguous) {\n /**\n * segment.start = min(a, v)\n * segment.start\n * |\n * a\n * -- vaDelta --\n * v\n */\n this._videoNextDts = vaDelta > 0 ? startTime + vaDelta : startTime\n this._audioNextPts = vaDelta > 0 ? startTime : startTime - vaDelta\n\n let vDeltaToNextDts = firstVideoSample ? firstVideoSample.dts - this._baseDts - this._videoNextDts : 0\n let aDeltaToNextDts = firstAudioSample ? firstAudioSample.pts - this._baseDts - this._audioNextPts : 0\n\n if (Math.abs(vDeltaToNextDts || aDeltaToNextDts) > MAX_VIDEO_FRAME_DURATION) {\n this._calculateBaseDts(this.audioTrack, this.videoTrack)\n this._baseDts -= startTime\n }\n }\n\n this._resetBaseDtsWhenStreamBreaked()\n\n // fix audio first\n this._fixAudio(audioTrack)\n\n this._fixVideo(videoTrack)\n\n if (this.metadataTrack.exist()) {\n const timescale = this.metadataTrack.timescale\n this.metadataTrack.seiSamples.forEach(s => {\n s.pts = s.originPts - this._baseDts\n s.time = Math.max(0, s.pts) / timescale\n })\n }\n\n if (videoTrack.samples.length) {\n videoTrack.baseMediaDecodeTime = videoTrack.samples[0].dts\n }\n if (audioTrack.samples.length) {\n audioTrack.baseMediaDecodeTime = audioTrack.samples[0].pts * audioTrack.timescale / 90000\n }\n }\n\n _fixVideo (videoTrack) {\n let samples = videoTrack.samples\n\n if (!samples.length) return\n samples.forEach(x => {\n x.dts -= this._baseDts\n x.pts -= this._baseDts\n })\n\n if (this._videoNextDts === undefined) {\n let samp0 = samples[0]\n this._videoNextDts = samp0.dts\n }\n\n let len = samples.length\n let sampleDuration = 0\n let firstSample = samples[0]\n let nextSample = samples[1]\n let vDelta = this._videoNextDts - firstSample.dts\n\n if (Math.abs(vDelta) > MAX_DTS_DELTA_WITH_NEXT_CHUNK) {\n // resolve first frame first\n firstSample.dts += vDelta\n firstSample.pts += vDelta\n\n videoTrack.warnings.push({\n type: WarningType.LARGE_VIDEO_GAP_BETWEEN_CHUNK,\n nextDts: this._videoNextDts,\n firstSampleDts: firstSample.dts,\n nextSampleDts: samples[1]?.dts,\n sampleDuration: vDelta\n })\n\n // check to ajust the whole segment\n if (nextSample && Math.abs(nextSample.dts - firstSample.dts) > MAX_VIDEO_FRAME_DURATION) {\n this._videoTimestampBreak = true\n samples.forEach((x, i) => {\n if (i === 0) return\n x.dts += vDelta\n x.pts += vDelta\n })\n }\n }\n\n let refSampleDurationInt\n if (videoTrack.fpsNum && videoTrack.fpsDen) {\n refSampleDurationInt = videoTrack.timescale * (videoTrack.fpsDen / videoTrack.fpsNum)\n } else {\n let first = videoTrack.samples[0]\n let last = videoTrack.samples[len - 1]\n refSampleDurationInt = Math.floor((last.dts - first.dts) / (len - 1))\n }\n\n for (let i = 0; i < len; i++) {\n let dts = samples[i].dts\n let nextSample = samples[i + 1]\n if (i < len - 1) {\n sampleDuration = nextSample.dts - dts\n } else if (samples[i - 1]) {\n sampleDuration = dts - samples[i - 1].dts\n } else {\n sampleDuration = refSampleDurationInt\n }\n\n if (sampleDuration > MAX_VIDEO_FRAME_DURATION || sampleDuration < 0) {\n // dts exception of adjacent frame\n this._videoTimestampBreak = true\n\n // check if only video breaked!\n sampleDuration = this._audioTimestampBreak ? refSampleDurationInt : sampleDuration\n\n // check if sample breaked within current fragment\n const expectFragEnd = (this._audioNextDts || 0) / 1000\n if (Math.abs(dts / 1000 + sampleDuration) > expectFragEnd) {\n sampleDuration = refSampleDurationInt\n }\n\n videoTrack.warnings.push({\n type: WarningType.LARGE_VIDEO_GAP,\n time: dts / videoTrack.timescale,\n dts,\n originDts: samples[i].originDts,\n nextDts: this._videoNextDts,\n sampleDuration,\n refSampleDuration: refSampleDurationInt\n })\n }\n\n samples[i].duration = sampleDuration\n this._videoNextDts += sampleDuration\n }\n }\n\n _fixAudio (audioTrack) {\n let samples = audioTrack.samples\n\n if (!samples.length) return\n samples.forEach(x => {\n x.pts -= this._baseDts\n x.dts = x.pts\n })\n\n this._doFixAudioInternal(audioTrack, samples, 90000)\n }\n\n _calculateBaseDts (audioTrack, videoTrack) {\n let audioSamps = audioTrack.samples\n let videoSamps = videoTrack.samples\n\n if (!audioSamps.length && !videoSamps.length) {\n return false\n }\n\n let audioBasePts = Infinity\n let videoBaseDts = Infinity\n\n if (audioSamps.length) {\n audioTrack.baseDts = audioBasePts = audioSamps[0].pts\n }\n\n if (videoSamps.length) {\n videoTrack.baseDts = videoBaseDts = videoSamps[0].dts\n }\n\n this._baseDts = Math.min(audioBasePts, videoBaseDts)\n\n const delta = videoBaseDts - audioBasePts\n\n if (Number.isFinite(delta) && Math.abs(delta) > LARGE_AV_FIRST_FRAME_GAP) {\n videoTrack.warnings.push({\n type: WarningType.LARGE_AV_SHIFT,\n videoBaseDts,\n audioBasePts,\n baseDts: this._baseDts,\n delta\n })\n }\n\n this._baseDtsInited = true\n return true\n }\n\n _resetBaseDtsWhenStreamBreaked () {\n if (this._baseDtsInited && this._videoTimestampBreak && this._audioTimestampBreak) {\n /**\n * timestamp breaked\n * _audioNextDts\n * ---------------------|\n * (_baseDts) _videoNextDts\n * ----------------------|\n * <----------------\n * nextVideo.dts\n * ----------------------------------------|\n * nextAudio.dts\n * ---------------------------------------|\n */\n\n // calc baseDts base on new samples\n let calc = this._calculateBaseDts(this.audioTrack, this.videoTrack)\n\n if (!calc) return\n\n // consider the expect dts for next frame\n this._baseDts -= Math.min(this._audioNextPts, this._videoNextDts)\n this._audioLastSample = null\n this._videoLastSample = null\n this._videoTimestampBreak = false\n this._audioTimestampBreak = false\n }\n }\n\n _doFixAudioInternal (audioTrack, samples, timescale) {\n if (!audioTrack.sampleDuration) audioTrack.sampleDuration = AAC.getFrameDuration(audioTrack.timescale, timescale)\n const refSampleDuration = audioTrack.sampleDuration\n\n if (this._audioNextPts === undefined) {\n let samp0 = samples[0]\n this._audioNextPts = samp0.pts\n }\n\n for (let i = 0; i < samples.length; i++) {\n let nextPts = this._audioNextPts\n let sample = samples[i]\n let delta = sample.pts - nextPts\n\n // fill frames\n // delta >= 3 * refSampleDurationInt\n // delta <= 500s\n if (!this._audioTimestampBreak && delta >= AUDIO_GAP_OVERLAP_THRESHOLD_COUNT * refSampleDuration && delta <= MAX_SILENT_FRAME_DURATION && !isSafari) {\n const silentFrame = AAC.getSilentFrame(audioTrack.codec, audioTrack.channelCount) || samples[0].data.subarray()\n const count = Math.floor(delta / refSampleDuration)\n\n if (Math.abs(sample.pts - this._lastAudioExceptionGapDot) > AUDIO_EXCETION_LOG_EMIT_DURATION) {\n this._lastAudioExceptionGapDot = sample.pts\n }\n\n audioTrack.warnings.push({\n type: WarningType.AUDIO_FILLED,\n pts: sample.pts,\n originPts: sample.originPts,\n count,\n nextPts,\n refSampleDuration\n })\n\n for (let j = 0; j < count; j++) {\n const silentSample = new AudioSample(Math.floor(nextPts), silentFrame)\n silentSample.originPts = Math.floor(this._baseDts + nextPts)\n samples.splice(i, 0, silentSample)\n this._audioNextPts += refSampleDuration\n i++\n }\n\n i--\n // delta <= -3 * refSampleDurationInt\n // delta >= -500ms\n } else if (delta <= -AUDIO_GAP_OVERLAP_THRESHOLD_COUNT * refSampleDuration && delta >= -1 * MAX_SILENT_FRAME_DURATION) {\n // need discard frames\n if (Math.abs(sample.pts - this._lastAudioExceptionOverlapDot) > AUDIO_EXCETION_LOG_EMIT_DURATION) {\n this._lastAudioExceptionOverlapDot = sample.pts\n audioTrack.warnings.push({\n type: WarningType.AUDIO_DROPPED,\n pts: sample.pts,\n originPts: sample.originPts,\n nextPts,\n refSampleDuration\n })\n }\n samples.splice(i, 1)\n i--\n } else {\n if (Math.abs(delta) >= MAX_SILENT_FRAME_DURATION) {\n this._audioTimestampBreak = true\n\n if (Math.abs(sample.pts - this._lastAudioExceptionLargeGapDot) > AUDIO_EXCETION_LOG_EMIT_DURATION) {\n this._lastAudioExceptionLargeGapDot = sample.pts\n audioTrack.warnings.push({\n type: WarningType.LARGE_AUDIO_GAP,\n time: sample.pts / 1000,\n pts: sample.pts,\n originPts: sample.originPts,\n nextPts,\n sampleDuration: delta,\n refSampleDuration\n })\n }\n }\n\n sample.dts = sample.pts = nextPts\n this._audioNextPts += refSampleDuration\n }\n }\n }\n}\n","import { TsFixer } from './fixer'\nimport { AVC, AAC, HEVC, NALu } from '../codec'\nimport { VideoSample, AudioSample, VideoCodecType, VideoTrack, AudioTrack, MetadataTrack, SeiSample } from '../model'\nimport { Logger, concatUint8Array } from '../utils'\n\nconst logger = new Logger('TsDemuxer')\n\nexport class TsDemuxer {\n _pmtId = -1\n _remainingPacketData = null\n _videoPesData = []\n _audioPesData = []\n _gopId = 0\n\n /**\n * @param {VideoTrack} [videoTrack]\n * @param {AudioTrack} [audioTrack]\n * @param {MetadataTrack} [metadataTrack]\n */\n constructor (videoTrack, audioTrack, metadataTrack) {\n this.videoTrack = videoTrack || new VideoTrack()\n this.audioTrack = audioTrack || new AudioTrack()\n this.metadataTrack = metadataTrack || new MetadataTrack()\n this._fixer = new TsFixer(this.videoTrack, this.audioTrack, this.metadataTrack)\n }\n\n /**\n * @param {Uint8Array} data\n * @param {boolean} [discontinuity=false]\n * @param {boolean} [contiguous=true]\n * @returns {import('../flv').DemuxResult}\n */\n demux (data, discontinuity = false, contiguous = true) {\n const { audioTrack, videoTrack, metadataTrack } = this\n\n if (discontinuity) {\n this._pmtId = -1\n videoTrack.reset()\n audioTrack.reset()\n metadataTrack.reset()\n }\n\n if (!contiguous || discontinuity) {\n this._remainingPacketData = null\n this._videoPesData = []\n this._audioPesData = []\n } else {\n videoTrack.samples = []\n audioTrack.samples = []\n metadataTrack.seiSamples = []\n videoTrack.warnings = []\n audioTrack.warnings = []\n\n if (this._remainingPacketData) {\n data = concatUint8Array(this._remainingPacketData, data)\n this._remainingPacketData = null\n }\n }\n\n let dataLen = data.length\n const remainingLength = dataLen % 188\n if (remainingLength) {\n this._remainingPacketData = data.subarray(dataLen - remainingLength)\n dataLen -= remainingLength\n }\n\n let videoPid = videoTrack.pid\n let audioPid = audioTrack.pid\n\n for (let start = 0; start < dataLen; start += 188) {\n if (data[start] !== 0x47) throw new Error('TS packet did not start with 0x47')\n const payloadUnitStartIndicator = !!(data[start + 1] & 0x40)\n const pid = ((data[start + 1] & 0x1f) << 8) + data[start + 2]\n const adaptationFiledControl = (data[start + 3] & 0x30) >> 4\n\n let offset\n if (adaptationFiledControl > 1) {\n offset = start + 5 + data[start + 4]\n if (offset === start + 188) continue\n } else {\n offset = start + 4\n }\n\n switch (pid) {\n case 0: // PAT\n if (payloadUnitStartIndicator) offset += data[offset] + 1\n this._pmtId = ((data[offset + 10] & 0x1f) << 8) | data[offset + 11]\n break\n case this._pmtId: {\n if (payloadUnitStartIndicator) offset += data[offset] + 1\n const tableEnd = offset + 3 + (((data[offset + 1] & 0x0f) << 8) | data[offset + 2]) - 4\n const programInfoLength = ((data[offset + 10] & 0x0f) << 8) | data[offset + 11]\n offset += 12 + programInfoLength\n\n while (offset < tableEnd) {\n const esPid = ((data[offset + 1] & 0x1f) << 8) | data[offset + 2]\n switch (data[offset]) {\n case 0x0f: // AAC ADTS\n audioTrack.pid = audioPid = esPid\n break\n case 0x1b: // AVC\n if (videoPid !== -1) break\n videoTrack.codecType = VideoCodecType.AVC\n videoTrack.pid = videoPid = esPid\n break\n case 0x24: // HEVC\n if (videoPid !== -1) break\n videoTrack.codecType = VideoCodecType.HEVC\n videoTrack.pid = videoPid = esPid\n break\n default:\n logger.warn(`Unsupported stream. type: ${data[offset]}, pid: ${esPid}`)\n }\n\n offset += (((data[offset + 3] & 0x0f) << 8) | data[offset + 4]) + 5\n }\n }\n break\n case videoPid:\n if (payloadUnitStartIndicator && this._videoPesData.length) {\n this._parseVideoData()\n }\n this._videoPesData.push(data.subarray(offset, start + 188))\n break\n case audioPid:\n if (payloadUnitStartIndicator && this._audioPesData.length) {\n this._parseAudioData()\n }\n this._audioPesData.push(data.subarray(offset, start + 188))\n break\n case 17:\n case 0x1fff:\n break\n default:\n logger.warn(`Unknown pid: ${pid}`)\n }\n }\n\n this._parseVideoData()\n this._parseAudioData()\n\n audioTrack.formatTimescale = videoTrack.formatTimescale = videoTrack.timescale = metadataTrack.timescale = 90000\n\n audioTrack.timescale = audioTrack.sampleRate || 0\n\n return {\n videoTrack,\n audioTrack,\n metadataTrack\n }\n }\n\n /**\n * @param {number} [startTime=0]\n * @param {boolean} [discontinuity=false]\n * @param {boolean} [contiguous=true]\n * @returns {import('../flv').DemuxResult}\n */\n fix (startTime, discontinuity, contiguous) {\n this._fixer.fix(startTime, discontinuity, contiguous)\n return {\n videoTrack: this.videoTrack,\n audioTrack: this.audioTrack,\n metadataTrack: this.metadataTrack\n }\n }\n\n /**\n * @param {Uint8Array} data\n * @param {boolean} [discontinuity=false]\n * @param {boolean} [contiguous=true]\n * @param {number} [startTime=0]\n * @returns {import('../flv').DemuxResult}\n */\n demuxAndFix (data, discontinuity, contiguous, startTime) {\n this.demux(data, discontinuity, contiguous)\n return this.fix(startTime, discontinuity, contiguous)\n }\n\n /**\n * @param { Uint8Array } data\n * @returns {boolean}\n */\n static probe (data) {\n if (!data.length) return false\n return data[0] === 0x47 && data[188] === 0x47 && data[376] === 0x47\n }\n\n _parseVideoData () {\n if (!this._videoPesData.length) return\n const pes = TsDemuxer._parsePES(concatUint8Array(...this._videoPesData))\n if (!pes) {\n logger.warn('Cannot parse video pes', this._videoPesData)\n return\n }\n\n const units = NALu.parseAnnexB(pes.data)\n if (units) {\n this._createVideoSample(units, pes.pts, pes.dts)\n } else {\n logger.warn('Cannot parse avc units', pes)\n }\n\n this._videoPesData = []\n }\n\n _createVideoSample (units, pts, dts) {\n if (!units.length) return\n const track = this.videoTrack\n const isHevc = track.codecType === VideoCodecType.HEVC\n\n let sample = new VideoSample(pts, dts)\n units.forEach((unit) => {\n const type = isHevc ? (unit[0] >>> 1) & 0x3f : unit[0] & 0x1f\n\n switch (type) {\n case 5: // IDR\n case 16: // HEVC BLA_W_LP\n case 17: // HEVC BLA_W_RADL\n case 18: // HEVC BLA_N_LP\n case 19: // HEVC IDR_W_RADL\n case 20: // HEVC IDR_N_LP\n case 21: // HEVC CRA_NUT\n case 22: // HEVC RSV_IRAP_VCL22\n case 23: // HEVC RSV_IRAP_VCL23\n if ((!isHevc && type !== 5) || (isHevc && type === 5)) break\n sample.setToKeyframe()\n this._gopId++\n break\n case 6: // SEI\n case 39: // HEVC PREFIX_SEI\n case 40: // HEVC SUFFIX_SEI\n if ((!isHevc && type !== 6) || (isHevc && type === 6)) break\n this.metadataTrack.seiSamples.push(new SeiSample(\n NALu.parseSEI(NALu.removeEPB(unit)),\n pts\n ))\n break\n case 32: // HEVC VPS\n if (!isHevc) break\n track.vps = [unit]\n break\n case 7: // SPS\n case 33: // HEVC SPS\n if ((!isHevc && type !== 7) || (isHevc && type === 7)) break\n if (!track.sps.length) {\n const data = NALu.removeEPB(unit)\n const spsInfo = isHevc ? HEVC.parseSPS(data) : AVC.parseSPS(data)\n track.sps = [unit]\n track.codec = spsInfo.codec\n track.width = spsInfo.width\n track.height = spsInfo.height\n track.sarRatio = spsInfo.sarRatio\n track.fpsNum = spsInfo.fpsNum\n track.fpsDen = spsInfo.fpsDen\n }\n break\n case 8: // PPS\n case 34: // HEVC PPS\n if ((!isHevc && type !== 8) || (isHevc && type === 8)) break\n if (!track.pps.length) track.pps = [unit]\n break\n case 9: // AUD\n case 35: // HEVC AUD\n if ((!isHevc && type !== 9) || (isHevc && type === 9)) break\n sample.gopId = this._gopId\n if (sample.units.length) {\n this._pushVideoSample(track, sample)\n sample = this.prevAvcSample = new VideoSample(pts, dts)\n }\n break\n }\n sample.units.push(unit)\n })\n sample.gopId = this._gopId\n this._pushVideoSample(track, sample)\n }\n\n _pushVideoSample (track, sample) {\n if (sample.units.length) {\n if (sample.pts == null) {\n logger.warn('Video sample no pts', sample)\n const lastSample = track.samples[track.samples.length - 1]\n if (lastSample) {\n sample.pts = lastSample.pts\n sample.dts = lastSample.dts\n } else {\n logger.warn('Drop video sample', sample)\n }\n }\n if (sample.pts != null) track.samples.push(sample)\n }\n }\n\n _parseAudioData () {\n if (!this._audioPesData.length) return\n const pes = TsDemuxer._parsePES(concatUint8Array(...this._audioPesData))\n if (!pes) {\n logger.warn('Cannot parse audio pes', this._audioPesData)\n return\n }\n\n this._parseAacData(pes)\n\n this._audioPesData = []\n }\n\n _parseAacData (pes) {\n const track = this.audioTrack\n let pts = pes.pts\n if (pts == null) {\n logger.warn('AAC pes not pts', track)\n if (!track.samples.length || !track.sampleRate) {\n return\n }\n pts = track.samples[track.samples.length - 1].pts + AAC.getFrameDuration(track.sampleRate)\n }\n\n const ret = AAC.parseADTS(pes.data, pts)\n if (ret) {\n track.codec = ret.codec\n track.channelCount = ret.channelCount\n track.sampleRate = ret.sampleRate\n track.objectType = ret.objectType\n track.sampleRateIndex = ret.samplingFrequencyIndex\n track.config = ret.config\n track.samples.push(...ret.frames.map((s) => new AudioSample(s.pts, s.data)))\n\n if (ret.skip) {\n logger.warn(`Skip aac adts ${ret.skip} bits`)\n }\n if (ret.remaining) {\n logger.warn(`Remaining aac adts ${ret.remaining} bits`)\n }\n } else {\n logger.warn('Cannot parse aac adts', pes)\n }\n }\n\n static _parsePES (data) {\n const headerDataLen = data[8]\n if (headerDataLen == null || data.length < (headerDataLen + 9)) return\n const startPrefix = data[0] << 16 | data[1] << 8 | data[2]\n if (startPrefix !== 1) return\n const pesLen = (data[4] << 8) + data[5]\n if (pesLen && pesLen > data.length - 6) return\n\n let pts\n let dts\n const ptsDtsFlags = data[7]\n if (ptsDtsFlags & 0xc0) {\n pts = (data[9] & 0x0e) * 536870912 +\n (data[10] & 0xff) * 4194304 +\n (data[11] & 0xfe) * 16384 +\n (data[12] & 0xff) * 128 +\n (data[13] & 0xfe) / 2\n\n if (ptsDtsFlags & 0x40) {\n dts = (data[14] & 0x0e) * 536870912 +\n (data[15] & 0xff) * 4194304 +\n (data[16] & 0xfe) * 16384 +\n (data[17] & 0xff) * 128 +\n (data[18] & 0xfe) / 2\n if (pts - dts > 60 * 90000) pts = dts\n } else {\n dts = pts\n }\n }\n\n return { data: data.subarray(9 + headerDataLen), pts, dts }\n }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","import { TrackType, VideoCodecType } from '../model'\nimport { concatUint8Array } from '../utils'\n\nconst UINT32_MAX = 2 ** 32 - 1\n\nexport class MP4 {\n static types = [\n 'avc1',\n 'avcC',\n 'hvc1',\n 'hvcC',\n 'dinf',\n 'dref',\n 'esds',\n 'ftyp',\n 'hdlr',\n 'mdat',\n 'mdhd',\n 'mdia',\n 'mfhd',\n 'minf',\n 'moof',\n 'moov',\n 'mp4a',\n 'mvex',\n 'mvhd',\n 'pasp',\n 'stbl',\n 'stco',\n 'stsc',\n 'stsd',\n 'stsz',\n 'stts',\n 'tfdt',\n 'tfhd',\n 'traf',\n 'trak',\n 'trun',\n 'trex',\n 'tkhd',\n 'vmhd',\n 'smhd',\n 'ctts',\n 'stss'\n ].reduce((p, c) => {\n p[c] = [c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2), c.charCodeAt(3)]\n return p\n }, Object.create(null));\n\n static HDLR_TYPES = {\n video: new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61,\n 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'\n ]),\n audio: new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x73, 0x6f, 0x75, 0x6e, // handler_type: 'soun'\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61,\n 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'\n ])\n }\n\n static FTYPAVC1 = MP4.box(MP4.types.ftyp, new Uint8Array([\n 105, 115, 111, 109, // isom\n 0, 0, 0, 1,\n 105, 115, 111, 109,\n 97, 118, 99, 49 // avc1\n ]))\n\n static FTYPHEV1 = MP4.box(MP4.types.ftyp, new Uint8Array([\n 105, 115, 111, 109, // isom\n 0, 0, 0, 1,\n 105, 115, 111, 109,\n 104, 101, 118, 49 // hev1\n ]))\n\n static DINF = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x01, // entry_count\n 0x00, 0x00, 0x00, 0x0c, // entry_size\n 0x75, 0x72, 0x6c, 0x20, // 'url' type\n 0x00, // version\n 0x00, 0x00, 0x01 // entry_flags\n ])))\n\n static VMHD = MP4.box(MP4.types.vmhd, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x01, // flags\n 0x00, 0x00, // graphics mode\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // op color\n ]))\n\n static SMHD = MP4.box(MP4.types.smhd, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, // balance\n 0x00, 0x00 // reserved\n ]))\n\n static StblTable = new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ])\n\n static STTS = MP4.box(MP4.types.stts, MP4.StblTable)\n\n static STSC = MP4.box(MP4.types.stsc, MP4.StblTable)\n\n static STSZ = MP4.box(MP4.types.stsz, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]))\n\n static STCO = MP4.box(MP4.types.stco, MP4.StblTable)\n\n static box (type, ...payload) {\n payload = payload.filter(Boolean)\n const size = 8 + payload.reduce((p, c) => (p + c.byteLength), 0)\n const ret = new Uint8Array(size)\n ret[0] = (size >> 24) & 0xff\n ret[1] = (size >> 16) & 0xff\n ret[2] = (size >> 8) & 0xff\n ret[3] = size & 0xff\n ret.set(type, 4)\n let offset = 8\n payload.forEach((data) => {\n ret.set(data, offset)\n offset += data.byteLength\n })\n return ret\n }\n\n static ftyp (tracks) {\n const isHevc = tracks.find(t => t.type === TrackType.VIDEO && t.codecType === VideoCodecType.HEVC)\n return isHevc ? MP4.FTYPHEV1 : MP4.FTYPAVC1\n }\n\n static initSegment (tracks) {\n return concatUint8Array(MP4.ftyp(tracks), MP4.moov(tracks))\n }\n\n static moov (tracks) {\n return MP4.box(MP4.types.moov,\n MP4.mvhd(tracks[0].duration, tracks[0].timescale),\n ...tracks.map((t) => MP4.trak(t)),\n MP4.mvex(tracks))\n }\n\n static mvhd (duration, timescale = 90000) {\n return MP4.box(MP4.types.mvhd, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (timescale >> 24) & 0xff, (timescale >> 16) & 0xff, (timescale >> 8) & 0xff, timescale & 0xff,\n (duration >> 24) & 0xff, (duration >> 16) & 0xff, (duration >> 8) & 0xff, duration & 0xff,\n 0x00, 0x01, 0x00, 0x00, // rate\n 0x01, 0x00, // volume\n 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // matrix\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0xff, 0xff, 0xff, 0xff // next_track_ID\n ]))\n }\n\n static trak (track) {\n return MP4.box(\n MP4.types.trak,\n MP4.tkhd(track.id, track.duration, track.width, track.height),\n MP4.mdia(track)\n )\n }\n\n static tkhd (id, duration, width = 0, height = 0) {\n return MP4.box(MP4.types.tkhd, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x07, // flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (id >> 24) & 0xff, (id >> 16) & 0xff, (id >> 8) & 0xff, id & 0xff,\n 0x00, 0x00, 0x00, 0x00,\n (duration >> 24) & 0xff, (duration >> 16) & 0xff, (duration >> 8) & 0xff, duration & 0xff,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, // layer\n 0x00, 0x00, // alternate_group\n 0x01, 0x00, // non-audio track volume\n 0x00, 0x00, // reserved\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // matrix\n (width >> 8) & 0xff, width & 0xff, 0x00, 0x00,\n (height >> 8) & 0xff, height & 0xff, 0x00, 0x00\n ]))\n }\n\n static mdia (track) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(track.duration, track.timescale), MP4.hdlr(track.type), MP4.minf(track))\n }\n\n static mdhd (duration, timescale = 90000) {\n return MP4.box(MP4.types.mdhd, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (timescale >> 24) & 0xff, (timescale >> 16) & 0xff, (timescale >> 8) & 0xff, timescale & 0xff,\n (duration >> 24) & 0xff, (duration >> 16) & 0xff, (duration >> 8) & 0xff, duration & 0xff,\n 0x55, 0xc4, // 'und' language (undetermined)\n 0x00, 0x00 // pre_defined\n ]))\n }\n\n static hdlr (type) {\n return MP4.box(MP4.types.hdlr, MP4.HDLR_TYPES[type])\n }\n\n static minf (track) {\n return MP4.box(MP4.types.minf, track.type === TrackType.VIDEO ? MP4.VMHD : MP4.SMHD, MP4.DINF, MP4.stbl(track))\n }\n\n static stbl (track) {\n return MP4.box(MP4.types.stbl, MP4.stsd(track), MP4.STTS, MP4.STSC, MP4.STSZ, MP4.STCO)\n }\n\n static stsd (track) {\n return MP4.box(MP4.types.stsd, new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x01 // entry_count\n ]), track.type === TrackType.VIDEO ? MP4.avc1hev1(track) : MP4.mp4a(track))\n }\n\n static avc1hev1 (track) {\n const isHevc = track.codecType === VideoCodecType.HEVC\n const typ = isHevc ? MP4.types.hvc1 : MP4.types.avc1\n const config = isHevc ? track.hvcC ? track.hvcC : MP4.hvcC() : MP4.avcC(track)\n\n const boxes = [\n new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, // pre_defined\n 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined\n (track.width >> 8) & 0xff, track.width & 0xff, // width\n (track.height >> 8) & 0xff, track.height & 0xff, // height\n 0x00, 0x48, 0x00, 0x00, // horizresolution\n 0x00, 0x48, 0x00, 0x00, // vertresolution\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // frame_count\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // compressor name\n 0x00, 0x18, // depth\n 0x11, 0x11 // pre_defined = -1\n ]), config\n ]\n\n if (track.sarRatio && track.sarRatio.length > 1) {\n boxes.push(MP4.pasp(track.sarRatio))\n }\n\n return MP4.box(typ, ...boxes)\n }\n\n static avcC (track) {\n const sps = []\n const pps = []\n\n let len\n track.sps.forEach((s) => {\n len = s.byteLength\n sps.push((len >>> 8) & 0xff)\n sps.push(len & 0xff)\n sps.push(...s)\n })\n\n track.pps.forEach((p) => {\n len = p.byteLength\n pps.push((len >>> 8) & 0xff)\n pps.push(len & 0xff)\n pps.push(...p)\n })\n\n return MP4.box(MP4.types.avcC, new Uint8Array([\n 0x01, // configurationVersion\n sps[3], // AVCProfileIndication\n sps[4], // profile_compatibility\n sps[5], // AVCLevelIndication\n 0xfc | 3, // lengthSizeMinusOne\n 0xe0 | track.sps.length // 3bit reserved (111) + numOfSequenceParameterSets\n ].concat(sps)\n .concat([track.pps.length]) // numOfPictureParameterSets\n .concat(pps)))\n }\n\n static hvcC () {\n return MP4.box(MP4.types.hvcC, new Uint8Array([\n 0x01, // configurationVersion\n 0x01, // profile_space + tier_flag + profile_idc\n 0x60, 0x00, 0x00, 0x00, // general_profile_compatibility\n 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, // constraint_indicator_flags\n 0x5D, // level_idc=90\n 0xF0, 0x00, 0xFC, 0xFD, // profile_compatibility_indications\n 0xF8, // ‘11111’b + bitDepthLumaMinus8\n 0xF8, // ‘11111’b + bitDepthChromaMinus8\n 0x00, 0x00, // avgFrameRate\n 0x0F, // constantFrameRate + numTemporalLayers + ‘1’b + lengthSizeMinusOne\n 0x03, // numOfArrays\n\n // vps\n 0xA0, 0x00, 0x01, // array_completeness + ‘0’b + NAL_unit_type + numNalus\n 0x00, 0x18, // nalUnitLength\n 0x40, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x01, 0x60, 0x00, 0x00, 0x03, 0x00, 0x90, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x5D, 0x99, 0x98, 0x09,\n\n // sps\n 0xA1, 0x00, 0x01, // array_completeness + ‘0’b + NAL_unit_type + numNalus\n 0x00, 0x2D, // nalUnitLength\n 0x42, 0x01, 0x01, 0x01, 0x60, 0x00, 0x00, 0x03, 0x00, 0x90, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x5D, 0xA0, 0x02,\n 0x80, 0x80, 0x2D, 0x16, 0x59, 0x99, 0xA4, 0x93, 0x2B, 0x9A, 0x80, 0x80, 0x80, 0x82, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,\n 0x00, 0x03, 0x00, 0x32, 0x10,\n\n // pps\n 0xA2, 0x00, 0x01, // array_completeness + ‘0’b + NAL_unit_type + numNalus\n 0x00, 0x07, // nalUnitLength\n 0x44, 0x01, 0xC1, 0x72, 0xB4, 0x62, 0x40\n ]))\n }\n\n static pasp ([hSpacing, vSpacing]) {\n return MP4.box(MP4.types.pasp, new Uint8Array([\n hSpacing >> 24, (hSpacing >> 16) & 0xff, (hSpacing >> 8) & 0xff, hSpacing & 0xff,\n vSpacing >> 24, (vSpacing >> 16) & 0xff, (vSpacing >> 8) & 0xff, vSpacing & 0xff\n ]))\n }\n\n static mp4a (track) {\n return MP4.box(MP4.types.mp4a, new Uint8Array([\n 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, track.channelCount,\n 0x00, 0x10, // sampleSize:16bits\n 0x00, 0x00, // pre_defined\n 0x00, 0x00, // reserved\n (track.sampleRate >> 8) & 0xff, track.sampleRate & 0xff,\n 0x00, 0x00\n ]), track.config.length ? MP4.esds(track.config) : undefined)\n }\n\n static esds (config) {\n const len = config.length\n return MP4.box(MP4.types.esds, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x03, // tag\n 0x17 + len, // length\n 0x00, 0x00, // ES_ID\n 0x00, // streamDependenceFlag, URL_flag, reserved, streamPriority\n 0x04, // tag\n 0x0f + len, // length\n 0x40, // object type\n 0x15, // streamType\n 0x00, 0x06, 0x00, // bufferSizeDB\n 0x00, 0x00, 0xda, 0xc0, // maxBitrate\n 0x00, 0x00, 0xda, 0xc0, // avgBitrate\n 0x05 // tag, DecoderSpecificInfoTag\n ].concat([len])\n .concat(config)\n .concat(\n [0x06, 0x01, 0x02]// GASpecificConfig\n )\n ))\n }\n\n static mvex (tracks) {\n return MP4.box(MP4.types.mvex, ...tracks.map((t) => MP4.trex(t.id)))\n }\n\n static trex (id) {\n return MP4.box(MP4.types.trex, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n id >> 24, (id >> 16) & 0xff, (id >> 8) & 0xff, id & 0xff, // track_ID\n 0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00, // default_sample_duration\n 0x00, 0x00, 0x00, 0x00, // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]))\n }\n\n static moof (sequenceNumber, tracks) {\n return MP4.box(MP4.types.moof, MP4.mfhd(sequenceNumber), ...tracks.map((t) => MP4.traf(t)))\n }\n\n static mfhd (sequenceNumber) {\n return MP4.box(MP4.types.mfhd, new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n sequenceNumber >> 24, (sequenceNumber >> 16) & 0xff, (sequenceNumber >> 8) & 0xff, sequenceNumber & 0xff\n ]))\n }\n\n static traf (track) {\n const offset = 16 + // tfhd\n 20 + // tfdt\n 8 + // traf header\n 16 + // mfhd\n 8 + // moof header\n 8 // mdat header\n\n return MP4.box(MP4.types.traf, MP4.tfhd(track.id), MP4.tfdt(track.baseMediaDecodeTime), MP4.trun(track.samples, offset))\n }\n\n static tfhd (id) {\n return MP4.box(MP4.types.tfhd, new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n id >> 24, (id >> 16) & 0xff, (id >> 8) & 0xff, id & 0xff // track_ID\n ]))\n }\n\n static tfdt (baseMediaDecodeTime) {\n const upperWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1))\n const lowerWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1))\n\n return MP4.box(MP4.types.tfdt, new Uint8Array([\n 0x01, // version 1\n 0x00, 0x00, 0x00, // flags\n upperWordBaseMediaDecodeTime >> 24,\n (upperWordBaseMediaDecodeTime >> 16) & 0xff,\n (upperWordBaseMediaDecodeTime >> 8) & 0xff,\n upperWordBaseMediaDecodeTime & 0xff,\n lowerWordBaseMediaDecodeTime >> 24,\n (lowerWordBaseMediaDecodeTime >> 16) & 0xff,\n (lowerWordBaseMediaDecodeTime >> 8) & 0xff,\n lowerWordBaseMediaDecodeTime & 0xff\n ]))\n }\n\n static trun (samples, offset) {\n const sampleLen = samples.length\n const dataLen = 12 + (16 * sampleLen)\n offset += 8 + dataLen\n const data = new Uint8Array(dataLen)\n data.set([\n 0x00, // version\n 0x00, 0x0f, 0x01, // flags\n (sampleLen >>> 24) & 0xff, (sampleLen >>> 16) & 0xff, (sampleLen >>> 8) & 0xff, sampleLen & 0xff,\n (offset >>> 24) & 0xff, (offset >>> 16) & 0xff, (offset >>> 8) & 0xff, offset & 0xff // data_offset\n ], 0)\n\n for (let i = 0; i < sampleLen; i++) {\n const {\n duration, size, flag = {}, cts = 0\n } = samples[i]\n\n data.set([\n (duration >>> 24) & 0xff, (duration >>> 16) & 0xff, (duration >>> 8) & 0xff, duration & 0xff,\n (size >>> 24) & 0xff, (size >>> 16) & 0xff, (size >>> 8) & 0xff, size & 0xff,\n (flag.isLeading << 2) | (flag.dependsOn == null ? 1 : flag.dependsOn),\n (flag.isDependedOn << 6) | (flag.hasRedundancy << 4) | (flag.paddingValue << 1) | (flag.isNonSyncSample == null ? 1 : flag.isNonSyncSample),\n flag.degradationPriority & (0xf0 << 8), flag.degradationPriority & 0x0f, // sample_flags\n (cts >>> 24) & 0xff, (cts >>> 16) & 0xff, (cts >>> 8) & 0xff, cts & 0xff // sample_composition_time_offset\n ], 12 + 16 * i)\n }\n\n return MP4.box(MP4.types.trun, data)\n }\n\n static mdat (data) {\n return MP4.box(MP4.types.mdat, data)\n }\n\n // ---\n\n static moovMP4 (tracks) {\n return MP4.box(MP4.types.moov,\n MP4.mvhd(tracks[0].duration, tracks[0].timescale),\n ...tracks.map((t) => MP4.trackMP4(t)))\n }\n\n static trackMP4 (track) {\n return MP4.box(\n MP4.types.trak,\n MP4.tkhd(track.id, track.duration, track.width, track.height),\n MP4.mdiaMP4(track)\n )\n }\n\n static mdiaMP4 (track) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(track.duration, track.timescale), MP4.hdlr(track.type), MP4.minfMP4(track))\n }\n\n static minfMP4 (track) {\n return MP4.box(MP4.types.minf, track.type === TrackType.VIDEO ? MP4.VMHD : MP4.SMHD, MP4.DINF, MP4.stblMP4(track))\n }\n\n static stblMP4 (track) {\n const { ext } = track\n const boxes = [\n MP4.stsd(track),\n MP4.stts(ext.stts),\n MP4.stsc(ext.stsc),\n MP4.stsz(ext.stsz),\n MP4.stco(ext.stco)\n ]\n\n if (ext.stss.length) {\n boxes.push(MP4.stss(ext.stss))\n }\n\n if (ext.ctts.length) {\n boxes.push(MP4.ctts(ext.ctts))\n }\n\n return MP4.box(MP4.types.stbl, ...boxes)\n }\n\n static stts (samples) {\n const len = samples.length\n const data = new Uint8Array(8 * len)\n let offset = 0\n samples.forEach(({ value, count }) => {\n data.set([\n count >> 24, (count >> 16) & 0xff, (count >> 8) & 0xff, count & 0xff,\n value >> 24, (value >> 16) & 0xff, (value >> 8) & 0xff, value & 0xff\n ], offset)\n offset += 8\n })\n\n return MP4.box(MP4.types.stts, concatUint8Array(new Uint8Array([\n 0, 0, 0, 0,\n (len >> 24), (len >> 16) & 0xff, (len >> 8) & 0xff, len & 0xff\n ]), data))\n }\n\n static stsc (entries) {\n const len = entries.length\n const data = new Uint8Array(12 * len)\n let offset = 0\n entries.forEach(({ firstChunk, samplesPerChunk, sampleDescIndex }) => {\n data.set([\n firstChunk >> 24, (firstChunk >> 16) & 0xff, (firstChunk >> 8) & 0xff, firstChunk & 0xff,\n samplesPerChunk >> 24, (samplesPerChunk >> 16) & 0xff, (samplesPerChunk >> 8) & 0xff, samplesPerChunk & 0xff,\n sampleDescIndex >> 24, (sampleDescIndex >> 16) & 0xff, (sampleDescIndex >> 8) & 0xff, sampleDescIndex & 0xff\n ], offset)\n offset += 12\n })\n return MP4.box(MP4.types.stsc, concatUint8Array(new Uint8Array([\n 0, 0, 0, 0,\n (len >> 24), (len >> 16) & 0xff, (len >> 8) & 0xff, len & 0xff\n ]), data))\n }\n\n static stsz (samplesSizes) {\n const len = samplesSizes.length\n const data = new Uint8Array(4 * len)\n let offset = 0\n samplesSizes.forEach((x) => {\n data.set([\n x >> 24, (x >> 16) & 0xff, (x >> 8) & 0xff, x & 0xff\n ], offset)\n offset += 4\n })\n return MP4.box(MP4.types.stsz, concatUint8Array(\n new Uint8Array([\n 0, 0, 0, 0,\n 0, 0, 0, 0,\n len >> 24, (len >> 16) & 0xff, (len >> 8) & 0xff, len & 0xff\n ]),\n data\n ))\n }\n\n static stco (offsets) {\n const len = offsets.length\n const data = new Uint8Array(4 * len)\n let offset = 0\n offsets.forEach((x) => {\n data.set([\n x >> 24, (x >> 16) & 0xff, (x >> 8) & 0xff, x & 0xff\n ], offset)\n offset += 4\n })\n return MP4.box(MP4.types.stco, concatUint8Array(\n new Uint8Array([\n 0, 0, 0, 0,\n len >> 24, (len >> 16) & 0xff, (len >> 8) & 0xff, len & 0xff\n ]),\n data\n ))\n }\n\n static stss (keyframeIndexes) {\n const len = keyframeIndexes.length\n const data = new Uint8Array(4 * len)\n let offset = 0\n keyframeIndexes.forEach((x) => {\n data.set([\n x >> 24, (x >> 16) & 0xff, (x >> 8) & 0xff, x & 0xff\n ], offset)\n offset += 4\n })\n return MP4.box(MP4.types.stss, concatUint8Array(\n new Uint8Array([\n 0, 0, 0, 0,\n len >> 24, (len >> 16) & 0xff, (len >> 8) & 0xff, len & 0xff\n ]),\n data\n ))\n }\n\n static ctts (samples) {\n const len = samples.length\n const data = new Uint8Array(8 * len)\n let offset = 0\n samples.forEach(({ value, count }) => {\n data.set([\n count >> 24, (count >> 16) & 0xff, (count >> 8) & 0xff, count & 0xff,\n value >> 24, (value >> 16) & 0xff, (value >> 8) & 0xff, value & 0xff\n ], offset)\n offset += 8\n })\n return MP4.box(MP4.types.ctts, concatUint8Array(new Uint8Array([\n 0, 0, 0, 0,\n len >> 24, (len >> 16) & 0xff, (len >> 8) & 0xff, len & 0xff\n ]), data))\n }\n}\n","\nexport class Logger {\n constructor (name, enable) {\n this.name = name || ''\n this._prefix = `[${this.name}]`\n Logger.disabled = enable\n }\n\n debug (...args) {\n if (Logger.disabled) return\n console.debug(this._prefix, ...args)\n }\n\n log (...args) {\n if (Logger.disabled) return\n console.log(this._prefix, ...args)\n }\n\n warn (...args) {\n if (Logger.disabled) return\n console.warn(this._prefix, ...args)\n }\n\n error (...args) {\n if (Logger.disabled) return\n console.error(this._prefix, ...args)\n }\n\n table (...args) {\n if (Logger.disabled) return\n console.group(this._prefix)\n console.table(...args)\n console.groupEnd()\n }\n\n static disabled = true\n\n static enable () {\n Logger.disabled = false\n }\n\n static disable () {\n Logger.disabled = true\n }\n}\n","import { MP4 } from './mp4'\nimport { concatUint8Array } from '../utils'\nimport { Logger } from './logger'\n\n/**\n * @typedef {Object} RemuxResult\n * @property {Uint8Array} [videoInitSegment]\n * @property {Uint8Array} [audioInitSegment]\n * @property {Uint8Array} [videoSegment]\n * @property {Uint8Array} [audioSegment]\n */\n\nexport class FMP4Remuxer {\n /**\n * @param {import('../model').VideoTrack} videoTrack\n * @param {import('../model').AudioTrack} audioTrack\n */\n constructor (videoTrack, audioTrack, options) {\n this.videoTrack = videoTrack\n this.audioTrack = audioTrack\n this.log = new Logger('FMP4Remuxer', options && options.openLog ? !options.openLog : true)\n }\n\n /**\n * @param {boolean} [createInit=false]\n * @returns {RemuxResult}\n */\n remux (createInit = false) {\n const videoTrack = this.videoTrack\n const audioTrack = this.audioTrack\n const hasVideo = videoTrack.exist()\n const hasAudio = audioTrack.exist()\n\n videoTrack.duration = videoTrack.duration || 0xffffffff\n audioTrack.duration = audioTrack.duration || 0xffffffff\n\n let videoInitSegment\n let audioInitSegment\n\n let initSegment\n let tracks = []\n\n if (createInit) {\n if (hasVideo) videoInitSegment = MP4.initSegment([this.videoTrack])\n if (hasAudio) audioInitSegment = MP4.initSegment([this.audioTrack])\n\n if (hasVideo) {\n tracks.push(this.videoTrack)\n }\n if (hasAudio) {\n tracks.push(this.audioTrack)\n }\n initSegment = MP4.initSegment(tracks)\n }\n\n let videoSegment\n let audioSegment\n if (hasVideo && videoTrack.hasSample()) videoSegment = this._remuxVideo()\n this.log.debug('[remuxVideo],len,', videoSegment ? videoSegment.byteLength : 0)\n if (hasAudio && audioTrack.hasSample()) audioSegment = this._remuxAudio()\n this.log.debug('[remuxAudio],len,', audioSegment ? audioSegment.byteLength : 0)\n\n videoTrack.samples = []\n audioTrack.samples = []\n\n return {\n initSegment,\n videoInitSegment,\n audioInitSegment,\n videoSegment,\n audioSegment\n }\n }\n\n _remuxVideo () {\n const track = this.videoTrack\n const samples = track.samples\n\n let mdatSize = 0\n\n samples.forEach((s) => {\n mdatSize += s.units.reduce((t, c) => (t + c.byteLength), 0)\n mdatSize += (s.units.length * 4)\n })\n\n const mdatData = new Uint8Array(mdatSize)\n const mdatView = new DataView(mdatData.buffer)\n\n for (let i = 0, l = samples.length, offset = 0, sample; i < l; i++) {\n sample = samples[i]\n\n let sampleSize = 0\n sample.units.forEach((u) => {\n mdatView.setUint32(offset, u.byteLength)\n offset += 4\n mdatData.set(u, offset)\n offset += u.byteLength\n sampleSize += (4 + u.byteLength)\n })\n sample.size = sampleSize\n }\n\n const moof = MP4.moof(this.videoTrack.sequenceNumber++, [track])\n const mdat = MP4.mdat(mdatData)\n\n return concatUint8Array(moof, mdat)\n }\n\n _remuxAudio () {\n const track = this.audioTrack\n const moof = MP4.moof(this.audioTrack.sequenceNumber++, [track])\n const mdatData = new Uint8Array(track.samples.reduce((t, c) => (t + c.size), 0))\n track.samples.reduce((offset, s) => {\n mdatData.set(s.data, offset)\n return offset + s.size\n }, 0)\n const mdat = MP4.mdat(mdatData)\n\n return concatUint8Array(moof, mdat)\n }\n\n reset () {\n this.videoTrack.reset()\n this.audioTrack.reset()\n }\n}\n","import { TrackType } from '../model'\nimport { MP4 } from './mp4'\nimport { concatUint8Array } from '../utils'\n\nexport class MP4Remuxer {\n /**\n * @param {import('../model').VideoTrack} videoTrack\n * @param {import('../model').AudioTrack} audioTrack\n */\n constructor (videoTrack, audioTrack) {\n this.videoTrack = videoTrack\n this.audioTrack = audioTrack\n }\n\n /**\n * @returns {import('./fmp4-remuxer').RemuxResult}\n */\n remux (videoTrack, audioTrack) {\n this.videoTrack = videoTrack || this.videoTrack\n this.audioTrack = audioTrack || this.audioTrack\n\n const hasVideo = videoTrack?.exist() && videoTrack?.hasSample()\n const hasAudio = audioTrack?.exist() && audioTrack?.hasSample()\n\n let videoSegment\n let audioSegment\n if (hasVideo && hasAudio) {\n videoSegment = this._remuxMix(videoTrack, audioTrack)\n } else if (hasVideo) {\n videoSegment = this._remuxTrack(videoTrack)\n } else if (hasAudio) {\n audioSegment = this._remuxTrack(audioTrack)\n }\n\n if (videoTrack) {\n videoTrack.samples = []\n }\n\n if (audioTrack) {\n audioTrack.samples = []\n }\n\n return {\n videoSegment,\n audioSegment\n }\n }\n\n _remuxMix (videoTrack, audioTrack) {\n const ftyp = MP4.ftyp([videoTrack, audioTrack])\n const { mdatData: video, chunkOffset } = this._remuxData(videoTrack, ftyp.byteLength + 8)\n const { mdatData: audio } = this._remuxData(audioTrack, chunkOffset)\n\n const mdat = MP4.mdat(concatUint8Array(video, audio))\n const moov = MP4.moovMP4([videoTrack, audioTrack])\n\n videoTrack.ext = undefined\n audioTrack.ext = undefined\n\n videoTrack.samples = []\n audioTrack.samples = []\n\n return concatUint8Array(ftyp, mdat, moov)\n }\n\n _remuxTrack (track) {\n const ftyp = MP4.ftyp([track])\n\n const { mdatData } = this._remuxData(track, ftyp.byteLength + 8)\n const mdat = MP4.mdat(mdatData)\n const moov = MP4.moovMP4([track])\n\n track.ext = undefined\n track.samples = []\n\n return concatUint8Array(ftyp, mdat, moov)\n }\n\n _remuxData (track, chunkOffset) {\n const isVideo = track.type === TrackType.VIDEO\n const samples = track.samples\n\n let mdatSize = 0\n if (isVideo) {\n samples.forEach((s) => {\n mdatSize += s.units.reduce((t, c) => (t + c.byteLength), 0)\n mdatSize += (s.units.length * 4)\n })\n } else {\n mdatSize = samples.reduce((t, c) => (t + c.size), 0)\n }\n\n const mdatData = new Uint8Array(mdatSize)\n const mdatView = new DataView(mdatData.buffer)\n\n const ext = track.ext = {\n stts: [],\n stsc: [],\n stsz: [],\n stco: [],\n stss: [],\n ctts: []\n }\n\n const samplesPerChunk = 1\n let dataOffset = 0\n let totalDuration = 0\n let sample\n const sampleLen = samples.length\n for (let i = 0; i < sampleLen; i++) {\n sample = samples[i]\n totalDuration += sample.duration\n\n let sampleSize = isVideo ? 0 : sample.size\n if (isVideo) {\n sample.units.forEach((u) => {\n mdatView.setUint32(dataOffset, u.byteLength)\n dataOffset += 4\n mdatData.set(u, dataOffset)\n dataOffset += u.byteLength\n sampleSize += (4 + u.byteLength)\n })\n } else {\n mdatData.set(sample.data, dataOffset)\n dataOffset += sampleSize\n }\n sample.size = sampleSize\n ext.stsz.push(sampleSize)\n\n if (isVideo) this._fillCttsSamples(ext.ctts, sample.cts)\n this._fillSttsSamples(ext.stts, sample, samples[i + 1])\n this._fillStcoSamples(ext.stco, i, samplesPerChunk, chunkOffset)\n chunkOffset += sampleSize\n\n if (isVideo && sample.keyframe) {\n ext.stss.push(i + 1)\n }\n }\n\n track.duration = totalDuration\n this._fillStscSamples(ext.stsc, sampleLen, samplesPerChunk)\n\n return {\n mdatData,\n chunkOffset\n }\n }\n\n _fillSttsSamples (sttsSamples, cur, next) {\n const lastSample = sttsSamples[sttsSamples.length - 1]\n\n if (next) {\n if (!lastSample || lastSample.value !== cur.duration) {\n sttsSamples.push({ value: cur.duration, count: 1 })\n } else {\n lastSample.count++\n }\n return\n }\n\n if (lastSample) {\n lastSample.count++\n } else {\n sttsSamples.push({ value: 40, count: 1 })\n }\n }\n\n _fillCttsSamples (cttsSamples, cts) {\n const lastSample = cttsSamples[cttsSamples.length - 1]\n\n if (!lastSample || lastSample.value !== cts) {\n cttsSamples.push({ value: cts, count: 1 })\n } else {\n lastSample.count++\n }\n }\n\n _fillStcoSamples (stcoSamples, index, samplePerChunk, chunkOffset) {\n if (!(index % samplePerChunk)) {\n stcoSamples.push(chunkOffset)\n }\n }\n\n _fillStscSamples (samples, sampleCount, samplesPerChunk) {\n if (sampleCount <= samplesPerChunk) {\n samples.push({ firstChunk: 1, samplesPerChunk: sampleCount, sampleDescIndex: 1 })\n } else {\n const len = Math.floor(sampleCount / samplesPerChunk)\n const remaining = sampleCount % samplesPerChunk\n samples.push({ firstChunk: 1, samplesPerChunk, sampleDescIndex: 1 })\n if (remaining) {\n samples.push({ firstChunk: len + 1, samplesPerChunk: remaining, sampleDescIndex: 1 })\n }\n }\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex -- safe\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\nvar FORCED = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy';\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","import { VideoCodecType } from '../model'\nimport { getAvcCodec, readBig16, readBig24, readBig32, readBig64 } from '../utils'\nimport { AAC } from '../codec'\n\nexport class MP4Parser {\n static findBox (data, names, start = 0) {\n const ret = []\n if (!data) return ret\n\n let size = 0\n let type = ''\n let headerSize = 0\n while (data.length > 7) {\n size = readBig32(data)\n type = String.fromCharCode.apply(null, data.subarray(4, 8))\n headerSize = 8\n if (size === 1) {\n size = readBig64(data, 8)\n headerSize += 8\n } else if (!size) {\n size = data.length\n }\n if (!names[0] || type === names[0]) {\n const subData = data.subarray(0, size)\n if (names.length < 2) {\n ret.push({\n start,\n size,\n headerSize,\n type,\n data: subData\n })\n } else {\n return MP4Parser.findBox(subData.subarray(headerSize), names.slice(1), start + headerSize)\n }\n }\n\n start += size\n data = data.subarray(size)\n }\n\n return ret\n }\n\n static moov (box) {\n return parseBox(box, false, (ret, data, start) => {\n ret.mvhd = MP4Parser.mvhd(MP4Parser.findBox(data, ['mvhd'], start)[0])\n ret.trak = MP4Parser.findBox(data, ['trak'], start).map(trak => MP4Parser.trak(trak))\n })\n }\n\n static mvhd (box) {\n return parseBox(box, true, (ret, data) => {\n let start = 0\n if (ret.version === 1) {\n ret.timescale = readBig32(data, 16)\n ret.duration = readBig64(data, 20)\n start += 28\n } else {\n ret.timescale = readBig32(data, 8)\n ret.duration = readBig32(data, 12)\n start += 16\n }\n ret.nextTrackId = readBig32(data, start + 76)\n })\n }\n\n static trak (box) {\n return parseBox(box, false, (ret, data, start) => {\n ret.tkhd = MP4Parser.tkhd(MP4Parser.findBox(data, ['tkhd'], start)[0])\n ret.mdia = MP4Parser.mdia(MP4Parser.findBox(data, ['mdia'], start)[0])\n })\n }\n\n static tkhd (box) {\n return parseBox(box, true, (ret, data) => {\n let start = 0\n if (ret.version === 1) {\n ret.trackId = readBig32(data, 16)\n ret.duration = readBig64(data, 24)\n start += 32\n } else {\n ret.trackId = readBig32(data, 8)\n ret.duration = readBig32(data, 16)\n start += 20\n }\n ret.width = readBig32(data, start + 52)\n ret.height = readBig32(data, start + 56)\n })\n }\n\n static mdia (box) {\n return parseBox(box, false, (ret, data, start) => {\n ret.mdhd = MP4Parser.mdhd(MP4Parser.findBox(data, ['mdhd'], start)[0])\n ret.hdlr = MP4Parser.hdlr(MP4Parser.findBox(data, ['hdlr'], start)[0])\n ret.minf = MP4Parser.minf(MP4Parser.findBox(data, ['minf'], start)[0])\n })\n }\n\n static mdhd (box) {\n return parseBox(box, true, (ret, data) => {\n let start = 0\n if (ret.version === 1) {\n ret.timescale = readBig32(data, 16)\n ret.duration = readBig64(data, 20)\n start += 28\n } else {\n ret.timescale = readBig32(data, 8)\n ret.duration = readBig32(data, 12)\n start += 16\n }\n const lang = readBig16(data, start)\n ret.language = String.fromCharCode(((lang >> 10) & 0x1F) + 0x60, ((lang >> 5) & 0x1F) + 0x60, (lang & 0x1F) + 0x60)\n })\n }\n\n static hdlr (box) {\n return parseBox(box, true, (ret, data) => {\n if (ret.version === 0) {\n ret.handlerType = String.fromCharCode.apply(null, data.subarray(4, 8))\n }\n })\n }\n\n static minf (box) {\n return parseBox(box, false, (ret, data, start) => {\n ret.vmhd = MP4Parser.vmhd(MP4Parser.findBox(data, ['vmhd'], start)[0])\n ret.smhd = MP4Parser.smhd(MP4Parser.findBox(data, ['smhd'], start)[0])\n ret.stbl = MP4Parser.stbl(MP4Parser.findBox(data, ['stbl'], start)[0])\n })\n }\n\n static vmhd (box) {\n return parseBox(box, true, (ret, data) => {\n ret.graphicsmode = readBig16(data)\n ret.opcolor = [readBig16(data, 2), readBig16(data, 4), readBig16(data, 6)]\n })\n }\n\n static smhd (box) {\n return parseBox(box, true, (ret, data) => {\n ret.balance = readBig16(data)\n })\n }\n\n static stbl (box) {\n return parseBox(box, false, (ret, data, start) => {\n ret.stsd = MP4Parser.stsd(MP4Parser.findBox(data, ['stsd'], start)[0])\n ret.stts = MP4Parser.stts(MP4Parser.findBox(data, ['stts'], start)[0])\n ret.ctts = MP4Parser.ctts(MP4Parser.findBox(data, ['ctts'], start)[0])\n ret.stsc = MP4Parser.stsc(MP4Parser.findBox(data, ['stsc'], start)[0])\n ret.stsz = MP4Parser.stsz(MP4Parser.findBox(data, ['stsz'], start)[0])\n ret.stco = MP4Parser.stco(MP4Parser.findBox(data, ['stco'], start)[0])\n ret.stss = MP4Parser.stss(MP4Parser.findBox(data, ['stss'], start)[0])\n })\n }\n\n static stsd (box) {\n return parseBox(box, true, (ret, data, start) => {\n ret.entryCount = readBig32(data)\n ret.entries = MP4Parser.findBox(data.subarray(4), [], start + 4).map(b => {\n switch (b.type) {\n case 'avc1':\n case 'avc2':\n case 'avc3':\n case 'avc4':\n return MP4Parser.avc1(b)\n case 'hvc1':\n case 'hev1':\n return MP4Parser.hvc1(b)\n case 'mp4a':\n return MP4Parser.mp4a(b)\n }\n }).filter(Boolean)\n })\n }\n\n static avc1 (box) {\n return parseBox(box, false, (ret, data, start) => {\n const bodyStart = parseVisualSampleEntry(ret, data)\n const bodyData = data.subarray(bodyStart)\n start += bodyStart\n ret.avcC = MP4Parser.avcC(MP4Parser.findBox(bodyData, ['avcC'], start)[0])\n ret.pasp = MP4Parser.pasp(MP4Parser.findBox(bodyData, ['pasp'], start)[0])\n })\n }\n\n static avcC (box) {\n return parseBox(box, false, (ret, data) => {\n ret.configurationVersion = data[0]\n ret.AVCProfileIndication = data[1]\n ret.profileCompatibility = data[2]\n ret.AVCLevelIndication = data[3]\n ret.codec = getAvcCodec([data[1], data[2], data[3]])\n ret.lengthSizeMinusOne = data[4] & 0x3\n ret.spsLength = data[5] & 0x1F\n ret.sps = []\n let start = 6\n for (let i = 0; i < ret.spsLength; i++) {\n const size = readBig16(data, start)\n start += 2\n ret.sps.push(data.subarray(start, start + size))\n start += size\n }\n ret.ppsLength = data[start]\n start += 1\n ret.pps = []\n for (let i = 0; i < ret.ppsLength; i++) {\n const size = readBig16(data, start)\n start += 2\n ret.pps.push(data.subarray(start, start += size))\n start += size\n }\n })\n }\n\n static hvc1 (box) {\n return parseBox(box, false, (ret, data, start) => {\n const bodyStart = parseVisualSampleEntry(ret, data)\n const bodyData = data.subarray(bodyStart)\n start += bodyStart\n ret.hvcC = MP4Parser.hvcC(MP4Parser.findBox(bodyData, ['hvcC'], start)[0])\n ret.pasp = MP4Parser.pasp(MP4Parser.findBox(bodyData, ['pasp'], start)[0])\n })\n }\n\n static hvcC (box) {\n return parseBox(box, false, (ret, data) => {\n ret.data = box.data\n ret.codec = 'hev1.1.6.L93.B0'\n ret.configurationVersion = data[0]\n let tmp = data[1]\n ret.generalProfileSpace = tmp >> 6\n ret.generalTierFlag = (tmp & 0x20) >> 5\n ret.generalProfileIdc = tmp & 0x1F\n ret.generalProfileCompatibility = readBig32(data, 2)\n ret.generalConstraintIndicatorFlags = data.subarray(6, 12)\n ret.generalLevelIdc = data[12]\n ret.avgFrameRate = readBig16(data, 19)\n ret.numOfArrays = data[22]\n ret.vps = []\n ret.sps = []\n ret.pps = []\n let start = 23\n let type = 0\n let numNalus = 0\n let size = 0\n for (let i = 0; i < ret.numOfArrays; i++) {\n type = data[start] & 0x3F\n numNalus = readBig16(data, start + 1)\n start += 3\n const nalus = []\n for (let j = 0; j < numNalus; j++) {\n size = readBig16(data, start)\n start += 2\n nalus.push(data.subarray(start, start + size))\n start += size\n }\n\n if (type === 32) {\n ret.vps.push(...nalus)\n } else if (type === 33) {\n ret.sps.push(...nalus)\n } else if (type === 34) {\n ret.pps.push(...nalus)\n }\n }\n })\n }\n\n static pasp (box) {\n return parseBox(box, false, (ret, data) => {\n ret.hSpacing = readBig32(data)\n ret.vSpacing = readBig32(data, 4)\n })\n }\n\n static mp4a (box) {\n return parseBox(box, false, (ret, data, start) => {\n const bodyStart = parseAudioSampleEntry(ret, data)\n ret.esds = MP4Parser.esds(MP4Parser.findBox(data.subarray(bodyStart), ['esds'], start + bodyStart)[0])\n })\n }\n\n static esds (box) {\n return parseBox(box, true, (ret, data) => {\n ret.codec = 'mp4a.'\n let start = 0\n let byteRead = 0\n let size = 0\n let tag = 0\n while (data.length) {\n start = 0\n tag = data[start]\n byteRead = data[start + 1]\n start += 2\n while (byteRead & 0x80) {\n size = (byteRead & 0x7F) << 7\n byteRead = data[start]\n start += 1\n }\n size += byteRead & 0x7F\n if (tag === 3) {\n data = data.subarray(start + 3)\n } else if (tag === 4) {\n ret.codec += (data[start].toString(16) + '.').padStart(3, '0')\n data = data.subarray(start + 13)\n } else if (tag === 5) {\n const config = ret.config = data.subarray(start, start + size)\n let objectType = (config[0] & 0xF8) >> 3\n if (objectType === 31 && config.length >= 2) {\n objectType = 32 + ((config[0] & 0x7) << 3) + ((config[1] & 0xE0) >> 5)\n }\n ret.objectType = objectType\n ret.codec += objectType.toString(16)\n return\n } else {\n return\n }\n }\n })\n }\n\n static stts (box) {\n return parseBox(box, true, (ret, data) => {\n const entryCount = readBig32(data)\n const entries = []\n let start = 4\n for (let i = 0; i < entryCount; i++) {\n entries.push({\n count: readBig32(data, start),\n delta: readBig32(data, start + 4)\n })\n start += 8\n }\n ret.entryCount = entryCount\n ret.entries = entries\n })\n }\n\n static ctts (box) {\n return parseBox(box, true, (ret, data) => {\n const entryCount = readBig32(data)\n const entries = []\n let start = 4\n if (ret.version === 1) {\n for (let i = 0; i < entryCount; i++) {\n entries.push({\n count: readBig32(data, start),\n offset: readBig32(data, start + 4)\n })\n start += 8\n }\n } else {\n for (let i = 0; i < entryCount; i++) {\n entries.push({\n count: readBig32(data, start),\n offset: -(~readBig32(data, start + 4) + 1)\n })\n start += 8\n }\n }\n ret.entryCount = entryCount\n ret.entries = entries\n })\n }\n\n static stsc (box) {\n return parseBox(box, true, (ret, data) => {\n const entryCount = readBig32(data)\n const entries = []\n let start = 4\n for (let i = 0; i < entryCount; i++) {\n entries.push({\n firstChunk: readBig32(data, start),\n samplesPerChunk: readBig32(data, start + 4),\n sampleDescriptionIndex: readBig32(data, start + 8)\n })\n start += 12\n }\n ret.entryCount = entryCount\n ret.entries = entries\n })\n }\n\n static stsz (box) {\n return parseBox(box, true, (ret, data) => {\n const sampleSize = readBig32(data)\n const sampleCount = readBig32(data, 4)\n const entrySizes = []\n if (!sampleSize) {\n let start = 8\n for (let i = 0; i < sampleCount; i++) {\n entrySizes.push(readBig32(data, start))\n start += 4\n }\n }\n ret.sampleSize = sampleSize\n ret.sampleCount = sampleCount\n ret.entrySizes = entrySizes\n })\n }\n\n static stco (box) {\n return parseBox(box, true, (ret, data) => {\n const entryCount = readBig32(data)\n const entries = []\n let start = 4\n for (let i = 0; i < entryCount; i++) {\n entries.push(readBig32(data, start))\n start += 4\n }\n ret.entryCount = entryCount\n ret.entries = entries\n })\n }\n\n static stss (box) {\n return parseBox(box, true, (ret, data) => {\n const entryCount = readBig32(data)\n const entries = []\n let start = 4\n for (let i = 0; i < entryCount; i++) {\n entries.push(readBig32(data, start))\n start += 4\n }\n ret.entryCount = entryCount\n ret.entries = entries\n })\n }\n\n static moovToTrack (moov, videoTrack, audioTrack) {\n const tracks = moov.trak\n if (!tracks || !tracks.length) return\n const vTrack = tracks.find(t => t.mdia?.hdlr?.handlerType === 'vide')\n const aTrack = tracks.find(t => t.mdia?.hdlr?.handlerType === 'soun')\n\n if (vTrack && videoTrack) {\n const v = videoTrack\n v.timescale = v.formatTimescale = vTrack.mdia.mdhd.timescale\n v.duration = vTrack.mdia.mdhd.duration\n const e1 = vTrack.mdia.minf.stbl.stsd.entries[0]\n v.width = e1.width\n v.height = e1.height\n if (e1.pasp) {\n v.sarRatio = [e1.pasp.hSpacing, e1.pasp.vSpacing]\n }\n if (e1.hvcC) {\n v.codecType = VideoCodecType.HEVC\n v.codec = e1.hvcC.codec\n v.vps = e1.hvcC.vps\n v.sps = e1.hvcC.sps\n v.pps = e1.hvcC.pps\n v.hvcC = e1.hvcC.data\n } else if (e1.avcC) {\n v.codec = e1.avcC.codec\n v.sps = e1.avcC.sps\n v.pps = e1.avcC.pps\n } else {\n throw new Error('unknown video stsd entry')\n }\n\n v.present = true\n }\n\n if (aTrack && audioTrack) {\n const a = audioTrack\n a.timescale = a.formatTimescale = aTrack.mdia.mdhd.timescale\n a.duration = aTrack.mdia.mdhd.duration\n const e1 = aTrack.mdia.minf.stbl.stsd.entries[0]\n a.sampleSize = e1.sampleSize\n a.sampleRate = e1.sampleRate\n a.channelCount = e1.channelCount\n a.sampleDuration = AAC.getFrameDuration(a.sampleRate, a.timescale)\n a.objectType = e1.esds?.objectType || 2\n if (e1.esds) a.config = Array.from(e1.esds.config)\n a.codec = e1.esds?.codec || 'mp4a.40.2'\n a.sampleRateIndex = AAC.getRateIndexByRate(a.sampleRate)\n a.present = true\n }\n\n return {\n videoTrack,\n audioTrack\n }\n }\n\n static moovToSamples (moov) {\n const tracks = moov.trak\n if (!tracks || !tracks.length) return\n const vTrack = tracks.find(t => t.mdia?.hdlr?.handlerType === 'vide')\n const aTrack = tracks.find(t => t.mdia?.hdlr?.handlerType === 'soun')\n if (!vTrack && !aTrack) return\n let videoSamples\n let audioSamples\n if (vTrack) {\n const videoStbl = vTrack.mdia?.minf?.stbl\n if (!videoStbl) return\n const { stts, stsc, stsz, stco, stss, ctts } = videoStbl\n if (!stts || !stsc || !stsz || !stco || !stss) return\n videoSamples = getSamples(stts, stsc, stsz, stco, ctts, stss)\n }\n if (aTrack) {\n const audioStbl = aTrack.mdia?.minf?.stbl\n if (!audioStbl) return\n const timescale = aTrack.mdia.mdhd?.timescale\n const { stts, stsc, stsz, stco } = audioStbl\n if (!timescale || !stts || !stsc || !stsz || !stco) return\n audioSamples = getSamples(stts, stsc, stsz, stco)\n }\n\n return {\n videoSamples,\n audioSamples\n }\n }\n}\n\nfunction getSamples (stts, stsc, stsz, stco, ctts, stss) {\n const samples = []\n const cttsEntries = ctts?.entries\n const stscEntries = stsc.entries\n const stcoEntries = stco.entries\n const stszEntrySizes = stsz.entrySizes\n const stssEntries = stss?.entries\n let keyframeMap\n if (stssEntries) {\n keyframeMap = {}\n stssEntries.forEach(x => { keyframeMap[x - 1] = true })\n }\n let cttsArr\n if (cttsEntries) {\n cttsArr = []\n cttsEntries.forEach(({ count, offset }) => {\n for (let i = 0; i < count; i++) {\n cttsArr.push(offset)\n }\n })\n }\n\n let sample\n let gopId = -1\n let dts = 0\n let pos = 0\n let chunkIndex = 0\n let chunkRunIndex = 0\n let offsetInChunk = 0\n let lastSampleInChunk = stscEntries[0].samplesPerChunk\n let lastChunkInRun = stscEntries[1] ? stscEntries[1].firstChunk - 1 : Infinity\n stts.entries.forEach(({ count, delta }) => {\n for (let i = 0; i < count; i++) {\n sample = {\n dts,\n duration: delta,\n size: stszEntrySizes[pos] || stsz.sampleSize,\n offset: stcoEntries[chunkIndex] + offsetInChunk,\n index: pos\n }\n if (stssEntries) {\n sample.keyframe = keyframeMap[pos]\n if (sample.keyframe) {\n gopId++\n }\n sample.gopId = gopId\n }\n if (cttsArr && cttsArr[pos]) {\n sample.pts = sample.dts + cttsArr[pos]\n }\n samples.push(sample)\n dts += delta\n pos++\n\n if (pos < lastSampleInChunk) {\n offsetInChunk += sample.size\n } else {\n chunkIndex++\n offsetInChunk = 0\n if (chunkIndex >= lastChunkInRun) {\n chunkRunIndex++\n lastChunkInRun = stscEntries[chunkRunIndex + 1] ? stscEntries[chunkRunIndex + 1].firstChunk - 1 : Infinity\n }\n lastSampleInChunk += stscEntries[chunkRunIndex].samplesPerChunk\n }\n }\n })\n\n return samples\n}\n\nfunction parseVisualSampleEntry (ret, data) {\n ret.dataReferenceIndex = readBig16(data, 6)\n ret.width = readBig16(data, 24)\n ret.height = readBig16(data, 26)\n ret.horizresolution = readBig32(data, 28)\n ret.vertresolution = readBig32(data, 32)\n ret.frameCount = readBig16(data, 40)\n ret.depth = readBig16(data, 74)\n return 78\n}\n\nfunction parseAudioSampleEntry (ret, data) {\n ret.dataReferenceIndex = readBig16(data, 6)\n ret.channelCount = readBig16(data, 16)\n ret.sampleSize = readBig16(data, 18)\n ret.sampleRate = readBig32(data, 24) / (1 << 16)\n return 28\n}\n\nfunction parseBox (box, isFullBox, parse) {\n if (!box) return\n if (box.size !== box.data.length) throw new Error(`box ${box.type} size !== data.length`)\n const ret = {\n start: box.start,\n size: box.size,\n headerSize: box.headerSize,\n type: box.type\n }\n if (isFullBox) {\n ret.version = box.data[box.headerSize]\n ret.flags = readBig24(box.data, box.headerSize + 1)\n ret.headerSize += 4\n }\n parse(ret, box.data.subarray(ret.headerSize), ret.start + ret.headerSize)\n return ret\n}\n","import { VideoTrack, AudioTrack, MetadataTrack, AudioSample, VideoSample } from '../model'\nimport { readBig32 } from '../utils'\nimport { MP4Parser } from './mp4-parser'\nimport { Logger } from './logger'\nconst NEW_ARRAY_MAX_CNT = 20\nexport class MP4Demuxer {\n _videoSamples = []\n _audioSamples = []\n _lastRemainBuffer = []\n\n constructor (videoTrack, audioTrack, metadataTrack, options) {\n this.videoTrack = videoTrack || new VideoTrack()\n this.audioTrack = audioTrack || new AudioTrack()\n this.metadataTrack = metadataTrack || new MetadataTrack()\n this.log = new Logger('MP4Demuxer', options && options.openLog ? !options.openLog : true)\n }\n\n parseSamples (moov) {\n if (!this._audioSamples.length && !this._videoSamples.length) {\n if (!moov) {\n throw new Error('moov is required')\n }\n MP4Parser.moovToTrack(moov, this.videoTrack, this.audioTrack)\n const ret = MP4Parser.moovToSamples(moov)\n if (!ret) throw new Error('cannot parse samples from moov box')\n this._videoSamples = ret.videoSamples || []\n this._audioSamples = ret.audioSamples || []\n }\n }\n\n demux (data, dataStart, videoIndexRange, audioIndexRange, moov) {\n if (!this._audioSamples.length && !this._videoSamples.length) {\n this.parseSamples(moov)\n }\n const videoTrack = this.videoTrack\n const audioTrack = this.audioTrack\n\n videoTrack.samples = []\n audioTrack.samples = []\n\n let sample\n let sampleData\n let startByte\n if (videoIndexRange) {\n let frame\n let nalSize = 0\n for (let i = videoIndexRange[0], l = videoIndexRange[1]; i <= l; i++) {\n sample = this._videoSamples[i]\n if (!sample) {\n throw new Error(`cannot found video frame #${i}`)\n }\n startByte = sample.offset - dataStart\n sampleData = data.subarray(startByte, startByte + sample.size)\n frame = new VideoSample(sample.pts || sample.dts, sample.dts)\n frame.duration = sample.duration\n frame.gopId = sample.gopId\n if (sample.keyframe) frame.setToKeyframe()\n let start = 0\n const len = sampleData.length - 1\n while (start < len) {\n nalSize = readBig32(sampleData, start)\n start += 4\n frame.units.push(sampleData.subarray(start, start + nalSize))\n start += nalSize\n }\n videoTrack.samples.push(frame)\n }\n\n videoTrack.baseMediaDecodeTime = videoTrack.samples[0].dts\n }\n if (audioIndexRange) {\n for (let i = audioIndexRange[0], l = audioIndexRange[1]; i <= l; i++) {\n sample = this._audioSamples[i]\n if (!sample) {\n throw new Error(`cannot found video frame #${i}`)\n }\n startByte = sample.offset - dataStart\n sampleData = data.subarray(startByte, startByte + sample.size)\n audioTrack.samples.push(new AudioSample(sample.dts, sampleData, sample.duration))\n }\n audioTrack.baseMediaDecodeTime = audioTrack.samples[0].dts\n }\n\n return {\n videoTrack,\n audioTrack,\n metadataTrack: this.metadataTrack\n }\n }\n\n demuxPart (data, dataStart, moov) {\n if (!this._audioSamples.length && !this._videoSamples.length) {\n this.parseSamples(moov)\n }\n this.log.debug('[demuxPart start],dataStart,', dataStart, ',dataLen,', data.byteLength, ', lastRemain,', this._lastRemainBuffer ? this._lastRemainBuffer.byteLength : 0)\n if (this._lastRemainBuffer && this._lastRemainBuffer.byteLength > 0) {\n let tryCnt = 0\n while (tryCnt < NEW_ARRAY_MAX_CNT) {\n try {\n let temp = new Uint8Array(data.byteLength + this._lastRemainBuffer.byteLength)\n temp.set(this._lastRemainBuffer, 0)\n temp.set(new Uint8Array(data), this._lastRemainBuffer.byteLength)\n data = temp\n dataStart -= this._lastRemainBuffer.byteLength\n this._lastRemainBuffer = null\n this.log.debug('[demuxPart add lastRemain],dataStart,', dataStart, ',dataLen,', data.byteLength)\n break\n } catch (e) {\n if (tryCnt < NEW_ARRAY_MAX_CNT) {\n tryCnt++\n } else {\n throw new Error('new Uint8Array error:,' + e.errorMessage)\n }\n }\n }\n }\n const videoTrack = this.videoTrack\n const audioTrack = this.audioTrack\n\n videoTrack.samples = []\n audioTrack.samples = []\n\n let sample\n let sampleData\n let startByte\n let videoEndByte = 0\n let audioEndByte = 0\n if (this._videoSamples) {\n let frame\n let nalSize = 0\n for (let i = 0; i < this._videoSamples.length; i++) {\n sample = this._videoSamples[i]\n if (!sample) {\n throw new Error(`cannot found video frame #${i}`)\n }\n if (sample.offset >= dataStart && sample.offset + sample.size <= data.byteLength + dataStart) {\n startByte = sample.offset - dataStart\n videoEndByte = startByte + sample.size\n sampleData = data.subarray(startByte, videoEndByte)\n frame = new VideoSample(sample.pts || sample.dts, sample.dts)\n frame.duration = sample.duration\n frame.gopId = sample.gopId\n if (sample.keyframe) frame.setToKeyframe()\n let start = 0\n const len = sampleData.length - 1\n while (start < len) {\n nalSize = readBig32(sampleData, start)\n start += 4\n frame.units.push(sampleData.subarray(start, start + nalSize))\n start += nalSize\n }\n this.log.debug('[demuxPart frame],sample,', sample)\n videoTrack.samples.push(frame)\n }\n }\n videoTrack.baseMediaDecodeTime = videoTrack.samples.length > 0 ? videoTrack.samples[0].dts : 0\n }\n if (this._audioSamples) {\n for (let i = 0; i < this._audioSamples.length; i++) {\n sample = this._audioSamples[i]\n if (!sample) {\n throw new Error(`cannot found video frame #${i}`)\n }\n if (sample.offset >= dataStart && sample.offset + sample.size <= data.byteLength + dataStart) {\n startByte = sample.offset - dataStart\n audioEndByte = startByte + sample.size\n sampleData = data.subarray(startByte, audioEndByte)\n this.log.debug('[demuxPart frame],sample,', sample)\n audioTrack.samples.push(new AudioSample(sample.dts, sampleData, sample.duration))\n }\n }\n audioTrack.baseMediaDecodeTime = audioTrack.samples.length > 0 ? audioTrack.samples[0].dts : -1\n }\n this._lastRemainBuffer = data.subarray(Math.max(videoEndByte, audioEndByte))\n this.log.debug('[demuxPart end ,lastRemain],dataStart,', this._lastRemainBuffer.byteLength)\n\n return {\n videoTrack,\n audioTrack,\n metadataTrack: this.metadataTrack\n }\n }\n\n reset () {\n this._videoSamples = []\n this._audioSamples = []\n this._lastRemainBuffer = null\n this.videoTrack.reset()\n this.audioTrack.reset()\n this.metadataTrack.reset()\n }\n\n static probe (data) {\n return !!MP4Parser.findBox(data, ['ftyp'])\n }\n}\n","import * as flv from './flv'\nimport * as mpegTs from './mpeg-ts'\nimport * as mp4 from './mp4'\nimport * as model from './model'\nimport { Logger } from './utils'\n\nexport default {\n ...flv,\n ...mpegTs,\n ...mp4,\n ...model,\n Logger\n}\n"],"names":["check","it","Math","global","globalThis","window","self","this","Function","fails","exec","error","descriptors","require$$0","Object","defineProperty","get","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","call","V","descriptor","enumerable","match","version","createPropertyDescriptor","bitmap","value","configurable","writable","toString","classofRaw","slice","classof","require$$1","split","indexedObject","requireObjectCoercible","undefined","TypeError","IndexedObject","toIndexedObject","isObject","aFunction","variable","getBuiltIn","namespace","method","arguments","length","engineUserAgent","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","nativeSymbol","getOwnPropertySymbols","symbol","Symbol","String","sham","useSymbolAsUid","iterator","isSymbol","$Symbol","setGlobal","key","SHARED","sharedStore","store","sharedModule","push","mode","copyright","toObject","argument","hasOwnProperty","has","hasOwn","id","postfix","random","uid","shared","require$$2","require$$3","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","ordinaryToPrimitive","input","pref","fn","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","document","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$6","$getOwnPropertyDescriptor","O","P","f","anObject","$defineProperty","Attributes","definePropertyModule","createNonEnumerableProperty","object","functionToString","inspectSource","set","WeakMap","nativeWeakMap","test","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","objectHas","require$$7","OBJECT_ALREADY_INITIALIZED","state","wmget","wmhas","wmset","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","getInternalState","enforceInternalState","TEMPLATE","redefineModule","options","unsafe","simple","noTargetGet","source","join","prototype","ceil","floor","toInteger","isNaN","min","toLength","max","toAbsoluteIndex","index","integer","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isForced_1","redefine","copyConstructorProperties","target","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","objectKeys","nativeKeys","activeXDocument","isArray","Array","arg","objectDefineProperties","defineProperties","Properties","html","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","style","display","appendChild","src","contentWindow","open","F","objectCreate","create","$getOwnPropertyNames","windowNames","getWindowNames","path","wrappedWellKnownSymbolModule","TO_STRING_TAG","setToStringTag","TAG","functionBindContext","that","b","c","apply","SPECIES","arraySpeciesConstructor","originalArray","C","constructor","arraySpeciesCreate","bind","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","forEach","map","filter","some","every","find","findIndex","filterReject","$","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","$toString","require$$15","require$$16","nativeObjectCreate","require$$17","require$$18","require$$19","getOwnPropertyNamesExternal","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$29","require$$30","require$$31","require$$32","defineWellKnownSymbol","NAME","require$$34","InternalStateModule","require$$35","$forEach","require$$36","HIDDEN","require$$28","SYMBOL","setInternalState","ObjectPrototype","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","tag","description","$defineProperties","properties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","setter","for","keyFor","sym","useSetter","useSimple","stringify","replacer","space","$replacer","args","arrayMethodHasSpeciesSupport","METHOD_NAME","array","foo","Boolean","$filter","proto","FAILS_ON_PRIMITIVES","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","arrayMethodIsStrict","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","createProperty","propertyKey","_defineProperty","obj","_classCallCheck","instance","Constructor","_defineProperties","props","_createClass","protoProps","staticProps","getOwnPropertyDescriptors","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","k","len","E","A","n","$map","UNSCOPABLES","ArrayPrototype","addToUnscopables","$includes","MATCH","isRegExp","notARegExp","regexp","error1","error2","correctIsRegExpLogic","searchString","TrackType","VIDEO","AUDIO","METADATA","VideoCodecType","AVC","HEVC","AudioCodecType","AAC","G711PCMA","G711PCMU","WarningType","LARGE_AV_SHIFT","LARGE_VIDEO_GAP","LARGE_VIDEO_GAP_BETWEEN_CHUNK","LARGE_AUDIO_GAP","AUDIO_FILLED","AUDIO_DROPPED","VideoTrack","sequenceNumber","width","height","fpsDen","fpsNum","duration","baseMediaDecodeTime","timescale","codec","present","pid","pps","sps","vps","sarRatio","samples","warnings","hvcC","AudioTrack","sampleDuration","sampleRate","channelCount","config","VideoSample","pts","dts","units","originPts","originDts","keyframe","flag","dependsOn","isNonSyncSample","AudioSample","size","byteLength","factories","construct","argsLength","list","functionBind","partArgs","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","FORCED","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_inherits","subClass","superClass","_typeof","_possibleConstructorReturn","ReferenceError","assertThisInitialized","_getPrototypeOf","getPrototypeOf","Target","newTarget","$args","Sample","FlvScriptSample","SeiSample","MetadataTrack","flvScriptSamples","seiSamples","globalIsFinite","isFinite","Number","aPossiblePrototype","objectSetPrototypeOf","CORRECT_SETTER","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","whitespace","ltrim","RegExp","rtrim","stringTrim","start","end","trim","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","first","third","radix","maxCode","digits","code","charCodeAt","NaN","parseInt","NumberWrapper","j","HAS_SPECIES_SUPPORT","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","splice","deleteCount","insertCount","actualDeleteCount","from","to","actualStart","argumentsLength","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","iterators","correctPrototypeGetter","CORRECT_PROTOTYPE_GETTER","objectGetPrototypeOf","ITERATOR","BUGGY_SAFARI_ITERATORS","iteratorsCore","Iterators","returnThis","createIteratorConstructor","IteratorConstructor","next","KEYS","VALUES","ENTRIES","defineIterator","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","ARRAY_ITERATOR","es_array_iterator","iterated","kind","done","Arguments","toStringTagSupport","TO_STRING_TAG_SUPPORT","CORRECT_ARGUMENTS","tryGet","callee","objectToString","SAFE_CLOSING","called","iteratorWithReturn","return","Prototype","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","arrayBufferNative","ArrayBuffer","DataView","NATIVE_ARRAY_BUFFER","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","isPrototypeOf","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isTypedArray","klass","arrayBufferViewCore","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","property","ARRAY","TypedArrayConstructor","exportTypedArrayStaticMethod","isView","typedArrayConstructorsRequireWrappers","iterable","anInstance","toIndex","number","RangeError","abs","pow","log","LN2","arrayFill","endPos","redefineAll","IEEE754","pack","mantissaLength","bytes","exponent","mantissa","buffer","exponentLength","eMax","eBias","rt","sign","Infinity","unpack","nBits","ARRAY_BUFFER","DATA_VIEW","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","packIEEE754","unpackIEEE754","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","byteOffset","reverse","conversion","ArrayBufferPrototype","testView","$setInt8","setInt8","getInt8","setUint8","bufferLength","offset","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","arrayBuffer","toPositiveInteger","toOffset","BYTES","getIteratorMethod","isArrayIteratorMethod","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isInteger","typedArrayFrom","step","mapfn","mapping","iteratorMethod","setSpecies","CONSTRUCTOR_NAME","round","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","typedArrayConstructorModule","wrapper","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","getter","typedArrayOffset","$length","$len","createTypedArrayConstructor","init","$copyWithin","copyWithin","inc","$every","$fill","speciesConstructor","defaultConstructor","S","typedArraySpeciesConstructor","arrayFromConstructorAndList","fromSpeciesAndList","$find","predicate","$findIndex","searchElement","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","separator","$lastIndexOf","lastIndexOf","NEGATIVE_ZERO","STRICT_METHOD","IS_RIGHT","memo","arrayReduce","left","right","$reduce","$reduceRight","middle","arrayLike","$slice","$some","mergeSort","comparefn","insertionSort","merge","element","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","sort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","expected","arrayLength","items","x","y","getSortCompare","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","regexpFlags","ignoreCase","multiline","dotAll","unicode","sticky","flags","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","R","rf","ExpGolomb","Error","_data","_bytesAvailable","_loadWord","position","availableBytes","workingBytes","subarray","_word","_bitsAvailable","skipBytes","bits","readBits","leadingZeroCount","skipLZ","skipBits","clz","readUEG","lastScale","nextScale","readEG","FunctionPrototype","FunctionPrototypeToString","nameRE","Logger","_prefix","disabled","console","warn","nativeJoin","ES3_STRINGS","UTF8","uint8array","out","fromCharCode","_checkContinuation","ucs4","checkLength","isBrowser","ua","navigator","toLocaleLowerCase","isSafari","isFirefox","isAndroid","concatUint8Array","arr","reduce","prevLen","d","MAX_SIZE","readBig16","readBig32","readBig64","getAvcCodec","codecs","h","NALu","dataLen","unit","uuid","payload","uint","emulationPreventionBytesPositions","newLength","newData","sourceIndex","shift","spsParsed","spsSize","nalUnitSize","spsArr","ppsArr","spsCount","parseSPS","removeEPB","ppsSize","ppsCount","eg","readUByte","profileIdc","profileCompatibility","levelIdc","skipUEG","chromaFormat","chromaFormatIdc","readBool","scalingListCount","skipScalingList","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","fixedFrame","fps","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","numUnitsInTick","timeScale","rate","FREQ","skip","frames","samplingFrequencyIndex","protectionSkipBytes","frameLength","objectType","_getConfig","frameIndex","getFrameDuration","remaining","originCodec","samplingIndex","originObjectType","extensionSamplingIndex","nalUnitType","numNalus","nalSize","vpsArr","numOfArrays","spsMaxSubLayersMinus1","tierLevel","_parseProfileTierLevel","separateColourPlaneFlag","confWinLeftOffset","confWinRightOffset","confWinTopOffset","confWinBottomOffset","conformanceWindowFlag","bitDepthLumaMinus8","bitDepthChromaMinus8","generalProfileSpace","generalTierFlag","generalProfileIdc","generalLevelIdc","maxSubLayersMinus1","profilePresentFlag","subLayerProfilePresentFlag","subLayerLevelPresentFlag","MAX_SILENT_FRAME_DURATION","AUDIO_EXCETION_LOG_EMIT_DURATION","FlvFixer","videoTrack","audioTrack","metadataTrack","_baseDts","_baseDtsInited","_audioNextPts","_videoNextDts","_audioTimestampBreak","_videoTimestampBreak","_lastAudioExceptionGapDot","_lastAudioExceptionOverlapDot","_lastAudioExceptionLargeGapDot","_lastVideoExceptionLargeGapDot","_lastVideoExceptionChunkFirstDtsDot","startTime","discontinuity","contiguous","_videoLastSample","_calculateBaseDts","_resetBaseDtsWhenStreamBreaked","_fixAudio","_fixVideo","exist","s","_this","time","refSampleDurationInt","_this2","last","lastSample","pop","unshift","samp0","firstSample","vDelta","nextDts","firstSampleDts","nextSampleDts","_samples$","nextSample","refSampleDuration","_this3","_doFixAudioInternal","audioSamps","videoSamps","audioBasePts","videoBaseDts","baseDts","delta","codecType","_getG711Duration","sampleDurationInSampleRate","nextPts","sample","silentFrame","_getSilentFrame","silentSample","track","sampleSize","getSilentFrame","AMF","ret","_parseValue","isEnd","_parseString","terminal","_parseObject","strictArrayLength","timestamp","Date","decode","logger","FlvDemuxer","_fixer","_remainingData","_headerParsed","reset","probe","tagType","dataSize","bodyData","prevTagSize","_parseAudio","_parseVideo","_parseScript","formatTimescale","hasSample","fix","demux","format","soundRate","soundSize","soundType","AUDIO_RATE","_parseAac","_parseG711","parseAudioSpecificConfig","sampleRateIndex","frameType","codecId","isHevc","packetType","cts","configData","parseHEVCDecoderConfigurationRecord","parseAVCDecoderConfigurationRecord","parseAvcC","_checkAddMetaNalToUnits","setToKeyframe","parseSEI","_gopId","gopId","hevc","_needAddMetaBeforeKeyFrameNal","parse","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","arrayLikeToArray","_toConsumableArray","arrayWithoutHoles","iter","iterableToArray","unsupportedIterableToArray","nonIterableSpread","MAX_VIDEO_FRAME_DURATION","TsFixer","vSamples","aSamples","firstVideoSample","firstAudioSample","vaDelta","vDeltaToNextDts","aDeltaToNextDts","expectFragEnd","_audioNextDts","_audioLastSample","TsDemuxer","_pmtId","_remainingPacketData","_videoPesData","_audioPesData","remainingLength","videoPid","audioPid","payloadUnitStartIndicator","adaptationFiledControl","tableEnd","programInfoLength","esPid","_parseVideoData","_parseAudioData","pes","_parsePES","parseAnnexB","_createVideoSample","spsInfo","_pushVideoSample","prevAvcSample","_parseAacData","parseADTS","headerDataLen","pesLen","ptsDtsFlags","_slicedToArray","arrayWithHoles","_i","_s","_e","_arr","_n","_d","err","iterableToArrayLimit","nonIterableRest","FIND","SKIPS_HOLES","UINT32_MAX","MP4","tracks","t","FTYPHEV1","FTYPAVC1","ftyp","moov","box","types","mvhd","trak","mvex","tkhd","mdia","mdhd","hdlr","minf","HDLR_TYPES","VMHD","SMHD","DINF","stbl","stsd","STTS","STSC","STSZ","STCO","avc1hev1","mp4a","typ","hvc1","avc1","avcC","boxes","pasp","hSpacing","vSpacing","esds","trex","moof","mfhd","traf","tfhd","tfdt","trun","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","sampleLen","isLeading","isDependedOn","hasRedundancy","paddingValue","degradationPriority","mdat","trackMP4","mdiaMP4","minfMP4","stblMP4","ext","stts","stsc","stsz","stco","stss","ctts","firstChunk","samplesPerChunk","sampleDescIndex","samplesSizes","offsets","keyframeIndexes","video","audio","dinf","dref","vmhd","smhd","StblTable","enable","debug","group","table","groupEnd","FMP4Remuxer","openLog","videoInitSegment","audioInitSegment","initSegment","createInit","hasVideo","hasAudio","videoSegment","audioSegment","_remuxVideo","_remuxAudio","mdatSize","mdatData","mdatView","l","u","MP4Remuxer","_remuxMix","_remuxTrack","_remuxData","chunkOffset","moovMP4","isVideo","dataOffset","totalDuration","_fillCttsSamples","_fillSttsSamples","_fillStcoSamples","_fillStscSamples","sttsSamples","cur","cttsSamples","stcoSamples","samplePerChunk","sampleCount","nativeSlice","fin","ArrayIteratorMethods","ArrayValues","repeat","str","IS_END","maxLength","fillString","fillLen","stringFiller","stringLength","fillStr","intMaxLength","stringPad","stringPadWebkitBug","$padStart","padStart","iteratorClose","returnMethod","callWithSafeIterationClosing","CONVERT_TO_STRING","pos","second","charAt","codeAt","STRING_ITERATOR","point","objectDefinePropertyModule","regExpFlags","MP4Parser","headerSize","subData","findBox","parseBox","nextTrackId","trackId","lang","language","handlerType","graphicsmode","opcolor","balance","entryCount","bodyStart","parseVisualSampleEntry","configurationVersion","AVCProfileIndication","AVCLevelIndication","lengthSizeMinusOne","spsLength","ppsLength","tmp","generalProfileCompatibility","generalConstraintIndicatorFlags","avgFrameRate","nalus","dataReferenceIndex","parseAudioSampleEntry","byteRead","sampleDescriptionIndex","entrySizes","vTrack","aTrack","v","e1","getRateIndexByRate","videoSamples","audioSamples","videoStbl","_vTrack$mdia","_vTrack$mdia$minf","getSamples","audioStbl","_aTrack$mdia","_aTrack$mdia$minf","_aTrack$mdia$mdhd","keyframeMap","cttsArr","cttsEntries","stscEntries","stcoEntries","stszEntrySizes","stssEntries","chunkIndex","chunkRunIndex","offsetInChunk","lastSampleInChunk","lastChunkInRun","horizresolution","vertresolution","frameCount","depth","isFullBox","readBig24","MP4Demuxer","_audioSamples","_videoSamples","moovToTrack","moovToSamples","dataStart","videoIndexRange","audioIndexRange","parseSamples","sampleData","startByte","frame","_lastRemainBuffer","tryCnt","e","errorMessage","videoEndByte","audioEndByte","flv","mpegTs","mp4","model"],"mappings":"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"}