@galacean/effects-threejs 1.1.8 → 1.2.1
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.
- package/dist/index.js +235 -6163
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +12 -12
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +220 -6148
- package/dist/index.mjs.map +1 -1
- package/dist/three-composition.d.ts +3 -3
- package/package.json +2 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/global.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/fails.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/descriptors.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/function-bind-native.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/function-call.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/function-uncurry-this.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/classof-raw.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/indexed-object.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-null-or-undefined.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/document-all.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-callable.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-object.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/get-built-in.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-is-prototype-of.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-user-agent.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-v8-version.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/symbol-constructor-detection.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-symbol.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/try-to-string.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/a-callable.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/get-method.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/ordinary-to-primitive.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/define-global-property.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/shared-store.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/shared.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-object.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/has-own-property.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/uid.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-primitive.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-property-key.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/document-create-element.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/v8-prototype-define-bug.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/an-object.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-define-property.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/function-name.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/inspect-source.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/weak-map-basic-detection.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/shared-key.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/hidden-keys.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/internal-state.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/make-built-in.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/define-built-in.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/math-trunc.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-integer-or-infinity.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-length.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/length-of-array-like.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-includes.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/own-keys.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-forced.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/export.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-keys.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-define-properties.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/html.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-create.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/add-to-unscopables.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.array.includes.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/entry-unbind.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/es/array/includes.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-to-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.object.values.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/path.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/es/object/values.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.object.entries.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/es/object/entries.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/check-correctness-of-iteration.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-buffer-basic-detection.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-string-tag-support.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/classof.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/define-built-in-accessor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/function-uncurry-this-accessor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/a-possible-prototype.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-set-prototype-of.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-buffer-view-core.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/define-built-ins.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/an-instance.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-index.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/math-sign.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/ieee754.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-fill.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/create-property.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-slice-simple.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/set-to-string-tag.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-buffer.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-integral-number.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-positive-integer.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-offset.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-uint8-clamped.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/function-uncurry-this-clause.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/function-bind-context.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/a-constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/iterators.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/get-iterator-method.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/get-iterator.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-array-iterator-method.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-big-int-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-big-int.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/typed-array-from.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/is-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-species-constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-species-create.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-iteration.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/set-species.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/inherit-if-required.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/typed-array-constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.int8-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.uint8-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.int16-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.uint16-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.int32-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.uint32-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.float32-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.float64-array.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-to-string.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.object.to-string.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/to-string.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/string-multibyte.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/iterators-core.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/iterator-create-constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/iterator-define.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/create-iter-result-object.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.string.iterator.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.from.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.of.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.at.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/delete-property-or-throw.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-copy-within.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.copy-within.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.every.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.fill.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-from-constructor-and-list.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/species-constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/typed-array-species-constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/typed-array-from-species-and-list.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.filter.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.find.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.find-index.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-iteration-from-last.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.find-last.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.find-last-index.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.for-each.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.includes.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.index-of.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.join.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/function-apply.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-method-is-strict.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-last-index-of.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.last-index-of.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.map.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-reduce.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.reduce.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.reduce-right.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.reverse.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.set.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-slice.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.slice.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.some.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-sort.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-ff-version.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-is-ie-or-edge.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-webkit-version.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.sort.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.subarray.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.to-locale-string.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.to-string.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-to-reversed.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.to-reversed.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.to-sorted.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-with.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.with.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.array.iterator.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.typed-array.iterator.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/esnext.typed-array.to-spliced.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-get-own-property-names-external.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-buffer-non-extensible.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/object-is-extensible.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/freezing.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/internal-metadata.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/iterator-close.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/iterate.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/collection.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/collection-strong.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.map.constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-is-node.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/validate-arguments-length.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-is-ios.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/task.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/queue.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-is-ios-pebble.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-is-webos-webkit.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/microtask.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/host-report-errors.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/perform.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/promise-native-constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-is-deno.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/engine-is-browser.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/promise-constructor-detection.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/new-promise-capability.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.promise.constructor.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.promise.all.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.promise.catch.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.promise.race.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.promise.reject.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/promise-resolve.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/es.promise.resolve.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/async-iterator-prototype.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/async-from-sync-iterator.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/get-iterator-direct.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/get-async-iterator.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/entry-virtual.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/does-not-exceed-safe-integer.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/async-iterator-close.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/async-iterator-iteration.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-from-async.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/esnext.typed-array.from-async.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/esnext.typed-array.filter-out.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/esnext.typed-array.filter-reject.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-group.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/esnext.typed-array.group-by.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/map-helpers.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/iterate-simple.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/map-iterate.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/internals/array-unique-by.js","../../../node_modules/.pnpm/core-js@3.32.1/node_modules/core-js/modules/esnext.typed-array.unique-by.js","../../../node_modules/.pnpm/@galacean+effects-specification@1.0.0/node_modules/@galacean/effects-specification/dist/index.mjs","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/utils.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/vector2.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/vector3.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/quaternion.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/matrix4.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/euler.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/vector4.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/matrix3.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/ray.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/color.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/box3.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/sphere.js","../../effects-core/src/libs/earcut.js","../../../node_modules/.pnpm/@galacean+effects-specification@1.0.0/node_modules/@galacean/effects-specification/dist/fallback.mjs"],"sourcesContent":["'use strict';\nvar 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; })() || this || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar 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 fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\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","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.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(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\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","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar 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 // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && 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;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\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","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\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' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar 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.32.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.32.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\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 = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, 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","'use strict';\nvar 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 : key + '';\n};\n","'use strict';\nvar 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\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 hasOwn = require('../internals/has-own-property');\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 (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $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","'use strict';\nvar 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar 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","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\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 TypeError = global.TypeError;\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 /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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 = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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 = lengthOfArrayLike(O);\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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\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) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\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","'use strict';\nvar 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","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\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\nvar concat = uncurryThis([].concat);\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 ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\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, exceptions) {\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 (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\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 : isCallable(detection) ? 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","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\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.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\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] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\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 defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-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\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\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++], props[key]);\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = 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\n// eslint-disable-next-line es/no-object-create -- safe\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 : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\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 defineProperty(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 fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\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","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n","'use strict';\nrequire('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","'use strict';\nvar 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","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\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 $Object = Object;\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 var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nrequire('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","'use strict';\nvar $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nrequire('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n","'use strict';\nvar 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';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar 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","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\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' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\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 setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(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(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\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');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\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 TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\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_REQUIRED = 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 || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(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 (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\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 && hasOwn(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 defineBuiltIn(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 defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(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) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || 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 && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\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_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\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","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\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 = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n === 0 || n !== n ? n : n < 0 ? -1 : 1;\n};\n","'use strict';\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar sign = require('../internals/math-sign');\nvar trunc = require('../internals/math-trunc');\n\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar roundToEven = function (number) {\n var truncated = trunc(number);\n var delta = abs(number - truncated);\n if (delta > 0.5 || delta === 0.5 && truncated % 2 !== 0) {\n return truncated + sign(number);\n } return truncated;\n};\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $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 s = 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 c = pow(2, -exponent);\n if (number * c < 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 = roundToEven((number * c - 1) * pow(2, mantissaLength));\n exponent = exponent + eBias;\n } else {\n mantissa = roundToEven(number * pow(2, eBias - 1) * pow(2, mantissaLength));\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= s * 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 s = buffer[index--];\n var exponent = s & 127;\n var mantissa;\n s >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : s ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (s ? -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 lengthOfArrayLike = require('../internals/length-of-array-like');\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 = lengthOfArrayLike(O);\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 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","'use strict';\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n var n = 0;\n for (; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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 arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER);\nvar getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW);\nvar setInternalState = InternalStateModule.set;\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\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, getInternalState) {\n defineBuiltInAccessor(Constructor[PROTOTYPE], key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return boolIsLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var pack = conversion(+value);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n type: ARRAY_BUFFER,\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) {\n this.byteLength = byteLength;\n this.detached = false;\n }\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferState = getInternalArrayBufferState(buffer);\n var bufferLength = bufferState.byteLength;\n var offset = toIntegerOrInfinity(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 type: DATA_VIEW,\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset,\n bytes: bufferState.bytes\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState);\n addGetter($DataView, 'buffer', getInternalDataViewState);\n addGetter($DataView, 'byteLength', getInternalDataViewState);\n addGetter($DataView, 'byteOffset', getInternalDataViewState);\n }\n\n defineBuiltIns(DataViewPrototype, {\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] : false);\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] : false);\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] : false));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 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] : false);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\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.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\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\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\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 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(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","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw $RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar round = Math.round;\n\nmodule.exports = function (it) {\n var value = round(it);\n return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar 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","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar toBigInt = require('../internals/to-big-int');\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\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, thisIsBigIntArray, value, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n thisIsBigIntArray = isBigIntArray(result);\n for (i = 0; length > i; i++) {\n value = mapping ? mapfn(O[i], i) : O[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n result[i] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n return result;\n};\n","'use strict';\nvar 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(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\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 (isConstructor(C) && (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","'use strict';\nvar 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","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].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);\n var length = lengthOfArrayLike(self);\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(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(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 getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar 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 isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\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 isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\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 defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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 enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\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 aTypedArrayConstructor(C);\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};\n\nvar addGetter = function (it, key) {\n defineBuiltInAccessor(it, key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (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 && isIntegralNumber(+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 && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(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 data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : 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, TypedArrayConstructorPrototype);\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 call(typedArrayFrom, 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, TypedArrayConstructorPrototype);\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 call(typedArrayFrom, 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 enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, 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","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar 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 createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\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","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\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 defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (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 fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\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\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 = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\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, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, 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 call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-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 defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\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 (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(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 (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\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 defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\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/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\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 createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\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 = lengthOfArrayLike(O);\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 deletePropertyOrThrow(O, to);\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\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 u$ArrayCopyWithin(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');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\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 || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\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, getTypedArrayConstructor(originalArray)));\n};\n","'use strict';\nvar 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","'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 bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE === 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var index = lengthOfArrayLike(self);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(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 ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\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 -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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 apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(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 apply = require('../internals/function-apply');\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\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\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","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\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 var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, 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.reduceRight` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, 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 global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\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 src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\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).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 = arraySlice(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","'use strict';\nvar arraySlice = require('../internals/array-slice-simple');\n\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 array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, 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 (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\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 && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n nativeSort(new Uint16Array(2), {});\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 nativeSort(array, 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 if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return nativeSort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\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 apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\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 apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(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 lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\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 defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\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 createIterResultObject(undefined, true);\n }\n switch (kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\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 = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(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(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toBigInt = require('../internals/to-big-int');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar max = Math.max;\nvar min = Math.min;\n\n// some early implementations, like WebKit, does not follow the final semantic\nvar PROPER_ORDER = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Int8Array([1]);\n\n var spliced = array.toSpliced(1, 0, {\n valueOf: function () {\n array[0] = 2;\n return 3;\n }\n });\n\n return spliced[0] !== 2 || spliced[1] !== 3;\n});\n\n// `%TypedArray%.prototype.toSpliced` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced\nexportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {\n var O = aTypedArray(this);\n var C = getTypedArrayConstructor(O);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, thisIsBigIntArray, convertedItems, value, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n insertCount = argumentsLength - 2;\n if (insertCount) {\n convertedItems = new C(insertCount);\n thisIsBigIntArray = isBigIntArray(convertedItems);\n for (var i = 2; i < argumentsLength; i++) {\n value = arguments[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n convertedItems[i - 2] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n }\n }\n newLen = len + insertCount - actualDeleteCount;\n A = new C(newLen);\n\n for (; k < actualStart; k++) A[k] = O[k];\n for (; k < actualStart + insertCount; k++) A[k] = convertedItems[k - actualStart];\n for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n return A;\n}, !PROPER_ORDER);\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\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 arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared-store');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar AsyncIterator = global.AsyncIterator;\nvar PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;\nvar AsyncIteratorPrototype, prototype;\n\nif (PassedAsyncIteratorPrototype) {\n AsyncIteratorPrototype = PassedAsyncIteratorPrototype;\n} else if (isCallable(AsyncIterator)) {\n AsyncIteratorPrototype = AsyncIterator.prototype;\n} else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {\n try {\n // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax\n prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));\n if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;\n } catch (error) { /* empty */ }\n}\n\nif (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};\nelse if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);\n\nif (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = AsyncIteratorPrototype;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalStateModule = require('../internals/internal-state');\nvar getBuiltIn = require('../internals/get-built-in');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar Promise = getBuiltIn('Promise');\n\nvar ASYNC_FROM_SYNC_ITERATOR = 'AsyncFromSyncIterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ASYNC_FROM_SYNC_ITERATOR);\n\nvar asyncFromSyncIteratorContinuation = function (result, resolve, reject) {\n var done = result.done;\n Promise.resolve(result.value).then(function (value) {\n resolve(createIterResultObject(value, done));\n }, reject);\n};\n\nvar AsyncFromSyncIterator = function AsyncIterator(iteratorRecord) {\n iteratorRecord.type = ASYNC_FROM_SYNC_ITERATOR;\n setInternalState(this, iteratorRecord);\n};\n\nAsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n return new Promise(function (resolve, reject) {\n var result = anObject(call(state.next, state.iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject);\n });\n },\n 'return': function () {\n var iterator = getInternalState(this).iterator;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(iterator, 'return');\n if ($return === undefined) return resolve(createIterResultObject(undefined, true));\n var result = anObject(call($return, iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject);\n });\n }\n});\n\nmodule.exports = AsyncFromSyncIterator;\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar anObject = require('../internals/an-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (it, usingIterator) {\n var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;\n return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIteratorDirect(getIterator(it)));\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = function (CONSTRUCTOR) {\n return global[CONSTRUCTOR].prototype;\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, method, argument, reject) {\n try {\n var returnMethod = getMethod(iterator, 'return');\n if (returnMethod) {\n return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function () {\n method(argument);\n }, function (error) {\n reject(error);\n });\n }\n } catch (error2) {\n return reject(error2);\n } method(argument);\n};\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\n// https://github.com/tc39/proposal-array-from-async\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar createMethod = function (TYPE) {\n var IS_TO_ARRAY = TYPE === 0;\n var IS_FOR_EACH = TYPE === 1;\n var IS_EVERY = TYPE === 2;\n var IS_SOME = TYPE === 3;\n return function (object, fn, target) {\n anObject(object);\n var MAPPING = fn !== undefined;\n if (MAPPING || !IS_TO_ARRAY) aCallable(fn);\n var record = getIteratorDirect(object);\n var Promise = getBuiltIn('Promise');\n var iterator = record.iterator;\n var next = record.next;\n var counter = 0;\n\n return new Promise(function (resolve, reject) {\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, reject, error, reject);\n };\n\n var loop = function () {\n try {\n if (MAPPING) try {\n doesNotExceedSafeInteger(counter);\n } catch (error5) { ifAbruptCloseAsyncIterator(error5); }\n Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n if (IS_TO_ARRAY) {\n target.length = counter;\n resolve(target);\n } else resolve(IS_SOME ? false : IS_EVERY || undefined);\n } else {\n var value = step.value;\n try {\n if (MAPPING) {\n var result = fn(value, counter);\n\n var handler = function ($result) {\n if (IS_FOR_EACH) {\n loop();\n } else if (IS_EVERY) {\n $result ? loop() : closeAsyncIteration(iterator, resolve, false, reject);\n } else if (IS_TO_ARRAY) {\n try {\n target[counter++] = $result;\n loop();\n } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n } else {\n $result ? closeAsyncIteration(iterator, resolve, IS_SOME || value, reject) : loop();\n }\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } else {\n target[counter++] = value;\n loop();\n }\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { reject(error2); }\n }, reject);\n } catch (error) { reject(error); }\n };\n\n loop();\n });\n };\n};\n\nmodule.exports = {\n toArray: createMethod(0),\n forEach: createMethod(1),\n every: createMethod(2),\n some: createMethod(3),\n find: createMethod(4)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getAsyncIterator = require('../internals/get-async-iterator');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar getVirtual = require('../internals/entry-virtual');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar toArray = require('../internals/async-iterator-iteration').toArray;\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar arrayIterator = uncurryThis(getVirtual('Array').values);\nvar arrayIteratorNext = uncurryThis(arrayIterator([]).next);\n\nvar safeArrayIterator = function () {\n return new SafeArrayIterator(this);\n};\n\nvar SafeArrayIterator = function (O) {\n this.iterator = arrayIterator(O);\n};\n\nSafeArrayIterator.prototype.next = function () {\n return arrayIteratorNext(this.iterator);\n};\n\n// `Array.fromAsync` method implementation\n// https://github.com/tc39/proposal-array-from-async\nmodule.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n var O = toObject(asyncItems);\n if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);\n var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);\n var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || safeArrayIterator;\n var A = isConstructor(C) ? new C() : [];\n var iterator = usingAsyncIterator\n ? getAsyncIterator(O, usingAsyncIterator)\n : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator)));\n resolve(toArray(iterator, mapfn, A));\n });\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar getBuiltIn = require('../internals/get-built-in');\nvar aConstructor = require('../internals/a-constructor');\nvar arrayFromAsync = require('../internals/array-from-async');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\nexportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n aConstructor(C);\n resolve(arrayFromAsync(asyncItems, mapfn, thisArg));\n }).then(function (list) {\n return arrayFromConstructorAndList(aTypedArrayConstructor(C), list);\n });\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterOut', function filterOut(callbackfn /* , thisArg */) {\n var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n}, true);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterReject', function filterReject(callbackfn /* , thisArg */) {\n var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n}, true);\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar objectCreate = require('../internals/object-create');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar $Array = Array;\nvar push = uncurryThis([].push);\n\nmodule.exports = function ($this, callbackfn, that, specificConstructor) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var target = objectCreate(null);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var Constructor, key, value;\n for (;length > index; index++) {\n value = self[index];\n key = toPropertyKey(boundFunction(value, index, O));\n // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys\n // but since it's a `null` prototype object, we can safely use `in`\n if (key in target) push(target[key], value);\n else target[key] = [value];\n }\n // TODO: Remove this block from `core-js@4`\n if (specificConstructor) {\n Constructor = specificConstructor(O);\n if (Constructor !== $Array) {\n for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]);\n }\n } return target;\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $group = require('../internals/array-group');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\nexportTypedArrayMethod('groupBy', function groupBy(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(aTypedArray(this), callbackfn, thisArg, typedArraySpeciesConstructor);\n}, true);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar MapPrototype = MapHelpers.proto;\nvar forEach = uncurryThis(MapPrototype.forEach);\nvar entries = uncurryThis(MapPrototype.entries);\nvar next = entries(new Map()).next;\n\nmodule.exports = function (map, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: entries(map), next: next }, function (entry) {\n return fn(entry[1], entry[0]);\n }) : forEach(map, fn);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nmodule.exports = function uniqueBy(resolver) {\n var that = toObject(this);\n var length = lengthOfArrayLike(that);\n var result = [];\n var map = new Map();\n var resolverFunction = !isNullOrUndefined(resolver) ? aCallable(resolver) : function (value) {\n return value;\n };\n var index, item, key;\n for (index = 0; index < length; index++) {\n item = that[index];\n key = resolverFunction(item);\n if (!mapHas(map, key)) mapSet(map, key, item);\n }\n iterate(map, function (value) {\n push(result, value);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\n\n// `%TypedArray%.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nexportTypedArrayMethod('uniqueBy', function uniqueBy(resolver) {\n aTypedArray(this);\n return arrayFromConstructorAndList(getTypedArrayConstructor(this), arrayUniqueBy(this, resolver));\n}, true);\n","/*!\n * Name: @galacean/effects-specification\n * Description: Galacean Effects JSON Specification\n * Author: Ant Group CO., Ltd.\n * Version: v1.0.0\n */\n\n/*********************************************/\n/* 元素属性参数类型 */\n/*********************************************/\n/**\n * 渲染等级\n */\nvar RenderLevel;\n(function (RenderLevel) {\n RenderLevel[\"S\"] = \"S\";\n RenderLevel[\"APlus\"] = \"A+\";\n RenderLevel[\"A\"] = \"A\";\n RenderLevel[\"BPlus\"] = \"B+\";\n RenderLevel[\"B\"] = \"B\";\n})(RenderLevel || (RenderLevel = {}));\n/**\n * 混合模式\n */\nvar BlendingMode;\n(function (BlendingMode) {\n /**\n * 普通混合模式\n */\n BlendingMode[BlendingMode[\"ALPHA\"] = 0] = \"ALPHA\";\n /**\n * 叠加混合模式\n */\n BlendingMode[BlendingMode[\"ADD\"] = 1] = \"ADD\";\n /**\n * 相乘混合模式\n */\n BlendingMode[BlendingMode[\"MULTIPLY\"] = 2] = \"MULTIPLY\";\n /**\n * 亮度混合模式\n */\n BlendingMode[BlendingMode[\"BRIGHTNESS\"] = 3] = \"BRIGHTNESS\";\n /**\n * 减色混合模式\n */\n BlendingMode[BlendingMode[\"SUBTRACTION\"] = 4] = \"SUBTRACTION\";\n /**\n * 强光混合模式\n */\n BlendingMode[BlendingMode[\"STRONG_LIGHT\"] = 5] = \"STRONG_LIGHT\";\n /**\n * 弱光混合模式\n */\n BlendingMode[BlendingMode[\"WEAK_LIGHT\"] = 6] = \"WEAK_LIGHT\";\n /**\n * 亮度叠加混合模式\n */\n BlendingMode[BlendingMode[\"SUPERPOSITION\"] = 7] = \"SUPERPOSITION\";\n})(BlendingMode || (BlendingMode = {}));\n/**\n * 单双面模式\n */\nvar SideMode;\n(function (SideMode) {\n /**\n * 双面模式\n */\n SideMode[SideMode[\"DOUBLE\"] = 1032] = \"DOUBLE\";\n /**\n * 正面模式\n */\n SideMode[SideMode[\"FRONT\"] = 1028] = \"FRONT\";\n /**\n * 背面模式\n */\n SideMode[SideMode[\"BACK\"] = 1029] = \"BACK\";\n})(SideMode || (SideMode = {}));\n/**\n * 蒙版模式\n */\nvar MaskMode;\n(function (MaskMode) {\n /**\n * 无蒙版\n */\n MaskMode[MaskMode[\"NONE\"] = 0] = \"NONE\";\n /**\n * 蒙版\n */\n MaskMode[MaskMode[\"MASK\"] = 1] = \"MASK\";\n /**\n * 被遮挡\n */\n MaskMode[MaskMode[\"OBSCURED\"] = 2] = \"OBSCURED\";\n /**\n * 被反向遮挡\n */\n MaskMode[MaskMode[\"REVERSE_OBSCURED\"] = 3] = \"REVERSE_OBSCURED\";\n})(MaskMode || (MaskMode = {}));\n/**\n * 发射器形状\n */\nvar ShapeType;\n(function (ShapeType) {\n /**\n * 没有类型\n */\n ShapeType[ShapeType[\"NONE\"] = 0] = \"NONE\";\n /**\n * 圆球\n */\n ShapeType[ShapeType[\"SPHERE\"] = 1] = \"SPHERE\";\n /**\n * 圆锥\n */\n ShapeType[ShapeType[\"CONE\"] = 2] = \"CONE\";\n /**\n * 半球\n */\n ShapeType[ShapeType[\"HEMISPHERE\"] = 3] = \"HEMISPHERE\";\n /**\n * 圆\n */\n ShapeType[ShapeType[\"CIRCLE\"] = 4] = \"CIRCLE\";\n /**\n * 圆环\n */\n ShapeType[ShapeType[\"DONUT\"] = 5] = \"DONUT\";\n /**\n * 矩形\n */\n ShapeType[ShapeType[\"RECTANGLE\"] = 6] = \"RECTANGLE\";\n /**\n * 矩形框\n */\n ShapeType[ShapeType[\"RECTANGLE_EDGE\"] = 7] = \"RECTANGLE_EDGE\";\n /**\n * 直线\n */\n ShapeType[ShapeType[\"EDGE\"] = 8] = \"EDGE\";\n /**\n * 贴图\n */\n ShapeType[ShapeType[\"TEXTURE\"] = 9] = \"TEXTURE\";\n})(ShapeType || (ShapeType = {}));\n/**\n * 插件类型\n */\nvar PluginType;\n(function (PluginType) {\n /**\n * 陀螺仪\n */\n PluginType[PluginType[\"GYROSCOPE\"] = 0] = \"GYROSCOPE\";\n /**\n * Spine\n */\n PluginType[PluginType[\"SPINE\"] = 1] = \"SPINE\";\n})(PluginType || (PluginType = {}));\n/**\n * 交互类型\n */\nvar InteractType;\n(function (InteractType) {\n /**\n * 点击\n */\n InteractType[InteractType[\"CLICK\"] = 0] = \"CLICK\";\n /**\n * 消息\n * 前端收到 onMessageItem 回调\n */\n InteractType[InteractType[\"MESSAGE\"] = 1] = \"MESSAGE\";\n /**\n * 拖拽\n */\n InteractType[InteractType[\"DRAG\"] = 2] = \"DRAG\";\n})(InteractType || (InteractType = {}));\n/**\n * 交互行为\n */\nvar InteractBehavior;\n(function (InteractBehavior) {\n /**\n * 无\n */\n InteractBehavior[InteractBehavior[\"NONE\"] = 0] = \"NONE\";\n /**\n * 通知\n */\n InteractBehavior[InteractBehavior[\"NOTIFY\"] = 1] = \"NOTIFY\";\n /**\n * 重置播放器\n */\n InteractBehavior[InteractBehavior[\"RESUME_PLAYER\"] = 2] = \"RESUME_PLAYER\";\n /**\n * 清除元素\n */\n InteractBehavior[InteractBehavior[\"REMOVE\"] = 3] = \"REMOVE\";\n /**\n * 暂停播放器\n */\n InteractBehavior[InteractBehavior[\"PAUSE\"] = 4] = \"PAUSE\";\n})(InteractBehavior || (InteractBehavior = {}));\n/**\n * 元素类型\n */\nvar ItemType;\n(function (ItemType) {\n /**\n * 错误元素\n */\n ItemType[\"base\"] = \"0\";\n /**\n * 图层元素\n */\n ItemType[\"sprite\"] = \"1\";\n /**\n * 粒子元素\n */\n ItemType[\"particle\"] = \"2\";\n /**\n * 空节点元素\n */\n ItemType[\"null\"] = \"3\";\n /**\n * 交互元素\n */\n ItemType[\"interact\"] = \"4\";\n /**\n * 插件元素\n */\n ItemType[\"plugin\"] = \"5\";\n /**\n * 相机元素\n */\n ItemType[\"camera\"] = \"6\";\n /**\n * 预合成元素\n */\n ItemType[\"composition\"] = \"7\";\n /**\n * 滤镜图层\n */\n ItemType[\"filter\"] = \"8\";\n /**\n * Spine 元素\n */\n ItemType[\"spine\"] = \"spine\";\n /**\n * Mesh 元素\n */\n ItemType[\"mesh\"] = \"mesh\";\n /**\n * 节点树元素\n */\n ItemType[\"tree\"] = \"tree\";\n /**\n * 文本元素\n */\n ItemType[\"text\"] = \"text\";\n /**\n * 灯光元素\n */\n ItemType[\"light\"] = \"light\";\n /**\n * 天空盒元素\n */\n ItemType[\"skybox\"] = \"skybox\";\n})(ItemType || (ItemType = {}));\n/**\n * 渲染模式\n */\nvar RenderMode;\n(function (RenderMode) {\n /**\n * 广告牌模式\n */\n RenderMode[RenderMode[\"BILLBOARD\"] = 0] = \"BILLBOARD\";\n /**\n * 网格模式\n */\n RenderMode[RenderMode[\"MESH\"] = 1] = \"MESH\";\n /**\n * 垂直广告牌模式\n */\n RenderMode[RenderMode[\"VERTICAL_BILLBOARD\"] = 2] = \"VERTICAL_BILLBOARD\";\n /**\n * 水平广告牌模式\n */\n RenderMode[RenderMode[\"HORIZONTAL_BILLBOARD\"] = 3] = \"HORIZONTAL_BILLBOARD\";\n})(RenderMode || (RenderMode = {}));\n/**\n * 变换中心\n */\nvar ParticleOrigin;\n(function (ParticleOrigin) {\n /**\n * 水平和垂直中点\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER\"] = 0] = \"PARTICLE_ORIGIN_CENTER\";\n /**\n * 水平左侧 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_TOP\"] = 1] = \"PARTICLE_ORIGIN_LEFT_TOP\";\n /**\n * 水平左侧 垂直中间\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_CENTER\"] = 2] = \"PARTICLE_ORIGIN_LEFT_CENTER\";\n /**\n * 水平左侧 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_BOTTOM\"] = 3] = \"PARTICLE_ORIGIN_LEFT_BOTTOM\";\n /**\n * 水平中间 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER_TOP\"] = 4] = \"PARTICLE_ORIGIN_CENTER_TOP\";\n /**\n * 水平中间 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER_BOTTOM\"] = 5] = \"PARTICLE_ORIGIN_CENTER_BOTTOM\";\n /**\n * 水平右侧 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_TOP\"] = 6] = \"PARTICLE_ORIGIN_RIGHT_TOP\";\n /**\n * 水平右侧 垂直中间\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_CENTER\"] = 7] = \"PARTICLE_ORIGIN_RIGHT_CENTER\";\n /**\n * 水平右侧 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_BOTTOM\"] = 8] = \"PARTICLE_ORIGIN_RIGHT_BOTTOM\";\n})(ParticleOrigin || (ParticleOrigin = {}));\n\nvar END_BEHAVIOR_DESTROY = 0;\nvar END_BEHAVIOR_PAUSE = 1;\nvar END_BEHAVIOR_FORWARD = 2;\nvar END_BEHAVIOR_PAUSE_AND_DESTROY = 3;\nvar END_BEHAVIOR_FREEZE = 4;\nvar END_BEHAVIOR_RESTART = 5;\nvar END_BEHAVIOR_DESTROY_CHILDREN = 6;\nvar CAMERA_CLIP_MODE_VERTICAL = 1;\nvar CAMERA_CLIP_MODE_NORMAL = 0;\nvar MESSAGE_ITEM_PHRASE_BEGIN = 2;\nvar MESSAGE_ITEM_PHRASE_END = 1;\n\nvar CameraClipMode;\n(function (CameraClipMode) {\n /**\n * 剪裁上下\n */\n CameraClipMode[CameraClipMode[\"portrait\"] = CAMERA_CLIP_MODE_VERTICAL] = \"portrait\";\n /**\n * 剪裁左右\n */\n CameraClipMode[CameraClipMode[\"landscape\"] = CAMERA_CLIP_MODE_NORMAL] = \"landscape\";\n})(CameraClipMode || (CameraClipMode = {}));\n/**\n * 结束行为\n */\nvar CompositionEndBehavior;\n(function (CompositionEndBehavior) {\n /**\n * 销毁\n */\n CompositionEndBehavior[CompositionEndBehavior[\"destroy\"] = END_BEHAVIOR_DESTROY] = \"destroy\";\n /**\n * 暂停\n */\n CompositionEndBehavior[CompositionEndBehavior[\"pause\"] = END_BEHAVIOR_PAUSE] = \"pause\";\n /**\n * 重播\n */\n CompositionEndBehavior[CompositionEndBehavior[\"restart\"] = END_BEHAVIOR_RESTART] = \"restart\";\n /**\n * 无限播放\n */\n CompositionEndBehavior[CompositionEndBehavior[\"forward\"] = END_BEHAVIOR_FORWARD] = \"forward\";\n /**\n * 销毁并保留最后一帧\n */\n CompositionEndBehavior[CompositionEndBehavior[\"pause_destroy\"] = END_BEHAVIOR_PAUSE_AND_DESTROY] = \"pause_destroy\";\n})(CompositionEndBehavior || (CompositionEndBehavior = {}));\n\n/*********************************************/\n/* 基本数值属性参数 */\n/*********************************************/\nvar ValueType;\n(function (ValueType) {\n /**\n * 常数\n */\n ValueType[ValueType[\"CONSTANT\"] = 0] = \"CONSTANT\";\n /**\n * 二维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC2\"] = 1] = \"CONSTANT_VEC2\";\n /**\n * 三维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC3\"] = 2] = \"CONSTANT_VEC3\";\n /**\n * 四维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC4\"] = 3] = \"CONSTANT_VEC4\";\n /**\n * 随机数\n */\n ValueType[ValueType[\"RANDOM\"] = 4] = \"RANDOM\";\n /**\n * 直线\n */\n ValueType[ValueType[\"LINE\"] = 5] = \"LINE\";\n /**\n * 曲线\n */\n ValueType[ValueType[\"CURVE\"] = 6] = \"CURVE\";\n /**\n * 贝塞尔路径\n */\n ValueType[ValueType[\"BEZIER_PATH\"] = 7] = \"BEZIER_PATH\";\n /**\n * 颜色\n */\n ValueType[ValueType[\"RGBA_COLOR\"] = 8] = \"RGBA_COLOR\";\n /**\n * 渐变色\n */\n ValueType[ValueType[\"GRADIENT_COLOR\"] = 9] = \"GRADIENT_COLOR\";\n /**\n * 蒙版形状点集\n */\n ValueType[ValueType[\"SHAPE_POINTS\"] = 10] = \"SHAPE_POINTS\";\n /**\n * 蒙版形状切分\n */\n ValueType[ValueType[\"SHAPE_SPLITS\"] = 11] = \"SHAPE_SPLITS\";\n /**\n *直线路径\n */\n ValueType[ValueType[\"LINEAR_PATH\"] = 12] = \"LINEAR_PATH\";\n /**\n * 多色\n */\n ValueType[ValueType[\"COLORS\"] = 13] = \"COLORS\";\n /**\n * 二进制指针\n */\n ValueType[ValueType[\"BINARY\"] = 20] = \"BINARY\";\n /**\n * 贝塞尔曲线\n */\n ValueType[ValueType[\"BEZIER_CURVE\"] = 21] = \"BEZIER_CURVE\";\n /**\n * 贝塞尔曲线路径\n */\n ValueType[ValueType[\"BEZIER_CURVE_PATH\"] = 22] = \"BEZIER_CURVE_PATH\";\n})(ValueType || (ValueType = {}));\n/**\n * 关键帧类型\n */\nvar BezierKeyframeType;\n(function (BezierKeyframeType) {\n BezierKeyframeType[BezierKeyframeType[\"AUTO\"] = 0] = \"AUTO\";\n BezierKeyframeType[BezierKeyframeType[\"EASE\"] = 1] = \"EASE\";\n BezierKeyframeType[BezierKeyframeType[\"EASE_IN\"] = 2] = \"EASE_IN\";\n BezierKeyframeType[BezierKeyframeType[\"EASE_OUT\"] = 3] = \"EASE_OUT\";\n BezierKeyframeType[BezierKeyframeType[\"LINE\"] = 4] = \"LINE\";\n BezierKeyframeType[BezierKeyframeType[\"HOLD\"] = 5] = \"HOLD\";\n BezierKeyframeType[BezierKeyframeType[\"LINE_OUT\"] = 6] = \"LINE_OUT\";\n})(BezierKeyframeType || (BezierKeyframeType = {}));\n\nvar ItemEndBehavior;\n(function (ItemEndBehavior) {\n ItemEndBehavior[ItemEndBehavior[\"destroy\"] = END_BEHAVIOR_DESTROY] = \"destroy\";\n ItemEndBehavior[ItemEndBehavior[\"loop\"] = END_BEHAVIOR_RESTART] = \"loop\";\n ItemEndBehavior[ItemEndBehavior[\"freeze\"] = END_BEHAVIOR_FREEZE] = \"freeze\";\n})(ItemEndBehavior || (ItemEndBehavior = {}));\nvar ParentItemEndBehavior;\n(function (ParentItemEndBehavior) {\n ParentItemEndBehavior[ParentItemEndBehavior[\"destroyChildren\"] = END_BEHAVIOR_DESTROY_CHILDREN] = \"destroyChildren\";\n})(ParentItemEndBehavior || (ParentItemEndBehavior = {}));\n\n/**\n * 粒子交互行为\n */\nvar ParticleInteractionBehavior;\n(function (ParticleInteractionBehavior) {\n /**\n * 无\n */\n ParticleInteractionBehavior[ParticleInteractionBehavior[\"none\"] = 0] = \"none\";\n /**\n * 移出粒子\n */\n ParticleInteractionBehavior[ParticleInteractionBehavior[\"removeParticle\"] = 1] = \"removeParticle\";\n})(ParticleInteractionBehavior || (ParticleInteractionBehavior = {}));\n\nvar ShapeArcMode;\n(function (ShapeArcMode) {\n /**\n * 随机\n */\n ShapeArcMode[ShapeArcMode[\"RANDOM\"] = 0] = \"RANDOM\";\n /**\n * 单向循环\n */\n ShapeArcMode[ShapeArcMode[\"UNIDIRECTIONAL_CYCLE\"] = 1] = \"UNIDIRECTIONAL_CYCLE\";\n /**\n * 双向循环\n */\n ShapeArcMode[ShapeArcMode[\"BIDIRECTIONAL_CYCLE\"] = 2] = \"BIDIRECTIONAL_CYCLE\";\n /**\n * 均匀爆发\n */\n ShapeArcMode[ShapeArcMode[\"UNIFORM_BURST\"] = 3] = \"UNIFORM_BURST\";\n})(ShapeArcMode || (ShapeArcMode = {}));\n\nvar BloomFilterThresholdAvgColor = 0;\n\nvar ModelBoundingType;\n(function (ModelBoundingType) {\n ModelBoundingType[ModelBoundingType[\"box\"] = 2] = \"box\";\n ModelBoundingType[ModelBoundingType[\"sphere\"] = 3] = \"sphere\";\n})(ModelBoundingType || (ModelBoundingType = {}));\n\n// 材质类型\nvar MaterialType;\n(function (MaterialType) {\n MaterialType[\"unlit\"] = \"unlit\";\n MaterialType[\"pbr\"] = \"pbr\";\n // 头发材质,在 pbr 材质基础上扩展\n MaterialType[\"hair\"] = \"hair\";\n})(MaterialType || (MaterialType = {}));\n// 混合模式\nvar MaterialBlending;\n(function (MaterialBlending) {\n MaterialBlending[MaterialBlending[\"opaque\"] = 100] = \"opaque\";\n MaterialBlending[MaterialBlending[\"masked\"] = 101] = \"masked\";\n MaterialBlending[MaterialBlending[\"translucent\"] = 102] = \"translucent\";\n MaterialBlending[MaterialBlending[\"additive\"] = 103] = \"additive\";\n})(MaterialBlending || (MaterialBlending = {}));\n\n/**\n * 3D渲染模式:将渲染过程中的中间结果输出,主要用于排查渲染效果问题,支持 pbr 和 unlit 材质\n */\nvar RenderMode3D;\n(function (RenderMode3D) {\n /**\n * 正常渲染\n */\n RenderMode3D[\"none\"] = \"none\";\n /**\n * 纹理坐标\n */\n RenderMode3D[\"uv\"] = \"uv\";\n /**\n * 世界坐标法线\n */\n RenderMode3D[\"normal\"] = \"normal\";\n /**\n * 基础颜色\n */\n RenderMode3D[\"basecolor\"] = \"basecolor\";\n /**\n * 基础颜色 Alpha\n */\n RenderMode3D[\"alpha\"] = \"alpha\";\n /**\n * 金属度\n */\n RenderMode3D[\"metallic\"] = \"metallic\";\n /**\n * 粗超度\n */\n RenderMode3D[\"roughness\"] = \"roughness\";\n /**\n * 环境遮蔽\n */\n RenderMode3D[\"ao\"] = \"ao\";\n /**\n * 自发光\n */\n RenderMode3D[\"emissive\"] = \"emissive\";\n})(RenderMode3D || (RenderMode3D = {}));\n\nvar TextOverflow;\n(function (TextOverflow) {\n /**\n * display 模式下,会显示所有文本,存在文本超过边界框的情况。\n */\n TextOverflow[TextOverflow[\"display\"] = 0] = \"display\";\n /**\n * clip 模式下,当文本内容超出边界框时,多余的会被截断。\n */\n TextOverflow[TextOverflow[\"clip\"] = 1] = \"clip\";\n /**\n * ellipsis 模式下,会使用(...)来代替超出边界框的内容。\n */\n TextOverflow[TextOverflow[\"ellipsis\"] = 2] = \"ellipsis\";\n})(TextOverflow || (TextOverflow = {}));\nvar TextBaseline;\n(function (TextBaseline) {\n /**\n * 文本顶对齐。\n */\n TextBaseline[TextBaseline[\"top\"] = 0] = \"top\";\n /**\n * 文本垂直居中对齐。\n */\n TextBaseline[TextBaseline[\"middle\"] = 1] = \"middle\";\n /**\n * 文本底对齐。\n */\n TextBaseline[TextBaseline[\"bottom\"] = 2] = \"bottom\";\n})(TextBaseline || (TextBaseline = {}));\nvar TextAlignment;\n(function (TextAlignment) {\n /**\n * text alignment starts from(x,y) to right direction\n * 从(x,y)开始第一个字符,向右边延伸\n */\n TextAlignment[TextAlignment[\"left\"] = 0] = \"left\";\n /**\n * (x,y) is middle position of text, where (left + right)/2 =(x,y)\n * (x,y) 为文字中间位置,(最左位置 + 最右位置)/2 = (x,y)\n */\n TextAlignment[TextAlignment[\"middle\"] = 1] = \"middle\";\n /**\n * text alignment ends with(x,y) from left direction\n * 从(x,y)结束最后一个字符,向左边延伸\n */\n TextAlignment[TextAlignment[\"right\"] = 2] = \"right\";\n})(TextAlignment || (TextAlignment = {}));\n/**\n * 文本字重\n */\nvar TextWeight;\n(function (TextWeight) {\n /**\n * 正常\n */\n TextWeight[\"normal\"] = \"normal\";\n /**\n * 粗体\n */\n TextWeight[\"bold\"] = \"bold\";\n /**\n * 瘦体\n */\n TextWeight[\"lighter\"] = \"lighter\";\n})(TextWeight || (TextWeight = {}));\n/**\n * 文本样式\n */\nvar FontStyle;\n(function (FontStyle) {\n /**\n * 正常\n */\n FontStyle[\"normal\"] = \"normal\";\n /**\n * 斜体\n */\n FontStyle[\"italic\"] = \"italic\";\n /**\n * 倾斜体\n */\n FontStyle[\"oblique\"] = \"oblique\";\n})(FontStyle || (FontStyle = {}));\n\nexport { BezierKeyframeType, BlendingMode, BloomFilterThresholdAvgColor, CAMERA_CLIP_MODE_NORMAL, CAMERA_CLIP_MODE_VERTICAL, CameraClipMode, CompositionEndBehavior, END_BEHAVIOR_DESTROY, END_BEHAVIOR_DESTROY_CHILDREN, END_BEHAVIOR_FORWARD, END_BEHAVIOR_FREEZE, END_BEHAVIOR_PAUSE, END_BEHAVIOR_PAUSE_AND_DESTROY, END_BEHAVIOR_RESTART, FontStyle, InteractBehavior, InteractType, ItemEndBehavior, ItemType, MESSAGE_ITEM_PHRASE_BEGIN, MESSAGE_ITEM_PHRASE_END, MaskMode, MaterialBlending, MaterialType, ModelBoundingType, ParentItemEndBehavior, ParticleInteractionBehavior, ParticleOrigin, PluginType, RenderLevel, RenderMode, RenderMode3D, ShapeArcMode, ShapeType, SideMode, TextAlignment, TextBaseline, TextOverflow, TextWeight, ValueType };\n//# sourceMappingURL=index.mjs.map\n","export var PI2 = Math.PI * 2;\nexport var DEG2RAD = Math.PI / 180;\nexport var RAD2DEG = 180 / Math.PI;\nexport var NumberEpsilon = 1e-6;\nexport function isZero(v) {\n return isNaN(v) || Math.abs(v) < NumberEpsilon;\n}\nexport function isEqual(a, b) {\n return Math.abs(a - b) < NumberEpsilon || (a === Infinity && b === Infinity) || (a === -Infinity && b === -Infinity);\n}\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nexport var damp = function (x, y, lambda, dt) { return lerp(x, y, 1 - Math.exp(-lambda * dt)); };\n// https://en.wikipedia.org/wiki/Linear_interpolation\nexport var lerp = function (x, y, t) { return (1 - t) * x + t * y; };\nexport var degToRad = function (degrees) { return degrees * DEG2RAD; };\nexport var radToDeg = function (radians) { return radians * RAD2DEG; };\nexport function clamp(value, min, max) {\n var fixedMin = isNaN(min) ? -Infinity : min;\n var fixedMax = isNaN(max) ? Infinity : max;\n var lower = Math.min(fixedMin, fixedMax);\n var upper = Math.max(fixedMin, fixedMax);\n return Math.min(Math.max(value, lower), upper);\n}\n","import { NumberEpsilon } from './utils';\n/**\n * 二维向量\n */\nexport var Vector2 = /** @class */ (function () {\n /**\n * 构造函数,默认为零向量\n * @param [x=0] - x 分量\n * @param [y=0] - y 分量\n */\n function Vector2(x, y) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n this.x = x;\n this.y = y;\n }\n /**\n * 设置向量\n * @param x - x 轴分量\n * @param y - y 轴分量\n * @returns\n */\n Vector2.prototype.set = function (x, y) {\n this.x = x;\n this.y = y;\n return this;\n };\n /**\n * 设置零向量\n * @returns 向量\n */\n Vector2.prototype.setZero = function () {\n this.x = 0;\n this.y = 0;\n return this;\n };\n /**\n * 通过标量数值创建向量\n * @param num - 数值\n * @returns 向量\n */\n Vector2.prototype.setFromNumber = function (num) {\n this.x = num;\n this.y = num;\n return this;\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector2.prototype.setFromArray = function (array, offset) {\n var _a, _b;\n if (offset === void 0) { offset = 0; }\n this.x = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.y = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n return this;\n };\n /**\n * 拷贝向量\n * @param src - 要拷贝的对象\n * @returns 向量\n */\n Vector2.prototype.copyFrom = function (src) {\n this.x = src.x;\n this.y = src.y;\n return this;\n };\n /**\n * 克隆向量\n * @returns 克隆结果\n */\n Vector2.prototype.clone = function () {\n return new Vector2(this.x, this.y);\n };\n /**\n * 根据下标设置元素值\n * @param index - 下标值\n * @param value - 数字\n * @returns 向量\n */\n Vector2.prototype.setElement = function (index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n default: console.error('index is out of range: ' + index);\n }\n return this;\n };\n /**\n * 根据下标获取值\n * @param index - 下标\n * @returns 值\n */\n Vector2.prototype.getElement = function (index) {\n switch (index) {\n case 0: return this.x;\n case 1: return this.y;\n default: console.error('index is out of range: ' + index);\n }\n return 0;\n };\n /**\n * 向量相加\n * @param right - 向量 | 数字\n * @returns 向量\n */\n Vector2.prototype.add = function (right) {\n if (typeof right === 'number') {\n this.x += right;\n this.y += right;\n }\n else if (right instanceof Array) {\n this.x += right[0];\n this.y += right[1];\n }\n else {\n this.x += right.x;\n this.y += right.y;\n }\n return this;\n };\n /**\n * 向量相加\n * @param left - 向量\n * @param right - 向量\n * @returns 相加结果\n */\n Vector2.prototype.addVectors = function (left, right) {\n this.x = left.x + right.x;\n this.y = left.y + right.y;\n return this;\n };\n /**\n * 向量相减\n * @param right - 向量 | 数字\n * @returns 相减结果\n */\n Vector2.prototype.subtract = function (right) {\n if (typeof right === 'number') {\n this.x -= right;\n this.y -= right;\n }\n else if (right instanceof Array) {\n this.x -= right[0];\n this.y -= right[1];\n }\n else {\n this.x -= right.x;\n this.y -= right.y;\n }\n return this;\n };\n /**\n * 向量相减\n * @param left - 向量\n * @param right - 向量\n * @returns 相减结果\n */\n Vector2.prototype.subtractVectors = function (left, right) {\n this.x = left.x - right.x;\n this.y = left.y - right.y;\n return this;\n };\n /**\n * 向量相乘\n * @param right - 向量 | 数字\n * @returns 相乘结果\n */\n Vector2.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n this.x *= right;\n this.y *= right;\n }\n else if (right instanceof Array) {\n this.x *= right[0];\n this.y *= right[1];\n }\n else {\n this.x *= right.x;\n this.y *= right.y;\n }\n return this;\n };\n /**\n * 向量相乘\n * @param left - 向量\n * @param right - 向量\n * @returns 相乘结果\n */\n Vector2.prototype.multiplyVectors = function (left, right) {\n this.x = left.x * right.x;\n this.y = left.y * right.y;\n return this;\n };\n /**\n * 向量相除\n * @param right - 向量 | 数字\n * @returns 相除结果\n */\n Vector2.prototype.divide = function (right) {\n if (typeof right === 'number') {\n this.x /= right;\n this.y /= right;\n }\n else if (right instanceof Array) {\n this.x /= right[0];\n this.y /= right[1];\n }\n else {\n this.x /= right.x;\n this.y /= right.y;\n }\n return this;\n };\n /**\n * 向量缩放\n * @param v - 数字\n * @returns 缩放结果\n */\n Vector2.prototype.scale = function (v) {\n this.x *= v;\n this.y *= v;\n return this;\n };\n /**\n * 分量求和\n * @returns 求和结果\n */\n Vector2.prototype.sum = function () {\n return this.x + this.y;\n };\n /**\n * 向量求最小值\n * @param v - 向量\n * @returns 最小值\n */\n Vector2.prototype.min = function (v) {\n if (typeof v === 'number') {\n this.x = Math.min(this.x, v);\n this.y = Math.min(this.y, v);\n }\n else {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n }\n return this;\n };\n /**\n * 向量求最大值\n * @param v - 向量\n * @returns 最大值\n */\n Vector2.prototype.max = function (v) {\n if (typeof v === 'number') {\n this.x = Math.max(this.x, v);\n this.y = Math.max(this.y, v);\n }\n else {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n }\n return this;\n };\n /**\n * 向量阈值约束\n * @param min - 极小值\n * @param max - 极大值\n * @returns 向量\n */\n Vector2.prototype.clamp = function (min, max) {\n return this.max(min).min(max);\n };\n /**\n * 向量向下取整\n * @returns 取整结果\n */\n Vector2.prototype.floor = function () {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n return this;\n };\n /**\n * 向量向上取整\n * @returns 取整结果\n */\n Vector2.prototype.ceil = function () {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n return this;\n };\n /**\n * 向量取四舍五入\n * @returns 四舍五入结果\n */\n Vector2.prototype.round = function () {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n };\n /**\n * 向量取绝对值\n * @returns 向量\n */\n Vector2.prototype.abs = function () {\n this.x = Math.abs(this.x);\n this.y = Math.abs(this.y);\n return this;\n };\n /**\n * 向量取反\n * @returns 取反结果\n */\n Vector2.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n return this;\n };\n /**\n * 向量长度\n * @returns 求值结果\n */\n Vector2.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n };\n /**\n * 向量长度平方\n * @returns 求值结果\n */\n Vector2.prototype.lengthSquared = function () {\n return this.x * this.x + this.y * this.y;\n };\n /**\n * 向量归一化\n * @returns 归一化结果\n */\n Vector2.prototype.normalize = function () {\n return this.divide(this.length() || 1);\n };\n /**\n * 设置向量长度\n * @param length - 长度\n * @returns 向量\n */\n Vector2.prototype.setLength = function (length) {\n return this.normalize().multiply(length);\n };\n /**\n * 向量线性插值\n * @param other - 向量\n * @param alpha - 插值比\n * @returns 计算结果\n */\n Vector2.prototype.lerp = function (other, alpha) {\n this.x += (other.x - this.x) * alpha;\n this.y += (other.y - this.y) * alpha;\n return this;\n };\n /**\n * 向量线性插值\n * @param v1 - 向量\n * @param v2 - 向量\n * @param alpha - 插值比\n * @returns 计算结果\n */\n Vector2.prototype.lerpVectors = function (v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n return this;\n };\n /**\n * 向量点乘\n * @param v - 向量\n * @returns 点乘结果\n */\n Vector2.prototype.dot = function (v) {\n return this.x * v.x + this.y * v.y;\n };\n /**\n * 向量叉乘\n * @param v - 向量\n * @returns 叉乘结果\n */\n Vector2.prototype.cross = function (v) {\n return this.x * v.y - this.y * v.x;\n };\n /**\n * 点距离\n * @param v - 点\n * @returns 距离\n */\n Vector2.prototype.distance = function (v) {\n var dx = this.x - v.x;\n var dy = this.y - v.y;\n return Math.sqrt(dx * dx + dy * dy);\n };\n /**\n * 点距离平方\n * @param v - 点\n * @returns 距离平方\n */\n Vector2.prototype.distanceSquared = function (v) {\n var dx = this.x - v.x;\n var dy = this.y - v.y;\n return dx * dx + dy * dy;\n };\n /**\n * 向量判等\n * @param v - 向量\n * @returns 判等结果\n */\n Vector2.prototype.equals = function (v) {\n return this.x === v.x && this.y === v.y;\n };\n /**\n * 是否零向量\n * @returns 是否零向量\n */\n Vector2.prototype.isZero = function () {\n var _a;\n var eps = NumberEpsilon;\n var x = (_a = this, _a.x), y = _a.y;\n return Math.abs(x) <= eps && Math.abs(y) <= eps;\n };\n /**\n * 向量转数组\n * @returns 数组\n */\n Vector2.prototype.toArray = function () {\n return [this.x, this.y];\n };\n Vector2.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n array[offset] = this.x;\n array[offset + 1] = this.y;\n };\n /**\n * 随机生成向量\n * @returns 向量\n */\n Vector2.prototype.random = function () {\n this.x = Math.random();\n this.y = Math.random();\n return this;\n };\n /**\n * 通过标量创建向量\n * @param num - 数值\n * @returns 向量\n */\n Vector2.fromNumber = function (num) {\n return new Vector2().setFromNumber(num);\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector2.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Vector2().setFromArray(array, offset);\n };\n /**\n * 二维向量的常量\n */\n Vector2.ONE = new Vector2(1.0, 1.0);\n Vector2.ZERO = new Vector2(0.0, 0.0);\n return Vector2;\n}());\n","import { NumberEpsilon } from './utils';\nimport { Vector2 } from './vector2';\n/**\n * 三维向量\n */\nexport var Vector3 = /** @class */ (function () {\n /**\n * 构造函数,默认值为零向量\n * @param [x=0]\n * @param [y=0]\n * @param [z=0]\n */\n function Vector3(x, y, z) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n this.x = x;\n this.y = y;\n this.z = z;\n }\n /**\n * 设置向量\n * @param x - x 轴分量\n * @param y - y 轴分量\n * @param z - z 轴分量\n * @returns 向量\n */\n Vector3.prototype.set = function (x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n };\n /**\n * 设置零向量\n * @returns 向量\n */\n Vector3.prototype.setZero = function () {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n return this;\n };\n /**\n * 通过标量数值设置向量\n * @param num - 数值\n * @returns 向量\n */\n Vector3.prototype.setFromNumber = function (num) {\n this.x = num;\n this.y = num;\n this.z = num;\n return this;\n };\n /**\n * 通过数组设置向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector3.prototype.setFromArray = function (array, offset) {\n var _a, _b, _c;\n if (offset === void 0) { offset = 0; }\n this.x = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.y = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n this.z = (_c = array[offset + 2]) !== null && _c !== void 0 ? _c : 0;\n return this;\n };\n /**\n * 拷贝向量\n * @param v - 要拷贝的对象\n * @returns 向量\n */\n Vector3.prototype.copyFrom = function (v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n return this;\n };\n /**\n * 克隆向量\n * @returns 向量\n */\n Vector3.prototype.clone = function () {\n return new Vector3(this.x, this.y, this.z);\n };\n /**\n * 根据下标设置向量分量\n * @param index - 下标值\n * @param value - 数字\n * @returns 向量\n */\n Vector3.prototype.setElement = function (index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n case 2:\n this.z = value;\n break;\n default: console.error('index is out of range: ' + index);\n }\n return this;\n };\n /**\n * 根据下标获取向量分量\n * @param index - 下标\n * @returns\n */\n Vector3.prototype.getElement = function (index) {\n switch (index) {\n case 0: return this.x;\n case 1: return this.y;\n case 2: return this.z;\n default: console.error('index is out of range: ' + index);\n }\n return 0;\n };\n /**\n * 向量相加\n * @param right - 向量 | 数字\n * @returns 相加结果\n */\n Vector3.prototype.add = function (right) {\n if (typeof right === 'number') {\n this.x += right;\n this.y += right;\n this.z += right;\n }\n else if (right instanceof Array) {\n this.x += right[0];\n this.y += right[1];\n this.z += right[2];\n }\n else {\n this.x += right.x;\n this.y += right.y;\n this.z += right.z;\n }\n return this;\n };\n /**\n * 向量相加\n * @param left - 向量\n * @param right - 向量\n * @returns 相加结果\n */\n Vector3.prototype.addVectors = function (left, right) {\n this.x = left.x + right.x;\n this.y = left.y + right.y;\n this.z = left.z + right.z;\n return this;\n };\n /**\n * 向量乘比例后相加\n * @param right - 向量\n * @param s - 比例\n * @returns 相加结果\n */\n Vector3.prototype.addScaledVector = function (right, s) {\n this.x += right.x * s;\n this.y += right.y * s;\n this.z += right.z * s;\n return this;\n };\n /**\n * 向量相减\n * @param right - 向量 | 数字\n * @returns 相减\n */\n Vector3.prototype.subtract = function (right) {\n if (typeof right === 'number') {\n this.x -= right;\n this.y -= right;\n this.z -= right;\n }\n else if (right instanceof Array) {\n this.x -= right[0];\n this.y -= right[1];\n this.z -= right[2];\n }\n else {\n this.x -= right.x;\n this.y -= right.y;\n this.z -= right.z;\n }\n return this;\n };\n /**\n * 向量相减\n * @param left - 向量\n * @param right - 向量\n * @returns 相减结果\n */\n Vector3.prototype.subtractVectors = function (left, right) {\n this.x = left.x - right.x;\n this.y = left.y - right.y;\n this.z = left.z - right.z;\n return this;\n };\n /**\n * 向量相乘\n * @param right - 向量 | 数字\n * @returns 相乘结果\n */\n Vector3.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n this.x *= right;\n this.y *= right;\n this.z *= right;\n }\n else if (right instanceof Array) {\n this.x *= right[0];\n this.y *= right[1];\n this.z *= right[2];\n }\n else {\n this.x *= right.x;\n this.y *= right.y;\n this.z *= right.z;\n }\n return this;\n };\n /**\n * 向量相乘\n * @param left - 向量\n * @param right - 向量\n * @returns 相乘结果\n */\n Vector3.prototype.multiplyVectors = function (left, right) {\n this.x = left.x * right.x;\n this.y = left.y * right.y;\n this.z = left.z * right.z;\n return this;\n };\n /**\n * 向量相除\n * @param right - 向量 | 数字\n * @returns 相除结果\n */\n Vector3.prototype.divide = function (right) {\n if (typeof right === 'number') {\n this.x /= right;\n this.y /= right;\n this.z /= right;\n }\n else if (right instanceof Array) {\n this.x /= right[0];\n this.y /= right[1];\n this.z /= right[2];\n }\n else {\n this.x /= right.x;\n this.y /= right.y;\n this.z /= right.z;\n }\n return this;\n };\n /**\n * 向量缩放\n * @param v - 数字\n * @returns 缩放结果\n */\n Vector3.prototype.scale = function (v) {\n this.x *= v;\n this.y *= v;\n this.z *= v;\n return this;\n };\n /**\n * 分量求和\n * @returns 求和结果\n */\n Vector3.prototype.sum = function () {\n return this.x + this.y + this.z;\n };\n /**\n * 向量求最小值\n * @param v - 向量或数值\n * @returns 求值结果\n */\n Vector3.prototype.min = function (v) {\n if (typeof v === 'number') {\n this.x = Math.min(this.x, v);\n this.y = Math.min(this.y, v);\n this.z = Math.min(this.z, v);\n }\n else {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n }\n return this;\n };\n /**\n * 向量求最大值\n * @param v - 向量或数值\n * @returns 求值结果\n */\n Vector3.prototype.max = function (v) {\n if (typeof v === 'number') {\n this.x = Math.max(this.x, v);\n this.y = Math.max(this.y, v);\n this.z = Math.max(this.z, v);\n }\n else {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n }\n return this;\n };\n /**\n * 向量阈值约束\n * @param min - 向量\n * @param max - 向量\n * @returns 求值结果\n */\n Vector3.prototype.clamp = function (min, max) {\n return this.max(min).min(max);\n };\n /**\n * 向量向下取整\n * @returns 取整结果\n */\n Vector3.prototype.floor = function () {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n return this;\n };\n /**\n * 向量向上取整\n * @returns 取整结果\n */\n Vector3.prototype.ceil = function () {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n return this;\n };\n /**\n * 向量四舍五入\n * @returns 计算结果\n */\n Vector3.prototype.round = function () {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n return this;\n };\n /**\n * 向量取绝对值\n * @returns 向量\n */\n Vector3.prototype.abs = function () {\n this.x = Math.abs(this.x);\n this.y = Math.abs(this.y);\n this.z = Math.abs(this.z);\n return this;\n };\n /**\n * 向量取反\n * @returns 向量\n */\n Vector3.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n };\n /**\n * 向量长度\n * @returns 长度\n */\n Vector3.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n };\n /**\n * 向量长度平方\n * @returns 长度平方\n */\n Vector3.prototype.lengthSquared = function () {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n };\n /**\n * 向量归一化\n * @returns 向量\n */\n Vector3.prototype.normalize = function () {\n return this.divide(this.length() || 1);\n };\n /**\n * 设置向量长度\n * @param length - 长度\n * @returns 向量\n */\n Vector3.prototype.setLength = function (length) {\n return this.normalize().multiply(length);\n };\n /**\n * 向量间求线性插值\n * @param other - 向量\n * @param alpha - 插值比例\n * @returns 插值结果\n */\n Vector3.prototype.lerp = function (other, alpha) {\n this.x += (other.x - this.x) * alpha;\n this.y += (other.y - this.y) * alpha;\n this.z += (other.z - this.z) * alpha;\n return this;\n };\n /**\n * 向量间求线性插值\n * @param v1 - 第一个向量\n * @param v2 - 第二个向量\n * @param alpha - 插值比例\n * @returns 求值结果\n */\n Vector3.prototype.lerpVectors = function (v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n return this;\n };\n /**\n * 向量求点积,点积为零表示两向量垂直\n * @param v - 向量\n * @returns 点积结果\n */\n Vector3.prototype.dot = function (v) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n };\n /**\n * 向量求叉积\n * @param right - 向量\n * @returns 叉积结果\n */\n Vector3.prototype.cross = function (right) {\n return this.crossVectors(this, right);\n };\n /**\n * 向量(a 与 b)求叉积\n * @param left - 向量\n * @param right - 向量\n * @returns 叉积结果\n */\n Vector3.prototype.crossVectors = function (left, right) {\n var ax = left.x, ay = left.y, az = left.z;\n var bx = right.x, by = right.y, bz = right.z;\n this.x = ay * bz - az * by;\n this.y = az * bx - ax * bz;\n this.z = ax * by - ay * bx;\n return this;\n };\n /**\n * 向量反射\n * @param normal - 法线\n * @returns 反射结果\n */\n Vector3.prototype.reflect = function (normal) {\n // reflect incident vector off plane orthogonal to normal\n // normal is assumed to have unit length\n return this.subtract(normal.clone().multiply(2 * this.dot(normal)));\n };\n /**\n * 计算向量距离\n * @param v - 向量\n * @returns 距离\n */\n Vector3.prototype.distance = function (v) {\n return Math.sqrt(this.distanceSquared(v));\n };\n /**\n * 计算向量距离平方\n * @param v - 向量\n * @returns 距离平方\n */\n Vector3.prototype.distanceSquared = function (v) {\n var dx = this.x - v.x;\n var dy = this.y - v.y;\n var dz = this.z - v.z;\n return dx * dx + dy * dy + dz * dz;\n };\n /**\n * 向量判等\n * @param v - 向量\n * @returns 判等结果\n */\n Vector3.prototype.equals = function (v) {\n return v.x === this.x && v.y === this.y && v.z === this.z;\n };\n /**\n * 是否零向量\n * @returns 是否零向量\n */\n Vector3.prototype.isZero = function () {\n var _a;\n var eps = NumberEpsilon;\n var x = (_a = this, _a.x), y = _a.y, z = _a.z;\n return Math.abs(x) <= eps && Math.abs(y) <= eps && Math.abs(z) <= eps;\n };\n /**\n * 向量转数组\n * @param array - 目标保存对象\n * @returns 数组\n */\n Vector3.prototype.toArray = function () {\n return [this.x, this.y, this.z];\n };\n Vector3.prototype.toVector2 = function () {\n return new Vector2(this.x, this.y);\n };\n Vector3.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n };\n /**\n * 获取随机向量\n * @returns\n */\n Vector3.prototype.random = function () {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n return this;\n };\n /**\n * 用欧拉角旋转向量\n * @param euler - 欧拉角\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 旋转结果\n */\n Vector3.prototype.applyEuler = function (euler, out) {\n return euler.rotateVector3(this, out);\n };\n /**\n * 用四元数旋转向量\n * @param q - 四元数\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 旋转结果\n */\n Vector3.prototype.applyQuaternion = function (q, out) {\n return q.rotateVector3(this, out);\n };\n /**\n * 用矩阵变换点\n * @param m - 变换矩阵\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 结果点\n */\n Vector3.prototype.applyMatrix = function (m, out) {\n return m.transformPoint(this, out);\n };\n /**\n * 用法向量矩阵变换法向量\n * @param m - 法向量矩阵\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 向量\n */\n Vector3.prototype.applyNormalMatrix = function (m, out) {\n return m.transformNormal(this, out);\n };\n /**\n * 用投影矩阵变换点\n * @param m - 投影矩阵\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 结果点\n */\n Vector3.prototype.applyProjectionMatrix = function (m, out) {\n return m.projectPoint(this, out);\n };\n /**\n * 通过标量数值创建向量\n * @param num - 数值\n * @returns 向量\n */\n Vector3.fromNumber = function (num) {\n return new Vector3().setFromNumber(num);\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector3.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Vector3().setFromArray(array, offset);\n };\n /**\n * 三维向量的常量\n */\n Vector3.X = new Vector3(1.0, 0.0, 0.0);\n Vector3.Y = new Vector3(0.0, 1.0, 0.0);\n Vector3.Z = new Vector3(0.0, 0.0, 1.0);\n Vector3.ONE = new Vector3(1.0, 1.0, 1.0);\n Vector3.ZERO = new Vector3(0.0, 0.0, 0.0);\n return Vector3;\n}());\n","import { clamp } from './utils';\nimport { Vector3 } from './vector3';\n/**\n * 四元数\n */\nexport var Quaternion = /** @class */ (function () {\n /**\n * 构造函数\n * @param [x=0] - x 分量\n * @param [y=0] - y 分量\n * @param [z=0] - z 分量\n * @param [w=1] - w 分量\n */\n function Quaternion(x, y, z, w) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n if (w === void 0) { w = 1; }\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n }\n /**\n * 四元数设置\n * @param x - x 分量\n * @param y - y 分量\n * @param z - z 分量\n * @param w - w 分量\n * @returns 四元数\n */\n Quaternion.prototype.set = function (x, y, z, w) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n return this;\n };\n /**\n * 通过欧拉角设置四元数\n * @param euler - 欧拉角\n * @returns\n */\n Quaternion.prototype.setFromEuler = function (euler) {\n euler.toQuaternion(this);\n return this;\n };\n /**\n * 通过旋转轴和旋转角度设置四元数\n * @param axis - 旋转轴\n * @param angle - 旋转角度(弧度)\n * @returns\n */\n Quaternion.prototype.setFromAxisAngle = function (axis, angle) {\n var halfAngle = angle / 2;\n var s = Math.sin(halfAngle);\n var v = Quaternion.tempVec0;\n v.copyFrom(axis).normalize();\n this.x = v.x * s;\n this.y = v.y * s;\n this.z = v.z * s;\n this.w = Math.cos(halfAngle);\n return this;\n };\n /**\n * 通过数组设置四元数\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns\n */\n Quaternion.prototype.setFromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n this.w = array[offset + 3];\n return this;\n };\n /**\n * 通过矩阵设置四元数\n * @param m - 矩阵\n * @returns\n */\n Quaternion.prototype.setFromRotationMatrix = function (m) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n var te = m.elements;\n var m11 = te[0];\n var m12 = te[4];\n var m13 = te[8];\n var m21 = te[1];\n var m22 = te[5];\n var m23 = te[9];\n var m31 = te[2];\n var m32 = te[6];\n var m33 = te[10];\n var trace = m11 + m22 + m33;\n if (trace > 0) {\n var s = 0.5 / Math.sqrt(trace + 1.0);\n this.w = 0.25 / s;\n this.x = (m32 - m23) * s;\n this.y = (m13 - m31) * s;\n this.z = (m21 - m12) * s;\n }\n else if (m11 > m22 && m11 > m33) {\n var s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33);\n this.w = (m32 - m23) / s;\n this.x = 0.25 * s;\n this.y = (m12 + m21) / s;\n this.z = (m13 + m31) / s;\n this.negate();\n }\n else if (m22 > m33) {\n var s = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33);\n this.w = (m13 - m31) / s;\n this.x = (m12 + m21) / s;\n this.y = 0.25 * s;\n this.z = (m23 + m32) / s;\n this.negate();\n }\n else {\n var s = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22);\n this.w = (m21 - m12) / s;\n this.x = (m13 + m31) / s;\n this.y = (m23 + m32) / s;\n this.z = 0.25 * s;\n this.negate();\n }\n // 兼容原先数学库\n return this;\n };\n /**\n * 通过开始和结束向量设置四元数\n * @param from - 开始向量\n * @param to - 结束向量\n * @returns\n */\n Quaternion.prototype.setFromUnitVectors = function (from, to) {\n // assumes direction vectors vFrom and vTo are normalized\n var r = from.dot(to) + 1;\n if (r < Number.EPSILON) {\n r = 0;\n if (Math.abs(from.x) > Math.abs(from.z)) {\n this.x = -from.y;\n this.y = from.x;\n this.z = 0;\n this.w = r;\n }\n else {\n this.x = 0;\n this.y = -from.z;\n this.z = from.y;\n this.w = r;\n }\n }\n else {\n this.x = from.y * to.z - from.z * to.y;\n this.y = from.z * to.x - from.x * to.z;\n this.z = from.x * to.y - from.y * to.x;\n this.w = r;\n }\n return this.normalize();\n };\n /**\n * 四元数拷贝\n * @param quat - 拷贝目标四元数\n * @returns 拷贝四元数\n */\n Quaternion.prototype.copyFrom = function (quat) {\n this.x = quat.x;\n this.y = quat.y;\n this.z = quat.z;\n this.w = quat.w;\n return this;\n };\n /**\n * 四元数克隆\n * @returns 克隆结果\n */\n Quaternion.prototype.clone = function () {\n return new Quaternion(this.x, this.y, this.z, this.w);\n };\n /**\n * 四元数间的夹角计算\n * @param other - 其他四元数\n * @returns 夹角\n */\n Quaternion.prototype.angleTo = function (other) {\n return 2 * Math.acos(Math.abs(clamp(this.dot(other), -1, 1)));\n };\n /**\n * 四元数向目标旋转\n * @param q - 四元数\n * @param step - 旋转弧度\n * @returns 目标四元数\n */\n Quaternion.prototype.rotateTowards = function (q, step) {\n var angle = this.angleTo(q);\n if (angle === 0) {\n return this;\n }\n var t = Math.min(1, step / angle);\n this.slerp(q, t);\n return this;\n };\n /**\n * 四元数单位化\n * @returns 单位四元数\n */\n Quaternion.prototype.identity = function () {\n return this.set(0, 0, 0, 1);\n };\n /**\n * 四元数求逆\n * @returns 四元数的逆\n */\n Quaternion.prototype.invert = function () {\n return this.conjugate();\n };\n /**\n * 四元数取负\n * @returns 负四元数\n */\n Quaternion.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n this.w = -this.w;\n return this;\n };\n /**\n * 四元数求共轭值\n * @returns 四元数的共轭值\n */\n Quaternion.prototype.conjugate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n };\n /**\n * 四元数点乘结果\n * @param v\n * @return\n */\n Quaternion.prototype.dot = function (v) {\n return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n };\n /**\n * 四元数的模平方\n * @return\n */\n Quaternion.prototype.lengthSquared = function () {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n };\n /**\n * 四元数的欧式长度\n * @returns 长度\n */\n Quaternion.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n };\n /**\n * 四元数归一化\n * @returns 归一化值\n */\n Quaternion.prototype.normalize = function () {\n var l = this.length();\n if (l === 0) {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 1;\n }\n else {\n l = 1 / l;\n this.x = this.x * l;\n this.y = this.y * l;\n this.z = this.z * l;\n this.w = this.w * l;\n }\n return this;\n };\n /**\n * 四元数右乘\n * @param right - 右乘的四元数\n * @returns\n */\n Quaternion.prototype.multiply = function (right) {\n return this.multiplyQuaternions(this, right);\n };\n /**\n * 四元数左乘\n * @param left - 左乘的四元数\n * @returns\n */\n Quaternion.prototype.premultiply = function (left) {\n return this.multiplyQuaternions(left, this);\n };\n /**\n * 四元数乘法\n * @param left - 四元数\n * @param right - 四元数\n * @returns 四元数\n */\n Quaternion.prototype.multiplyQuaternions = function (left, right) {\n // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n var qax = left.x;\n var qay = left.y;\n var qaz = left.z;\n var qaw = left.w;\n var qbx = right.x;\n var qby = right.y;\n var qbz = right.z;\n var qbw = right.w;\n this.x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n this.y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n this.z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n this.w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n return this;\n };\n /**\n * 四元数线性插值\n * @see http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n * @param other - 四元数\n * @param t - 插值比\n * @returns 插值结果\n */\n Quaternion.prototype.slerp = function (other, t) {\n var _a;\n if (t === 0) {\n return this;\n }\n if (t === 1) {\n return this.copyFrom(other);\n }\n var x = (_a = this, _a.x), y = _a.y, z = _a.z, w = _a.w;\n var cosHalfTheta = w * other.w + x * other.x + y * other.y + z * other.z;\n if (cosHalfTheta < 0) {\n this.w = -other.w;\n this.x = -other.x;\n this.y = -other.y;\n this.z = -other.z;\n cosHalfTheta = -cosHalfTheta;\n }\n else {\n this.copyFrom(other);\n }\n if (cosHalfTheta >= 1.0) {\n this.w = w;\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n }\n var sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n if (sqrSinHalfTheta <= Number.EPSILON) {\n var s = 1 - t;\n this.w = s * w + t * this.w;\n this.x = s * x + t * this.x;\n this.y = s * y + t * this.y;\n this.z = s * z + t * this.z;\n this.normalize();\n return this;\n }\n var sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n var halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta;\n var ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n this.w = (w * ratioA + this.w * ratioB);\n this.x = (x * ratioA + this.x * ratioB);\n this.y = (y * ratioA + this.y * ratioB);\n this.z = (z * ratioA + this.z * ratioB);\n return this;\n };\n /**\n * 两个四元数的线性插值\n * @param qa - 四元数\n * @param qb - 四元数\n * @param t - 插值比\n */\n Quaternion.prototype.slerpQuaternions = function (qa, qb, t) {\n this.copyFrom(qa).slerp(qb, t);\n };\n /**\n * 通过四元数旋转向量\n * @param v - 待旋转向量\n * @param [out] - 旋转结果,如果没有传入直接覆盖输入值\n * @returns\n */\n Quaternion.prototype.rotateVector3 = function (v, out) {\n var _a;\n var qx = (_a = this, _a.x), qy = _a.y, qz = _a.z, qw = _a.w;\n var vx = v.x, vy = v.y, vz = v.z;\n var ix = qw * vx + qy * vz - qz * vy;\n var iy = qw * vy + qz * vx - qx * vz;\n var iz = qw * vz + qx * vy - qy * vx;\n var iw = -qx * vx - qy * vy - qz * vz;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n res.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n res.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n return res;\n };\n /**\n * 四元数判等\n * @param quaternion - 四元数\n * @returns 判等结果\n */\n Quaternion.prototype.equals = function (quaternion) {\n return quaternion.x === this.x\n && quaternion.y === this.y\n && quaternion.z === this.z\n && quaternion.w === this.w;\n };\n /**\n * 四元数保存为数组\n * @returns\n */\n Quaternion.prototype.toArray = function () {\n return [this.x, this.y, this.z, this.w];\n };\n /**\n * 四元数转四维向量数组\n * @param vec - 目标保存对象\n * @returns 保存结果\n */\n Quaternion.prototype.toVector4 = function (vec) {\n return vec.set(this.x, this.y, this.z, this.w);\n };\n /**\n * 四元数转欧拉角\n * @param euler - 目标欧拉角\n * @returns 欧拉角\n */\n Quaternion.prototype.toEuler = function (euler) {\n return euler.setFromQuaternion(this);\n };\n /**\n * 四元数转矩阵\n * @param mat - 目标矩阵\n * @returns\n */\n Quaternion.prototype.toMatrix4 = function (mat) {\n return mat.compose(Vector3.ZERO, this, Vector3.ONE);\n };\n /**\n * 通过欧拉角创建四元数\n * @param euler - 欧拉角\n * @returns 四元数\n */\n Quaternion.fromEuler = function (euler) {\n return new Quaternion().setFromEuler(euler);\n };\n /**\n * 通过旋转轴和旋转角度创建四元数\n * @param axis - 旋转轴\n * @param angle - 旋转角(弧度值)\n * @returns 四元数\n */\n Quaternion.fromAxisAngle = function (axis, angle) {\n return new Quaternion().setFromAxisAngle(axis, angle);\n };\n /**\n * 通过数组获取四元数\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 四元数\n */\n Quaternion.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Quaternion().setFromArray(array, offset);\n };\n /**\n * 通过旋转矩阵创建四元数\n * @param m - 旋转矩阵\n * @returns 四元数\n */\n Quaternion.fromRotationMatrix = function (m) {\n return new Quaternion().setFromRotationMatrix(m);\n };\n /**\n * 通过开始和结束向量创建四元数\n * @param from - 开始向量\n * @param to - 结束向量\n * @returns\n */\n Quaternion.fromUnitVectors = function (from, to) {\n return new Quaternion().setFromUnitVectors(from, to);\n };\n Quaternion.tempVec0 = new Vector3();\n return Quaternion;\n}());\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { Vector3 } from './vector3';\nimport { isEqual } from './utils';\nimport { Quaternion } from './quaternion';\n/**\n * 四阶矩阵(列优先矩阵)\n */\nexport var Matrix4 = /** @class */ (function () {\n /**\n * 构造函数,初始值为单位矩阵\n * @param [m11=1] - 第 1 行,第 1 列\n * @param [m21=0] - 第 2 行,第 1 列\n * @param [m31=0] - 第 3 行,第 1 列\n * @param [m41=0] - 第 4 行,第 1 列\n * @param [m12=0] - 第 1 行,第 2 列\n * @param [m22=1] - 第 2 行,第 2 列\n * @param [m32=0] - 第 3 行,第 2 列\n * @param [m42=0] - 第 4 行,第 2 列\n * @param [m13=0] - 第 1 行,第 3 列\n * @param [m23=0] - 第 2 行,第 3 列\n * @param [m33=1] - 第 3 行,第 3 列\n * @param [m43=0] - 第 4 行,第 3 列\n * @param [m14=0] - 第 1 行,第 4 列\n * @param [m24=0] - 第 2 行,第 4 列\n * @param [m34=0] - 第 3 行,第 4 列\n * @param [m44=1] - 第 4 行,第 4 列\n */\n function Matrix4(m11, m21, m31, m41, m12, m22, m32, m42, m13, m23, m33, m43, m14, m24, m34, m44) {\n if (m11 === void 0) { m11 = 1; }\n if (m21 === void 0) { m21 = 0; }\n if (m31 === void 0) { m31 = 0; }\n if (m41 === void 0) { m41 = 0; }\n if (m12 === void 0) { m12 = 0; }\n if (m22 === void 0) { m22 = 1; }\n if (m32 === void 0) { m32 = 0; }\n if (m42 === void 0) { m42 = 0; }\n if (m13 === void 0) { m13 = 0; }\n if (m23 === void 0) { m23 = 0; }\n if (m33 === void 0) { m33 = 1; }\n if (m43 === void 0) { m43 = 0; }\n if (m14 === void 0) { m14 = 0; }\n if (m24 === void 0) { m24 = 0; }\n if (m34 === void 0) { m34 = 0; }\n if (m44 === void 0) { m44 = 1; }\n this.elements = [\n m11, m21, m31, m41,\n m12, m22, m32, m42,\n m13, m23, m33, m43,\n m14, m24, m34, m44,\n ];\n }\n /**\n * 设置矩阵\n * @param m11 - 第 1 行,第 1 列\n * @param m21 - 第 2 行,第 1 列\n * @param m31 - 第 3 行,第 1 列\n * @param m41 - 第 4 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m22 - 第 2 行,第 2 列\n * @param m32 - 第 3 行,第 2 列\n * @param m42 - 第 4 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m23 - 第 2 行,第 3 列\n * @param m33 - 第 3 行,第 3 列\n * @param m43 - 第 4 行,第 3 列\n * @param m14 - 第 1 行,第 4 列\n * @param m24 - 第 2 行,第 4 列\n * @param m34 - 第 3 行,第 4 列\n * @param m44 - 第 4 行,第 4 列\n * @returns 矩阵\n */\n Matrix4.prototype.set = function (m11, m21, m31, m41, m12, m22, m32, m42, m13, m23, m33, m43, m14, m24, m34, m44) {\n var e = this.elements;\n e[0] = m11;\n e[1] = m21;\n e[2] = m31;\n e[3] = m41;\n e[4] = m12;\n e[5] = m22;\n e[6] = m32;\n e[7] = m42;\n e[8] = m13;\n e[9] = m23;\n e[10] = m33;\n e[11] = m43;\n e[12] = m14;\n e[13] = m24;\n e[14] = m34;\n e[15] = m44;\n return this;\n };\n /**\n * 通过行优先数据设置矩阵\n * @param m11 - 第 1 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m14 - 第 1 行,第 4 列\n * @param m21 - 第 2 行,第 1 列\n * @param m22 - 第 2 行,第 2 列\n * @param m23 - 第 2 行,第 3 列\n * @param m24 - 第 2 行,第 4 列\n * @param m31 - 第 3 行,第 1 列\n * @param m32 - 第 3 行,第 2 列\n * @param m33 - 第 3 行,第 3 列\n * @param m34 - 第 3 行,第 4 列\n * @param m41 - 第 4 行,第 1 列\n * @param m42 - 第 4 行,第 2 列\n * @param m43 - 第 4 行,第 3 列\n * @param m44 - 第 4 行,第 4 列\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRowMajorData = function (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) {\n var e = this.elements;\n e[0] = m11;\n e[4] = m12;\n e[8] = m13;\n e[12] = m14;\n e[1] = m21;\n e[5] = m22;\n e[9] = m23;\n e[13] = m24;\n e[2] = m31;\n e[6] = m32;\n e[10] = m33;\n e[14] = m34;\n e[3] = m41;\n e[7] = m42;\n e[11] = m43;\n e[15] = m44;\n return this;\n };\n /**\n * 通过四个列向量设置矩阵\n * @param c1 - 第一列\n * @param c2 - 第二列\n * @param c3 - 第三列\n * @param c4 - 第四列\n * @returns 矩阵\n */\n Matrix4.prototype.setFromColumnVectors = function (c1, c2, c3, c4) {\n return this.set(c1.x, c1.y, c1.z, c1.w, c2.x, c2.y, c2.z, c2.w, c3.x, c3.y, c3.z, c3.w, c4.x, c4.y, c4.z, c4.w);\n };\n /**\n * 通过三维矩阵设置矩阵\n * @param m - 三维矩阵\n * @returns 设置结果\n */\n Matrix4.prototype.setFromMatrix3 = function (m) {\n var me = m.elements;\n this.set(me[0], me[1], me[2], 0, me[3], me[4], me[5], 0, me[6], me[7], me[8], 0, 0, 0, 0, 1);\n return this;\n };\n /**\n * 通过数组设置矩阵\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 矩阵\n */\n Matrix4.prototype.setFromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n for (var i = 0; i < 16; i++) {\n this.elements[i] = array[offset + i];\n }\n return this;\n };\n /**\n * 通过缩放设置矩阵\n * @param x - x 方向缩放\n * @param y - y 方向缩放\n * @param z - z 方向缩放\n * @returns 缩放矩阵\n */\n Matrix4.prototype.setFromScale = function (x, y, z) {\n return this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1);\n };\n /**\n * 通过平移设置矩阵\n * @param x - x 方向平移\n * @param y - y 方向平移\n * @param z - z 方向平移\n * @returns 平移矩阵\n */\n Matrix4.prototype.setFromTranslation = function (x, y, z) {\n return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, x, y, z, 1);\n };\n /**\n * 通过 x 轴旋转角度设置矩阵\n * @param theta - x 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRotationX = function (theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n return this.set(1, 0, 0, 0, 0, c, s, 0, 0, -s, c, 0, 0, 0, 0, 1);\n };\n /**\n * 通过 y 轴旋转角度设置矩阵\n * @param theta - y 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRotationY = function (theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n return this.set(c, 0, -s, 0, 0, 1, 0, 0, s, 0, c, 0, 0, 0, 0, 1);\n };\n /**\n * 通过 z 轴旋转角度设置矩阵\n * @param theta - z 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRotationZ = function (theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n return this.set(c, s, 0, 0, -s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n };\n /**\n * 根据三维旋转轴与弧度设置矩阵\n * @param axis - 三维旋转轴\n * @param angle - 旋转弧度\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRotationAxis = function (axis, angle) {\n // Based on http://www.gamedev.net/reference/articles/article1199.asp\n var v = Matrix4.tempVec0;\n v.copyFrom(axis).normalize();\n var c = Math.cos(angle);\n var s = Math.sin(angle);\n var t = 1 - c;\n var x = v.x, y = v.y, z = v.z;\n var tx = t * x;\n var ty = t * y;\n return this.set(tx * x + c, tx * y + s * z, tx * z - s * y, 0, tx * y - s * z, ty * y + c, ty * z + s * x, 0, tx * z + s * y, ty * z - s * x, t * z * z + c, 0, 0, 0, 0, 1);\n };\n /**\n * 通过欧拉角设置矩阵\n * @param euler - 欧拉角\n * @returns 矩阵\n */\n Matrix4.prototype.setFromEuler = function (euler) {\n euler.toMatrix4(this);\n return this;\n };\n /**\n * 通过四元数设置矩阵\n * @param quat - 四元数\n * @returns 矩阵\n */\n Matrix4.prototype.setFromQuaternion = function (quat) {\n return this.compose(Vector3.ZERO, quat, Vector3.ONE);\n };\n /**\n * 通过倾斜参数设置矩阵\n * @param x - x 方向倾斜分量\n * @param y - y 方向倾斜分量\n * @param z - z 方向倾斜分量\n * @returns 倾斜矩阵\n */\n Matrix4.prototype.setFromShear = function (x, y, z) {\n return this.set(1, x, x, 0, y, 1, y, 0, z, z, 1, 0, 0, 0, 0, 1);\n };\n /**\n * 通过基轴设置矩阵\n * @param xAxis - x 轴\n * @param yAxis - y 轴\n * @param zAxis - z 轴\n * @returns 倾斜矩阵\n */\n Matrix4.prototype.setFromBasis = function (xAxis, yAxis, zAxis) {\n return this.set(xAxis.x, xAxis.y, xAxis.z, 0, yAxis.x, yAxis.y, yAxis.z, 0, zAxis.x, zAxis.y, zAxis.z, 0, 0, 0, 0, 1);\n };\n /**\n * 矩阵清零\n * @returns 零矩阵\n */\n Matrix4.prototype.setZero = function () {\n for (var i = 0; i < 16; i++) {\n this.elements[i] = 0;\n }\n return this;\n };\n /**\n * 矩阵单位化\n * @returns 单位矩阵\n */\n Matrix4.prototype.identity = function () {\n return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n };\n /**\n * 单位阵判断\n * @returns 判断结果\n */\n Matrix4.prototype.isIdentity = function () {\n var e = this.elements;\n return e[0] === 1 && e[4] === 0 && e[8] === 0 && e[12] === 0\n && e[1] === 0 && e[5] === 1 && e[9] === 0 && e[13] === 0\n && e[2] === 0 && e[6] === 0 && e[10] === 1 && e[14] === 0\n && e[3] === 0 && e[7] === 0 && e[11] === 0 && e[15] === 1;\n };\n /**\n * 矩阵克隆\n * @returns 克隆结果\n */\n Matrix4.prototype.clone = function () {\n var e = this.elements;\n return new Matrix4(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8], e[9], e[10], e[11], e[12], e[13], e[14], e[15]);\n };\n /**\n * 矩阵复制\n * @param m - 复制对象\n * @returns 复制结果\n */\n Matrix4.prototype.copyFrom = function (m) {\n this.elements = __spreadArray([], __read(m.elements), false);\n return this;\n };\n /**\n * 得到列向量\n * @param i - 列向量索引,从 0 开始\n * @param v\n * @returns 矩阵\n */\n Matrix4.prototype.getColumnVector = function (i, v) {\n return v.set(this.elements[i * 4], this.elements[i * 4 + 1], this.elements[i * 4 + 2], this.elements[i * 4 + 3]);\n };\n /**\n * 设置相机矩阵\n * @param eye - 相机位置\n * @param target - 目标位置\n * @param up - 相机方向\n * @returns 矩阵\n */\n Matrix4.prototype.lookAt = function (eye, target, up) {\n var vX = Matrix4.tempVec0;\n var vY = Matrix4.tempVec1;\n var vZ = Matrix4.tempVec2;\n vZ.subtractVectors(eye, target);\n vZ.normalize();\n vX.crossVectors(up, vZ);\n vX.normalize();\n vY.crossVectors(vZ, vX);\n var te = this.elements;\n te[0] = vX.x;\n te[1] = vY.x;\n te[2] = vZ.x;\n te[3] = 0;\n te[4] = vX.y;\n te[5] = vY.y;\n te[6] = vZ.y;\n te[7] = 0;\n te[8] = vX.z;\n te[9] = vY.z;\n te[10] = vZ.z;\n te[11] = 0;\n te[12] = -vX.dot(eye);\n te[13] = -vY.dot(eye);\n te[14] = -vZ.dot(eye);\n te[15] = 1;\n return this;\n };\n /**\n * 矩阵乘比例后相加\n * @param right - 矩阵\n * @param s - 比例\n * @returns 相加结果\n */\n Matrix4.prototype.addScaledMatrix = function (right, s) {\n var te = this.elements;\n var re = right.elements;\n for (var i = 0; i < 16; i++) {\n te[i] += re[i] * s;\n }\n return this;\n };\n /**\n * 矩阵右乘\n * @param right - 右侧矩阵或数值\n * @returns 右乘结果\n */\n Matrix4.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n for (var i = 0; i < 16; i++) {\n this.elements[i] *= right;\n }\n return this;\n }\n else {\n return this.multiplyMatrices(this, right);\n }\n };\n /**\n * 矩阵左乘\n * @param left - 左侧矩阵\n * @returns 左乘结果\n */\n Matrix4.prototype.premultiply = function (left) {\n return this.multiplyMatrices(left, this);\n };\n /**\n * 矩阵相乘\n * @param left - 矩阵\n * @param right - 矩阵\n * @returns 相乘结果\n */\n Matrix4.prototype.multiplyMatrices = function (left, right) {\n var ae = left.elements;\n var be = right.elements;\n var te = this.elements;\n var a11 = ae[0], a12 = ae[4], a13 = ae[8], a14 = ae[12];\n var a21 = ae[1], a22 = ae[5], a23 = ae[9], a24 = ae[13];\n var a31 = ae[2], a32 = ae[6], a33 = ae[10], a34 = ae[14];\n var a41 = ae[3], a42 = ae[7], a43 = ae[11], a44 = ae[15];\n var b11 = be[0], b12 = be[4], b13 = be[8], b14 = be[12];\n var b21 = be[1], b22 = be[5], b23 = be[9], b24 = be[13];\n var b31 = be[2], b32 = be[6], b33 = be[10], b34 = be[14];\n var b41 = be[3], b42 = be[7], b43 = be[11], b44 = be[15];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n return this;\n };\n /**\n * 矩阵缩放\n * @param s - 缩放比例\n * @returns 缩放结果\n */\n Matrix4.prototype.multiplyScalar = function (s) {\n var e = this.elements;\n e[0] *= s;\n e[4] *= s;\n e[8] *= s;\n e[12] *= s;\n e[1] *= s;\n e[5] *= s;\n e[9] *= s;\n e[13] *= s;\n e[2] *= s;\n e[6] *= s;\n e[10] *= s;\n e[14] *= s;\n e[3] *= s;\n e[7] *= s;\n e[11] *= s;\n e[15] *= s;\n return this;\n };\n /**\n * 矩阵求行列式值\n * @returns 行列式值\n */\n Matrix4.prototype.determinant = function () {\n var e = this.elements;\n var m11 = e[0], m12 = e[4], m13 = e[8], m14 = e[12];\n var m21 = e[1], m22 = e[5], m23 = e[9], m24 = e[13];\n var m31 = e[2], m32 = e[6], m33 = e[10], m34 = e[14];\n var m41 = e[3], m42 = e[7], m43 = e[11], m44 = e[15];\n return (m41 * (+m14 * m23 * m32\n - m13 * m24 * m32\n - m14 * m22 * m33\n + m12 * m24 * m33\n + m13 * m22 * m34\n - m12 * m23 * m34) +\n m42 * (+m11 * m23 * m34\n - m11 * m24 * m33\n + m14 * m21 * m33\n - m13 * m21 * m34\n + m13 * m24 * m31\n - m14 * m23 * m31) +\n m43 * (+m11 * m24 * m32\n - m11 * m22 * m34\n - m14 * m21 * m32\n + m12 * m21 * m34\n + m14 * m22 * m31\n - m12 * m24 * m31) +\n m44 * (-m13 * m22 * m31\n - m11 * m23 * m32\n + m11 * m22 * m33\n + m13 * m21 * m32\n - m12 * m21 * m33\n + m12 * m23 * m31));\n };\n /**\n * 矩阵转置\n * @returns 转置结果\n */\n Matrix4.prototype.transpose = function () {\n var e = this.elements;\n var t;\n t = e[1];\n e[1] = e[4];\n e[4] = t;\n t = e[2];\n e[2] = e[8];\n e[8] = t;\n t = e[3];\n e[3] = e[12];\n e[12] = t;\n //\n t = e[6];\n e[6] = e[9];\n e[9] = t;\n t = e[7];\n e[7] = e[13];\n e[13] = t;\n t = e[11];\n e[11] = e[14];\n e[14] = t;\n return this;\n };\n /**\n * 矩阵求逆\n * @returns 逆矩阵\n */\n Matrix4.prototype.invert = function () {\n // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n var e = this.elements;\n var m11 = e[0], m21 = e[1], m31 = e[2], m41 = e[3];\n var m12 = e[4], m22 = e[5], m32 = e[6], m42 = e[7];\n var m13 = e[8], m23 = e[9], m33 = e[10], m43 = e[11];\n var m14 = e[12], m24 = e[13], m34 = e[14], m44 = e[15];\n var t11 = m23 * m34 * m42 - m24 * m33 * m42 + m24 * m32 * m43 - m22 * m34 * m43 - m23 * m32 * m44 + m22 * m33 * m44;\n var t12 = m14 * m33 * m42 - m13 * m34 * m42 - m14 * m32 * m43 + m12 * m34 * m43 + m13 * m32 * m44 - m12 * m33 * m44;\n var t13 = m13 * m24 * m42 - m14 * m23 * m42 + m14 * m22 * m43 - m12 * m24 * m43 - m13 * m22 * m44 + m12 * m23 * m44;\n var t14 = m14 * m23 * m32 - m13 * m24 * m32 - m14 * m22 * m33 + m12 * m24 * m33 + m13 * m22 * m34 - m12 * m23 * m34;\n var det = m11 * t11 + m21 * t12 + m31 * t13 + m41 * t14;\n if (det === 0) {\n return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n var detInv = 1 / det;\n e[0] = t11 * detInv;\n e[1] = (m24 * m33 * m41 - m23 * m34 * m41 - m24 * m31 * m43 + m21 * m34 * m43 + m23 * m31 * m44 - m21 * m33 * m44) * detInv;\n e[2] = (m22 * m34 * m41 - m24 * m32 * m41 + m24 * m31 * m42 - m21 * m34 * m42 - m22 * m31 * m44 + m21 * m32 * m44) * detInv;\n e[3] = (m23 * m32 * m41 - m22 * m33 * m41 - m23 * m31 * m42 + m21 * m33 * m42 + m22 * m31 * m43 - m21 * m32 * m43) * detInv;\n e[4] = t12 * detInv;\n e[5] = (m13 * m34 * m41 - m14 * m33 * m41 + m14 * m31 * m43 - m11 * m34 * m43 - m13 * m31 * m44 + m11 * m33 * m44) * detInv;\n e[6] = (m14 * m32 * m41 - m12 * m34 * m41 - m14 * m31 * m42 + m11 * m34 * m42 + m12 * m31 * m44 - m11 * m32 * m44) * detInv;\n e[7] = (m12 * m33 * m41 - m13 * m32 * m41 + m13 * m31 * m42 - m11 * m33 * m42 - m12 * m31 * m43 + m11 * m32 * m43) * detInv;\n e[8] = t13 * detInv;\n e[9] = (m14 * m23 * m41 - m13 * m24 * m41 - m14 * m21 * m43 + m11 * m24 * m43 + m13 * m21 * m44 - m11 * m23 * m44) * detInv;\n e[10] = (m12 * m24 * m41 - m14 * m22 * m41 + m14 * m21 * m42 - m11 * m24 * m42 - m12 * m21 * m44 + m11 * m22 * m44) * detInv;\n e[11] = (m13 * m22 * m41 - m12 * m23 * m41 - m13 * m21 * m42 + m11 * m23 * m42 + m12 * m21 * m43 - m11 * m22 * m43) * detInv;\n e[12] = t14 * detInv;\n e[13] = (m13 * m24 * m31 - m14 * m23 * m31 + m14 * m21 * m33 - m11 * m24 * m33 - m13 * m21 * m34 + m11 * m23 * m34) * detInv;\n e[14] = (m14 * m22 * m31 - m12 * m24 * m31 - m14 * m21 * m32 + m11 * m24 * m32 + m12 * m21 * m34 - m11 * m22 * m34) * detInv;\n e[15] = (m12 * m23 * m31 - m13 * m22 * m31 + m13 * m21 * m32 - m11 * m23 * m32 - m12 * m21 * m33 + m11 * m22 * m33) * detInv;\n return this;\n };\n /**\n * 提取基轴\n * @param xAxis - 提取的 x 轴\n * @param yAxis - 提取的 y 轴\n * @param zAxis - 提取的 z 轴\n * @returns\n */\n Matrix4.prototype.extractBasis = function (xAxis, yAxis, zAxis) {\n var te = this.elements;\n xAxis.set(te[0], te[1], te[2]);\n yAxis.set(te[4], te[5], te[6]);\n zAxis.set(te[8], te[9], te[10]);\n return this;\n };\n /**\n * 根据基础信息组装矩阵\n * @param translation - 位置信息\n * @param rotation - 旋转信息\n * @param scale - 缩放信息\n * @param [anchor] - 锚点信息\n * @returns 矩阵\n */\n Matrix4.prototype.compose = function (translation, rotation, scale, anchor) {\n if (anchor === void 0) { anchor = Vector3.ZERO; }\n var te = this.elements;\n var x = rotation.x, y = rotation.y, z = rotation.z, w = rotation.w;\n var l = -anchor.x;\n var m = -anchor.y;\n var n = -anchor.z;\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = scale.x, sy = scale.y, sz = scale.z;\n te[0] = (1 - (yy + zz)) * sx;\n te[1] = (xy + wz) * sx;\n te[2] = (xz - wy) * sx;\n te[3] = 0;\n te[4] = (xy - wz) * sy;\n te[5] = (1 - (xx + zz)) * sy;\n te[6] = (yz + wx) * sy;\n te[7] = 0;\n te[8] = (xz + wy) * sz;\n te[9] = (yz - wx) * sz;\n te[10] = (1 - (xx + yy)) * sz;\n te[11] = 0;\n te[12] = l * te[0] + m * te[4] + n * te[8] - l + translation.x;\n te[13] = l * te[1] + m * te[5] + n * te[9] - m + translation.y;\n te[14] = l * te[2] + m * te[6] + n * te[10] - n + translation.z;\n return this;\n };\n /**\n * 矩阵拆分为基础信息\n * @param translation - 位置信息\n * @param rotation - 旋转信息\n * @param scale - 缩放信息\n * @returns 矩阵\n */\n Matrix4.prototype.decompose = function (translation, rotation, scale) {\n var v = Matrix4.tempVec0;\n var te = this.elements;\n var sx = v.set(te[0], te[1], te[2]).length();\n var sy = v.set(te[4], te[5], te[6]).length();\n var sz = v.set(te[8], te[9], te[10]).length();\n // if determine is negative, we need to invert one scale\n var det = this.determinant();\n if (det < 0) {\n sx = -sx;\n }\n translation.x = te[12];\n translation.y = te[13];\n translation.z = te[14];\n // scale the rotation part\n var m = Matrix4.tempMat0;\n m.copyFrom(this);\n var invSX = 1 / sx;\n var invSY = 1 / sy;\n var invSZ = 1 / sz;\n m.elements[0] *= invSX;\n m.elements[1] *= invSX;\n m.elements[2] *= invSX;\n m.elements[4] *= invSY;\n m.elements[5] *= invSY;\n m.elements[6] *= invSY;\n m.elements[8] *= invSZ;\n m.elements[9] *= invSZ;\n m.elements[10] *= invSZ;\n rotation.setFromRotationMatrix(m);\n scale.x = sx;\n scale.y = sy;\n scale.z = sz;\n return this;\n };\n Matrix4.prototype.getTranslation = function (translation) {\n var te = this.elements;\n return translation.set(te[12], te[13], te[14]);\n };\n Matrix4.prototype.getScale = function (scale) {\n var te = this.elements;\n return scale.set(Math.hypot(te[0], te[1], te[2]), Math.hypot(te[4], te[5], te[6]), Math.hypot(te[8], te[9], te[10]));\n };\n /**\n * 获得矩阵分解的结果\n * @returns 分解的结果\n */\n Matrix4.prototype.getTransform = function () {\n var translation = new Vector3();\n var rotation = new Quaternion();\n var scale = new Vector3();\n this.decompose(translation, rotation, scale);\n return { translation: translation, rotation: rotation, scale: scale };\n };\n /**\n * 根据视窗信息设置正交相机投影矩阵\n * @param left - 视窗左平面位置\n * @param right - 视窗右平面位置\n * @param top - 视窗上平面位置\n * @param bottom - 视窗下平面位置\n * @param near - 视窗近平面位置\n * @param far - 视窗远平面位置\n * @returns 矩阵\n */\n Matrix4.prototype.orthographic = function (left, right, top, bottom, near, far) {\n var a = 1.0 / (right - left);\n var b = 1.0 / (top - bottom);\n var c = 1.0 / (far - near);\n var tx = -(right + left) * a;\n var ty = -(top + bottom) * b;\n var tz = -(far + near) * c;\n a *= 2.0;\n b *= 2.0;\n c *= -2.0;\n var te = this.elements;\n te[0] = a;\n te[1] = 0.0;\n te[2] = 0.0;\n te[3] = 0.0;\n //\n te[4] = 0.0;\n te[5] = b;\n te[6] = 0.0;\n te[7] = 0.0;\n //\n te[8] = 0.0;\n te[9] = 0.0;\n te[10] = c;\n te[11] = 0.0;\n //\n te[12] = tx;\n te[13] = ty;\n te[14] = tz;\n te[15] = 1.0;\n return this;\n };\n /**\n * 通过透视相机基础参数设置投影矩阵\n * @param fov - 视角(弧度)\n * @param aspect - 视窗比例\n * @param near - 近平面\n * @param far - 远平面\n * @param [reverse] - 视锥体长宽反转(3D这里反了?)\n * @returns 投影矩阵\n */\n Matrix4.prototype.perspective = function (fov, aspect, near, far, reverse) {\n var f = 1.0 / Math.tan(fov * 0.5);\n var nf = 1 / (near - far);\n var te = this.elements;\n te[0] = reverse ? f : f / aspect;\n te[1] = 0;\n te[2] = 0;\n te[3] = 0;\n //\n te[4] = 0;\n te[5] = reverse ? f * aspect : f;\n te[6] = 0;\n te[7] = 0;\n //\n te[8] = 0;\n te[9] = 0;\n te[10] = (far + near) * nf;\n te[11] = -1;\n //\n te[12] = 0;\n te[13] = 0;\n te[14] = 2 * far * near * nf;\n te[15] = 0;\n if (far === null || far === Infinity) {\n te[10] = -1;\n te[14] = -2 * near;\n }\n return this;\n };\n /**\n * 对点进行投影变换\n * @param v - 输入点\n * @param [out] - 输出点,如果没有就覆盖输入的数据\n * @returns 投影后的点\n */\n Matrix4.prototype.projectPoint = function (v, out) {\n var x = v.x, y = v.y, z = v.z;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[4] * y + e[8] * z + e[12];\n res.y = e[1] * x + e[5] * y + e[9] * z + e[13];\n res.z = e[2] * x + e[6] * y + e[10] * z + e[14];\n var w = e[3] * x + e[7] * y + e[11] * z + e[15];\n return res.multiply(1 / w);\n };\n /**\n * 对点进行矩阵变换\n * @param v - 输入点\n * @param [out] - 输出点,如果没有就覆盖输入的数据\n * @returns 变换后的点\n */\n Matrix4.prototype.transformPoint = function (v, out) {\n var x = v.x, y = v.y, z = v.z;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[4] * y + e[8] * z + e[12];\n res.y = e[1] * x + e[5] * y + e[9] * z + e[13];\n res.z = e[2] * x + e[6] * y + e[10] * z + e[14];\n return res;\n };\n /**\n * 对法向量进行矩阵变换\n * @param v - 输入法向量\n * @param [out] - 输出法向量,如果没有就覆盖输入的数据\n * @returns 变换后的法向量\n */\n Matrix4.prototype.transformNormal = function (v, out) {\n var x = v.x, y = v.y, z = v.z;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[4] * y + e[8] * z;\n res.y = e[1] * x + e[5] * y + e[9] * z;\n res.z = e[2] * x + e[6] * y + e[10] * z;\n return res.normalize();\n };\n /**\n * 对四维向量进行矩阵变换\n * @param v - 输入向量\n * @param [out] - 输出向量,如果没有就覆盖输入的数据\n * @returns 变换后向量\n */\n Matrix4.prototype.transformVector4 = function (v, out) {\n var x = v.x, y = v.y, z = v.z, w = v.w;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\n res.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\n res.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\n res.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\n return res;\n };\n /**\n * 矩阵判等\n * @param matrix - 矩阵\n * @returns 判等结果\n */\n Matrix4.prototype.equals = function (matrix) {\n var te = this.elements;\n var me = matrix.elements;\n for (var i = 0; i < 16; i++) {\n if (!isEqual(te[i], me[i])) {\n return false;\n }\n }\n return true;\n };\n /**\n * 矩阵转数组\n * @returns\n */\n Matrix4.prototype.toArray = function () {\n return __spreadArray([], __read(this.elements), false);\n };\n Matrix4.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n var te = this.elements;\n array[offset] = te[0];\n array[offset + 1] = te[1];\n array[offset + 2] = te[2];\n array[offset + 3] = te[3];\n array[offset + 4] = te[4];\n array[offset + 5] = te[5];\n array[offset + 6] = te[6];\n array[offset + 7] = te[7];\n array[offset + 8] = te[8];\n array[offset + 9] = te[9];\n array[offset + 10] = te[10];\n array[offset + 11] = te[11];\n array[offset + 12] = te[12];\n array[offset + 13] = te[13];\n array[offset + 14] = te[14];\n array[offset + 15] = te[15];\n };\n /**\n * 创建单位阵\n * @returns 单位矩阵\n */\n Matrix4.fromIdentity = function () {\n return new Matrix4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n };\n /**\n * 创建相机矩阵\n * @param eye - 相机位置\n * @param target - 目标位置\n * @param up - 相机方向\n * @returns 矩阵\n */\n Matrix4.fromLookAt = function (eye, target, up) {\n return new Matrix4().lookAt(eye, target, up);\n };\n /**\n * 创建投影矩阵\n * @param fov - 视角\n * @param aspect - 视窗比例\n * @param near - 近平面\n * @param far - 远平面\n * @param [reverse] - 视锥体长宽反转\n * @returns 投影矩阵\n */\n Matrix4.fromPerspective = function (fov, aspect, near, far, reverse) {\n return new Matrix4().perspective(fov, aspect, near, far, reverse);\n };\n /**\n * 通过四个列向量创建矩阵\n * @param c1 - 第一列\n * @param c2 - 第二列\n * @param c3 - 第三列\n * @param c4 - 第四列\n * @returns\n */\n Matrix4.fromColumnVectors = function (c1, c2, c3, c4) {\n return new Matrix4().setFromColumnVectors(c1, c2, c3, c4);\n };\n /**\n * 通过三阶矩阵创建矩阵\n * @param m - 三阶矩阵\n * @returns 创建的矩阵\n */\n Matrix4.fromMatrix3 = function (m) {\n return new Matrix4().setFromMatrix3(m);\n };\n /**\n * 通过数组创建矩阵\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 矩阵\n */\n Matrix4.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Matrix4().setFromArray(array, offset);\n };\n /**\n * 通过缩放创建矩阵\n * @param x - x 缩放\n * @param y - y 缩放\n * @param z - z 缩放\n * @returns 缩放结果\n */\n Matrix4.fromScale = function (x, y, z) {\n return new Matrix4().setFromScale(x, y, z);\n };\n /**\n * 通过平移创建矩阵\n * @param x - x 平移\n * @param y - y 平移\n * @param z - z 平移\n * @returns 平移结果\n */\n Matrix4.fromTranslation = function (x, y, z) {\n return new Matrix4().setFromTranslation(x, y, z);\n };\n /**\n * 通过 x 轴旋转创建矩阵\n * @param theta - x 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.fromRotationX = function (theta) {\n return new Matrix4().setFromRotationX(theta);\n };\n /**\n * 通过 y 轴旋转创建矩阵\n * @param theta - y 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.fromRotationY = function (theta) {\n return new Matrix4().setFromRotationY(theta);\n };\n /**\n * 通过 z 轴旋转创建矩阵\n * @param theta - z 轴旋转弧度\n * @returns\n */\n Matrix4.fromRotationZ = function (theta) {\n return new Matrix4().setFromRotationZ(theta);\n };\n /**\n * 通过旋转轴与旋转弧度创建矩阵\n * @param axis - 旋转轴\n * @param angle - 旋转弧度\n * @returns\n */\n Matrix4.fromRotationAxis = function (axis, angle) {\n return new Matrix4().setFromRotationAxis(axis, angle);\n };\n /**\n * 通过欧拉角创建矩阵\n * @param euler - 欧拉角\n * @returns\n */\n Matrix4.fromEuler = function (euler) {\n return new Matrix4().setFromEuler(euler);\n };\n /**\n * 通过四元数创建矩阵\n * @param quat - 四元数\n * @returns\n */\n Matrix4.fromQuaternion = function (quat) {\n return new Matrix4().setFromQuaternion(quat);\n };\n /**\n * 通过倾斜创建矩阵\n * @param x - x 方向倾斜分量\n * @param y - y 方向倾斜分量\n * @param z - z 方向倾斜分量\n * @returns 倾斜矩阵\n */\n Matrix4.fromShear = function (x, y, z) {\n return new Matrix4().setFromShear(x, y, z);\n };\n /**\n * 通过基轴创建矩阵\n * @param xAxis - x 轴\n * @param yAxis - y 轴\n * @param zAxis - z 轴\n * @returns\n */\n Matrix4.fromBasis = function (xAxis, yAxis, zAxis) {\n return new Matrix4().setFromBasis(xAxis, yAxis, zAxis);\n };\n /**\n * 通过行优先数据设置矩阵\n * @param m11 - 第 1 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m14 - 第 1 行,第 4 列\n * @param m21 - 第 2 行,第 1 列\n * @param m22 - 第 2 行,第 2 列\n * @param m23 - 第 2 行,第 3 列\n * @param m24 - 第 2 行,第 4 列\n * @param m31 - 第 3 行,第 1 列\n * @param m32 - 第 3 行,第 2 列\n * @param m33 - 第 3 行,第 3 列\n * @param m34 - 第 3 行,第 4 列\n * @param m41 - 第 4 行,第 1 列\n * @param m42 - 第 4 行,第 2 列\n * @param m43 - 第 4 行,第 3 列\n * @param m44 - 第 4 行,第 4 列\n * @returns\n */\n Matrix4.fromRowMajorData = function (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) {\n return new Matrix4(m11, m21, m31, m41, m12, m22, m32, m42, m13, m23, m33, m43, m14, m24, m34, m44);\n };\n Matrix4.IDENTITY = new Matrix4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n Matrix4.ZERO = new Matrix4(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n Matrix4.tempVec0 = new Vector3();\n Matrix4.tempVec1 = new Vector3();\n Matrix4.tempVec2 = new Vector3();\n Matrix4.tempMat0 = new Matrix4();\n return Matrix4;\n}());\n","import { Quaternion } from './quaternion';\nimport { Matrix4 } from './matrix4';\nimport { RAD2DEG, clamp } from './utils';\nimport { DEG2RAD } from './utils';\n/**\n * 欧拉角顺序\n */\nexport var EulerOrder;\n(function (EulerOrder) {\n EulerOrder[EulerOrder[\"XYZ\"] = 0] = \"XYZ\";\n EulerOrder[EulerOrder[\"XZY\"] = 1] = \"XZY\";\n EulerOrder[EulerOrder[\"YXZ\"] = 2] = \"YXZ\";\n EulerOrder[EulerOrder[\"YZX\"] = 3] = \"YZX\";\n EulerOrder[EulerOrder[\"ZXY\"] = 4] = \"ZXY\";\n EulerOrder[EulerOrder[\"ZYX\"] = 5] = \"ZYX\";\n})(EulerOrder || (EulerOrder = {}));\n/**\n * 欧拉角\n */\nexport var Euler = /** @class */ (function () {\n /**\n * 构造函数,传入值为 x, y, z 方向分量以及欧拉角顺序\n * @param [x=0] - x 方向分量\n * @param [y=0] - y 方向分量\n * @param [z=0] - z 方向分量\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n */\n function Euler(x, y, z, order) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n this.x = x;\n this.y = y;\n this.z = z;\n this.order = order;\n }\n /**\n * 设置欧拉角\n * @param x - x 方向分量\n * @param y - y 方向分量\n * @param z - z 方向分量\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.set = function (x, y, z, order) {\n if (order === void 0) { order = this.order; }\n this.x = x;\n this.y = y;\n this.z = z;\n this.order = order;\n return this;\n };\n Euler.prototype.setZero = function (order) {\n if (order === void 0) { order = this.order; }\n return this.set(0, 0, 0, order);\n };\n /**\n * 通过矩阵设置欧拉角\n * @param m - 矩阵\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.setFromRotationMatrix4 = function (m, order) {\n if (order === void 0) { order = this.order; }\n var te = m.elements;\n var m11 = te[0];\n var m12 = te[4];\n var m13 = te[8];\n var m21 = te[1];\n var m22 = te[5];\n var m23 = te[9];\n var m31 = te[2];\n var m32 = te[6];\n var m33 = te[10];\n switch (order) {\n case EulerOrder.XYZ:\n this.y = Math.asin(clamp(m13, -1, 1));\n if (Math.abs(m13) < 0.9999999) {\n this.x = Math.atan2(-m23, m33);\n this.z = Math.atan2(-m12, m11);\n }\n else {\n this.x = Math.atan2(m32, m22);\n this.z = 0;\n }\n break;\n case EulerOrder.YXZ:\n this.x = Math.asin(-clamp(m23, -1, 1));\n if (Math.abs(m23) < 0.9999999) {\n this.y = Math.atan2(m13, m33);\n this.z = Math.atan2(m21, m22);\n }\n else {\n this.y = Math.atan2(-m31, m11);\n this.z = 0;\n }\n break;\n case EulerOrder.ZXY:\n this.x = Math.asin(clamp(m32, -1, 1));\n if (Math.abs(m32) < 0.9999999) {\n this.y = Math.atan2(-m31, m33);\n this.z = Math.atan2(-m12, m22);\n }\n else {\n this.y = 0;\n this.z = Math.atan2(m21, m11);\n }\n break;\n case EulerOrder.ZYX:\n this.y = Math.asin(-clamp(m31, -1, 1));\n if (Math.abs(m31) < 0.9999999) {\n this.x = Math.atan2(m32, m33);\n this.z = Math.atan2(m21, m11);\n }\n else {\n this.x = 0;\n this.z = Math.atan2(-m12, m22);\n }\n break;\n case EulerOrder.YZX:\n this.z = Math.asin(clamp(m21, -1, 1));\n if (Math.abs(m21) < 0.9999999) {\n this.x = Math.atan2(-m23, m22);\n this.y = Math.atan2(-m31, m11);\n }\n else {\n this.x = 0;\n this.y = Math.atan2(m13, m33);\n }\n break;\n case EulerOrder.XZY:\n this.z = Math.asin(-clamp(m12, -1, 1));\n if (Math.abs(m12) < 0.9999999) {\n this.x = Math.atan2(m32, m22);\n this.y = Math.atan2(m13, m11);\n }\n else {\n this.x = Math.atan2(-m23, m33);\n this.y = 0;\n }\n break;\n default:\n console.error('setFromRotationMatrix: unknown order: ' + order);\n }\n this.x *= RAD2DEG;\n this.y *= RAD2DEG;\n this.z *= RAD2DEG;\n this.order = order;\n return this;\n };\n /**\n * 通过四元数设置欧拉角\n * @param quat - 四元数\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.setFromQuaternion = function (quat, order) {\n if (order === void 0) { order = this.order; }\n var matrix = Euler.tempMat0;\n matrix.setFromQuaternion(quat);\n return this.setFromRotationMatrix4(matrix, order);\n };\n /**\n * 通过三维向量设置欧拉角\n * @param v - 三维向量\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.setFromVector3 = function (v, order) {\n if (order === void 0) { order = this.order; }\n return this.set(v.x, v.y, v.z, order);\n };\n /**\n * 通过数组设置欧拉角\n * @param array - 数组\n * @param [offset=0] - 偏移\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.setFromArray = function (array, offset, order) {\n var _a, _b, _c, _d;\n if (offset === void 0) { offset = 0; }\n if (order === void 0) { order = this.order; }\n this.x = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.y = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n this.z = (_c = array[offset + 2]) !== null && _c !== void 0 ? _c : 0;\n this.order = (_d = array[offset + 3]) !== null && _d !== void 0 ? _d : order;\n return this;\n };\n /**\n * 克隆欧拉角\n * @returns 克隆结果\n */\n Euler.prototype.clone = function () {\n return new Euler(this.x, this.y, this.z, this.order);\n };\n /**\n * 复制欧拉角\n * @param euler - 复制对象\n * @returns 复制结果\n */\n Euler.prototype.copyFrom = function (euler) {\n this.x = euler.x;\n this.y = euler.y;\n this.z = euler.z;\n this.order = euler.order;\n return this;\n };\n Euler.prototype.add = function (euler) {\n if (this.order != euler.order) {\n console.error('add euler with different order');\n return this;\n }\n this.x += euler.x;\n this.y += euler.y;\n this.z += euler.z;\n return this;\n };\n Euler.prototype.addEulers = function (left, right) {\n if (left.order != right.order) {\n console.error('add euler with different order');\n return this;\n }\n this.x = left.x + right.x;\n this.y = left.y + right.y;\n this.z = left.z + right.z;\n this.order = left.order;\n return this;\n };\n Euler.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n };\n /**\n * 修改欧拉角顺序\n * @param newOrder - 欧拉角顺序\n * @returns 修改结果\n */\n Euler.prototype.reorder = function (newOrder) {\n var quaternion = new Quaternion();\n quaternion.setFromEuler(this);\n return this.setFromQuaternion(quaternion, newOrder);\n };\n /**\n * 通过四元数旋转向量\n * @param v - 待旋转向量\n * @param out - 旋转结果,如果没有传入直接覆盖输入值\n * @returns\n */\n Euler.prototype.rotateVector3 = function (v, out) {\n var q = Euler.tempQuat0;\n return q.setFromEuler(this).rotateVector3(v, out);\n };\n /**\n * 欧拉角相等判断\n * @param euler - 欧拉角\n * @returns 判断结果\n */\n Euler.prototype.equals = function (euler) {\n return euler.x === this.x\n && euler.y === this.y\n && euler.z === this.z\n && euler.order === this.order;\n };\n /**\n * 欧拉角保存于三维向量\n * @param vec - 目标保存对象\n * @returns 保存结果\n */\n Euler.prototype.toVector3 = function (vec) {\n return vec.set(this.x, this.y, this.z);\n };\n /**\n * 欧拉角转数组\n * @returns 保存结果\n */\n Euler.prototype.toArray = function () {\n return [this.x, this.y, this.z];\n };\n /**\n * 欧拉角转四元数\n * @param quat - 目标四元数\n * @returns 目标四元数\n */\n Euler.prototype.toQuaternion = function (quat) {\n var _a;\n var x = (_a = this, _a.x), y = _a.y, z = _a.z, order = _a.order;\n var c1 = Math.cos(x * DEG2RAD * 0.5);\n var c2 = Math.cos(y * DEG2RAD * 0.5);\n var c3 = Math.cos(z * DEG2RAD * 0.5);\n var s1 = Math.sin(x * DEG2RAD * 0.5);\n var s2 = Math.sin(y * DEG2RAD * 0.5);\n var s3 = Math.sin(z * DEG2RAD * 0.5);\n switch (order) {\n case EulerOrder.XYZ:\n quat.set(s1 * c2 * c3 + c1 * s2 * s3, c1 * s2 * c3 - s1 * c2 * s3, c1 * c2 * s3 + s1 * s2 * c3, c1 * c2 * c3 - s1 * s2 * s3);\n break;\n case EulerOrder.YXZ:\n quat.set(s1 * c2 * c3 + c1 * s2 * s3, c1 * s2 * c3 - s1 * c2 * s3, c1 * c2 * s3 - s1 * s2 * c3, c1 * c2 * c3 + s1 * s2 * s3);\n break;\n case EulerOrder.ZXY:\n quat.set(s1 * c2 * c3 - c1 * s2 * s3, c1 * s2 * c3 + s1 * c2 * s3, c1 * c2 * s3 + s1 * s2 * c3, c1 * c2 * c3 - s1 * s2 * s3);\n break;\n case EulerOrder.ZYX:\n quat.set(s1 * c2 * c3 - c1 * s2 * s3, c1 * s2 * c3 + s1 * c2 * s3, c1 * c2 * s3 - s1 * s2 * c3, c1 * c2 * c3 + s1 * s2 * s3);\n break;\n case EulerOrder.YZX:\n quat.set(s1 * c2 * c3 + c1 * s2 * s3, c1 * s2 * c3 + s1 * c2 * s3, c1 * c2 * s3 - s1 * s2 * c3, c1 * c2 * c3 - s1 * s2 * s3);\n break;\n case EulerOrder.XZY:\n quat.set(s1 * c2 * c3 - c1 * s2 * s3, c1 * s2 * c3 - s1 * c2 * s3, c1 * c2 * s3 + s1 * s2 * c3, c1 * c2 * c3 + s1 * s2 * s3);\n break;\n default:\n console.error('unknown euler order: ' + order);\n }\n return quat;\n };\n /**\n * 欧拉角转矩阵\n * @param mat - 目标矩阵\n * @returns 返回目标矩阵\n */\n Euler.prototype.toMatrix4 = function (mat) {\n var _a;\n var me = mat.elements;\n var x = (_a = this, _a.x), y = _a.y, z = _a.z, order = _a.order;\n var cosX = Math.cos(x * DEG2RAD), sinX = Math.sin(x * DEG2RAD);\n var cosY = Math.cos(y * DEG2RAD), sinY = Math.sin(y * DEG2RAD);\n var cosZ = Math.cos(z * DEG2RAD), sinZ = Math.sin(z * DEG2RAD);\n if (order === EulerOrder.XYZ) {\n var cosXcosZ = cosX * cosZ;\n var cosXsinZ = cosX * sinZ;\n var sinXcosZ = sinX * cosZ;\n var sinXsinZ = sinX * sinZ;\n me[0] = cosY * cosZ;\n me[4] = -cosY * sinZ;\n me[8] = sinY;\n me[1] = cosXsinZ + sinXcosZ * sinY;\n me[5] = cosXcosZ - sinXsinZ * sinY;\n me[9] = -sinX * cosY;\n me[2] = sinXsinZ - cosXcosZ * sinY;\n me[6] = sinXcosZ + cosXsinZ * sinY;\n me[10] = cosX * cosY;\n }\n else if (order === EulerOrder.YXZ) {\n var cosYcosZ = cosY * cosZ;\n var cosYsinZ = cosY * sinZ;\n var sinYcosZ = sinY * cosZ;\n var sinYsinZ = sinY * sinZ;\n me[0] = cosYcosZ + sinYsinZ * sinX;\n me[4] = sinYcosZ * sinX - cosYsinZ;\n me[8] = cosX * sinY;\n me[1] = cosX * sinZ;\n me[5] = cosX * cosZ;\n me[9] = -sinX;\n me[2] = cosYsinZ * sinX - sinYcosZ;\n me[6] = sinYsinZ + cosYcosZ * sinX;\n me[10] = cosX * cosY;\n }\n else if (order === EulerOrder.ZXY) {\n var cosYcosZ = cosY * cosZ;\n var cosYsinZ = cosY * sinZ;\n var sinYcosZ = sinY * cosZ;\n var sinYsinZ = sinY * sinZ;\n me[0] = cosYcosZ - sinYsinZ * sinX;\n me[4] = -cosX * sinZ;\n me[8] = sinYcosZ + cosYsinZ * sinX;\n me[1] = cosYsinZ + sinYcosZ * sinX;\n me[5] = cosX * cosZ;\n me[9] = sinYsinZ - cosYcosZ * sinX;\n me[2] = -cosX * sinY;\n me[6] = sinX;\n me[10] = cosX * cosY;\n }\n else if (order === EulerOrder.ZYX) {\n var cosXcosZ = cosX * cosZ;\n var cosXsinZ = cosX * sinZ;\n var sinXcosZ = sinX * cosZ;\n var sinXsinZ = sinX * sinZ;\n me[0] = cosY * cosZ;\n me[4] = sinXcosZ * sinY - cosXsinZ;\n me[8] = cosXcosZ * sinY + sinXsinZ;\n me[1] = cosY * sinZ;\n me[5] = sinXsinZ * sinY + cosXcosZ;\n me[9] = cosXsinZ * sinY - sinXcosZ;\n me[2] = -sinY;\n me[6] = sinX * cosY;\n me[10] = cosX * cosY;\n }\n else if (order === EulerOrder.YZX) {\n var cosXcosY = cosX * cosY;\n var cosXsinY = cosX * sinY;\n var sinXcosY = sinX * cosY;\n var sinXsinY = sinX * sinY;\n me[0] = cosY * cosZ;\n me[4] = sinXsinY - cosXcosY * sinZ;\n me[8] = sinXcosY * sinZ + cosXsinY;\n me[1] = sinZ;\n me[5] = cosX * cosZ;\n me[9] = -sinX * cosZ;\n me[2] = -sinY * cosZ;\n me[6] = cosXsinY * sinZ + sinXcosY;\n me[10] = cosXcosY - sinXsinY * sinZ;\n }\n else if (order === EulerOrder.XZY) {\n var cosXcosY = cosX * cosY;\n var cosXsinY = cosX * sinY;\n var sinXcosY = sinX * cosY;\n var sinXsinY = sinX * sinY;\n me[0] = cosY * cosZ;\n me[4] = -sinZ;\n me[8] = sinY * cosZ;\n me[1] = cosXcosY * sinZ + sinXsinY;\n me[5] = cosX * cosZ;\n me[9] = cosXsinY * sinZ - sinXcosY;\n me[2] = sinXcosY * sinZ - cosXsinY;\n me[6] = sinX * cosZ;\n me[10] = sinXsinY * sinZ + cosXcosY;\n }\n else {\n console.error('toMatrix4: Invalid order ' + order);\n }\n // bottom row\n me[3] = 0;\n me[7] = 0;\n me[11] = 0;\n // last column\n me[12] = 0;\n me[13] = 0;\n me[14] = 0;\n me[15] = 1;\n return mat;\n };\n /**\n * 通过矩阵创建欧拉角\n * @param m - 矩阵\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n * @returns 创建结果\n */\n Euler.fromRotationMatrix4 = function (m, order) {\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n return new Euler().setFromRotationMatrix4(m, order);\n };\n /**\n * 通过四元数创建欧拉角\n * @param quat - 四元数\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n * @returns 创建结果\n */\n Euler.fromQuaternion = function (quat, order) {\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n return new Euler().setFromQuaternion(quat, order);\n };\n /**\n * 通过三维向量创建欧拉角\n * @param v - 三维向量\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n * @returns 创建结果\n */\n Euler.fromVector3 = function (v, order) {\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n return new Euler().setFromVector3(v, order);\n };\n /**\n * 通过数组创建欧拉角\n * @param array - 数组\n * @param [offset=0] - 偏移\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n * @returns 创建结果\n */\n Euler.fromArray = function (array, offset, order) {\n if (offset === void 0) { offset = 0; }\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n return new Euler().setFromArray(array, offset, order);\n };\n Euler.DEFAULT_ORDER = EulerOrder.ZYX;\n Euler.tempQuat0 = new Quaternion();\n Euler.tempMat0 = new Matrix4();\n return Euler;\n}());\n","import { NumberEpsilon } from './utils';\nimport { Vector3 } from './vector3';\n/**\n * 四维向量\n */\nexport var Vector4 = /** @class */ (function () {\n /**\n * 构造函数\n * @param [x=0] - x 轴分量\n * @param [y=0] - y 轴分量\n * @param [z=0] - z 轴分量\n * @param [w=1] - w 轴分量\n */\n function Vector4(x, y, z, w) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n if (w === void 0) { w = 0; }\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n }\n /**\n * 设置向量\n * @param x - x 轴分量\n * @param y - y 轴分量\n * @param z - z 轴分量\n * @param w - w 轴分量\n * @returns\n */\n Vector4.prototype.set = function (x, y, z, w) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n return this;\n };\n /**\n * 设置零向量\n * @returns 向量\n */\n Vector4.prototype.setZero = function () {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 0;\n return this;\n };\n /**\n * 通过标量数值设置向量\n * @param num - 数值\n * @returns 向量\n */\n Vector4.prototype.setFromNumber = function (num) {\n this.x = num;\n this.y = num;\n this.z = num;\n this.w = num;\n return this;\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector4.prototype.setFromArray = function (array, offset) {\n var _a, _b, _c, _d;\n if (offset === void 0) { offset = 0; }\n this.x = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.y = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n this.z = (_c = array[offset + 2]) !== null && _c !== void 0 ? _c : 0;\n this.w = (_d = array[offset + 3]) !== null && _d !== void 0 ? _d : 0;\n return this;\n };\n /**\n * 拷贝向量\n * @param v - 复制对象\n * @returns 拷贝结果\n */\n Vector4.prototype.copyFrom = function (v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n this.w = v.w;\n return this;\n };\n /**\n * 克隆向量\n * @returns 克隆结果\n */\n Vector4.prototype.clone = function () {\n return new Vector4(this.x, this.y, this.z, this.w);\n };\n /**\n * 根据下标设置向量分量\n * @param index - 下标值\n * @param value - 分量值\n * @returns 向量\n */\n Vector4.prototype.setElement = function (index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n case 2:\n this.z = value;\n break;\n case 3:\n this.w = value;\n break;\n default: console.error('index is out of range: ' + index);\n }\n return this;\n };\n /**\n * 根据下标获取向量分量\n * @param index - 下标\n * @returns 分量值\n */\n Vector4.prototype.getElement = function (index) {\n switch (index) {\n case 0: return this.x;\n case 1: return this.y;\n case 2: return this.z;\n case 3: return this.w;\n default: console.error('index is out of range: ' + index);\n }\n return 0;\n };\n /**\n * 向量相加\n * @param right - 相加对象,向量 | 数字\n * @returns 相加结果\n */\n Vector4.prototype.add = function (right) {\n if (typeof right === 'number') {\n this.x += right;\n this.y += right;\n this.z += right;\n this.w += right;\n }\n else if (right instanceof Array) {\n this.x += right[0];\n this.y += right[1];\n this.z += right[2];\n this.w += right[3];\n }\n else {\n this.x += right.x;\n this.y += right.y;\n this.z += right.z;\n this.w += right.w;\n }\n return this;\n };\n /**\n * 向量相加\n * @param left - 向量\n * @param right - 向量\n * @returns 求和结果\n */\n Vector4.prototype.addVectors = function (left, right) {\n this.x = left.x + right.x;\n this.y = left.y + right.y;\n this.z = left.z + right.z;\n this.w = left.w + right.w;\n return this;\n };\n /**\n * 向量比例缩放后相加\n * @param right - 向量\n * @param s - 比例\n * @returns 求和结果\n */\n Vector4.prototype.addScaledVector = function (right, s) {\n this.x += right.x * s;\n this.y += right.y * s;\n this.z += right.z * s;\n this.w += right.w * s;\n return this;\n };\n /**\n * 向量相减\n * @param right - 相减对象,向量 | 数字\n * @returns 相减结果\n */\n Vector4.prototype.subtract = function (right) {\n if (typeof right === 'number') {\n this.x -= right;\n this.y -= right;\n this.z -= right;\n this.w -= right;\n }\n else if (right instanceof Array) {\n this.x -= right[0];\n this.y -= right[1];\n this.z -= right[2];\n this.w -= right[3];\n }\n else {\n this.x -= right.x;\n this.y -= right.y;\n this.z -= right.z;\n this.w -= right.w;\n }\n return this;\n };\n /**\n * 向量相减\n * @param left - 向量\n * @param right - 向量\n * @returns 向量\n */\n Vector4.prototype.subtractVectors = function (left, right) {\n this.x = left.x - right.x;\n this.y = left.y - right.y;\n this.z = left.z - right.z;\n this.w = left.w - right.w;\n return this;\n };\n /**\n * 向量相乘\n * @param right - 相乘对象,对象 | 数字\n * @returns 向量\n */\n Vector4.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n this.x *= right;\n this.y *= right;\n this.z *= right;\n this.w *= right;\n }\n else if (right instanceof Array) {\n this.x *= right[0];\n this.y *= right[1];\n this.z *= right[2];\n this.w *= right[3];\n }\n else {\n this.x *= right.x;\n this.y *= right.y;\n this.z *= right.z;\n this.w *= right.w;\n }\n return this;\n };\n /**\n * 向量相乘\n * @param left - 向量\n * @param right - 向量\n * @returns 向量\n */\n Vector4.prototype.multiplyVectors = function (left, right) {\n this.x = left.x * right.x;\n this.y = left.y * right.y;\n this.z = left.z * right.z;\n this.w = left.w * right.w;\n return this;\n };\n /**\n * 向量相除\n * @param right - 相除对象,对象 | 数字\n * @returns 向量\n */\n Vector4.prototype.divide = function (right) {\n if (typeof right === 'number') {\n this.x /= right;\n this.y /= right;\n this.z /= right;\n this.w /= right;\n }\n else if (right instanceof Array) {\n this.x /= right[0];\n this.y /= right[1];\n this.z /= right[2];\n this.w /= right[3];\n }\n else {\n this.x /= right.x;\n this.y /= right.y;\n this.z /= right.z;\n this.w /= right.w;\n }\n return this;\n };\n /**\n * 向量缩放\n * @param v - 数字\n * @returns 缩放结果\n */\n Vector4.prototype.scale = function (v) {\n this.x *= v;\n this.y *= v;\n this.z *= v;\n this.w *= v;\n return this;\n };\n /**\n * 分量求和\n * @returns 求和结果\n */\n Vector4.prototype.sum = function () {\n return this.x + this.y + this.z + this.w;\n };\n /**\n * 向量求最小值\n * @param v - 向量或数值\n * @returns 最小值\n */\n Vector4.prototype.min = function (v) {\n if (typeof v === 'number') {\n this.x = Math.min(this.x, v);\n this.y = Math.min(this.y, v);\n this.z = Math.min(this.z, v);\n this.w = Math.min(this.w, v);\n }\n else {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n this.w = Math.min(this.w, v.w);\n }\n return this;\n };\n /**\n * 向量求最大值\n * @param v - 向量或数值\n * @returns 最大值\n */\n Vector4.prototype.max = function (v) {\n if (typeof v === 'number') {\n this.x = Math.max(this.x, v);\n this.y = Math.max(this.y, v);\n this.z = Math.max(this.z, v);\n this.w = Math.max(this.w, v);\n }\n else {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n this.w = Math.max(this.w, v.w);\n }\n return this;\n };\n /**\n * 向量阈值约束\n * @param min - 最小值\n * @param max - 最大值\n * @returns 向量\n */\n Vector4.prototype.clamp = function (min, max) {\n return this.max(min).min(max);\n };\n /**\n * 向量向下取整\n * @returns 取整结果\n */\n Vector4.prototype.floor = function () {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n this.w = Math.floor(this.w);\n return this;\n };\n /**\n * 向量向上取整\n * @returns 取整结果\n */\n Vector4.prototype.ceil = function () {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n this.w = Math.ceil(this.w);\n return this;\n };\n /**\n * 向量四舍五入\n * @returns 求值结果\n */\n Vector4.prototype.round = function () {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n this.w = Math.round(this.w);\n return this;\n };\n /**\n * 向量取绝对值\n * @returns 向量\n */\n Vector4.prototype.abs = function () {\n this.x = Math.abs(this.x);\n this.y = Math.abs(this.y);\n this.z = Math.abs(this.z);\n this.w = Math.abs(this.w);\n return this;\n };\n /**\n * 向量取反\n * @returns 取反结果\n */\n Vector4.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n this.w = -this.w;\n return this;\n };\n /**\n * 向量长度平方\n * @returns 长度平方\n */\n Vector4.prototype.lengthSquared = function () {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n };\n /**\n * 向量长度\n * @returns 长度\n */\n Vector4.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n };\n /**\n * 向量归一化\n * @returns 归一化结果\n */\n Vector4.prototype.normalize = function () {\n return this.divide(this.length() || 1);\n };\n /**\n * 设置向量长度\n * @param length - 长度\n * @returns 向量\n */\n Vector4.prototype.setLength = function (length) {\n return this.normalize().multiply(length);\n };\n /**\n * 向量求线性插值\n * @param v - 向量\n * @param alpha - 插值比例\n * @returns 插值结果\n */\n Vector4.prototype.lerp = function (v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n this.z += (v.z - this.z) * alpha;\n this.w += (v.w - this.w) * alpha;\n return this;\n };\n /**\n * 两向量求线性插值\n * @param v1 - 第一个向量\n * @param v2 - 第二个向量\n * @param alpha - 插值比例\n * @returns 插值结果\n */\n Vector4.prototype.lerpVectors = function (v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n this.w = v1.w + (v2.w - v1.w) * alpha;\n return this;\n };\n /**\n * 向量求点积\n * @param v - 向量\n * @returns 点积结果\n */\n Vector4.prototype.dot = function (v) {\n return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n };\n /**\n * 向量判等\n * @param v - 向量\n * @returns 判等结果\n */\n Vector4.prototype.equals = function (v) {\n return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\n };\n /**\n * 是否零向量\n * @returns 是否零向量\n */\n Vector4.prototype.isZero = function () {\n var _a;\n var eps = NumberEpsilon;\n var x = (_a = this, _a.x), y = _a.y, z = _a.z, w = _a.w;\n return Math.abs(x) <= eps && Math.abs(y) <= eps && Math.abs(z) <= eps && Math.abs(w) <= eps;\n };\n /**\n * 向量转数组\n * @returns 数组\n */\n Vector4.prototype.toArray = function () {\n return [this.x, this.y, this.z, this.w];\n };\n Vector4.prototype.toVector3 = function () {\n return new Vector3(this.x, this.y, this.z);\n };\n Vector4.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n array[offset + 3] = this.w;\n };\n /**\n * 生成随机向量\n * @returns 向量\n */\n Vector4.prototype.random = function () {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n this.w = Math.random();\n return this;\n };\n /**\n * 变换矩阵作用于向量\n * @param m - 变换矩阵\n * @param [out] - 输出结果,如果没有设置就直接覆盖当前值\n * @returns 向量\n */\n Vector4.prototype.applyMatrix = function (m, out) {\n return m.transformVector4(this, out);\n };\n /**\n * 通过标量数值创建向量\n * @param num - 数值\n * @returns 向量\n */\n Vector4.fromNumber = function (num) {\n return new Vector4().setFromNumber(num);\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector4.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Vector4().setFromArray(array, offset);\n };\n /**\n * 四维向量的常量\n */\n Vector4.ONE = new Vector4(1.0, 1.0, 1.0, 1.0);\n Vector4.ZERO = new Vector4(0.0, 0.0, 0.0, 0.0);\n return Vector4;\n}());\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { isEqual } from './utils';\n/**\n * 三维矩阵(列优先矩阵)\n */\nvar Matrix3 = /** @class */ (function () {\n /**\n * 构造函数,初始值为零矩阵\n * @param [m11=1] - 第 1 行,第 1 列\n * @param [m21=0] - 第 2 行,第 1 列\n * @param [m31=0] - 第 3 行,第 1 列\n * @param [m12=0] - 第 1 行,第 2 列\n * @param [m22=1] - 第 2 行,第 2 列\n * @param [m32=0] - 第 3 行,第 2 列\n * @param [m13=0] - 第 1 行,第 3 列\n * @param [m23=0] - 第 2 行,第 3 列\n * @param [m33=1] - 第 3 行,第 3 列\n */\n function Matrix3(m11, m21, m31, m12, m22, m32, m13, m23, m33) {\n if (m11 === void 0) { m11 = 1; }\n if (m21 === void 0) { m21 = 0; }\n if (m31 === void 0) { m31 = 0; }\n if (m12 === void 0) { m12 = 0; }\n if (m22 === void 0) { m22 = 1; }\n if (m32 === void 0) { m32 = 0; }\n if (m13 === void 0) { m13 = 0; }\n if (m23 === void 0) { m23 = 0; }\n if (m33 === void 0) { m33 = 1; }\n this.elements = [\n m11, m21, m31,\n m12, m22, m32,\n m13, m23, m33,\n ];\n }\n /**\n * 设置矩阵\n * @param m11 - 第 1 行,第 1 列\n * @param m21 - 第 2 行,第 1 列\n * @param m31 - 第 3 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m22 - 第 2 行,第 2 列\n * @param m32 - 第 3 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m23 - 第 2 行,第 3 列\n * @param m33 - 第 3 行,第 3 列\n * @returns\n */\n Matrix3.prototype.set = function (m11, m21, m31, m12, m22, m32, m13, m23, m33) {\n var e = this.elements;\n e[0] = m11;\n e[3] = m12;\n e[6] = m13;\n e[1] = m21;\n e[4] = m22;\n e[7] = m23;\n e[2] = m31;\n e[5] = m32;\n e[8] = m33;\n return this;\n };\n /**\n * 设置矩阵通过行优先数据\n * @param m11 - 第 1 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m21 - 第 2 行,第 1 列\n * @param m22 - 第 2 行,第 2 列\n * @param m23 - 第 2 行,第 3 列\n * @param m31 - 第 3 行,第 1 列\n * @param m32 - 第 3 行,第 2 列\n * @param m33 - 第 3 行,第 3 列\n * @returns 矩阵\n */\n Matrix3.prototype.setFromRowMajorData = function (m11, m12, m13, m21, m22, m23, m31, m32, m33) {\n var e = this.elements;\n e[0] = m11;\n e[3] = m12;\n e[6] = m13;\n e[1] = m21;\n e[4] = m22;\n e[7] = m23;\n e[2] = m31;\n e[5] = m32;\n e[8] = m33;\n return this;\n };\n /**\n * 通过列向量设置矩阵\n * @param c1 - 第一列\n * @param c2 - 第二列\n * @param c3 - 第三列\n * @returns 矩阵\n */\n Matrix3.prototype.setFromColumnVectors = function (c1, c2, c3) {\n return this.set(c1.x, c1.y, c1.z, c2.x, c2.y, c2.z, c3.x, c3.y, c3.z);\n };\n /**\n * 通过四阶矩阵设置三阶矩阵\n * @param m - 四阶矩阵\n * @returns 矩阵\n */\n Matrix3.prototype.setFromMatrix4 = function (m) {\n var me = m.elements;\n return this.set(me[0], me[1], me[2], me[4], me[5], me[6], me[8], me[9], me[10]);\n };\n /**\n * 通过数组设置矩阵\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 矩阵\n */\n Matrix3.prototype.setFromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n for (var i = 0; i < 9; i++) {\n this.elements[i] = array[offset + i];\n }\n return this;\n };\n /**\n * 通过四元数设置矩阵\n * @param quat - 四元数\n * @returns 矩阵\n */\n Matrix3.prototype.setFromQuaternion = function (quat) {\n var x = quat.x, y = quat.y, z = quat.z, w = quat.w;\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var te = this.elements;\n te[0] = 1 - (yy + zz);\n te[1] = xy + wz;\n te[2] = xz - wy;\n te[3] = xy - wz;\n te[4] = 1 - (xx + zz);\n te[5] = yz + wx;\n te[6] = xz + wy;\n te[7] = yz - wx;\n te[8] = 1 - (xx + yy);\n return this;\n };\n /**\n * 矩阵清零\n * @returns 零矩阵\n */\n Matrix3.prototype.setZero = function () {\n for (var i = 0; i < 9; i++) {\n this.elements[i] = 0;\n }\n return this;\n };\n /**\n * 矩阵单位化\n * @returns 单位矩阵\n */\n Matrix3.prototype.identity = function () {\n return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1);\n };\n /**\n * 矩阵克隆\n * @returns 克隆结果\n */\n Matrix3.prototype.clone = function () {\n var e = this.elements;\n return new Matrix3(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8]);\n };\n /**\n * 矩阵复制\n * @param m - 复制对象\n * @returns 复制结果\n */\n Matrix3.prototype.copyFrom = function (m) {\n this.elements = __spreadArray([], __read(m.elements), false);\n return this;\n };\n /**\n * 得到列向量\n * @param i - 列向量索引,从 0 开始\n * @returns 列向量\n */\n Matrix3.prototype.getColumnVector = function (i, v) {\n return v.set(this.elements[i * 3], this.elements[i * 3 + 1], this.elements[i * 3 + 2]);\n };\n /**\n * 矩阵缩放\n * @param sx - x 轴缩放分量\n * @param sy - y 轴缩放分量\n * @returns 缩放结果\n */\n Matrix3.prototype.scale = function (sx, sy) {\n var e = this.elements;\n e[0] *= sx;\n e[3] *= sx;\n e[6] *= sx;\n e[1] *= sy;\n e[4] *= sy;\n e[7] *= sy;\n return this;\n };\n /**\n * 矩阵旋转\n * @param theta - 旋转角度(弧度)\n * @returns 旋转结果\n */\n Matrix3.prototype.rotate = function (theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n var e = this.elements;\n var m11 = e[0], m12 = e[3], m13 = e[6];\n var m21 = e[1], m22 = e[4], m23 = e[7];\n e[0] = c * m11 + s * m21;\n e[3] = c * m12 + s * m22;\n e[6] = c * m13 + s * m23;\n e[1] = -s * m11 + c * m21;\n e[4] = -s * m12 + c * m22;\n e[7] = -s * m13 + c * m23;\n return this;\n };\n /**\n * 矩阵平移\n * @param x - x 轴平移分量\n * @param y - y 轴平移分量\n * @returns 平移结果\n */\n Matrix3.prototype.translate = function (x, y) {\n var e = this.elements;\n e[0] += x * e[2];\n e[3] += x * e[5];\n e[6] += x * e[8];\n e[1] += y * e[2];\n e[4] += y * e[5];\n e[7] += y * e[8];\n return this;\n };\n /**\n * 矩阵右乘\n * @param right - 相乘矩阵\n * @returns 右乘结果\n */\n Matrix3.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n for (var i = 0; i < 9; i++) {\n this.elements[i] *= right;\n }\n return this;\n }\n else {\n return this.multiplyMatrices(this, right);\n }\n };\n /**\n * 矩阵左乘\n * @param left - 相乘矩阵\n * @returns 左乘结果\n */\n Matrix3.prototype.premultiply = function (left) {\n return this.multiplyMatrices(left, this);\n };\n /**\n * 矩阵乘法\n * @param left - 矩阵\n * @param right - 矩阵\n * @returns 相乘结果\n */\n Matrix3.prototype.multiplyMatrices = function (left, right) {\n var ae = left.elements;\n var be = right.elements;\n var te = this.elements;\n var a11 = ae[0], a12 = ae[3], a13 = ae[6];\n var a21 = ae[1], a22 = ae[4], a23 = ae[7];\n var a31 = ae[2], a32 = ae[5], a33 = ae[8];\n var b11 = be[0], b12 = be[3], b13 = be[6];\n var b21 = be[1], b22 = be[4], b23 = be[7];\n var b31 = be[2], b32 = be[5], b33 = be[8];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31;\n te[3] = a11 * b12 + a12 * b22 + a13 * b32;\n te[6] = a11 * b13 + a12 * b23 + a13 * b33;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31;\n te[4] = a21 * b12 + a22 * b22 + a23 * b32;\n te[7] = a21 * b13 + a22 * b23 + a23 * b33;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31;\n te[5] = a31 * b12 + a32 * b22 + a33 * b32;\n te[8] = a31 * b13 + a32 * b23 + a33 * b33;\n return this;\n };\n /**\n * 矩阵求行列式值\n * @returns 行列式结果\n */\n Matrix3.prototype.determinant = function () {\n var e = this.elements;\n var m11 = e[0], m21 = e[3], m31 = e[6];\n var m12 = e[1], m22 = e[4], m32 = e[7];\n var m13 = e[2], m23 = e[5], m33 = e[8];\n return (m11 * (m22 * m33 - m23 * m32) +\n m12 * (m23 * m31 - m21 * m33) +\n m13 * (m21 * m32 - m22 * m31));\n };\n /**\n * 矩阵求逆\n * @returns 逆矩阵\n */\n Matrix3.prototype.invert = function () {\n var e = this.elements;\n var m11 = e[0], m12 = e[3], m13 = e[6];\n var m21 = e[1], m22 = e[4], m23 = e[7];\n var m31 = e[2], m32 = e[5], m33 = e[8];\n var t11 = m33 * m22 - m32 * m23;\n var t12 = m32 * m13 - m33 * m12;\n var t13 = m23 * m12 - m22 * m13;\n var det = m11 * t11 + m21 * t12 + m31 * t13;\n if (det === 0) {\n return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n var detInv = 1 / det;\n e[0] = t11 * detInv;\n e[1] = (m31 * m23 - m33 * m21) * detInv;\n e[2] = (m32 * m21 - m31 * m22) * detInv;\n e[3] = t12 * detInv;\n e[4] = (m33 * m11 - m31 * m13) * detInv;\n e[5] = (m31 * m12 - m32 * m11) * detInv;\n e[6] = t13 * detInv;\n e[7] = (m21 * m13 - m23 * m11) * detInv;\n e[8] = (m22 * m11 - m21 * m12) * detInv;\n return this;\n };\n /**\n * 矩阵转置\n * @returns 转置结果\n */\n Matrix3.prototype.transpose = function () {\n var t;\n var m = this.elements;\n t = m[1];\n m[1] = m[3];\n m[3] = t;\n t = m[2];\n m[2] = m[6];\n m[6] = t;\n t = m[5];\n m[5] = m[7];\n m[7] = t;\n return this;\n };\n /**\n * 对点进行矩阵变换\n * @param v - 输入点\n * @param out - 输出点,如果没有会覆盖输入的数据\n * @returns 变换后的结果\n */\n Matrix3.prototype.transformPoint = function (v, out) {\n var x = v.x, y = v.y, z = v.z;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[3] * y + e[6] * z;\n res.y = e[1] * x + e[4] * y + e[7] * z;\n res.z = e[2] * x + e[5] * y + e[8] * z;\n return res;\n };\n /**\n * 对法向量进行矩阵变换\n * @param v - 输入向量\n * @param out - 输出向量,如果没有会覆盖输入的数据\n * @returns 变换后的结果\n */\n Matrix3.prototype.transformNormal = function (v, out) {\n return this.transformPoint(v, out).normalize();\n };\n /**\n * 矩阵判等\n * @param matrix - 矩阵\n * @returns 判等结果\n */\n Matrix3.prototype.equals = function (matrix) {\n var te = this.elements;\n var me = matrix.elements;\n for (var i = 0; i < 9; i++) {\n if (!isEqual(te[i], me[i])) {\n return false;\n }\n }\n return true;\n };\n /**\n * 矩阵转为数组\n * @returns\n */\n Matrix3.prototype.toArray = function () {\n return __spreadArray([], __read(this.elements), false);\n };\n Matrix3.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n var e = this.elements;\n array[offset] = e[0];\n array[offset + 1] = e[1];\n array[offset + 2] = e[2];\n array[offset + 3] = e[3];\n array[offset + 4] = e[4];\n array[offset + 5] = e[5];\n array[offset + 6] = e[6];\n array[offset + 7] = e[7];\n array[offset + 8] = e[8];\n };\n /**\n * 创建单位阵\n * @returns 单位矩阵\n */\n Matrix3.fromIdentity = function () {\n return new Matrix3(1, 0, 0, 0, 1, 0, 0, 0, 1);\n };\n /**\n * 通过列向量创建矩阵\n * @param c1 - 第一列\n * @param c2 - 第二列\n * @param c3 - 第三列\n * @returns 矩阵\n */\n Matrix3.fromColumnVectors = function (c1, c2, c3) {\n return new Matrix3().setFromColumnVectors(c1, c2, c3);\n };\n /**\n * 通过四阶矩阵创建矩阵(获取空间变换矩阵旋转缩放部分)\n * @param m - 四阶矩阵\n * @returns 矩阵\n */\n Matrix3.fromMatrix4 = function (m) {\n return new Matrix3().setFromMatrix4(m);\n };\n /**\n * 通过数组创建矩阵\n * @param array - 数组(列优先)\n * @param [offset=0] - 起始偏移值\n * @returns 矩阵\n */\n Matrix3.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Matrix3().setFromArray(array, offset);\n };\n /**\n * 通过四元数创建矩阵\n * @param quat - 四元数\n * @returns 矩阵\n */\n Matrix3.fromQuaternion = function (quat) {\n return new Matrix3().setFromQuaternion(quat);\n };\n /**\n * 设置矩阵通过行优先数据\n * @param m11 - 第 1 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m21 - 第 2 行,第 1 列\n * @param m22 - 第 2 行,第 2 列\n * @param m23 - 第 2 行,第 3 列\n * @param m31 - 第 3 行,第 1 列\n * @param m32 - 第 3 行,第 2 列\n * @param m33 - 第 3 行,第 3 列\n * @returns 矩阵\n */\n Matrix3.fromRowMajorData = function (m11, m12, m13, m21, m22, m23, m31, m32, m33) {\n return new Matrix3(m11, m21, m31, m12, m22, m32, m13, m23, m33);\n };\n return Matrix3;\n}());\nexport { Matrix3 };\n","import { Vector3 } from './vector3';\n/**\n * 光线类\n */\nexport var Ray = /** @class */ (function () {\n /**\n * 构造函数\n * @param [origin] - 原点,默认是 (0, 0, 0)\n * @param [direction] - 方向,默认是 (1, 0, 0)\n */\n function Ray(origin, direction) {\n if (origin === void 0) { origin = Vector3.ZERO; }\n if (direction === void 0) { direction = Vector3.X; }\n /**\n * 光线的原点\n */\n this.origin = new Vector3();\n /**\n * 光线的方向\n */\n this.direction = new Vector3();\n // 注意这里必须拷贝\n this.origin.copyFrom(origin);\n this.direction.copyFrom(direction).normalize();\n }\n /**\n * 光线设置\n * @param origin - 原点\n * @param direction - 方向\n * @returns\n */\n Ray.prototype.set = function (origin, direction) {\n this.origin.copyFrom(origin);\n this.direction.copyFrom(direction).normalize();\n return this;\n };\n /**\n * 光线克隆\n * @returns 克隆结果\n */\n Ray.prototype.clone = function () {\n return new Ray(this.origin, this.direction);\n };\n /**\n * 光线拷贝\n * @param ray - 要拷贝对象\n * @returns 拷贝结果\n */\n Ray.prototype.copyFrom = function (ray) {\n return this.set(ray.origin, ray.direction);\n };\n /**\n * 根据t计算新的光线原点\n * @param t - 光线的系数 t\n * @returns\n */\n Ray.prototype.recast = function (t) {\n this.origin.copyFrom(this.at(t, Ray.tempVec0));\n return this;\n };\n /**\n * 根据t值计算光线上的点\n * @param t - 光线的系数 t\n * @param [out] - 计算的点\n * @returns\n */\n Ray.prototype.at = function (t, out) {\n var ret = out ? out : new Vector3();\n ret.copyFrom(this.origin);\n return ret.addScaledVector(this.direction, t);\n };\n /**\n * 光线相等判断\n * @param other - 其他对象\n * @returns\n */\n Ray.prototype.equals = function (other) {\n return this.origin.equals(other.origin) && this.direction.equals(other.direction);\n };\n /**\n * 根据矩阵对光线进行变换\n * @param m - 变换矩阵\n * @returns\n */\n Ray.prototype.applyMatrix = function (m) {\n this.origin.applyProjectionMatrix(m);\n this.direction.applyNormalMatrix(m);\n return this;\n };\n /**\n * 光线和包围盒求交\n * @param box - 类包围盒对象\n * @param [out] - 交点\n * @returns\n */\n Ray.prototype.intersectBox = function (box, out) {\n var _a, _b, _c, _d;\n var ox = (_a = this.origin, _a.x), oy = _a.y, oz = _a.z;\n var dx = (_b = this.direction, _b.x), dy = _b.y, dz = _b.z;\n var bxmin = (_c = box.min, _c.x), bymin = _c.y, bzmin = _c.z;\n var bxmax = (_d = box.max, _d.x), bymax = _d.y, bzmax = _d.z;\n var tmin, tmax, tymin, tymax, tzmin, tzmax;\n var invdirx = 1 / dx;\n var invdiry = 1 / dy;\n var invdirz = 1 / dz;\n if (invdirx >= 0) {\n tmin = (bxmin - ox) * invdirx;\n tmax = (bxmax - ox) * invdirx;\n }\n else {\n tmin = (bxmax - ox) * invdirx;\n tmax = (bxmin - ox) * invdirx;\n }\n if (invdiry >= 0) {\n tymin = (bymin - oy) * invdiry;\n tymax = (bymax - oy) * invdiry;\n }\n else {\n tymin = (bymax - oy) * invdiry;\n tymax = (bymin - oy) * invdiry;\n }\n if ((tmin > tymax) || (tymin > tmax)) {\n return;\n }\n if (tymin > tmin || tmin !== tmin) {\n tmin = tymin;\n }\n if (tymax < tmax || tmax !== tmax) {\n tmax = tymax;\n }\n if (tymin > tmin || tmin !== tmin) {\n tmin = tymin;\n }\n if (tymax < tmax || tmax !== tmax) {\n tmax = tymax;\n }\n if (invdirz >= 0) {\n tzmin = (bzmin - oz) * invdirz;\n tzmax = (bzmax - oz) * invdirz;\n }\n else {\n tzmin = (bzmax - oz) * invdirz;\n tzmax = (bzmin - oz) * invdirz;\n }\n if ((tmin > tzmax) || (tzmin > tmax)) {\n return;\n }\n if (tzmin > tmin || tmin !== tmin) {\n tmin = tzmin;\n }\n if (tzmax < tmax || tmax !== tmax) {\n tmax = tzmax;\n }\n if (tmax < 0) {\n return;\n }\n return tmin >= 0 ? this.at(tmin, out) : this.at(tmax, out);\n };\n /**\n * 光线和平面求交\n * @param plane - 类平面对象\n * @param [out] - 交点\n * @returns\n */\n Ray.prototype.intersectPlane = function (plane, out) {\n var normal = plane.normal;\n var distance = plane.distance;\n var denominator = normal.dot(this.direction);\n if (denominator === 0) {\n // line is coplanar, return origin\n var t_1 = normal.dot(this.origin) + distance;\n if (t_1 === 0) {\n var ret = out ? out : new Vector3();\n return ret.copyFrom(this.origin);\n }\n // Null is preferable to undefined since undefined means.... it is undefined\n return;\n }\n var t = -(this.origin.dot(normal) + distance) / denominator;\n // Return if the ray never intersects the plane\n return t >= 0 ? this.at(t, out) : undefined;\n };\n /**\n * 光线和圆求交\n * @param sphere - 类球对象\n * @param [out] - 交点\n * @returns\n */\n Ray.prototype.intersectSphere = function (sphere, out) {\n var center = sphere.center;\n var vector = Ray.tempVec0.subtractVectors(center, this.origin);\n var tca = vector.dot(this.direction);\n var d2 = vector.dot(vector) - tca * tca;\n var radius2 = sphere.radius * sphere.radius;\n if (d2 > radius2) {\n return;\n }\n var thc = Math.sqrt(radius2 - d2);\n // t0 = first intersect point - entrance on front of sphere\n var t0 = tca - thc;\n // t1 = second intersect point - exit point on back of sphere\n var t1 = tca + thc;\n // test to see if t1 is behind the ray - if so, return null\n if (t1 < 0) {\n return;\n }\n // test to see if t0 is behind the ray:\n // if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n // in order to always return an intersect point that is in front of the ray.\n // else t0 is in front of the ray, so return the first collision point scaled by t0\n return t0 >= 0 ? this.at(t0, out) : this.at(t1, out);\n };\n /**\n * 光线和三角形求交\n * @param triangle - 类三角形对象\n * @param [out] - 交点\n * @param [backfaceCulling] - 是否背面剔除\n * @returns\n */\n Ray.prototype.intersectTriangle = function (triangle, out, backfaceCulling) {\n // FIXME: 交换out和backfaceCulling\n // Compute the offset origin, edges, and normal.\n // from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n var a = triangle.p0;\n var b = triangle.p1;\n var c = triangle.p2;\n var edge1 = Ray.tempVec0.subtractVectors(b, a);\n var edge2 = Ray.tempVec1.subtractVectors(c, a);\n var diff = Ray.tempVec2.subtractVectors(this.origin, a);\n var normal = Ray.tempVec3.crossVectors(edge1, edge2);\n // Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n // E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n // |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n // |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n // |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n var DdN = this.direction.dot(normal);\n var sign;\n if (DdN > 0) {\n if (backfaceCulling) {\n return;\n }\n sign = 1;\n }\n else if (DdN < 0) {\n sign = -1;\n DdN = -DdN;\n }\n else {\n return;\n }\n edge2.crossVectors(diff, edge2);\n var DdQxE2 = sign * this.direction.dot(edge2);\n // b1 < 0, no intersection\n if (DdQxE2 < 0) {\n return;\n }\n edge1.cross(diff);\n var DdE1xQ = sign * this.direction.dot(edge1);\n // b2 < 0, no intersection\n if (DdE1xQ < 0) {\n return;\n }\n // b1+b2 > 1, no intersection\n if (DdQxE2 + DdE1xQ > DdN) {\n return;\n }\n // Line intersects triangle, check if ray does.\n var QdN = -sign * diff.dot(normal);\n // t < 0, no intersection\n if (QdN < 0) {\n return;\n }\n // Ray intersects triangle.\n return this.at(QdN / DdN, out);\n };\n Ray.tempVec0 = new Vector3();\n Ray.tempVec1 = new Vector3();\n Ray.tempVec2 = new Vector3();\n Ray.tempVec3 = new Vector3();\n return Ray;\n}());\n","import { Vector4 } from './vector4';\nexport var Color = /** @class */ (function () {\n /**\n * 构造函数,默认值为黑色\n * @param [r=0]\n * @param [g=0]\n * @param [b=0]\n * @param [a=0]\n */\n function Color(r, g, b, a) {\n if (r === void 0) { r = 0; }\n if (g === void 0) { g = 0; }\n if (b === void 0) { b = 0; }\n if (a === void 0) { a = 0; }\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n /**\n * 设置颜色\n * @param r - r 分量\n * @param g - g 分量\n * @param b - b 分量\n * @param a - a 分量\n * @returns\n */\n Color.prototype.set = function (r, g, b, a) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n return this;\n };\n /**\n * 设置零颜色\n * @returns\n */\n Color.prototype.setZero = function () {\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n return this;\n };\n /**\n * 通过标量数值设置颜色\n * @param num - 数值\n * @returns\n */\n Color.prototype.setFromNumber = function (num) {\n this.r = num;\n this.g = num;\n this.b = num;\n this.a = num;\n return this;\n };\n /**\n * 通过Vector4创建颜色\n * @param v - Vector4\n * @returns\n */\n Color.prototype.setFromVector4 = function (v) {\n this.r = v.x;\n this.g = v.y;\n this.b = v.z;\n this.a = v.w;\n return this;\n };\n /**\n * 通过数组创建颜色\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns\n */\n Color.prototype.setFromArray = function (array, offset) {\n var _a, _b, _c, _d;\n if (offset === void 0) { offset = 0; }\n this.r = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.g = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n this.b = (_c = array[offset + 2]) !== null && _c !== void 0 ? _c : 0;\n this.a = (_d = array[offset + 3]) !== null && _d !== void 0 ? _d : 0;\n return this;\n };\n Color.prototype.setFromHSV = function (hue, saturation, value, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var chroma = value * saturation;\n var h = hue / 60;\n var x = chroma * (1 - Math.abs((h % 2) - 1));\n var r = 0;\n var g = 0;\n var b = 0;\n if (h >= 0 && h <= 1) {\n r = chroma;\n g = x;\n }\n else if (h >= 1 && h <= 2) {\n r = x;\n g = chroma;\n }\n else if (h >= 2 && h <= 3) {\n g = chroma;\n b = x;\n }\n else if (h >= 3 && h <= 4) {\n g = x;\n b = chroma;\n }\n else if (h >= 4 && h <= 5) {\n r = x;\n b = chroma;\n }\n else if (h >= 5 && h <= 6) {\n r = chroma;\n b = x;\n }\n var m = value - chroma;\n return this.set(r + m, g + m, b + m, alpha);\n };\n Color.prototype.setFromHexString = function (hex) {\n if (hex.substring(0, 1) !== '#' || (hex.length !== 9 && hex.length !== 7)) {\n return this;\n }\n var r = parseInt(hex.substring(1, 3), 16) / 255.0;\n var g = parseInt(hex.substring(3, 5), 16) / 255.0;\n var b = parseInt(hex.substring(5, 7), 16) / 255.0;\n var a = hex.length === 9 ? parseInt(hex.substring(7, 9), 16) / 255.0 : 1.0;\n return this.set(r, g, b, a);\n };\n /**\n * 拷贝颜色\n * @param v - 复制对象\n * @returns 拷贝结果\n */\n Color.prototype.copyFrom = function (v) {\n this.r = v.r;\n this.g = v.g;\n this.b = v.b;\n this.a = v.a;\n return this;\n };\n /**\n * 克隆颜色\n * @returns 克隆结果\n */\n Color.prototype.clone = function () {\n return new Color(this.r, this.g, this.b, this.a);\n };\n /**\n * 根据下标设置颜色分量\n * @param index - 下标值\n * @param value - 分量值\n * @returns\n */\n Color.prototype.setElement = function (index, value) {\n switch (index) {\n case 0:\n this.r = value;\n break;\n case 1:\n this.g = value;\n break;\n case 2:\n this.b = value;\n break;\n case 3:\n this.a = value;\n break;\n default: console.error('index is out of range: ' + index);\n }\n return this;\n };\n /**\n * 根据下标获取颜色分量\n * @param index - 下标\n * @returns 分量值\n */\n Color.prototype.getElement = function (index) {\n switch (index) {\n case 0: return this.r;\n case 1: return this.g;\n case 2: return this.b;\n case 3: return this.a;\n default: console.error('index is out of range: ' + index);\n }\n return 0;\n };\n /**\n * 颜色相加\n * @param right - 相加对象,颜色 | 数字\n * @returns 相加结果\n */\n Color.prototype.add = function (right) {\n if (typeof right === 'number') {\n this.r += right;\n this.g += right;\n this.b += right;\n this.a += right;\n }\n else if (right instanceof Array) {\n this.r += right[0];\n this.g += right[1];\n this.b += right[2];\n this.a += right[3];\n }\n else {\n this.r += right.r;\n this.g += right.g;\n this.b += right.b;\n this.a += right.a;\n }\n return this;\n };\n /**\n * 颜色相减\n * @param right - 相减对象,颜色 | 数字\n * @returns 相减结果\n */\n Color.prototype.subtract = function (right) {\n if (typeof right === 'number') {\n this.r -= right;\n this.g -= right;\n this.b -= right;\n this.a -= right;\n }\n else if (right instanceof Array) {\n this.r -= right[0];\n this.g -= right[1];\n this.b -= right[2];\n this.a -= right[3];\n }\n else {\n this.r -= right.r;\n this.g -= right.g;\n this.b -= right.b;\n this.a -= right.a;\n }\n return this;\n };\n /**\n * 颜色相乘\n * @param right - 相乘对象,对象 | 数字\n * @returns 颜色\n */\n Color.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n this.r *= right;\n this.g *= right;\n this.b *= right;\n this.a *= right;\n }\n else if (right instanceof Array) {\n this.r *= right[0];\n this.g *= right[1];\n this.b *= right[2];\n this.a *= right[3];\n }\n else {\n this.r *= right.r;\n this.g *= right.g;\n this.b *= right.b;\n this.a *= right.a;\n }\n return this;\n };\n /**\n * 颜色相除\n * @param right - 相除对象,对象 | 数字\n * @returns 颜色\n */\n Color.prototype.divide = function (right) {\n if (typeof right === 'number') {\n this.r /= right;\n this.g /= right;\n this.b /= right;\n this.a /= right;\n }\n else if (right instanceof Array) {\n this.r /= right[0];\n this.g /= right[1];\n this.b /= right[2];\n this.a /= right[3];\n }\n else {\n this.r /= right.r;\n this.g /= right.g;\n this.b /= right.b;\n this.a /= right.a;\n }\n return this;\n };\n /**\n * 颜色缩放\n * @param v - 数字\n * @returns 缩放结果\n */\n Color.prototype.scale = function (v) {\n this.r *= v;\n this.g *= v;\n this.b *= v;\n this.a *= v;\n return this;\n };\n /**\n * 颜色求最小值\n * @param v - 颜色或数值\n * @returns 最小值\n */\n Color.prototype.min = function (v) {\n if (typeof v === 'number') {\n this.r = Math.min(this.r, v);\n this.g = Math.min(this.g, v);\n this.b = Math.min(this.b, v);\n this.a = Math.min(this.a, v);\n }\n else {\n this.r = Math.min(this.r, v.r);\n this.g = Math.min(this.g, v.g);\n this.b = Math.min(this.b, v.b);\n this.a = Math.min(this.a, v.a);\n }\n return this;\n };\n /**\n * 颜色求最大值\n * @param v - 颜色或数值\n * @returns 最大值\n */\n Color.prototype.max = function (v) {\n if (typeof v === 'number') {\n this.r = Math.max(this.r, v);\n this.g = Math.max(this.g, v);\n this.b = Math.max(this.b, v);\n this.a = Math.max(this.a, v);\n }\n else {\n this.r = Math.max(this.r, v.r);\n this.g = Math.max(this.g, v.g);\n this.b = Math.max(this.b, v.b);\n this.a = Math.max(this.a, v.a);\n }\n return this;\n };\n /**\n * 颜色阈值约束\n * @param min - 最小值\n * @param max - 最大值\n * @returns 颜色\n */\n Color.prototype.clamp = function (min, max) {\n return this.max(min).min(max);\n };\n /**\n * 颜色求线性插值\n * @param v - 颜色\n * @param alpha - 插值比例\n * @returns 插值结果\n */\n Color.prototype.lerp = function (v, alpha) {\n this.r += (v.r - this.r) * alpha;\n this.g += (v.g - this.g) * alpha;\n this.b += (v.b - this.b) * alpha;\n this.a += (v.a - this.a) * alpha;\n return this;\n };\n /**\n * 计算颜色亮度值\n * @returns 亮度值\n */\n Color.prototype.luminance = function () {\n return this.r * 0.3 + this.g * 0.59 + this.b * 0.11;\n };\n /**\n * 颜色判等\n * @param v - 颜色\n * @returns 判等结果\n */\n Color.prototype.equals = function (v) {\n return v.r === this.r && v.g === this.g && v.b === this.b && v.a === this.a;\n };\n Color.prototype.toLinear = function () {\n this.r = Color.gammaToLinear(this.r);\n this.g = Color.gammaToLinear(this.g);\n this.b = Color.gammaToLinear(this.b);\n return this;\n };\n Color.prototype.toGamma = function () {\n this.r = Color.linearToGamma(this.r);\n this.g = Color.linearToGamma(this.g);\n this.b = Color.linearToGamma(this.b);\n return this;\n };\n /**\n * 颜色转数组\n * @returns 数组\n */\n Color.prototype.toArray = function () {\n return [this.r, this.g, this.b, this.a];\n };\n Color.prototype.toVector4 = function () {\n return new Vector4(this.r, this.g, this.b, this.a);\n };\n /**\n * RGB 颜色空间转 HSV\n * @param result HSV 值\n */\n Color.prototype.toHSV = function () {\n var _a;\n var r = (_a = this, _a.r), g = _a.g, b = _a.b, a = _a.a;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var v = max;\n var dm = max - min;\n var h = 0;\n var s = 0;\n if (max !== 0) {\n s = dm / max;\n }\n if (max != min) {\n if (max == r) {\n h = (g - b) / dm;\n if (g < b) {\n h += 6;\n }\n }\n else if (max == g) {\n h = (b - r) / dm + 2;\n }\n else if (max == b) {\n h = (r - g) / dm + 4;\n }\n h *= 60;\n }\n return new Color(h, s, v, a);\n };\n Color.prototype.toHexString = function (includeAlpha) {\n if (includeAlpha === void 0) { includeAlpha = true; }\n var R = Color.ToHex(Math.round(this.r * 255));\n var G = Color.ToHex(Math.round(this.g * 255));\n var B = Color.ToHex(Math.round(this.b * 255));\n var A = Color.ToHex(Math.round(this.a * 255));\n if (includeAlpha) {\n return '#' + R + G + B + A;\n }\n else {\n return '#' + R + G + B;\n }\n };\n Color.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n array[offset] = this.r;\n array[offset + 1] = this.g;\n array[offset + 2] = this.b;\n array[offset + 3] = this.a;\n };\n /**\n * 通过标量数值创建颜色\n * @param num - 数值\n * @returns\n */\n Color.fromNumber = function (num) {\n return new Color().setFromNumber(num);\n };\n /**\n * 通过数组创建颜色\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns\n */\n Color.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Color().setFromArray(array, offset);\n };\n /**\n * 通过 hex 字符串创建颜色\n * @param hex - hex 字符串\n * @returns\n */\n Color.fromHexString = function (hex) {\n return new Color().setFromHexString(hex);\n };\n Color.fromHSV = function (hue, saturation, value, alpha) {\n if (alpha === void 0) { alpha = 1; }\n return new Color().setFromHSV(hue, saturation, value, alpha);\n };\n /**\n * 颜色值从 Gamma 空间转到线性空间\n * @param v - Gamma 空间颜色值\n * @returns 线性空间颜色值\n */\n Color.gammaToLinear = function (v) {\n if (v <= 0.0) {\n return 0.0;\n }\n else if (v <= 0.04045) {\n return v / 12.92;\n }\n else if (v < 1.0) {\n return Math.pow((v + 0.055) / 1.055, 2.4);\n }\n else {\n return Math.pow(v, 2.4);\n }\n };\n /**\n * 颜色值从线性空间转到 Gamma 空间\n * @param value - 线性空间颜色值\n * @returns Gamma 空间颜色值\n */\n Color.linearToGamma = function (value) {\n if (value <= 0.0) {\n return 0.0;\n }\n else if (value < 0.0031308) {\n return 12.92 * value;\n }\n else if (value < 1.0) {\n return 1.055 * Math.pow(value, 0.41666) - 0.055;\n }\n else {\n return Math.pow(value, 0.41666);\n }\n };\n Color.ToHex = function (i) {\n var str = i.toString(16);\n if (i <= 15) {\n return ('0' + str).toUpperCase();\n }\n return str.toUpperCase();\n };\n /**\n * 颜色的常量\n */\n Color.BLACK = new Color(0, 0, 0, 1); // 纯黑色\n Color.BLUE = new Color(0, 0, 1, 1); // 纯蓝色\n Color.CLEAR = new Color(0, 0, 0, 0); // 完全透明\n Color.CYAN = new Color(0, 1, 1, 1); // 青色\n Color.GRAY = new Color(0.5, 0.5, 0.5, 1); // 灰色\n Color.GREEN = new Color(0, 1, 0, 1); // 纯绿色\n Color.MAGENTA = new Color(1, 0, 1, 1); // 洋红色\n Color.RED = new Color(1, 0, 0, 1); // 纯红色\n Color.WHITE = new Color(1, 1, 1, 1); // 纯白色\n Color.YELLOW = new Color(1, 0.92, 0.016, 1); // 黄色\n return Color;\n}());\n","import { Vector3 } from './vector3';\n/**\n * 三维包围盒\n */\nvar Box3 = /** @class */ (function () {\n /**\n * 构造函数,传入值为空时表示空包围盒\n * @param [min=new Vector3(Infinity)] - 最小角点\n * @param [max=new Vector3(-Infinity)] - 最大角点\n */\n function Box3(min, max) {\n if (min === void 0) { min = new Vector3(Infinity, Infinity, Infinity); }\n if (max === void 0) { max = new Vector3(-Infinity, -Infinity, -Infinity); }\n this.min = min.clone();\n this.max = max.clone();\n }\n /**\n * 设置三维包围盒的值\n * @param min - 三维包围盒最小点\n * @param max - 三维包围盒最大点\n * @returns\n */\n Box3.prototype.set = function (min, max) {\n this.min.copyFrom(min);\n this.max.copyFrom(max);\n return this;\n };\n /**\n * 通过数组构建三维包围盒\n * @param array - 数组集合(每三个数视为一个三维空间点)\n * @returns 三维包围盒\n */\n Box3.prototype.setFromArray = function (array) {\n var minX = Number(Infinity);\n var minY = Number(Infinity);\n var minZ = Number(Infinity);\n var maxX = -Infinity;\n var maxY = -Infinity;\n var maxZ = -Infinity;\n for (var i = 0, l = array.length; i < l; i += 3) {\n var x = array[i];\n var y = array[i + 1];\n var z = array[i + 2];\n if (x < minX) {\n minX = x;\n }\n if (y < minY) {\n minY = y;\n }\n if (z < minZ) {\n minZ = z;\n }\n if (x > maxX) {\n maxX = x;\n }\n if (y > maxY) {\n maxY = y;\n }\n if (z > maxZ) {\n maxZ = z;\n }\n }\n this.min.set(minX, minY, minZ);\n this.max.set(maxX, maxY, maxZ);\n return this;\n };\n /**\n * 通过三维空间点构建三维包围盒\n * @param points - 三维空间点集合\n * @returns 三维包围盒\n */\n Box3.prototype.setFromPoints = function (points) {\n this.makeEmpty();\n for (var i = 0, il = points.length; i < il; i++) {\n this.expandByPoint(points[i]);\n }\n return this;\n };\n /**\n * 通过三维空间点(包围盒中心)和大小确定包围盒\n * @param center - 三维包围盒中心点\n * @param size - 三维包围盒大小值\n * @returns 三维包围盒\n */\n Box3.prototype.setFromCenterAndSize = function (center, size) {\n var halfSize = size.clone().multiply(0.5);\n this.min.copyFrom(center).subtract(halfSize);\n this.max.copyFrom(center).add(halfSize);\n return this;\n };\n // TODO\n /**\n * 通过实体构建包围盒\n * @param object - 构件实体\n * @returns 三维包围盒\n */\n Box3.prototype.setFromObject = function (object) {\n this.makeEmpty();\n return this.expandByObject(object);\n };\n /**\n * 克隆三维包围盒\n * @returns 克隆结果\n */\n Box3.prototype.clone = function () {\n return new Box3().copyFrom(this);\n };\n /**\n * 复制三维包围盒\n * @param box - 复制对象\n * @returns 复制结果\n */\n Box3.prototype.copyFrom = function (box) {\n this.min.copyFrom(box.min);\n this.max.copyFrom(box.max);\n return this;\n };\n /**\n * 三维包围盒置空\n * @returns 置空结果\n */\n Box3.prototype.makeEmpty = function () {\n this.min.x = this.min.y = this.min.z = Number(Infinity);\n this.max.x = this.max.y = this.max.z = -Infinity;\n return this;\n };\n /**\n * 三维包围盒判空\n * @returns 判空结果\n */\n Box3.prototype.isEmpty = function () {\n // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n return this.max.x < this.min.x\n || this.max.y < this.min.y\n || this.max.z < this.min.z;\n };\n /**\n * 获取三维包围盒中心\n * @param [target=new Vector3()]\n * @returns\n */\n Box3.prototype.getCenter = function (target) {\n if (target === void 0) { target = new Vector3(); }\n return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiply(0.5);\n };\n /**\n * 获取三维包围盒大小\n * @param [target=new Vector3()] - 结果保存对象\n * @returns 三维包围盒大小\n */\n Box3.prototype.getSize = function (target) {\n if (target === void 0) { target = new Vector3(); }\n return this.isEmpty() ? target.set(0, 0, 0) : target.subtractVectors(this.max, this.min);\n };\n /**\n * 通过三维空间点扩展三维包围盒\n * @param point - 三维空间点\n * @returns 扩展结果\n */\n Box3.prototype.expandByPoint = function (point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n };\n /**\n * 通过三维向量扩展三维包围盒\n * @param vector - 三维向量\n * @returns 扩展结果\n */\n Box3.prototype.expandByVector = function (vector) {\n this.min.subtract(vector);\n this.max.add(vector);\n return this;\n };\n /**\n * 通过实数扩展三维包围盒\n * @param scalar - 扩展大小\n * @returns 扩展结果\n */\n Box3.prototype.expandByScalar = function (scalar) {\n this.min.add(-scalar);\n this.max.add(scalar);\n return this;\n };\n /**\n * 通过包围盒扩展三维包围盒\n * @param box\n * @returns\n */\n Box3.prototype.expandByBox = function (box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n };\n // TODO\n /**\n * 通过实体扩展三维包围盒\n * @param object - 构件实体\n * @returns 扩展结果\n */\n Box3.prototype.expandByObject = function (object) {\n // Computes the world-axis-aligned bounding box of an object (including its children),\n // accounting for both the object's, and children's, world transforms\n object.updateWorldMatrix(false, false);\n var geometry = object.geometry;\n if (geometry !== undefined) {\n if (geometry.boundingBox === null) {\n geometry.computeBoundingBox();\n }\n var box3 = new Box3();\n box3.copyFrom(geometry.boundingBox);\n box3.applyMatrix4(object.matrixWorld);\n this.union(box3);\n }\n var children = object.children;\n for (var i = 0, l = children.length; i < l; i++) {\n this.expandByObject(children[i]);\n }\n return this;\n };\n /**\n * 判断三维包围盒相交关系(if this intersect other)\n * @param point - 三维空间点\n * @returns 点包含判断结果\n */\n Box3.prototype.containsPoint = function (point) {\n return !(point.x < this.min.x\n || point.x > this.max.x\n || point.y < this.min.y\n || point.y > this.max.y\n || point.z < this.min.z\n || point.z > this.max.z);\n };\n /**\n * 判断三维包围盒与三维包围盒的包含关系\n * @param other - 三维包围盒\n * @returns 包围盒包含结果(true 表示包含 other, false 表示不包含 other)\n */\n Box3.prototype.containsBox = function (other) {\n return this.min.x <= other.min.x\n && this.max.x >= other.max.x\n && this.min.y <= other.min.y\n && this.max.y >= other.max.y\n && this.min.z <= other.min.z\n && this.max.z >= other.max.z;\n };\n // TODO\n /**\n * 获取点在三维包围盒的比例位置\n * @param point - 三维空间点\n * @param [target=new Vector3()] - 结果保存对象\n * @returns 点在包围盒比例位置\n */\n Box3.prototype.getParameter = function (point, target) {\n if (target === void 0) { target = new Vector3(); }\n // This can potentially have a divide by zero if the box\n // has a size dimension of 0.\n return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y), (point.z - this.min.z) / (this.max.z - this.min.z));\n };\n /**\n * 判断三维包围盒相交关系(if this intersect other)\n * @param other - 三维包围盒\n * @returns 相交判断结果\n */\n Box3.prototype.intersectsBox = function (other) {\n // using 6 splitting planes to rule out intersections.\n return !(other.max.x < this.min.x || other.min.x > this.max.x\n || other.max.y < this.min.y || other.min.y > this.max.y\n || other.max.z < this.min.z || other.min.z > this.max.z);\n };\n /**\n * 判断三维包围盒和球是否相交\n * @param sphere\n * @returns\n */\n Box3.prototype.intersectsSphere = function (sphere) {\n // Find the point on the AABB closest to the sphere center.\n var vector = new Vector3();\n this.clampPoint(sphere.center, vector);\n // If that point is inside the sphere, the AABB and sphere intersect.\n return vector.distanceSquared(sphere.center) <= (sphere.radius * sphere.radius);\n };\n /**\n * 求点与三维包围盒的最近点\n * @param point - 三维空间点\n * @param [target=new Vector3()] - 结果存放对象\n * @returns 计算结果\n */\n Box3.prototype.clampPoint = function (point, target) {\n if (target === void 0) { target = new Vector3(); }\n return target.copyFrom(point).clamp(this.min, this.max);\n };\n /**\n * 三维空间点到三维包围盒的距离\n * @param point - 三维包围盒\n * @returns 距离结果\n */\n Box3.prototype.distanceToPoint = function (point) {\n var clampedPoint = point.clone().clamp(this.min, this.max);\n return clampedPoint.subtract(point).length();\n };\n /**\n * 三维包围盒求交集\n * @param box - 三维包围盒\n * @returns 求交结果\n */\n Box3.prototype.intersect = function (box) {\n this.min.max(box.min);\n this.max.min(box.max);\n // ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n if (this.isEmpty()) {\n this.makeEmpty();\n }\n return this;\n };\n /**\n * 三维包围盒求并集\n * @param box - 三维包围盒\n * @returns 求并结果\n */\n Box3.prototype.union = function (box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n };\n /**\n * 通过三维变换矩阵变化三维包围盒\n * @param matrix - 三维变换矩阵\n * @returns 变换结果\n */\n Box3.prototype.applyMatrix4 = function (matrix, center) {\n if (center === void 0) { center = new Vector3(); }\n // transform of empty box is an empty box.\n if (this.isEmpty()) {\n return this;\n }\n var points = this.getOBBPoints(matrix, center);\n this.setFromPoints(points);\n return this;\n };\n Box3.prototype.getOBBPoints = function (matrix, center) {\n if (center === void 0) { center = new Vector3(); }\n // transform of empty box is an empty box.\n if (this.isEmpty()) {\n return [];\n }\n var points = [];\n // NOTE: I am using a binary pattern to specify all 2^3 combinations below\n points[0] = new Vector3(this.min.x, this.min.y, this.min.z); // 000\n points[1] = new Vector3(this.min.x, this.min.y, this.max.z); // 001\n points[2] = new Vector3(this.min.x, this.max.y, this.min.z); // 010\n points[3] = new Vector3(this.min.x, this.max.y, this.max.z); // 011\n points[4] = new Vector3(this.max.x, this.min.y, this.min.z); // 100\n points[5] = new Vector3(this.max.x, this.min.y, this.max.z); // 101\n points[6] = new Vector3(this.max.x, this.max.y, this.min.z); // 110\n points[7] = new Vector3(this.max.x, this.max.y, this.max.z); // 111\n points.forEach(function (p) {\n p.subtract(center);\n p.applyMatrix(matrix);\n p.add(center);\n });\n return points;\n };\n /**\n * 通过包围盒获取包围球\n * @param target\n * @returns\n */\n Box3.prototype.getBoundingSphere = function (target) {\n this.getCenter(target.center);\n var vector = new Vector3();\n target.radius = this.getSize(vector).length() * 0.5;\n return target;\n };\n /**\n * 三维包围盒位移\n * @param offset - 三维位移向量\n * @returns 位移结果\n */\n Box3.prototype.translate = function (offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n };\n /**\n * 三维包围盒判等\n * @param other - 三维包围盒\n * @returns 判等结果\n */\n Box3.prototype.equals = function (other) {\n return other.min.equals(this.min) && other.max.equals(this.max);\n };\n return Box3;\n}());\nexport { Box3 };\n","import { Box3 } from './box3';\nimport { Vector3 } from './vector3';\n/**\n * 球\n */\nvar Sphere = /** @class */ (function () {\n /**\n * 构造函数\n * @param [center=Vector3.ZERO] - 球心,默认值为(0, 0, 0)\n * @param [radius=-1] - 半径\n */\n function Sphere(center, radius) {\n if (center === void 0) { center = Vector3.ZERO; }\n if (radius === void 0) { radius = -1; }\n this.center = center.clone();\n this.radius = radius;\n }\n /**\n * 通过参数设置球\n * @param center - 球心\n * @param radius - 半径\n * @returns\n */\n Sphere.prototype.set = function (center, radius) {\n this.center.copyFrom(center);\n this.radius = radius;\n return this;\n };\n /**\n * 通过空间点与球心设置球\n * @param points - 三维空间点\n * @param [optionalCenter] - 指定球心\n * @returns\n */\n Sphere.prototype.setFromPoints = function (points, optionalCenter) {\n var center = this.center;\n if (optionalCenter !== undefined) {\n center.copyFrom(optionalCenter);\n var maxRadiusSq = 0;\n for (var i = 0; i < points.length; i++) {\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceSquared(points[i]));\n }\n this.radius = Math.sqrt(maxRadiusSq);\n }\n else {\n var box = new Box3().setFromPoints(points);\n box.getCenter(center);\n this.radius = box.getSize().length() / 2;\n }\n return this;\n };\n /**\n * 复制球\n * @param sphere - 球信息\n * @returns 复制结果\n */\n Sphere.prototype.copyFrom = function (sphere) {\n this.center.copyFrom(sphere.center);\n this.radius = sphere.radius;\n return this;\n };\n /**\n * 球判空\n * @returns 判空结果\n */\n Sphere.prototype.isEmpty = function () {\n return this.radius < 0;\n };\n /**\n * 球置空\n * @returns 置空结果\n */\n Sphere.prototype.makeEmpty = function () {\n this.center.set(0, 0, 0);\n this.radius = -1;\n return this;\n };\n /**\n * 三维空间点包围判断\n * @param point - 三维空间点\n * @returns 空间点包含判断\n */\n Sphere.prototype.containsPoint = function (point) {\n return point.distanceSquared(this.center) <= (this.radius * this.radius);\n };\n /**\n * 空间点与球表面的最短距离\n * @param point - 三维空间点\n * @returns 距离结果\n */\n Sphere.prototype.distanceToPoint = function (point) {\n return (point.distance(this.center) - this.radius);\n };\n /**\n * 与球相交判断\n * @param sphere - 球\n * @returns 相交判断结果\n */\n Sphere.prototype.intersectsSphere = function (sphere) {\n var radiusSum = this.radius + sphere.radius;\n return sphere.center.distanceSquared(this.center) <= (radiusSum * radiusSum);\n };\n /**\n * 与包围盒相交判断\n * @param box - 三维包围盒\n * @returns 相交判断结果\n */\n Sphere.prototype.intersectsBox = function (box) {\n return box.intersectsSphere(this);\n };\n /**\n * 收敛空间点在球范围内\n * 注:乘法的效率要比开方高很多\n * @param point - 三维空间点\n * @param [target] - 结果保存对象\n * @returns 收敛结果\n */\n Sphere.prototype.clampPoint = function (point, target) {\n var deltaLengthSq = this.center.distanceSquared(point);\n if (target === undefined) {\n target = new Vector3();\n }\n target.copyFrom(point);\n if (deltaLengthSq > (this.radius * this.radius)) {\n target.subtract(this.center).normalize();\n target.multiply(this.radius).add(this.center);\n }\n return target;\n };\n /**\n * 根据包围盒获取球\n * @param target - 包围盒\n * @returns 球\n */\n Sphere.prototype.getBoundingBox = function (target) {\n if (target === undefined) {\n target = new Box3();\n }\n if (this.isEmpty()) {\n // Empty sphere produces empty bounding box\n target.makeEmpty();\n return target;\n }\n target.set(this.center, this.center);\n target.expandByScalar(this.radius);\n return target;\n };\n /**\n * 球空间变换\n * @param matrix - 空间变化矩阵\n * @returns 变换结果\n */\n Sphere.prototype.applyMatrix4 = function (matrix) {\n var mt = matrix.elements;\n var scaleXSq = mt[0] * mt[0] + mt[1] * mt[1] + mt[2] * mt[2];\n var scaleYSq = mt[4] * mt[4] + mt[5] * mt[5] + mt[6] * mt[6];\n var scaleZSq = mt[8] * mt[8] + mt[9] * mt[9] + mt[10] * mt[10];\n var maxScale = Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n this.center.applyMatrix(matrix);\n this.radius = this.radius * maxScale;\n return this;\n };\n /**\n * 球位移\n * @param offset - 位移信息\n * @returns 位移结果\n */\n Sphere.prototype.translate = function (offset) {\n this.center.add(offset);\n return this;\n };\n /**\n * 通过三维空间点对球进行扩展\n * @param point - 扩展点\n * @returns 扩展结果\n */\n Sphere.prototype.expandByPoint = function (point) {\n var vector = new Vector3().subtractVectors(point, this.center);\n var lengthSquared = vector.lengthSquared();\n if (lengthSquared > (this.radius * this.radius)) {\n var length_1 = Math.sqrt(lengthSquared);\n var missingRadiusHalf = (length_1 - this.radius) * 0.5;\n // Nudge this sphere towards the target point. Add half the missing distance to radius,\n // and the other half to position. This gives a tighter enclosure, instead of if\n // the whole missing distance were just added to radius.\n this.center.add(vector.multiply(missingRadiusHalf / length_1));\n this.radius += missingRadiusHalf;\n }\n return this;\n };\n /**\n * 包围球求并集\n * @param sphere - 包围球\n * @returns 求并结果\n */\n Sphere.prototype.union = function (sphere) {\n // To enclose another sphere into this sphere, we only need to enclose two points:\n // 1) Enclose the farthest point on the other sphere into this sphere.\n // 2) Enclose the opposite point of the farthest point into this sphere.\n var v1 = new Vector3();\n var toFarthestPoint = new Vector3();\n toFarthestPoint.subtractVectors(sphere.center, this.center).normalize().multiply(sphere.radius);\n this.expandByPoint(v1.copyFrom(sphere.center).add(toFarthestPoint));\n this.expandByPoint(v1.copyFrom(sphere.center).subtract(toFarthestPoint));\n return this;\n };\n /**\n * 包围球求交集\n * @param other - 其它包围球\n * @returns 求交结果\n */\n Sphere.prototype.intersect = function (other) {\n var vector = new Vector3().subtractVectors(this.center, other.center);\n var distance = vector.length();\n var radiusSum = this.radius + other.radius;\n if (distance > radiusSum) {\n return this.makeEmpty();\n }\n this.center = this.center.add(vector.normalize().multiply(distance / 2));\n this.radius = this.radius + other.radius - distance;\n return this;\n };\n /**\n * 包围球判等\n * @param sphere - 包围球\n * @returns 判等结果\n */\n Sphere.prototype.equals = function (sphere) {\n return sphere.center.equals(this.center) && (sphere.radius === this.radius);\n };\n /**\n * 包围球克隆\n * @returns 克隆结果\n */\n Sphere.prototype.clone = function () {\n return new Sphere().copyFrom(this);\n };\n return Sphere;\n}());\nexport { Sphere };\n","/**\n * Earcut.js from: https://github.com/mapbox/earcut/tree/v2.2.2\n */\n\nexport function earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n var minX, minY, maxX, maxY, x, y, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nexport function linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nexport function filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nexport function isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nexport function isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),\n minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),\n maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),\n maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nexport function eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n\n // filter collinear points around the cuts\n filterPoints(outerNode, outerNode.next);\n filterPoints(b, b.next);\n }\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nexport function indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nexport function isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nexport function equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nexport function intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nexport function locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nexport function splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nexport function removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nexport function Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n","/*!\n * Name: @galacean/effects-specification\n * Description: Galacean Effects JSON Specification\n * Author: Ant Group CO., Ltd.\n * Version: v1.0.0\n */\n\n/*********************************************/\n/* 元素属性参数类型 */\n/*********************************************/\n/**\n * 渲染等级\n */\nvar RenderLevel;\n(function (RenderLevel) {\n RenderLevel[\"S\"] = \"S\";\n RenderLevel[\"APlus\"] = \"A+\";\n RenderLevel[\"A\"] = \"A\";\n RenderLevel[\"BPlus\"] = \"B+\";\n RenderLevel[\"B\"] = \"B\";\n})(RenderLevel || (RenderLevel = {}));\n/**\n * 混合模式\n */\nvar BlendingMode;\n(function (BlendingMode) {\n /**\n * 普通混合模式\n */\n BlendingMode[BlendingMode[\"ALPHA\"] = 0] = \"ALPHA\";\n /**\n * 叠加混合模式\n */\n BlendingMode[BlendingMode[\"ADD\"] = 1] = \"ADD\";\n /**\n * 相乘混合模式\n */\n BlendingMode[BlendingMode[\"MULTIPLY\"] = 2] = \"MULTIPLY\";\n /**\n * 亮度混合模式\n */\n BlendingMode[BlendingMode[\"BRIGHTNESS\"] = 3] = \"BRIGHTNESS\";\n /**\n * 减色混合模式\n */\n BlendingMode[BlendingMode[\"SUBTRACTION\"] = 4] = \"SUBTRACTION\";\n /**\n * 强光混合模式\n */\n BlendingMode[BlendingMode[\"STRONG_LIGHT\"] = 5] = \"STRONG_LIGHT\";\n /**\n * 弱光混合模式\n */\n BlendingMode[BlendingMode[\"WEAK_LIGHT\"] = 6] = \"WEAK_LIGHT\";\n /**\n * 亮度叠加混合模式\n */\n BlendingMode[BlendingMode[\"SUPERPOSITION\"] = 7] = \"SUPERPOSITION\";\n})(BlendingMode || (BlendingMode = {}));\n/**\n * 单双面模式\n */\nvar SideMode;\n(function (SideMode) {\n /**\n * 双面模式\n */\n SideMode[SideMode[\"DOUBLE\"] = 1032] = \"DOUBLE\";\n /**\n * 正面模式\n */\n SideMode[SideMode[\"FRONT\"] = 1028] = \"FRONT\";\n /**\n * 背面模式\n */\n SideMode[SideMode[\"BACK\"] = 1029] = \"BACK\";\n})(SideMode || (SideMode = {}));\n/**\n * 蒙版模式\n */\nvar MaskMode;\n(function (MaskMode) {\n /**\n * 无蒙版\n */\n MaskMode[MaskMode[\"NONE\"] = 0] = \"NONE\";\n /**\n * 蒙版\n */\n MaskMode[MaskMode[\"MASK\"] = 1] = \"MASK\";\n /**\n * 被遮挡\n */\n MaskMode[MaskMode[\"OBSCURED\"] = 2] = \"OBSCURED\";\n /**\n * 被反向遮挡\n */\n MaskMode[MaskMode[\"REVERSE_OBSCURED\"] = 3] = \"REVERSE_OBSCURED\";\n})(MaskMode || (MaskMode = {}));\n/**\n * 发射器形状\n */\nvar ShapeType;\n(function (ShapeType) {\n /**\n * 没有类型\n */\n ShapeType[ShapeType[\"NONE\"] = 0] = \"NONE\";\n /**\n * 圆球\n */\n ShapeType[ShapeType[\"SPHERE\"] = 1] = \"SPHERE\";\n /**\n * 圆锥\n */\n ShapeType[ShapeType[\"CONE\"] = 2] = \"CONE\";\n /**\n * 半球\n */\n ShapeType[ShapeType[\"HEMISPHERE\"] = 3] = \"HEMISPHERE\";\n /**\n * 圆\n */\n ShapeType[ShapeType[\"CIRCLE\"] = 4] = \"CIRCLE\";\n /**\n * 圆环\n */\n ShapeType[ShapeType[\"DONUT\"] = 5] = \"DONUT\";\n /**\n * 矩形\n */\n ShapeType[ShapeType[\"RECTANGLE\"] = 6] = \"RECTANGLE\";\n /**\n * 矩形框\n */\n ShapeType[ShapeType[\"RECTANGLE_EDGE\"] = 7] = \"RECTANGLE_EDGE\";\n /**\n * 直线\n */\n ShapeType[ShapeType[\"EDGE\"] = 8] = \"EDGE\";\n /**\n * 贴图\n */\n ShapeType[ShapeType[\"TEXTURE\"] = 9] = \"TEXTURE\";\n})(ShapeType || (ShapeType = {}));\n/**\n * 插件类型\n */\nvar PluginType;\n(function (PluginType) {\n /**\n * 陀螺仪\n */\n PluginType[PluginType[\"GYROSCOPE\"] = 0] = \"GYROSCOPE\";\n /**\n * Spine\n */\n PluginType[PluginType[\"SPINE\"] = 1] = \"SPINE\";\n})(PluginType || (PluginType = {}));\n/**\n * 交互类型\n */\nvar InteractType;\n(function (InteractType) {\n /**\n * 点击\n */\n InteractType[InteractType[\"CLICK\"] = 0] = \"CLICK\";\n /**\n * 消息\n * 前端收到 onMessageItem 回调\n */\n InteractType[InteractType[\"MESSAGE\"] = 1] = \"MESSAGE\";\n /**\n * 拖拽\n */\n InteractType[InteractType[\"DRAG\"] = 2] = \"DRAG\";\n})(InteractType || (InteractType = {}));\n/**\n * 交互行为\n */\nvar InteractBehavior;\n(function (InteractBehavior) {\n /**\n * 无\n */\n InteractBehavior[InteractBehavior[\"NONE\"] = 0] = \"NONE\";\n /**\n * 通知\n */\n InteractBehavior[InteractBehavior[\"NOTIFY\"] = 1] = \"NOTIFY\";\n /**\n * 重置播放器\n */\n InteractBehavior[InteractBehavior[\"RESUME_PLAYER\"] = 2] = \"RESUME_PLAYER\";\n /**\n * 清除元素\n */\n InteractBehavior[InteractBehavior[\"REMOVE\"] = 3] = \"REMOVE\";\n /**\n * 暂停播放器\n */\n InteractBehavior[InteractBehavior[\"PAUSE\"] = 4] = \"PAUSE\";\n})(InteractBehavior || (InteractBehavior = {}));\n/**\n * 元素类型\n */\nvar ItemType;\n(function (ItemType) {\n /**\n * 错误元素\n */\n ItemType[\"base\"] = \"0\";\n /**\n * 图层元素\n */\n ItemType[\"sprite\"] = \"1\";\n /**\n * 粒子元素\n */\n ItemType[\"particle\"] = \"2\";\n /**\n * 空节点元素\n */\n ItemType[\"null\"] = \"3\";\n /**\n * 交互元素\n */\n ItemType[\"interact\"] = \"4\";\n /**\n * 插件元素\n */\n ItemType[\"plugin\"] = \"5\";\n /**\n * 相机元素\n */\n ItemType[\"camera\"] = \"6\";\n /**\n * 预合成元素\n */\n ItemType[\"composition\"] = \"7\";\n /**\n * 滤镜图层\n */\n ItemType[\"filter\"] = \"8\";\n /**\n * Spine 元素\n */\n ItemType[\"spine\"] = \"spine\";\n /**\n * Mesh 元素\n */\n ItemType[\"mesh\"] = \"mesh\";\n /**\n * 节点树元素\n */\n ItemType[\"tree\"] = \"tree\";\n /**\n * 文本元素\n */\n ItemType[\"text\"] = \"text\";\n /**\n * 灯光元素\n */\n ItemType[\"light\"] = \"light\";\n /**\n * 天空盒元素\n */\n ItemType[\"skybox\"] = \"skybox\";\n})(ItemType || (ItemType = {}));\n/**\n * 渲染模式\n */\nvar RenderMode;\n(function (RenderMode) {\n /**\n * 广告牌模式\n */\n RenderMode[RenderMode[\"BILLBOARD\"] = 0] = \"BILLBOARD\";\n /**\n * 网格模式\n */\n RenderMode[RenderMode[\"MESH\"] = 1] = \"MESH\";\n /**\n * 垂直广告牌模式\n */\n RenderMode[RenderMode[\"VERTICAL_BILLBOARD\"] = 2] = \"VERTICAL_BILLBOARD\";\n /**\n * 水平广告牌模式\n */\n RenderMode[RenderMode[\"HORIZONTAL_BILLBOARD\"] = 3] = \"HORIZONTAL_BILLBOARD\";\n})(RenderMode || (RenderMode = {}));\n/**\n * 变换中心\n */\nvar ParticleOrigin;\n(function (ParticleOrigin) {\n /**\n * 水平和垂直中点\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER\"] = 0] = \"PARTICLE_ORIGIN_CENTER\";\n /**\n * 水平左侧 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_TOP\"] = 1] = \"PARTICLE_ORIGIN_LEFT_TOP\";\n /**\n * 水平左侧 垂直中间\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_CENTER\"] = 2] = \"PARTICLE_ORIGIN_LEFT_CENTER\";\n /**\n * 水平左侧 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_BOTTOM\"] = 3] = \"PARTICLE_ORIGIN_LEFT_BOTTOM\";\n /**\n * 水平中间 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER_TOP\"] = 4] = \"PARTICLE_ORIGIN_CENTER_TOP\";\n /**\n * 水平中间 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER_BOTTOM\"] = 5] = \"PARTICLE_ORIGIN_CENTER_BOTTOM\";\n /**\n * 水平右侧 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_TOP\"] = 6] = \"PARTICLE_ORIGIN_RIGHT_TOP\";\n /**\n * 水平右侧 垂直中间\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_CENTER\"] = 7] = \"PARTICLE_ORIGIN_RIGHT_CENTER\";\n /**\n * 水平右侧 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_BOTTOM\"] = 8] = \"PARTICLE_ORIGIN_RIGHT_BOTTOM\";\n})(ParticleOrigin || (ParticleOrigin = {}));\n\nvar END_BEHAVIOR_DESTROY = 0;\nvar END_BEHAVIOR_PAUSE = 1;\nvar END_BEHAVIOR_FORWARD = 2;\nvar END_BEHAVIOR_PAUSE_AND_DESTROY = 3;\nvar END_BEHAVIOR_FREEZE = 4;\nvar END_BEHAVIOR_RESTART = 5;\nvar END_BEHAVIOR_DESTROY_CHILDREN = 6;\nvar CAMERA_CLIP_MODE_VERTICAL = 1;\nvar CAMERA_CLIP_MODE_NORMAL = 0;\n\nvar CameraClipMode;\n(function (CameraClipMode) {\n /**\n * 剪裁上下\n */\n CameraClipMode[CameraClipMode[\"portrait\"] = CAMERA_CLIP_MODE_VERTICAL] = \"portrait\";\n /**\n * 剪裁左右\n */\n CameraClipMode[CameraClipMode[\"landscape\"] = CAMERA_CLIP_MODE_NORMAL] = \"landscape\";\n})(CameraClipMode || (CameraClipMode = {}));\n/**\n * 结束行为\n */\nvar CompositionEndBehavior;\n(function (CompositionEndBehavior) {\n /**\n * 销毁\n */\n CompositionEndBehavior[CompositionEndBehavior[\"destroy\"] = END_BEHAVIOR_DESTROY] = \"destroy\";\n /**\n * 暂停\n */\n CompositionEndBehavior[CompositionEndBehavior[\"pause\"] = END_BEHAVIOR_PAUSE] = \"pause\";\n /**\n * 重播\n */\n CompositionEndBehavior[CompositionEndBehavior[\"restart\"] = END_BEHAVIOR_RESTART] = \"restart\";\n /**\n * 无限播放\n */\n CompositionEndBehavior[CompositionEndBehavior[\"forward\"] = END_BEHAVIOR_FORWARD] = \"forward\";\n /**\n * 销毁并保留最后一帧\n */\n CompositionEndBehavior[CompositionEndBehavior[\"pause_destroy\"] = END_BEHAVIOR_PAUSE_AND_DESTROY] = \"pause_destroy\";\n})(CompositionEndBehavior || (CompositionEndBehavior = {}));\n\n/*********************************************/\n/* 基本数值属性参数 */\n/*********************************************/\nvar ValueType;\n(function (ValueType) {\n /**\n * 常数\n */\n ValueType[ValueType[\"CONSTANT\"] = 0] = \"CONSTANT\";\n /**\n * 二维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC2\"] = 1] = \"CONSTANT_VEC2\";\n /**\n * 三维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC3\"] = 2] = \"CONSTANT_VEC3\";\n /**\n * 四维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC4\"] = 3] = \"CONSTANT_VEC4\";\n /**\n * 随机数\n */\n ValueType[ValueType[\"RANDOM\"] = 4] = \"RANDOM\";\n /**\n * 直线\n */\n ValueType[ValueType[\"LINE\"] = 5] = \"LINE\";\n /**\n * 曲线\n */\n ValueType[ValueType[\"CURVE\"] = 6] = \"CURVE\";\n /**\n * 贝塞尔路径\n */\n ValueType[ValueType[\"BEZIER_PATH\"] = 7] = \"BEZIER_PATH\";\n /**\n * 颜色\n */\n ValueType[ValueType[\"RGBA_COLOR\"] = 8] = \"RGBA_COLOR\";\n /**\n * 渐变色\n */\n ValueType[ValueType[\"GRADIENT_COLOR\"] = 9] = \"GRADIENT_COLOR\";\n /**\n * 蒙版形状点集\n */\n ValueType[ValueType[\"SHAPE_POINTS\"] = 10] = \"SHAPE_POINTS\";\n /**\n * 蒙版形状切分\n */\n ValueType[ValueType[\"SHAPE_SPLITS\"] = 11] = \"SHAPE_SPLITS\";\n /**\n *直线路径\n */\n ValueType[ValueType[\"LINEAR_PATH\"] = 12] = \"LINEAR_PATH\";\n /**\n * 多色\n */\n ValueType[ValueType[\"COLORS\"] = 13] = \"COLORS\";\n /**\n * 二进制指针\n */\n ValueType[ValueType[\"BINARY\"] = 20] = \"BINARY\";\n /**\n * 贝塞尔曲线\n */\n ValueType[ValueType[\"BEZIER_CURVE\"] = 21] = \"BEZIER_CURVE\";\n /**\n * 贝塞尔曲线路径\n */\n ValueType[ValueType[\"BEZIER_CURVE_PATH\"] = 22] = \"BEZIER_CURVE_PATH\";\n})(ValueType || (ValueType = {}));\n/**\n * 关键帧类型\n */\nvar BezierKeyframeType;\n(function (BezierKeyframeType) {\n BezierKeyframeType[BezierKeyframeType[\"AUTO\"] = 0] = \"AUTO\";\n BezierKeyframeType[BezierKeyframeType[\"EASE\"] = 1] = \"EASE\";\n BezierKeyframeType[BezierKeyframeType[\"EASE_IN\"] = 2] = \"EASE_IN\";\n BezierKeyframeType[BezierKeyframeType[\"EASE_OUT\"] = 3] = \"EASE_OUT\";\n BezierKeyframeType[BezierKeyframeType[\"LINE\"] = 4] = \"LINE\";\n BezierKeyframeType[BezierKeyframeType[\"HOLD\"] = 5] = \"HOLD\";\n BezierKeyframeType[BezierKeyframeType[\"LINE_OUT\"] = 6] = \"LINE_OUT\";\n})(BezierKeyframeType || (BezierKeyframeType = {}));\n\nvar ItemEndBehavior;\n(function (ItemEndBehavior) {\n ItemEndBehavior[ItemEndBehavior[\"destroy\"] = END_BEHAVIOR_DESTROY] = \"destroy\";\n ItemEndBehavior[ItemEndBehavior[\"loop\"] = END_BEHAVIOR_RESTART] = \"loop\";\n ItemEndBehavior[ItemEndBehavior[\"freeze\"] = END_BEHAVIOR_FREEZE] = \"freeze\";\n})(ItemEndBehavior || (ItemEndBehavior = {}));\nvar ParentItemEndBehavior;\n(function (ParentItemEndBehavior) {\n ParentItemEndBehavior[ParentItemEndBehavior[\"destroyChildren\"] = END_BEHAVIOR_DESTROY_CHILDREN] = \"destroyChildren\";\n})(ParentItemEndBehavior || (ParentItemEndBehavior = {}));\n\n/**\n * 粒子交互行为\n */\nvar ParticleInteractionBehavior;\n(function (ParticleInteractionBehavior) {\n /**\n * 无\n */\n ParticleInteractionBehavior[ParticleInteractionBehavior[\"none\"] = 0] = \"none\";\n /**\n * 移出粒子\n */\n ParticleInteractionBehavior[ParticleInteractionBehavior[\"removeParticle\"] = 1] = \"removeParticle\";\n})(ParticleInteractionBehavior || (ParticleInteractionBehavior = {}));\n\nvar ShapeArcMode;\n(function (ShapeArcMode) {\n /**\n * 随机\n */\n ShapeArcMode[ShapeArcMode[\"RANDOM\"] = 0] = \"RANDOM\";\n /**\n * 单向循环\n */\n ShapeArcMode[ShapeArcMode[\"UNIDIRECTIONAL_CYCLE\"] = 1] = \"UNIDIRECTIONAL_CYCLE\";\n /**\n * 双向循环\n */\n ShapeArcMode[ShapeArcMode[\"BIDIRECTIONAL_CYCLE\"] = 2] = \"BIDIRECTIONAL_CYCLE\";\n /**\n * 均匀爆发\n */\n ShapeArcMode[ShapeArcMode[\"UNIFORM_BURST\"] = 3] = \"UNIFORM_BURST\";\n})(ShapeArcMode || (ShapeArcMode = {}));\n\nvar ModelBoundingType;\n(function (ModelBoundingType) {\n ModelBoundingType[ModelBoundingType[\"box\"] = 2] = \"box\";\n ModelBoundingType[ModelBoundingType[\"sphere\"] = 3] = \"sphere\";\n})(ModelBoundingType || (ModelBoundingType = {}));\n\n// 材质类型\nvar MaterialType;\n(function (MaterialType) {\n MaterialType[\"unlit\"] = \"unlit\";\n MaterialType[\"pbr\"] = \"pbr\";\n // 头发材质,在 pbr 材质基础上扩展\n MaterialType[\"hair\"] = \"hair\";\n})(MaterialType || (MaterialType = {}));\n// 混合模式\nvar MaterialBlending;\n(function (MaterialBlending) {\n MaterialBlending[MaterialBlending[\"opaque\"] = 100] = \"opaque\";\n MaterialBlending[MaterialBlending[\"masked\"] = 101] = \"masked\";\n MaterialBlending[MaterialBlending[\"translucent\"] = 102] = \"translucent\";\n MaterialBlending[MaterialBlending[\"additive\"] = 103] = \"additive\";\n})(MaterialBlending || (MaterialBlending = {}));\n\n/**\n * 3D渲染模式:将渲染过程中的中间结果输出,主要用于排查渲染效果问题,支持 pbr 和 unlit 材质\n */\nvar RenderMode3D;\n(function (RenderMode3D) {\n /**\n * 正常渲染\n */\n RenderMode3D[\"none\"] = \"none\";\n /**\n * 纹理坐标\n */\n RenderMode3D[\"uv\"] = \"uv\";\n /**\n * 世界坐标法线\n */\n RenderMode3D[\"normal\"] = \"normal\";\n /**\n * 基础颜色\n */\n RenderMode3D[\"basecolor\"] = \"basecolor\";\n /**\n * 基础颜色 Alpha\n */\n RenderMode3D[\"alpha\"] = \"alpha\";\n /**\n * 金属度\n */\n RenderMode3D[\"metallic\"] = \"metallic\";\n /**\n * 粗超度\n */\n RenderMode3D[\"roughness\"] = \"roughness\";\n /**\n * 环境遮蔽\n */\n RenderMode3D[\"ao\"] = \"ao\";\n /**\n * 自发光\n */\n RenderMode3D[\"emissive\"] = \"emissive\";\n})(RenderMode3D || (RenderMode3D = {}));\n\nvar TextOverflow;\n(function (TextOverflow) {\n /**\n * display 模式下,会显示所有文本,存在文本超过边界框的情况。\n */\n TextOverflow[TextOverflow[\"display\"] = 0] = \"display\";\n /**\n * clip 模式下,当文本内容超出边界框时,多余的会被截断。\n */\n TextOverflow[TextOverflow[\"clip\"] = 1] = \"clip\";\n /**\n * ellipsis 模式下,会使用(...)来代替超出边界框的内容。\n */\n TextOverflow[TextOverflow[\"ellipsis\"] = 2] = \"ellipsis\";\n})(TextOverflow || (TextOverflow = {}));\nvar TextBaseline;\n(function (TextBaseline) {\n /**\n * 文本顶对齐。\n */\n TextBaseline[TextBaseline[\"top\"] = 0] = \"top\";\n /**\n * 文本垂直居中对齐。\n */\n TextBaseline[TextBaseline[\"middle\"] = 1] = \"middle\";\n /**\n * 文本底对齐。\n */\n TextBaseline[TextBaseline[\"bottom\"] = 2] = \"bottom\";\n})(TextBaseline || (TextBaseline = {}));\nvar TextAlignment;\n(function (TextAlignment) {\n /**\n * text alignment starts from(x,y) to right direction\n * 从(x,y)开始第一个字符,向右边延伸\n */\n TextAlignment[TextAlignment[\"left\"] = 0] = \"left\";\n /**\n * (x,y) is middle position of text, where (left + right)/2 =(x,y)\n * (x,y) 为文字中间位置,(最左位置 + 最右位置)/2 = (x,y)\n */\n TextAlignment[TextAlignment[\"middle\"] = 1] = \"middle\";\n /**\n * text alignment ends with(x,y) from left direction\n * 从(x,y)结束最后一个字符,向左边延伸\n */\n TextAlignment[TextAlignment[\"right\"] = 2] = \"right\";\n})(TextAlignment || (TextAlignment = {}));\n/**\n * 文本字重\n */\nvar TextWeight;\n(function (TextWeight) {\n /**\n * 正常\n */\n TextWeight[\"normal\"] = \"normal\";\n /**\n * 粗体\n */\n TextWeight[\"bold\"] = \"bold\";\n /**\n * 瘦体\n */\n TextWeight[\"lighter\"] = \"lighter\";\n})(TextWeight || (TextWeight = {}));\n/**\n * 文本样式\n */\nvar FontStyle;\n(function (FontStyle) {\n /**\n * 正常\n */\n FontStyle[\"normal\"] = \"normal\";\n /**\n * 斜体\n */\n FontStyle[\"italic\"] = \"italic\";\n /**\n * 倾斜体\n */\n FontStyle[\"oblique\"] = \"oblique\";\n})(FontStyle || (FontStyle = {}));\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction arrAdd(arr, item) {\n if (!arr.includes(item)) {\n arr.push(item);\n return true;\n }\n}\n/**\n * @deprecated 请直接使用 Array.prototype.forEach 或 for...of\n * @param object\n * @param callback\n * @returns the mutated input object\n */\nfunction forEach(object, callback, thisObj) {\n if (object) {\n for (var name_1 in object) {\n if (Object.hasOwnProperty.call(object, name_1)) {\n callback.call(thisObj, object[name_1], name_1);\n }\n }\n }\n return object;\n}\nfunction ensureFixedNumber(a) {\n if (Number.isFinite(a)) {\n return [ValueType.CONSTANT, a];\n }\n if (a) {\n if (a[0] === 'lines') {\n return [ValueType.LINE, a[1]];\n }\n if (a[0] === 'curve') {\n return [ValueType.CURVE, a[1]];\n }\n if (a[0] === 'static') {\n return [ValueType.CONSTANT, a[1]];\n }\n }\n}\nfunction ensureFixedNumberWithRandom(a, p) {\n if (Array.isArray(a) && a[0] === 'random') {\n return [ValueType.CONSTANT, a[1][p]];\n }\n return ensureFixedNumber(a);\n}\nfunction ensureRGBAValue(a) {\n if (a && a[0] === 'color') {\n return colorToArr(a[1], true);\n }\n return [1, 1, 1, 1];\n}\nfunction ensureColorExpression(a, normalized) {\n if (a) {\n if (a[0] === 'colors') {\n return [ValueType.COLORS, a[1].map(function (color) { return colorToArr(color, normalized); })];\n }\n else if (a[0] === 'gradient') {\n return ensureGradient(a[1], normalized);\n }\n else if (a[0] === 'color') {\n return [ValueType.RGBA_COLOR, colorToArr(a[1], normalized)];\n }\n }\n}\nfunction ensureNumberExpression(a) {\n if (a && a[0] === 'random') {\n return [ValueType.RANDOM, a[1]];\n }\n return ensureFixedNumber(a);\n}\nfunction ensureValueGetter(a) {\n if (Array.isArray(a) && typeof a[0] === 'string') {\n return ensureNumberExpression(a) || ensureFixedVec3(a) || ensureColorExpression(a) || a;\n }\n return a;\n}\nfunction ensureGradient(a, normalized) {\n if (a) {\n var stops_1 = [];\n Object.getOwnPropertyNames(a).forEach(function (p) {\n var stop = parsePercent(p);\n var color = colorToArr(a[p], normalized);\n stops_1.push([stop, color[0], color[1], color[2], color[3]]);\n });\n stops_1 = stops_1.sort(function (a, b) { return a[0] - b[0]; });\n return [ValueType.GRADIENT_COLOR, stops_1];\n }\n}\nfunction colorToArr(hex, normalized) {\n var ret;\n if (typeof hex === 'string') {\n hex = hex.replace(/[\\s\\t\\r\\n]/g, '');\n var m = /rgba?\\(([.\\d]+),([.\\d]+),([.\\d]+),?([.\\d]+)?\\)/.exec(hex);\n if (m) {\n var a = +m[4];\n ret = [+m[1], +m[2], +m[3], isNaN(a) ? 255 : Math.round(a * 255)];\n }\n else if (/^#[a-f\\d]{3}$/i.test(hex)) {\n ret = [parseInt(hex[1] + hex[1], 16), parseInt(hex[2] + hex[2], 16), parseInt(hex[3] + hex[3], 16), 255];\n // eslint-disable-next-line no-cond-assign\n }\n else if (m = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)) {\n ret = [parseInt(m[1], 16), parseInt(m[2], 16), parseInt(m[3], 16), 255] || [0, 0, 0, 255];\n }\n }\n else if (hex instanceof Array) {\n ret = [hex[0], hex[1], hex[2], isNaN(hex[3]) ? 255 : Math.round(hex[3] * 255)];\n }\n if (normalized) {\n // @ts-expect-error\n ret = normalizeColor(ret);\n }\n // @ts-expect-error\n return ret;\n}\nfunction normalizeColor(a) {\n if (Array.isArray(a)) {\n return a.map(function (i) { return Number.isFinite(i / 255) ? Number((i / 255).toFixed(6)) : 0; });\n }\n}\nfunction parsePercent(c) {\n var match = /^(-)?([\\d+.]+)%$/.exec(c);\n if (match) {\n return +match[2] / 100 * (match[1] ? -1 : 1);\n }\n return +c;\n}\nfunction getGradientColor(color, normalized) {\n if (Array.isArray(color)) {\n // @ts-expect-error\n return (color[0] === 'gradient' || color[0] === 'color') && ensureGradient(color[1], normalized);\n }\n else {\n return ensureGradient(color, normalized);\n }\n}\nfunction ensureFixedVec3(a) {\n if (a) {\n if (a.length === 3) {\n return [ValueType.CONSTANT_VEC3, a];\n }\n if (a[0] === 'path') {\n return [ValueType.LINEAR_PATH, a[1]];\n }\n if (a[0] === 'bezier') {\n return [ValueType.BEZIER_PATH, a[1]];\n }\n }\n}\nfunction objectValueToNumber(o) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.entries(o)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n o[key] = Number(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return o;\n}\nfunction deleteEmptyValue(o) {\n var e_2, _a;\n try {\n for (var _b = __values(Object.keys(o)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (o[key] === undefined) {\n delete o[key];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return o;\n}\nvar cos = Math.cos;\nvar sin = Math.sin;\nvar d2r = Math.PI / 180;\nvar r2d = 180 / Math.PI;\nfunction quatFromXYZRotation(out, x, y, z) {\n var c1 = cos((x * d2r) / 2);\n var c2 = cos((y * d2r) / 2);\n var c3 = cos((z * d2r) / 2);\n var s1 = sin((x * d2r) / 2);\n var s2 = sin((y * d2r) / 2);\n var s3 = sin((z * d2r) / 2);\n out[0] = s1 * c2 * c3 + c1 * s2 * s3;\n out[1] = c1 * s2 * c3 - s1 * c2 * s3;\n out[2] = c1 * c2 * s3 + s1 * s2 * c3;\n out[3] = c1 * c2 * c3 - s1 * s2 * s3;\n return out;\n}\nfunction clamp(v, min, max) {\n return v > max ? max : (v < min ? min : v);\n}\nfunction rotationZYXFromQuat(out, quat) {\n var x = quat[0];\n var y = quat[1];\n var z = quat[2];\n var w = quat[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var m11 = 1 - yy - zz, m12 = yx - wz;\n var m21 = yx + wz, m22 = 1 - xx - zz;\n var m31 = zx - wy, m32 = zy + wx, m33 = 1 - xx - yy;\n out[1] = Math.asin(clamp(-m31, -1, 1)) * r2d;\n if (Math.abs(m31) < 0.9999999) {\n out[0] = Math.atan2(m32, m33) * r2d;\n out[2] = Math.atan2(m21, m11) * r2d;\n }\n else {\n out[0] = 0;\n out[2] = Math.atan2(-m12, m22) * r2d;\n }\n return out;\n}\n\nfunction getStandardParticleContent(particle) {\n var _a;\n var options = particle.options;\n var transform = particle.transform;\n var shape = {\n type: ShapeType.NONE,\n };\n if (particle.shape) {\n var shapeType = (_a = particle.shape.shape) === null || _a === void 0 ? void 0 : _a.replace(/([A-Z])/g, '_$1').toUpperCase().replace(/^_/, '');\n shape = __assign(__assign({}, particle.shape), { type: ShapeType[shapeType] });\n if (particle.shape.upDirection) {\n var _b = __read(particle.shape.upDirection, 3), x = _b[0], y = _b[1], z = _b[2];\n if (x === 0 && y === 0 && z === 0) {\n delete shape.upDirection;\n }\n }\n }\n if (options.startTurbulence) {\n shape.turbulenceX = ensureNumberExpression(options.turbulenceX);\n shape.turbulenceY = ensureNumberExpression(options.turbulenceY);\n shape.turbulenceZ = ensureNumberExpression(options.turbulenceZ);\n }\n var emission = particle.emission;\n if (emission.bursts && emission.bursts.length > 0) {\n emission.bursts = emission.bursts.map(function (b) { return objectValueToNumber(b); });\n }\n if (emission.burstOffsets && emission.burstOffsets.length > 0) {\n emission.burstOffsets = emission.burstOffsets.map(function (b) { return objectValueToNumber(b); });\n }\n if (emission.rateOverTime) {\n emission.rateOverTime = ensureNumberExpression(emission.rateOverTime);\n }\n var ret = {\n renderer: particle.renderer,\n shape: shape,\n splits: particle.splits,\n emission: emission,\n options: {\n startLifetime: ensureNumberExpression(options.startLifetime),\n start3DSize: !!options.start3DSize,\n startSize: ensureNumberExpression(options.startSize),\n startSizeX: ensureNumberExpression(options.startSizeX),\n startSizeY: ensureNumberExpression(options.startSizeY),\n sizeAspect: ensureNumberExpression(options.sizeAspect),\n maxCount: options.maxCount,\n startDelay: ensureNumberExpression(options.startDelay),\n startColor: ensureColorExpression(options.startColor, true),\n startRotationZ: ensureNumberExpression(options.startRotation || options.startRotationZ),\n particleFollowParent: options.particleFollowParent,\n },\n };\n if (options.start3DRotation) {\n ret.options.startRotationX = ensureNumberExpression(options.startRotationX);\n ret.options.startRotationY = ensureNumberExpression(options.startRotationY);\n }\n if (particle.filter) {\n var filter_1 = {};\n forEach(particle.filter, function (val, key) {\n // @ts-expect-error\n filter_1[key] = ensureValueGetter(val);\n });\n ret.filter = filter_1;\n }\n if (transform && transform.path) {\n ret.emitterTransform = {\n path: ensureFixedVec3(transform.path),\n };\n }\n var sizeOverLifetime = particle.sizeOverLifetime;\n if (sizeOverLifetime) {\n if (sizeOverLifetime.separateAxes) {\n ret.sizeOverLifetime = {\n separateAxes: true,\n x: ensureNumberExpression(sizeOverLifetime.x),\n y: ensureNumberExpression(sizeOverLifetime.y),\n };\n }\n else {\n ret.sizeOverLifetime = {\n size: ensureNumberExpression(sizeOverLifetime.size),\n };\n }\n }\n var velocityOverLifetime = particle.velocityOverLifetime || {};\n var sol = velocityOverLifetime.speedOverLifetime;\n if (sol) {\n sol = ensureFixedNumber(sol);\n }\n else {\n sol = undefined;\n }\n ret.positionOverLifetime = {\n gravity: options.gravity,\n gravityOverLifetime: ensureFixedNumber(options.gravityModifier),\n startSpeed: ensureNumberExpression(options.startSpeed),\n speedOverLifetime: sol,\n asMovement: velocityOverLifetime.asMovement,\n linearX: ensureNumberExpression(velocityOverLifetime.linearX),\n linearY: ensureNumberExpression(velocityOverLifetime.linearY),\n linearZ: ensureNumberExpression(velocityOverLifetime.linearZ),\n asRotation: velocityOverLifetime.asRotation,\n orbCenter: velocityOverLifetime.orbCenter,\n orbitalX: ensureNumberExpression(velocityOverLifetime.orbitalX),\n orbitalY: ensureNumberExpression(velocityOverLifetime.orbitalY),\n orbitalZ: ensureNumberExpression(velocityOverLifetime.orbitalZ),\n forceTarget: velocityOverLifetime.forceTarget,\n target: velocityOverLifetime.target,\n forceCurve: ensureFixedNumber(velocityOverLifetime.forceCurve),\n };\n deleteEmptyValue(ret.positionOverLifetime);\n var rotationOverLifetime = particle.rotationOverLifetime;\n if (rotationOverLifetime) {\n ret.rotationOverLifetime = {\n separateAxes: rotationOverLifetime.separateAxes,\n asRotation: rotationOverLifetime.asRotation,\n z: ensureNumberExpression(rotationOverLifetime.separateAxes ? rotationOverLifetime.z : rotationOverLifetime.angularVelocity),\n };\n if (rotationOverLifetime.separateAxes) {\n ret.rotationOverLifetime.y = ensureFixedNumber(rotationOverLifetime.y);\n ret.rotationOverLifetime.x = ensureFixedNumber(rotationOverLifetime.x);\n }\n }\n var colorOverLifetime = particle.colorOverLifetime;\n if (colorOverLifetime) {\n var col = ret.colorOverLifetime = {\n opacity: ensureFixedNumber(colorOverLifetime.opacity),\n };\n if (colorOverLifetime.color) {\n col.color = getGradientColor(colorOverLifetime.color);\n }\n }\n var textureSheetAnimation = particle.textureSheetAnimation;\n if (textureSheetAnimation) {\n ret.textureSheetAnimation = {\n row: textureSheetAnimation.row,\n col: textureSheetAnimation.col,\n total: textureSheetAnimation.total,\n animate: textureSheetAnimation.animate,\n cycles: ensureFixedNumber(textureSheetAnimation.cycles),\n animationDelay: ensureFixedNumberWithRandom(textureSheetAnimation.animationDelay, 0),\n animationDuration: ensureFixedNumberWithRandom(textureSheetAnimation.animationDuration, 0),\n };\n }\n var trials = particle.trails;\n if (trials) {\n ret.trails = {\n lifetime: ensureNumberExpression(trials.lifetime),\n dieWithParticles: trials.dieWithParticles,\n maxPointPerTrail: trials.maxPointPerTrail,\n minimumVertexDistance: trials.minimumVertexDistance,\n widthOverTrail: ensureFixedNumber(trials.widthOverTrail),\n colorOverTrail: trials.colorOverTrail && getGradientColor(trials.colorOverTrail, false),\n blending: trials.blending,\n colorOverLifetime: trials.colorOverLifetime && getGradientColor(trials.colorOverLifetime, false),\n inheritParticleColor: trials.inheritParticleColor,\n occlusion: trials.occlusion,\n transparentOcclusion: trials.transparentOcclusion,\n orderOffset: trials.orderOffset,\n sizeAffectsLifetime: trials.sizeAffectsLifetime,\n sizeAffectsWidth: trials.sizeAffectsWidth,\n texture: trials.texture,\n parentAffectsPosition: trials.parentAffectsPosition,\n opacityOverLifetime: ensureNumberExpression(trials.opacityOverLifetime),\n };\n }\n ret.trails && deleteEmptyValue(ret.trails);\n var interaction = particle.interaction;\n if (interaction) {\n ret.interaction = {\n behavior: interaction.behavior,\n radius: interaction.radius,\n multiple: interaction.multiple,\n };\n }\n return ret;\n}\n\nfunction getStandardNullContent(sprite, transform) {\n var _a;\n var opt = sprite.options;\n var velocityOverLifetime = sprite.velocityOverLifetime || {};\n var positionOverLifetime = {\n path: ensureFixedVec3((_a = sprite.transform) === null || _a === void 0 ? void 0 : _a.path),\n gravity: opt.gravity,\n gravityOverLifetime: ensureFixedNumber(opt.gravityModifier),\n direction: opt.direction,\n startSpeed: opt.startSpeed,\n asMovement: velocityOverLifetime.asMovement,\n linearX: ensureFixedNumber(velocityOverLifetime.linearX),\n linearY: ensureFixedNumber(velocityOverLifetime.linearY),\n linearZ: ensureFixedNumber(velocityOverLifetime.linearZ),\n asRotation: velocityOverLifetime.asRotation,\n orbCenter: velocityOverLifetime.orbCenter,\n orbitalX: ensureFixedNumber(velocityOverLifetime.orbitalX),\n orbitalY: ensureFixedNumber(velocityOverLifetime.orbitalY),\n orbitalZ: ensureFixedNumber(velocityOverLifetime.orbitalZ),\n speedOverLifetime: ensureFixedNumber(velocityOverLifetime.speedOverLifetime),\n };\n deleteEmptyValue(positionOverLifetime);\n var ret = {\n options: {\n startColor: ensureRGBAValue(opt.startColor),\n },\n positionOverLifetime: positionOverLifetime,\n };\n if (opt.startSize) {\n transform.scale = [opt.startSize, opt.startSize / (opt.sizeAspect || 1), 1];\n }\n if (opt.startRotation) {\n if (!transform.rotation) {\n transform.rotation = [0, 0, opt.startRotation];\n }\n else {\n transform.rotation[2] += opt.startRotation;\n }\n }\n var rotationOverLifetime = sprite.rotationOverLifetime;\n if (rotationOverLifetime) {\n var rot = ret.rotationOverLifetime = {\n separateAxes: rotationOverLifetime.separateAxes,\n asRotation: rotationOverLifetime.asRotation,\n };\n if (rot.separateAxes) {\n rot.x = ensureFixedNumber(rotationOverLifetime.x);\n rot.y = ensureFixedNumber(rotationOverLifetime.y);\n rot.z = ensureFixedNumber(rotationOverLifetime.z);\n }\n else {\n rot.z = ensureFixedNumber(rotationOverLifetime.angularVelocity);\n }\n }\n var colorOverLifetime = sprite.colorOverLifetime;\n if (colorOverLifetime) {\n var col = ret.colorOverLifetime = {\n opacity: ensureFixedNumber(colorOverLifetime.opacity),\n };\n if (colorOverLifetime.color) {\n col.color = getGradientColor(colorOverLifetime.color);\n }\n }\n var sizeOverLifetime = sprite.sizeOverLifetime;\n if (sizeOverLifetime) {\n ret.sizeOverLifetime = {\n separateAxes: sizeOverLifetime.separateAxes,\n size: ensureFixedNumber(sizeOverLifetime.size),\n x: ensureFixedNumber(sizeOverLifetime.x),\n y: ensureFixedNumber(sizeOverLifetime.y),\n z: ensureFixedNumber(sizeOverLifetime.z),\n };\n }\n return ret;\n}\nfunction getStandardSpriteContent(sprite, transform) {\n var ret = getStandardNullContent(sprite, transform);\n var texAni = sprite.textureSheetAnimation;\n if (texAni) {\n ret.textureSheetAnimation = {\n row: texAni.row,\n col: texAni.col,\n total: texAni.total || undefined,\n animate: texAni.animate,\n };\n }\n ret.renderer = sprite.renderer;\n if (sprite.splits) {\n ret.splits = sprite.splits;\n }\n if (sprite.interaction) {\n ret.interaction = sprite.interaction;\n }\n return ret;\n}\n\nfunction getStandardInteractContent(ui) {\n var options = ui.options;\n var option;\n switch (options.type) {\n case 'click': {\n option = {\n type: InteractType.CLICK,\n showPreview: options.showPreview,\n previewColor: options.previewColor && ensureRGBAValue(options.previewColor),\n behavior: options.behavior || InteractBehavior.NOTIFY,\n };\n break;\n }\n case 'drag': {\n option = {\n type: InteractType.DRAG,\n enableInEditor: !!options.enableInEditor,\n dxRange: options.dxRange,\n dyRange: options.dyRange,\n target: options.target,\n };\n break;\n }\n case 'message': {\n option = {\n type: InteractType.MESSAGE,\n };\n break;\n }\n }\n var ret = {\n // @ts-expect-error\n options: option,\n };\n return ret;\n}\n\nfunction getStandardCameraContent(model) {\n var _a, _b;\n var opt = model.options;\n var ret = {\n options: {\n fov: opt.fov,\n far: opt.far,\n near: opt.near,\n clipMode: opt.clipMode,\n },\n };\n var velocityOverLifetime = model.velocityOverLifetime;\n if (velocityOverLifetime || ((_a = model.transform) === null || _a === void 0 ? void 0 : _a.path)) {\n var positionOverLifetime = {\n path: ensureFixedVec3((_b = model.transform) === null || _b === void 0 ? void 0 : _b.path),\n linearX: ensureFixedNumber(velocityOverLifetime === null || velocityOverLifetime === void 0 ? void 0 : velocityOverLifetime.translateX),\n linearY: ensureFixedNumber(velocityOverLifetime === null || velocityOverLifetime === void 0 ? void 0 : velocityOverLifetime.translateY),\n linearZ: ensureFixedNumber(velocityOverLifetime === null || velocityOverLifetime === void 0 ? void 0 : velocityOverLifetime.translateZ),\n };\n deleteEmptyValue(positionOverLifetime);\n ret.positionOverLifetime = positionOverLifetime;\n }\n var rol = model.rotationOverLifetime;\n if (rol) {\n var rotationOverLifetime = {\n separateAxes: rol.separateAxes,\n x: ensureFixedNumber(rol === null || rol === void 0 ? void 0 : rol.rotateX),\n y: ensureFixedNumber(rol === null || rol === void 0 ? void 0 : rol.rotateY),\n z: rol.separateAxes ? ensureFixedNumber(rol === null || rol === void 0 ? void 0 : rol.rotateZ) : ensureFixedNumber(rol.rotation),\n };\n deleteEmptyValue(rotationOverLifetime);\n ret.rotationOverLifetime = rotationOverLifetime;\n }\n return ret;\n}\n\nvar convertParams = [\n 'strength',\n 'bloomAddon',\n 'colorAddon',\n 'period',\n 'waveMovement',\n 'colorThreshold',\n 'xOpacity',\n 'yOpacity',\n 'feather',\n];\nvar pathParams = [\n 'path', 'position',\n];\nfunction getStandardFilterContent(filter) {\n var ret = {};\n forEach(filter, function (val, key) {\n if (convertParams.includes(key)) {\n ret[key] = ensureFixedNumber(val);\n }\n else if (pathParams.includes(key)) {\n ret[key] = ensureFixedVec3(val);\n }\n else {\n ret[key] = val;\n }\n });\n return ret;\n}\n\n/**\n * 2.1 以下版本数据适配(mars-player@2.4.0 及以上版本支持 2.1 以下数据的适配)\n */\nfunction version21Migration(json) {\n json.compositions.forEach(function (composition) {\n composition.items.forEach(function (item) {\n if (item.type === ItemType.null) {\n if (item.endBehavior === ItemEndBehavior.destroy) {\n item.endBehavior = ItemEndBehavior.freeze;\n }\n }\n });\n });\n json.version = '2.1';\n return json;\n}\n/**\n * 2.2 以下版本数据适配(mars-player@2.5.0 及以上版本支持 2.2 以下数据的适配)\n */\nfunction version22Migration(json) {\n var _a;\n var singleVersion = (_a = json.version) === null || _a === void 0 ? void 0 : _a.split('.');\n if (!singleVersion || Number(singleVersion[0]) > 2 || (Number(singleVersion[0]) === 2 && Number(singleVersion[1]) >= 2)) {\n return json;\n }\n json.compositions.forEach(function (composition) {\n composition.items.forEach(function (item) {\n if (item.type === ItemType.mesh || item.type === ItemType.light) {\n item.endBehavior = item.endBehavior === 1 ? ItemEndBehavior.destroy : item.endBehavior;\n }\n });\n });\n return json;\n}\n\nvar v0 = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(\\w+)\\.\\d+)?$/;\nvar standardVersion = /^(\\d+)\\.(\\d+)$/;\nvar reverseParticle = false;\nfunction getStandardJSON(json) {\n var _a, _b;\n if (!json || typeof json !== 'object') {\n throw Error('expect a json object');\n }\n // 修正老版本数据中,meshItem以及lightItem结束行为错误问题\n version22Migration(json);\n if (v0.test(json.version)) {\n reverseParticle = ((_a = (/^(\\d+)/).exec(json.version)) === null || _a === void 0 ? void 0 : _a[0]) === '0';\n return version21Migration(getStandardJSONFromV0(json));\n }\n var mainVersion = (_b = standardVersion.exec(json.version)) === null || _b === void 0 ? void 0 : _b[1];\n if (mainVersion) {\n if (Number(mainVersion) < 2) {\n return version21Migration(json);\n }\n return json;\n }\n throw Error('invalid json version ' + json.version);\n}\nvar currentVersion = '1.0';\nfunction getStandardJSONFromV0(json) {\n var _a, _b;\n currentVersion = '1.0';\n var plugins = json.plugins || [];\n if ((_a = json.bins) === null || _a === void 0 ? void 0 : _a.length) {\n currentVersion = '1.3';\n }\n var requires = (json.requires || []).slice();\n var images = json.images.map(function (img, index) { return getStandardImage(img, index, json.imageTags || []); });\n var textures = json.textures || images.map(function (img, i) { return ({ source: i, flipY: true }); });\n var ret = {\n plugins: plugins,\n shapes: json.shapes || [],\n type: 'ge',\n version: currentVersion,\n playerVersion: (_b = json.playerVersion) !== null && _b !== void 0 ? _b : {\n web: '',\n native: '',\n },\n compositionId: json.compositionId + '',\n compositions: json.compositions.map(function (comp) { return getStandardComposition(comp, { plugins: plugins, requires: requires }); }),\n images: images,\n imgUsage: json._imgs,\n binUsage: json.binUsage,\n spines: json.spines,\n requires: json.requires,\n textures: textures,\n bins: (json.bins || []).slice(),\n };\n if (json._textures) {\n ret._textures = json._textures;\n }\n return ret;\n}\nfunction getStandardImage(image, index, imageTags) {\n var renderLevel = imageTags[index];\n var oriY = image.oriY;\n if (typeof image === 'string') {\n return {\n renderLevel: renderLevel,\n url: image,\n oriY: oriY,\n };\n }\n else if (image.template) {\n return {\n url: image.url,\n template: image.template,\n webp: image.webp,\n renderLevel: renderLevel,\n oriY: oriY,\n };\n }\n else if (image.compressed) {\n return {\n url: image.url,\n oriY: oriY,\n compressed: {\n astc: image.compressed.android,\n pvrtc: image.compressed.iOS,\n },\n webp: image.webp,\n renderLevel: renderLevel,\n };\n }\n else if (image.url) {\n return {\n url: image.url,\n type: image.type,\n webp: image.webp,\n renderLevel: renderLevel,\n oriY: oriY,\n loop: image.loop,\n };\n }\n else if (image && image.sourceType) {\n return image;\n }\n throw Error('invalid image type');\n}\nfunction getStandardComposition(composition, opt) {\n var _a;\n if (opt === void 0) { opt = {}; }\n var ret = {\n id: composition.id + '',\n camera: Object.assign({ clipMode: CAMERA_CLIP_MODE_NORMAL }, composition.camera),\n duration: composition.duration,\n endBehavior: composition.endBehavior,\n items: composition.items.map(function (item) { return getStandardItem(item, opt); }),\n name: composition.name,\n };\n var startTime = composition.startTime || composition.st;\n if (startTime) {\n ret.startTime = startTime;\n }\n var previewSize = (_a = composition.meta) === null || _a === void 0 ? void 0 : _a.previewSize;\n if (previewSize && previewSize[0] === previewSize[1] && previewSize[0] === 0) {\n previewSize = undefined;\n }\n if (previewSize) {\n ret.previewSize = previewSize;\n }\n return ret;\n}\nvar tempQuat = [0, 0, 0, 1];\nvar stdAnchor = 0.5;\nfunction getStandardItem(item, opt) {\n var _a, _b, _c;\n if (opt === void 0) { opt = {}; }\n var type = ItemType.base;\n var transform;\n var originContent;\n var content;\n var endBehavior = item.endBehavior;\n var renderLevel;\n var pluginName;\n var duration = NaN;\n var pn;\n if (item.content) {\n type = item.type || ItemType.plugin;\n pn = item.pn;\n pluginName = item.pluginName;\n content = item.content;\n originContent = item.content;\n if (isNaN(pn) && !pluginName) {\n pluginName = content.options.type;\n }\n if (item.duration) {\n duration = item.duration;\n }\n transform = item.transform || getTransform(originContent.transform);\n if (type === ItemType.filter) {\n if (currentVersion < '1.1') {\n currentVersion = '1.1';\n }\n content = getStandardSpriteContent(originContent, transform);\n // @ts-expect-error\n content.filter = getStandardFilterContent(originContent.filter);\n }\n }\n else if (item.particle) {\n type = ItemType.particle;\n originContent = item.particle;\n transform = getTransform(originContent.transform, reverseParticle, true);\n content = getStandardParticleContent(originContent);\n }\n else if (item.sprite) {\n type = ItemType.sprite;\n originContent = item.sprite;\n transform = getTransform(originContent.transform, false, true);\n content = getStandardSpriteContent(originContent, transform);\n }\n else if (item.cal) {\n type = ItemType.null;\n originContent = item.cal;\n transform = getTransform(originContent.transform, false, true);\n content = getStandardNullContent(originContent, transform);\n }\n else if (item.ui) {\n type = ItemType.interact;\n originContent = item.ui;\n transform = getTransform(originContent.transform);\n content = getStandardInteractContent(originContent);\n transform.scale = [originContent.options.width || 1, originContent.options.height || 1, 1];\n }\n else if (item.model) {\n originContent = item.model;\n if (item.model.options.type === 1) {\n type = ItemType.camera;\n transform = getTransform(originContent.transform);\n content = getStandardCameraContent(originContent);\n }\n }\n if ((_a = content.renderer) === null || _a === void 0 ? void 0 : _a.anchor) {\n var anchor = new Float32Array(content.renderer.anchor);\n if (anchor[0] == stdAnchor && anchor[1] == stdAnchor) {\n delete content.renderer.anchor;\n }\n else if (opt.requires) {\n arrAdd(opt.requires, 'anchor');\n }\n }\n if (originContent) {\n var looping = (_b = originContent.options) === null || _b === void 0 ? void 0 : _b.looping;\n if (looping) {\n if (Array.isArray(looping)) {\n endBehavior = looping[1] ? ItemEndBehavior.loop : ItemEndBehavior.destroy;\n }\n else {\n endBehavior = ItemEndBehavior.loop;\n }\n }\n else {\n endBehavior = endBehavior || ((_c = originContent === null || originContent === void 0 ? void 0 : originContent.options) === null || _c === void 0 ? void 0 : _c.endBehavior) || ItemEndBehavior.destroy;\n }\n if (originContent.options.renderLevel) {\n renderLevel = originContent.options.renderLevel;\n }\n if (isNaN(duration)) {\n duration = originContent.options.duration;\n }\n }\n var ret = {\n type: type,\n name: item.name,\n delay: item.delay,\n duration: duration,\n id: item.id + '',\n // @ts-expect-error\n transform: transform,\n endBehavior: endBehavior,\n // @ts-expect-error\n renderLevel: renderLevel,\n content: content,\n };\n // @ts-expect-error\n if (pluginName) {\n if (opt.plugins) {\n arrAdd(opt.plugins, pluginName);\n ret.pn = opt.plugins.indexOf(pluginName);\n }\n else {\n ret.pluginName = pluginName;\n }\n // @ts-expect-error\n }\n else if (Number.isInteger(pn)) {\n // @ts-expect-error\n ret.pn = pn;\n }\n if (item.parentId) {\n ret.parentId = item.parentId + '';\n }\n return ret;\n function getTransform(originTransform, inverseRotation, changeOrder) {\n if (originTransform) {\n var transform_1 = {};\n var rotation = originTransform.rotation;\n if (rotation) {\n if (inverseRotation) {\n transform_1.rotation = [-rotation[0], -rotation[1], -rotation[2]];\n }\n else {\n transform_1.rotation = [rotation[0], rotation[1], rotation[2]];\n }\n if (changeOrder) {\n var q = quatFromXYZRotation(tempQuat, transform_1.rotation[0], transform_1.rotation[1], transform_1.rotation[2]);\n transform_1.rotation = rotationZYXFromQuat([], q);\n }\n }\n var position = originTransform.position;\n if (position) {\n transform_1.position = originTransform.position;\n }\n if (Array.isArray(originTransform.scale)) {\n transform_1.scale = [originTransform.scale[0] || 1, originTransform.scale[1] || 1, originTransform.scale[2] || 1];\n }\n return transform_1;\n }\n return {};\n }\n}\n\nexport { arrAdd, colorToArr, deleteEmptyValue, ensureColorExpression, ensureFixedNumber, ensureFixedNumberWithRandom, ensureFixedVec3, ensureGradient, ensureNumberExpression, ensureRGBAValue, ensureValueGetter, forEach, getGradientColor, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, normalizeColor, objectValueToNumber, parsePercent, quatFromXYZRotation, rotationZYXFromQuat };\n//# sourceMappingURL=fallback.mjs.map\n"],"names":["global","this","fails","require$$0","NATIVE_BIND","call","$propertyIsEnumerable","getOwnPropertyDescriptor","createPropertyDescriptor","FunctionPrototype","uncurryThis","toString","stringSlice","classofRaw","require$$1","classof","require$$2","$Object","isNullOrUndefined","$TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","documentAll","$documentAll","isCallable","isObject","getBuiltIn","userAgent","process","Deno","version","V8_VERSION","$String","NATIVE_SYMBOL","isPrototypeOf","USE_SYMBOL_AS_UID","require$$3","isSymbol","tryToString","aCallable","getMethod","ordinaryToPrimitive","defineProperty","defineGlobalProperty","store","sharedModule","toObject","id","uid","shared","hasOwn","require$$4","require$$5","Symbol","wellKnownSymbol","toPrimitive","toPropertyKey","document","EXISTS","documentCreateElement","DESCRIPTORS","createElement","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","anObject","V8_PROTOTYPE_DEFINE_BUG","CONFIGURABLE","definePropertyModule","createNonEnumerableProperty","inspectSource","WeakMap","keys","sharedKey","hiddenKeys","TypeError","set","get","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","join","makeBuiltIn","makeBuiltInModule","defineBuiltIn","floor","trunc","toIntegerOrInfinity","max","min","toAbsoluteIndex","toLength","lengthOfArrayLike","createMethod","push","enumBugKeys","internalObjectKeys","getOwnPropertyNamesModule","ownKeys","getOwnPropertyDescriptorModule","copyConstructorProperties","isForced","objectKeys","html","PROTOTYPE","IE_PROTO","objectCreate","create","ArrayPrototype","addToUnscopables","$","$includes","entryUnbind","ObjectPrototype","objectGetPrototypeOf","path","ITERATOR","checkCorrectnessOfIteration","TO_STRING_TAG","TO_STRING_TAG_SUPPORT","defineBuiltInAccessor","aPossiblePrototype","NATIVE_ARRAY_BUFFER","require$$8","require$$9","require$$10","require$$11","getPrototypeOf","require$$12","setPrototypeOf","require$$13","require$$14","require$$15","require$$16","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","TypedArray","TypedArrayPrototype","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","getTypedArrayConstructor","isTypedArray","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","exportTypedArrayStaticMethod","ArrayBuffer","defineBuiltIns","anInstance","$RangeError","toIndex","sign","$Array","arrayFill","createProperty","setToStringTag","FunctionName","getOwnPropertyNames","require$$17","arraySlice","require$$18","require$$19","require$$20","PROPER_FUNCTION_NAME","WRONG_LENGTH","setInternalState","ArrayBufferPrototype","Array","RangeError","addGetter","isIntegralNumber","toPositiveInteger","toOffset","toUint8Clamped","bind","noop","isConstructor","aConstructor","Iterators","getIteratorMethod","getIterator","isArrayIteratorMethod","isBigIntArray","toBigInt","typedArrayFrom","isArray","SPECIES","arraySpeciesConstructor","arraySpeciesCreate","setSpecies","inheritIfRequired","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","require$$21","require$$22","require$$23","require$$24","forEach","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","DataView","typedArrayConstructorModule","createTypedArrayConstructor","charAt","BUGGY_SAFARI_ITERATORS","IteratorPrototype","arrayIterator","returnThis","createIterResultObject","defineIterator","deletePropertyOrThrow","arrayFromConstructorAndList","speciesConstructor","typedArraySpeciesConstructor","fromSpeciesAndList","apply","arrayMethodIsStrict","$lastIndexOf","FORCED","insertionSort","Uint16Array","Uint8Array","arrayToReversed","arrayWith","PROPER_ORDER","fastKey","internalMetadataModule","iteratorClose","iterate","collection","collectionStrong","validateArgumentsLength","IS_IOS","IS_NODE","Function","String","queue","task","Queue","Promise","microtask","notify","hostReportErrors","perform","IS_DENO","NativePromiseConstructor","NATIVE_PROMISE_REJECTION_EVENT","FORCED_PROMISE_CONSTRUCTOR","newPromiseCapability","newPromiseCapabilityModule","NativePromisePrototype","PROMISE_STATICS_INCORRECT_ITERATION","promiseResolve","ASYNC_ITERATOR","AsyncIteratorPrototype","AsyncFromSyncIterator","getIteratorDirect","getAsyncIterator","doesNotExceedSafeInteger","arrayFromAsync","$filterReject","MapPrototype","iterateSimple","MapHelpers","Map","arrayUniqueBy","RenderLevel","BlendingMode","SideMode","MaskMode","ShapeType","PluginType","InteractType","InteractBehavior","ItemType","RenderMode","ParticleOrigin","END_BEHAVIOR_DESTROY","END_BEHAVIOR_PAUSE","END_BEHAVIOR_FORWARD","END_BEHAVIOR_PAUSE_AND_DESTROY","END_BEHAVIOR_FREEZE","END_BEHAVIOR_RESTART","END_BEHAVIOR_DESTROY_CHILDREN","CAMERA_CLIP_MODE_VERTICAL","CAMERA_CLIP_MODE_NORMAL","CameraClipMode","CompositionEndBehavior","ValueType","BezierKeyframeType","ItemEndBehavior","ParentItemEndBehavior","ParticleInteractionBehavior","ShapeArcMode","ModelBoundingType","MaterialType","MaterialBlending","RenderMode3D","TextOverflow","TextBaseline","TextAlignment","TextWeight","FontStyle","clamp","__read","__spreadArray","Sphere"],"mappings":"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AG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GA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AAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC5H,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC5H,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC5H,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC5H,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAChE,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;AACvB,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,SAAS;AACT,QAAQ,IAAI,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACrI,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACrI,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC7B,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACrI,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACrI,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACrI,QAAQ,OAA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AQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AAChD,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7C,YAAY,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACzC,YAAY,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;AAC3C,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC3C,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACxC,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACxC,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACxC,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACpD,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;AACvB,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,IAAI,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AAChD,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AAChD,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AAChD,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AAChD,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AAChD,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AAChD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AAC9C,QAAQ,IAAI,CAAC,CAAC;AACd,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE;AACzD,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAQ,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC3D,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;AACvD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE;AACjD,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/B,QAAQ,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpC,YAAY,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACxC,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC5C,QAAQ,OAAO,aAAa,CAAC,EAAE,EAAEA,QAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AACtD,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,YAAY,GAAG,YAAY;AACvC,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,iBAAiB,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtD,QAAQ,OAAO,IAAI,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9D,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE;AACvC,QAAQ,OAAO,IAAI,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC/C,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AACjD,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,QAAQ,OAAO,IAAI,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,cAAc,GAAG,UAAU,IAAI,EAAE;AAC7C,QAAQ,OAAO,IAAI,OAAO,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACrD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,gBAAgB,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACtF,QAAQ,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACxE,KAAK,CAAC;AACN,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC,EAAE,CAAC;;AC9eJ;AACA;AACA;AACO,IAAI,GAAG,kBAAkB,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE;AACpC,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;AACzD,QAAQ,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE;AAC5D;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AACpC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AACvC;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;AACvD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,MAAM,EAAE,SAAS,EAAE;AACrD,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;AACvD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACtC,QAAQ,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACpD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE;AAC5C,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AACnD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE;AACxC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE;AACzC,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5C,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,QAAQ,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACtD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AAC5C,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1F,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE;AAC7C,QAAQ,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE;AACrD,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3B,QAAQ,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnE,QAAQ,IAAI,KAAK,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,KAAK,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACnD,QAAQ,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE;AAC1B,YAAY,IAAI,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC1C,YAAY,IAAI,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC1C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC1C,YAAY,IAAI,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC1C,SAAS;AACT,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE;AAC1B,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC3C,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC3C,SAAS;AACT,aAAa;AACb,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC3C,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC3C,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE;AAC9C,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3C,YAAY,IAAI,GAAG,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3C,YAAY,IAAI,GAAG,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3C,YAAY,IAAI,GAAG,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3C,YAAY,IAAI,GAAG,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE;AAC1B,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC3C,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC3C,SAAS;AACT,aAAa;AACb,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC3C,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC;AAC3C,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE;AAC9C,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3C,YAAY,IAAI,GAAG,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3C,YAAY,IAAI,GAAG,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AACtB,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnE,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE,GAAG,EAAE;AACzD,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAClC,QAAQ,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACtC,QAAQ,IAAI,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrD,QAAQ,IAAI,WAAW,KAAK,CAAC,EAAE;AAC/B;AACA,YAAY,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACzD,YAAY,IAAI,GAAG,KAAK,CAAC,EAAE;AAC3B,gBAAgB,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;AACpD,gBAAgB,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjD,aAAa;AACb;AACA,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,WAAW,CAAC;AACpE;AACA,QAAQ,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AACpD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE;AAC3D,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC,QAAQ,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,QAAQ,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AAChD,QAAQ,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpD,QAAQ,IAAI,EAAE,GAAG,OAAO,EAAE;AAC1B,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AAC1C;AACA,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3B;AACA,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3B;AACA,QAAQ,IAAI,EAAE,GAAG,CAAC,EAAE;AACpB,YAAY,OAAO;AACnB,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7D,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE;AAChF;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC5B,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC5B,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC5B,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7C,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,GAAG,GAAG,CAAC,EAAE;AACrB,YAAY,IAAI,eAAe,EAAE;AACjC,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,IAAI,GAAG,CAAC,CAAC;AACrB,SAAS;AACT,aAAa,IAAI,GAAG,GAAG,CAAC,EAAE;AAC1B,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC;AACtB,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC;AACvB,SAAS;AACT,aAAa;AACb,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxC,QAAQ,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD;AACA,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE;AACxB,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAQ,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD;AACA,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE;AACxB,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE;AACnC,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3C;AACA,QAAQ,IAAI,GAAG,GAAG,CAAC,EAAE;AACrB,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AACvC,KAAK,CAAC;AACN,IAAI,GAAG,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AACjC,IAAI,GAAG,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AACjC,IAAI,GAAG,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AACjC,IAAI,GAAG,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AACjC,IAAI,OAAO,GAAG,CAAC;AACf,CAAC,EAAE,CAAC;;ACvRG,IAAI,KAAK,kBAAkB,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,QAAQ,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AACpC,QAAQ,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AACpC,QAAQ,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AACpC,QAAQ,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AACpC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAChD,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC1C,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,GAAG,EAAE;AACnD,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE;AAClD,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AAC5D,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3B,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACzE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7E,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1E,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE;AAC5C,QAAQ,IAAI,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;AACxC,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACzB,QAAQ,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAY,CAAC,GAAG,MAAM,CAAC;AACvB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,SAAS;AACT,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,MAAM,CAAC;AACvB,SAAS;AACT,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,YAAY,CAAC,GAAG,MAAM,CAAC;AACvB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,SAAS;AACT,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,MAAM,CAAC;AACvB,SAAS;AACT,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,CAAC,GAAG,MAAM,CAAC;AACvB,SAAS;AACT,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,YAAY,CAAC,GAAG,MAAM,CAAC;AACvB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC;AAC/B,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,GAAG,EAAE;AACtD,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACnF,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;AAC1D,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;AAC1D,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;AAC1D,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;AACnF,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5C,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACxC,QAAQ,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AACzD,QAAQ,QAAQ,KAAK;AACrB,YAAY,KAAK,CAAC;AAClB,gBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC/B,gBAAgB,MAAM;AACtB,YAAY,KAAK,CAAC;AAClB,gBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC/B,gBAAgB,MAAM;AACtB,YAAY,KAAK,CAAC;AAClB,gBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC/B,gBAAgB,MAAM;AACtB,YAAY,KAAK,CAAC;AAClB,gBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC/B,gBAAgB,MAAM;AACtB,YAAY,SAAS,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,CAAC;AACtE,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;AAClD,QAAQ,QAAQ,KAAK;AACrB,YAAY,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AAClC,YAAY,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AAClC,YAAY,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AAClC,YAAY,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AAClC,YAAY,SAAS,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,CAAC;AACtE,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,KAAK,EAAE;AAC3C,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,SAAS;AACT,aAAa,IAAI,KAAK,YAAY,KAAK,EAAE;AACzC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE;AAChD,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,SAAS;AACT,aAAa,IAAI,KAAK,YAAY,KAAK,EAAE;AACzC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE;AAChD,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,SAAS;AACT,aAAa,IAAI,KAAK,YAAY,KAAK,EAAE;AACzC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AAC9C,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AAC5B,SAAS;AACT,aAAa,IAAI,KAAK,YAAY,KAAK,EAAE;AACzC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9B,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;AACzC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACpB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACpB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACpB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACpB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACvC,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACnC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACvC,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACnC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE;AAChD,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE;AAC/C,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AACzC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AACzC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AACzC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;AACzC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AAC5C,QAAQ,OAAO,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAC5D,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1C,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AACpF,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAC3C,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC1C,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC1C,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AAC5C,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACxC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC;AACpB,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;AACvB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,GAAG,IAAI,GAAG,EAAE;AACxB,YAAY,IAAI,GAAG,IAAI,CAAC,EAAE;AAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACjC,gBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE;AAC3B,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC3B,iBAAiB;AACjB,aAAa;AACb,iBAAiB,IAAI,GAAG,IAAI,CAAC,EAAE;AAC/B,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrC,aAAa;AACb,iBAAiB,IAAI,GAAG,IAAI,CAAC,EAAE;AAC/B,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrC,aAAa;AACb,YAAY,CAAC,IAAI,EAAE,CAAC;AACpB,SAAS;AACT,QAAQ,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,YAAY,EAAE;AAC1D,QAAQ,IAAI,YAAY,KAAK,KAAK,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAAC,EAAE;AAC7D,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtD,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,SAAS;AACT,aAAa;AACb,YAAY,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AACpD,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,QAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC/B,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE;AACtC,QAAQ,OAAO,IAAI,KAAK,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC9C,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AAC/C,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,QAAQ,OAAO,IAAI,KAAK,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,aAAa,GAAG,UAAU,GAAG,EAAE;AACzC,QAAQ,OAAO,IAAI,KAAK,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACjD,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AAC7D,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE;AAC5C,QAAQ,OAAO,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACrE,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS;AACT,aAAa,IAAI,CAAC,IAAI,OAAO,EAAE;AAC/B,YAAY,OAAO,CAAC,GAAG,KAAK,CAAC;AAC7B,SAAS;AACT,aAAa,IAAI,CAAC,GAAG,GAAG,EAAE;AAC1B,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;AACtD,SAAS;AACT,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpC,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AAC3C,QAAQ,IAAI,KAAK,IAAI,GAAG,EAAE;AAC1B,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS;AACT,aAAa,IAAI,KAAK,GAAG,SAAS,EAAE;AACpC,YAAY,OAAO,KAAK,GAAG,KAAK,CAAC;AACjC,SAAS;AACT,aAAa,IAAI,KAAK,GAAG,GAAG,EAAE;AAC9B,YAAY,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AAC5D,SAAS;AACT,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5C,SAAS;AACT,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;AAC/B,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAE;AACrB,YAAY,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,WAAW,EAAE,CAAC;AAC7C,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AACjC,KAAK,CAAC;AACN;AACA;AACA;AACA,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAChD,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC,EAAE,CAAC;;AC/hBJ;AACA;AACA;AACA,IAAI,IAAI,kBAAkB,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;AAC5B,QAAQ,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE;AAChF,QAAQ,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;AACnF,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AAC/B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE;AAC7C,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AACnD,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,QAAQ,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC7B,QAAQ,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC7B,QAAQ,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC7B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACzD,YAAY,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,MAAM,EAAE;AACrD,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACzD,YAAY,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AAClE,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,MAAM,EAAE;AACrD,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;AACzB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC3C,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACvC,QAAQ,OAAO,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE;AAC7C,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AAC3C,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACzC;AACA,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;AACjD,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC1G,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,MAAM,EAAE;AAC/C,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjG,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AACpD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,MAAM,EAAE;AACtD,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,MAAM,EAAE;AACtD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,GAAG,EAAE;AAChD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,MAAM,EAAE;AACtD;AACA;AACA,QAAQ,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/C,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;AACpC,YAAY,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE;AAC/C,gBAAgB,QAAQ,CAAC,kBAAkB,EAAE,CAAC;AAC9C,aAAa;AACb,YAAY,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAClC,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChD,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAClD,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAS;AACT,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACvC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzD,YAAY,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AACpD,QAAQ,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,eAAe,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,eAAe,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,eAAe,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,eAAe,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,eAAe,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE;AAClD,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AAC3D,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC,EAAE;AAC1D;AACA;AACA,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtL,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AACpD;AACA,QAAQ,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,eAAe,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACnE,eAAe,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,MAAM,EAAE;AACxD;AACA,QAAQ,IAAI,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/C;AACA,QAAQ,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACxF,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AACzD,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC,EAAE;AAC1D,QAAQ,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,KAAK,EAAE;AACtD,QAAQ,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnE,QAAQ,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AACrD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,GAAG,EAAE;AAC9C,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAC5B,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7B,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,EAAE;AAC1C,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;AAC5D,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC,EAAE;AAC1D;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAC5B,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;AAC5D,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC,EAAE;AAC1D;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAC5B,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;AACxB;AACA,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACpC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B,YAAY,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAClC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1B,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE;AACzD,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,QAAQ,IAAI,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,QAAQ,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AAC5D,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;AACjD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AAC7C,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxE,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC,EAAE,CAAC;;ACvYJ;AACA;AACA;AACA,IAAIE,QAAM,kBAAkB,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;AACpC,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;AACzD,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;AAC/C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACrC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;AACrD,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,MAAM,EAAE,cAAc,EAAE;AACvE,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,QAAQ,IAAI,cAAc,KAAK,SAAS,EAAE;AAC1C,YAAY,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC5C,YAAY,IAAI,WAAW,GAAG,CAAC,CAAC;AAChC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,gBAAgB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjD,SAAS;AACT,aAAa;AACb,YAAY,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACvD,YAAY,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,MAAM,EAAE;AAClD,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC3C,QAAQ,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AAC7C,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AACtD,QAAQ,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACjF,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,KAAK,EAAE;AACxD,QAAQ,QAAQ,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3D,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,MAAM,EAAE;AAC1D,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpD,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC;AACrF,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,GAAG,EAAE;AACpD,QAAQ,OAAO,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC1C,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AAC3D,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/D,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;AAClC,YAAY,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,SAAS;AACT,QAAQ,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAQ,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;AACzD,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;AACrD,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1D,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,MAAM,EAAE;AACxD,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;AAClC,YAAY,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAChC,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAC5B;AACA,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC;AAC/B,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3C,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,MAAM,EAAE;AACtD,QAAQ,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzE,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;AAC7C,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;AACnD,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AACtD,QAAQ,IAAI,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,QAAQ,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;AACnD,QAAQ,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;AACzD,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpD,YAAY,IAAI,iBAAiB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;AACnE;AACA;AACA;AACA,YAAY,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC3E,YAAY,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC;AAC7C,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,MAAM,EAAE;AAC/C;AACA;AACA;AACA,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;AAC/B,QAAQ,IAAI,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5C,QAAQ,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACxG,QAAQ,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAC5E,QAAQ,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACjF,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE;AAClD,QAAQ,IAAI,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC9E,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;AACvC,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACnD,QAAQ,IAAI,QAAQ,GAAG,SAAS,EAAE;AAClC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;AACpC,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;AAC5D,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE;AAChD,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;AACpF,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACzC,QAAQ,OAAO,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,KAAK,CAAC;AACN,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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jE,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@galacean+effects-specification@1.0.1/node_modules/@galacean/effects-specification/dist/index.mjs","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/utils.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/vector2.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/vector3.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/quaternion.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/matrix4.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/euler.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/vector4.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/matrix3.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/ray.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/color.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/box3.js","../../../node_modules/.pnpm/@galacean+effects-math@1.0.1/node_modules/@galacean/effects-math/es/core/sphere.js","../../effects-core/src/libs/earcut.js","../../../node_modules/.pnpm/@galacean+effects-specification@1.0.1/node_modules/@galacean/effects-specification/dist/fallback.mjs"],"sourcesContent":["/*!\n * Name: @galacean/effects-specification\n * Description: Galacean Effects JSON Specification\n * Author: Ant Group CO., Ltd.\n * Version: v1.0.1\n */\n\n/*********************************************/\n/* 元素属性参数类型 */\n/*********************************************/\n/**\n * 渲染等级\n */\nvar RenderLevel;\n(function (RenderLevel) {\n RenderLevel[\"S\"] = \"S\";\n RenderLevel[\"APlus\"] = \"A+\";\n RenderLevel[\"A\"] = \"A\";\n RenderLevel[\"BPlus\"] = \"B+\";\n RenderLevel[\"B\"] = \"B\";\n})(RenderLevel || (RenderLevel = {}));\n/**\n * 混合模式\n */\nvar BlendingMode;\n(function (BlendingMode) {\n /**\n * 普通混合模式\n */\n BlendingMode[BlendingMode[\"ALPHA\"] = 0] = \"ALPHA\";\n /**\n * 叠加混合模式\n */\n BlendingMode[BlendingMode[\"ADD\"] = 1] = \"ADD\";\n /**\n * 相乘混合模式\n */\n BlendingMode[BlendingMode[\"MULTIPLY\"] = 2] = \"MULTIPLY\";\n /**\n * 亮度混合模式\n */\n BlendingMode[BlendingMode[\"BRIGHTNESS\"] = 3] = \"BRIGHTNESS\";\n /**\n * 减色混合模式\n */\n BlendingMode[BlendingMode[\"SUBTRACTION\"] = 4] = \"SUBTRACTION\";\n /**\n * 强光混合模式\n */\n BlendingMode[BlendingMode[\"STRONG_LIGHT\"] = 5] = \"STRONG_LIGHT\";\n /**\n * 弱光混合模式\n */\n BlendingMode[BlendingMode[\"WEAK_LIGHT\"] = 6] = \"WEAK_LIGHT\";\n /**\n * 亮度叠加混合模式\n */\n BlendingMode[BlendingMode[\"SUPERPOSITION\"] = 7] = \"SUPERPOSITION\";\n})(BlendingMode || (BlendingMode = {}));\n/**\n * 单双面模式\n */\nvar SideMode;\n(function (SideMode) {\n /**\n * 双面模式\n */\n SideMode[SideMode[\"DOUBLE\"] = 1032] = \"DOUBLE\";\n /**\n * 正面模式\n */\n SideMode[SideMode[\"FRONT\"] = 1028] = \"FRONT\";\n /**\n * 背面模式\n */\n SideMode[SideMode[\"BACK\"] = 1029] = \"BACK\";\n})(SideMode || (SideMode = {}));\n/**\n * 蒙版模式\n */\nvar MaskMode;\n(function (MaskMode) {\n /**\n * 无蒙版\n */\n MaskMode[MaskMode[\"NONE\"] = 0] = \"NONE\";\n /**\n * 蒙版\n */\n MaskMode[MaskMode[\"MASK\"] = 1] = \"MASK\";\n /**\n * 被遮挡\n */\n MaskMode[MaskMode[\"OBSCURED\"] = 2] = \"OBSCURED\";\n /**\n * 被反向遮挡\n */\n MaskMode[MaskMode[\"REVERSE_OBSCURED\"] = 3] = \"REVERSE_OBSCURED\";\n})(MaskMode || (MaskMode = {}));\n/**\n * 发射器形状\n */\nvar ShapeType;\n(function (ShapeType) {\n /**\n * 没有类型\n */\n ShapeType[ShapeType[\"NONE\"] = 0] = \"NONE\";\n /**\n * 圆球\n */\n ShapeType[ShapeType[\"SPHERE\"] = 1] = \"SPHERE\";\n /**\n * 圆锥\n */\n ShapeType[ShapeType[\"CONE\"] = 2] = \"CONE\";\n /**\n * 半球\n */\n ShapeType[ShapeType[\"HEMISPHERE\"] = 3] = \"HEMISPHERE\";\n /**\n * 圆\n */\n ShapeType[ShapeType[\"CIRCLE\"] = 4] = \"CIRCLE\";\n /**\n * 圆环\n */\n ShapeType[ShapeType[\"DONUT\"] = 5] = \"DONUT\";\n /**\n * 矩形\n */\n ShapeType[ShapeType[\"RECTANGLE\"] = 6] = \"RECTANGLE\";\n /**\n * 矩形框\n */\n ShapeType[ShapeType[\"RECTANGLE_EDGE\"] = 7] = \"RECTANGLE_EDGE\";\n /**\n * 直线\n */\n ShapeType[ShapeType[\"EDGE\"] = 8] = \"EDGE\";\n /**\n * 贴图\n */\n ShapeType[ShapeType[\"TEXTURE\"] = 9] = \"TEXTURE\";\n})(ShapeType || (ShapeType = {}));\n/**\n * 插件类型\n */\nvar PluginType;\n(function (PluginType) {\n /**\n * 陀螺仪\n */\n PluginType[PluginType[\"GYROSCOPE\"] = 0] = \"GYROSCOPE\";\n /**\n * Spine\n */\n PluginType[PluginType[\"SPINE\"] = 1] = \"SPINE\";\n})(PluginType || (PluginType = {}));\n/**\n * 交互类型\n */\nvar InteractType;\n(function (InteractType) {\n /**\n * 点击\n */\n InteractType[InteractType[\"CLICK\"] = 0] = \"CLICK\";\n /**\n * 消息\n * 前端收到 onMessageItem 回调\n */\n InteractType[InteractType[\"MESSAGE\"] = 1] = \"MESSAGE\";\n /**\n * 拖拽\n */\n InteractType[InteractType[\"DRAG\"] = 2] = \"DRAG\";\n})(InteractType || (InteractType = {}));\n/**\n * 交互行为\n */\nvar InteractBehavior;\n(function (InteractBehavior) {\n /**\n * 无\n */\n InteractBehavior[InteractBehavior[\"NONE\"] = 0] = \"NONE\";\n /**\n * 通知\n */\n InteractBehavior[InteractBehavior[\"NOTIFY\"] = 1] = \"NOTIFY\";\n /**\n * 重置播放器\n */\n InteractBehavior[InteractBehavior[\"RESUME_PLAYER\"] = 2] = \"RESUME_PLAYER\";\n /**\n * 清除元素\n */\n InteractBehavior[InteractBehavior[\"REMOVE\"] = 3] = \"REMOVE\";\n /**\n * 暂停播放器\n */\n InteractBehavior[InteractBehavior[\"PAUSE\"] = 4] = \"PAUSE\";\n})(InteractBehavior || (InteractBehavior = {}));\n/**\n * 元素类型\n */\nvar ItemType;\n(function (ItemType) {\n /**\n * 错误元素\n */\n ItemType[\"base\"] = \"0\";\n /**\n * 图层元素\n */\n ItemType[\"sprite\"] = \"1\";\n /**\n * 粒子元素\n */\n ItemType[\"particle\"] = \"2\";\n /**\n * 空节点元素\n */\n ItemType[\"null\"] = \"3\";\n /**\n * 交互元素\n */\n ItemType[\"interact\"] = \"4\";\n /**\n * 插件元素\n */\n ItemType[\"plugin\"] = \"5\";\n /**\n * 相机元素\n */\n ItemType[\"camera\"] = \"6\";\n /**\n * 预合成元素\n */\n ItemType[\"composition\"] = \"7\";\n /**\n * 滤镜图层\n */\n ItemType[\"filter\"] = \"8\";\n /**\n * Spine 元素\n */\n ItemType[\"spine\"] = \"spine\";\n /**\n * Mesh 元素\n */\n ItemType[\"mesh\"] = \"mesh\";\n /**\n * 节点树元素\n */\n ItemType[\"tree\"] = \"tree\";\n /**\n * 文本元素\n */\n ItemType[\"text\"] = \"text\";\n /**\n * 灯光元素\n */\n ItemType[\"light\"] = \"light\";\n /**\n * 天空盒元素\n */\n ItemType[\"skybox\"] = \"skybox\";\n})(ItemType || (ItemType = {}));\n/**\n * 渲染模式\n */\nvar RenderMode;\n(function (RenderMode) {\n /**\n * 广告牌模式\n */\n RenderMode[RenderMode[\"BILLBOARD\"] = 0] = \"BILLBOARD\";\n /**\n * 网格模式\n */\n RenderMode[RenderMode[\"MESH\"] = 1] = \"MESH\";\n /**\n * 垂直广告牌模式\n */\n RenderMode[RenderMode[\"VERTICAL_BILLBOARD\"] = 2] = \"VERTICAL_BILLBOARD\";\n /**\n * 水平广告牌模式\n */\n RenderMode[RenderMode[\"HORIZONTAL_BILLBOARD\"] = 3] = \"HORIZONTAL_BILLBOARD\";\n})(RenderMode || (RenderMode = {}));\n/**\n * 变换中心\n */\nvar ParticleOrigin;\n(function (ParticleOrigin) {\n /**\n * 水平和垂直中点\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER\"] = 0] = \"PARTICLE_ORIGIN_CENTER\";\n /**\n * 水平左侧 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_TOP\"] = 1] = \"PARTICLE_ORIGIN_LEFT_TOP\";\n /**\n * 水平左侧 垂直中间\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_CENTER\"] = 2] = \"PARTICLE_ORIGIN_LEFT_CENTER\";\n /**\n * 水平左侧 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_BOTTOM\"] = 3] = \"PARTICLE_ORIGIN_LEFT_BOTTOM\";\n /**\n * 水平中间 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER_TOP\"] = 4] = \"PARTICLE_ORIGIN_CENTER_TOP\";\n /**\n * 水平中间 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER_BOTTOM\"] = 5] = \"PARTICLE_ORIGIN_CENTER_BOTTOM\";\n /**\n * 水平右侧 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_TOP\"] = 6] = \"PARTICLE_ORIGIN_RIGHT_TOP\";\n /**\n * 水平右侧 垂直中间\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_CENTER\"] = 7] = \"PARTICLE_ORIGIN_RIGHT_CENTER\";\n /**\n * 水平右侧 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_BOTTOM\"] = 8] = \"PARTICLE_ORIGIN_RIGHT_BOTTOM\";\n})(ParticleOrigin || (ParticleOrigin = {}));\n\nvar END_BEHAVIOR_DESTROY = 0;\nvar END_BEHAVIOR_PAUSE = 1;\nvar END_BEHAVIOR_FORWARD = 2;\nvar END_BEHAVIOR_PAUSE_AND_DESTROY = 3;\nvar END_BEHAVIOR_FREEZE = 4;\nvar END_BEHAVIOR_RESTART = 5;\nvar END_BEHAVIOR_DESTROY_CHILDREN = 6;\nvar CAMERA_CLIP_MODE_VERTICAL = 1;\nvar CAMERA_CLIP_MODE_NORMAL = 0;\nvar MESSAGE_ITEM_PHRASE_BEGIN = 2;\nvar MESSAGE_ITEM_PHRASE_END = 1;\n\nvar CameraClipMode;\n(function (CameraClipMode) {\n /**\n * 剪裁上下\n */\n CameraClipMode[CameraClipMode[\"portrait\"] = CAMERA_CLIP_MODE_VERTICAL] = \"portrait\";\n /**\n * 剪裁左右\n */\n CameraClipMode[CameraClipMode[\"landscape\"] = CAMERA_CLIP_MODE_NORMAL] = \"landscape\";\n})(CameraClipMode || (CameraClipMode = {}));\n/**\n * 结束行为\n */\nvar CompositionEndBehavior;\n(function (CompositionEndBehavior) {\n /**\n * 销毁\n */\n CompositionEndBehavior[CompositionEndBehavior[\"destroy\"] = END_BEHAVIOR_DESTROY] = \"destroy\";\n /**\n * 暂停\n */\n CompositionEndBehavior[CompositionEndBehavior[\"pause\"] = END_BEHAVIOR_PAUSE] = \"pause\";\n /**\n * 重播\n */\n CompositionEndBehavior[CompositionEndBehavior[\"restart\"] = END_BEHAVIOR_RESTART] = \"restart\";\n /**\n * 无限播放\n */\n CompositionEndBehavior[CompositionEndBehavior[\"forward\"] = END_BEHAVIOR_FORWARD] = \"forward\";\n /**\n * 销毁并保留最后一帧\n */\n CompositionEndBehavior[CompositionEndBehavior[\"pause_destroy\"] = END_BEHAVIOR_PAUSE_AND_DESTROY] = \"pause_destroy\";\n})(CompositionEndBehavior || (CompositionEndBehavior = {}));\n\n/*********************************************/\n/* 基本数值属性参数 */\n/*********************************************/\nvar ValueType;\n(function (ValueType) {\n /**\n * 常数\n */\n ValueType[ValueType[\"CONSTANT\"] = 0] = \"CONSTANT\";\n /**\n * 二维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC2\"] = 1] = \"CONSTANT_VEC2\";\n /**\n * 三维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC3\"] = 2] = \"CONSTANT_VEC3\";\n /**\n * 四维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC4\"] = 3] = \"CONSTANT_VEC4\";\n /**\n * 随机数\n */\n ValueType[ValueType[\"RANDOM\"] = 4] = \"RANDOM\";\n /**\n * 直线\n */\n ValueType[ValueType[\"LINE\"] = 5] = \"LINE\";\n /**\n * 曲线\n */\n ValueType[ValueType[\"CURVE\"] = 6] = \"CURVE\";\n /**\n * 贝塞尔路径\n */\n ValueType[ValueType[\"BEZIER_PATH\"] = 7] = \"BEZIER_PATH\";\n /**\n * 颜色\n */\n ValueType[ValueType[\"RGBA_COLOR\"] = 8] = \"RGBA_COLOR\";\n /**\n * 渐变色\n */\n ValueType[ValueType[\"GRADIENT_COLOR\"] = 9] = \"GRADIENT_COLOR\";\n /**\n * 蒙版形状点集\n */\n ValueType[ValueType[\"SHAPE_POINTS\"] = 10] = \"SHAPE_POINTS\";\n /**\n * 蒙版形状切分\n */\n ValueType[ValueType[\"SHAPE_SPLITS\"] = 11] = \"SHAPE_SPLITS\";\n /**\n *直线路径\n */\n ValueType[ValueType[\"LINEAR_PATH\"] = 12] = \"LINEAR_PATH\";\n /**\n * 多色\n */\n ValueType[ValueType[\"COLORS\"] = 13] = \"COLORS\";\n /**\n * 二进制指针\n */\n ValueType[ValueType[\"BINARY\"] = 20] = \"BINARY\";\n /**\n * 贝塞尔曲线\n */\n ValueType[ValueType[\"BEZIER_CURVE\"] = 21] = \"BEZIER_CURVE\";\n /**\n * 贝塞尔曲线路径\n */\n ValueType[ValueType[\"BEZIER_CURVE_PATH\"] = 22] = \"BEZIER_CURVE_PATH\";\n})(ValueType || (ValueType = {}));\n/**\n * 关键帧类型\n */\nvar BezierKeyframeType;\n(function (BezierKeyframeType) {\n BezierKeyframeType[BezierKeyframeType[\"AUTO\"] = 0] = \"AUTO\";\n BezierKeyframeType[BezierKeyframeType[\"EASE\"] = 1] = \"EASE\";\n BezierKeyframeType[BezierKeyframeType[\"EASE_IN\"] = 2] = \"EASE_IN\";\n BezierKeyframeType[BezierKeyframeType[\"EASE_OUT\"] = 3] = \"EASE_OUT\";\n BezierKeyframeType[BezierKeyframeType[\"LINE\"] = 4] = \"LINE\";\n BezierKeyframeType[BezierKeyframeType[\"HOLD\"] = 5] = \"HOLD\";\n BezierKeyframeType[BezierKeyframeType[\"LINE_OUT\"] = 6] = \"LINE_OUT\";\n})(BezierKeyframeType || (BezierKeyframeType = {}));\n\nvar ItemEndBehavior;\n(function (ItemEndBehavior) {\n ItemEndBehavior[ItemEndBehavior[\"destroy\"] = END_BEHAVIOR_DESTROY] = \"destroy\";\n ItemEndBehavior[ItemEndBehavior[\"loop\"] = END_BEHAVIOR_RESTART] = \"loop\";\n ItemEndBehavior[ItemEndBehavior[\"freeze\"] = END_BEHAVIOR_FREEZE] = \"freeze\";\n})(ItemEndBehavior || (ItemEndBehavior = {}));\nvar ParentItemEndBehavior;\n(function (ParentItemEndBehavior) {\n ParentItemEndBehavior[ParentItemEndBehavior[\"destroyChildren\"] = END_BEHAVIOR_DESTROY_CHILDREN] = \"destroyChildren\";\n})(ParentItemEndBehavior || (ParentItemEndBehavior = {}));\n\n/**\n * 粒子交互行为\n */\nvar ParticleInteractionBehavior;\n(function (ParticleInteractionBehavior) {\n /**\n * 无\n */\n ParticleInteractionBehavior[ParticleInteractionBehavior[\"none\"] = 0] = \"none\";\n /**\n * 移出粒子\n */\n ParticleInteractionBehavior[ParticleInteractionBehavior[\"removeParticle\"] = 1] = \"removeParticle\";\n})(ParticleInteractionBehavior || (ParticleInteractionBehavior = {}));\n\nvar ShapeArcMode;\n(function (ShapeArcMode) {\n /**\n * 随机\n */\n ShapeArcMode[ShapeArcMode[\"RANDOM\"] = 0] = \"RANDOM\";\n /**\n * 单向循环\n */\n ShapeArcMode[ShapeArcMode[\"UNIDIRECTIONAL_CYCLE\"] = 1] = \"UNIDIRECTIONAL_CYCLE\";\n /**\n * 双向循环\n */\n ShapeArcMode[ShapeArcMode[\"BIDIRECTIONAL_CYCLE\"] = 2] = \"BIDIRECTIONAL_CYCLE\";\n /**\n * 均匀爆发\n */\n ShapeArcMode[ShapeArcMode[\"UNIFORM_BURST\"] = 3] = \"UNIFORM_BURST\";\n})(ShapeArcMode || (ShapeArcMode = {}));\n\nvar BloomFilterThresholdAvgColor = 0;\n\nvar ModelBoundingType;\n(function (ModelBoundingType) {\n ModelBoundingType[ModelBoundingType[\"box\"] = 2] = \"box\";\n ModelBoundingType[ModelBoundingType[\"sphere\"] = 3] = \"sphere\";\n})(ModelBoundingType || (ModelBoundingType = {}));\n\n// 材质类型\nvar MaterialType;\n(function (MaterialType) {\n MaterialType[\"unlit\"] = \"unlit\";\n MaterialType[\"pbr\"] = \"pbr\";\n // 头发材质,在 pbr 材质基础上扩展\n MaterialType[\"hair\"] = \"hair\";\n})(MaterialType || (MaterialType = {}));\n// 混合模式\nvar MaterialBlending;\n(function (MaterialBlending) {\n MaterialBlending[MaterialBlending[\"opaque\"] = 100] = \"opaque\";\n MaterialBlending[MaterialBlending[\"masked\"] = 101] = \"masked\";\n MaterialBlending[MaterialBlending[\"translucent\"] = 102] = \"translucent\";\n MaterialBlending[MaterialBlending[\"additive\"] = 103] = \"additive\";\n})(MaterialBlending || (MaterialBlending = {}));\n\n/**\n * 3D渲染模式:将渲染过程中的中间结果输出,主要用于排查渲染效果问题,支持 pbr 和 unlit 材质\n */\nvar RenderMode3D;\n(function (RenderMode3D) {\n /**\n * 正常渲染\n */\n RenderMode3D[\"none\"] = \"none\";\n /**\n * 纹理坐标\n */\n RenderMode3D[\"uv\"] = \"uv\";\n /**\n * 世界坐标法线\n */\n RenderMode3D[\"normal\"] = \"normal\";\n /**\n * 基础颜色\n */\n RenderMode3D[\"basecolor\"] = \"basecolor\";\n /**\n * 基础颜色 Alpha\n */\n RenderMode3D[\"alpha\"] = \"alpha\";\n /**\n * 金属度\n */\n RenderMode3D[\"metallic\"] = \"metallic\";\n /**\n * 粗超度\n */\n RenderMode3D[\"roughness\"] = \"roughness\";\n /**\n * 环境遮蔽\n */\n RenderMode3D[\"ao\"] = \"ao\";\n /**\n * 自发光\n */\n RenderMode3D[\"emissive\"] = \"emissive\";\n})(RenderMode3D || (RenderMode3D = {}));\n\nvar TextOverflow;\n(function (TextOverflow) {\n /**\n * display 模式下,会显示所有文本,存在文本超过边界框的情况。\n */\n TextOverflow[TextOverflow[\"display\"] = 0] = \"display\";\n /**\n * clip 模式下,当文本内容超出边界框时,多余的会被截断。\n */\n TextOverflow[TextOverflow[\"clip\"] = 1] = \"clip\";\n /**\n * ellipsis 模式下,会使用(...)来代替超出边界框的内容。\n */\n TextOverflow[TextOverflow[\"ellipsis\"] = 2] = \"ellipsis\";\n})(TextOverflow || (TextOverflow = {}));\nvar TextBaseline;\n(function (TextBaseline) {\n /**\n * 文本顶对齐。\n */\n TextBaseline[TextBaseline[\"top\"] = 0] = \"top\";\n /**\n * 文本垂直居中对齐。\n */\n TextBaseline[TextBaseline[\"middle\"] = 1] = \"middle\";\n /**\n * 文本底对齐。\n */\n TextBaseline[TextBaseline[\"bottom\"] = 2] = \"bottom\";\n})(TextBaseline || (TextBaseline = {}));\nvar TextAlignment;\n(function (TextAlignment) {\n /**\n * text alignment starts from(x,y) to right direction\n * 从(x,y)开始第一个字符,向右边延伸\n */\n TextAlignment[TextAlignment[\"left\"] = 0] = \"left\";\n /**\n * (x,y) is middle position of text, where (left + right)/2 =(x,y)\n * (x,y) 为文字中间位置,(最左位置 + 最右位置)/2 = (x,y)\n */\n TextAlignment[TextAlignment[\"middle\"] = 1] = \"middle\";\n /**\n * text alignment ends with(x,y) from left direction\n * 从(x,y)结束最后一个字符,向左边延伸\n */\n TextAlignment[TextAlignment[\"right\"] = 2] = \"right\";\n})(TextAlignment || (TextAlignment = {}));\n/**\n * 文本字重\n */\nvar TextWeight;\n(function (TextWeight) {\n /**\n * 正常\n */\n TextWeight[\"normal\"] = \"normal\";\n /**\n * 粗体\n */\n TextWeight[\"bold\"] = \"bold\";\n /**\n * 瘦体\n */\n TextWeight[\"lighter\"] = \"lighter\";\n})(TextWeight || (TextWeight = {}));\n/**\n * 文本样式\n */\nvar FontStyle;\n(function (FontStyle) {\n /**\n * 正常\n */\n FontStyle[\"normal\"] = \"normal\";\n /**\n * 斜体\n */\n FontStyle[\"italic\"] = \"italic\";\n /**\n * 倾斜体\n */\n FontStyle[\"oblique\"] = \"oblique\";\n})(FontStyle || (FontStyle = {}));\n\nexport { BezierKeyframeType, BlendingMode, BloomFilterThresholdAvgColor, CAMERA_CLIP_MODE_NORMAL, CAMERA_CLIP_MODE_VERTICAL, CameraClipMode, CompositionEndBehavior, END_BEHAVIOR_DESTROY, END_BEHAVIOR_DESTROY_CHILDREN, END_BEHAVIOR_FORWARD, END_BEHAVIOR_FREEZE, END_BEHAVIOR_PAUSE, END_BEHAVIOR_PAUSE_AND_DESTROY, END_BEHAVIOR_RESTART, FontStyle, InteractBehavior, InteractType, ItemEndBehavior, ItemType, MESSAGE_ITEM_PHRASE_BEGIN, MESSAGE_ITEM_PHRASE_END, MaskMode, MaterialBlending, MaterialType, ModelBoundingType, ParentItemEndBehavior, ParticleInteractionBehavior, ParticleOrigin, PluginType, RenderLevel, RenderMode, RenderMode3D, ShapeArcMode, ShapeType, SideMode, TextAlignment, TextBaseline, TextOverflow, TextWeight, ValueType };\n//# sourceMappingURL=index.mjs.map\n","export var PI2 = Math.PI * 2;\nexport var DEG2RAD = Math.PI / 180;\nexport var RAD2DEG = 180 / Math.PI;\nexport var NumberEpsilon = 1e-6;\nexport function isZero(v) {\n return isNaN(v) || Math.abs(v) < NumberEpsilon;\n}\nexport function isEqual(a, b) {\n return Math.abs(a - b) < NumberEpsilon || (a === Infinity && b === Infinity) || (a === -Infinity && b === -Infinity);\n}\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nexport var damp = function (x, y, lambda, dt) { return lerp(x, y, 1 - Math.exp(-lambda * dt)); };\n// https://en.wikipedia.org/wiki/Linear_interpolation\nexport var lerp = function (x, y, t) { return (1 - t) * x + t * y; };\nexport var degToRad = function (degrees) { return degrees * DEG2RAD; };\nexport var radToDeg = function (radians) { return radians * RAD2DEG; };\nexport function clamp(value, min, max) {\n var fixedMin = isNaN(min) ? -Infinity : min;\n var fixedMax = isNaN(max) ? Infinity : max;\n var lower = Math.min(fixedMin, fixedMax);\n var upper = Math.max(fixedMin, fixedMax);\n return Math.min(Math.max(value, lower), upper);\n}\n","import { NumberEpsilon } from './utils';\n/**\n * 二维向量\n */\nexport var Vector2 = /** @class */ (function () {\n /**\n * 构造函数,默认为零向量\n * @param [x=0] - x 分量\n * @param [y=0] - y 分量\n */\n function Vector2(x, y) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n this.x = x;\n this.y = y;\n }\n /**\n * 设置向量\n * @param x - x 轴分量\n * @param y - y 轴分量\n * @returns\n */\n Vector2.prototype.set = function (x, y) {\n this.x = x;\n this.y = y;\n return this;\n };\n /**\n * 设置零向量\n * @returns 向量\n */\n Vector2.prototype.setZero = function () {\n this.x = 0;\n this.y = 0;\n return this;\n };\n /**\n * 通过标量数值创建向量\n * @param num - 数值\n * @returns 向量\n */\n Vector2.prototype.setFromNumber = function (num) {\n this.x = num;\n this.y = num;\n return this;\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector2.prototype.setFromArray = function (array, offset) {\n var _a, _b;\n if (offset === void 0) { offset = 0; }\n this.x = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.y = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n return this;\n };\n /**\n * 拷贝向量\n * @param src - 要拷贝的对象\n * @returns 向量\n */\n Vector2.prototype.copyFrom = function (src) {\n this.x = src.x;\n this.y = src.y;\n return this;\n };\n /**\n * 克隆向量\n * @returns 克隆结果\n */\n Vector2.prototype.clone = function () {\n return new Vector2(this.x, this.y);\n };\n /**\n * 根据下标设置元素值\n * @param index - 下标值\n * @param value - 数字\n * @returns 向量\n */\n Vector2.prototype.setElement = function (index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n default: console.error('index is out of range: ' + index);\n }\n return this;\n };\n /**\n * 根据下标获取值\n * @param index - 下标\n * @returns 值\n */\n Vector2.prototype.getElement = function (index) {\n switch (index) {\n case 0: return this.x;\n case 1: return this.y;\n default: console.error('index is out of range: ' + index);\n }\n return 0;\n };\n /**\n * 向量相加\n * @param right - 向量 | 数字\n * @returns 向量\n */\n Vector2.prototype.add = function (right) {\n if (typeof right === 'number') {\n this.x += right;\n this.y += right;\n }\n else if (right instanceof Array) {\n this.x += right[0];\n this.y += right[1];\n }\n else {\n this.x += right.x;\n this.y += right.y;\n }\n return this;\n };\n /**\n * 向量相加\n * @param left - 向量\n * @param right - 向量\n * @returns 相加结果\n */\n Vector2.prototype.addVectors = function (left, right) {\n this.x = left.x + right.x;\n this.y = left.y + right.y;\n return this;\n };\n /**\n * 向量相减\n * @param right - 向量 | 数字\n * @returns 相减结果\n */\n Vector2.prototype.subtract = function (right) {\n if (typeof right === 'number') {\n this.x -= right;\n this.y -= right;\n }\n else if (right instanceof Array) {\n this.x -= right[0];\n this.y -= right[1];\n }\n else {\n this.x -= right.x;\n this.y -= right.y;\n }\n return this;\n };\n /**\n * 向量相减\n * @param left - 向量\n * @param right - 向量\n * @returns 相减结果\n */\n Vector2.prototype.subtractVectors = function (left, right) {\n this.x = left.x - right.x;\n this.y = left.y - right.y;\n return this;\n };\n /**\n * 向量相乘\n * @param right - 向量 | 数字\n * @returns 相乘结果\n */\n Vector2.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n this.x *= right;\n this.y *= right;\n }\n else if (right instanceof Array) {\n this.x *= right[0];\n this.y *= right[1];\n }\n else {\n this.x *= right.x;\n this.y *= right.y;\n }\n return this;\n };\n /**\n * 向量相乘\n * @param left - 向量\n * @param right - 向量\n * @returns 相乘结果\n */\n Vector2.prototype.multiplyVectors = function (left, right) {\n this.x = left.x * right.x;\n this.y = left.y * right.y;\n return this;\n };\n /**\n * 向量相除\n * @param right - 向量 | 数字\n * @returns 相除结果\n */\n Vector2.prototype.divide = function (right) {\n if (typeof right === 'number') {\n this.x /= right;\n this.y /= right;\n }\n else if (right instanceof Array) {\n this.x /= right[0];\n this.y /= right[1];\n }\n else {\n this.x /= right.x;\n this.y /= right.y;\n }\n return this;\n };\n /**\n * 向量缩放\n * @param v - 数字\n * @returns 缩放结果\n */\n Vector2.prototype.scale = function (v) {\n this.x *= v;\n this.y *= v;\n return this;\n };\n /**\n * 分量求和\n * @returns 求和结果\n */\n Vector2.prototype.sum = function () {\n return this.x + this.y;\n };\n /**\n * 向量求最小值\n * @param v - 向量\n * @returns 最小值\n */\n Vector2.prototype.min = function (v) {\n if (typeof v === 'number') {\n this.x = Math.min(this.x, v);\n this.y = Math.min(this.y, v);\n }\n else {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n }\n return this;\n };\n /**\n * 向量求最大值\n * @param v - 向量\n * @returns 最大值\n */\n Vector2.prototype.max = function (v) {\n if (typeof v === 'number') {\n this.x = Math.max(this.x, v);\n this.y = Math.max(this.y, v);\n }\n else {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n }\n return this;\n };\n /**\n * 向量阈值约束\n * @param min - 极小值\n * @param max - 极大值\n * @returns 向量\n */\n Vector2.prototype.clamp = function (min, max) {\n return this.max(min).min(max);\n };\n /**\n * 向量向下取整\n * @returns 取整结果\n */\n Vector2.prototype.floor = function () {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n return this;\n };\n /**\n * 向量向上取整\n * @returns 取整结果\n */\n Vector2.prototype.ceil = function () {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n return this;\n };\n /**\n * 向量取四舍五入\n * @returns 四舍五入结果\n */\n Vector2.prototype.round = function () {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n };\n /**\n * 向量取绝对值\n * @returns 向量\n */\n Vector2.prototype.abs = function () {\n this.x = Math.abs(this.x);\n this.y = Math.abs(this.y);\n return this;\n };\n /**\n * 向量取反\n * @returns 取反结果\n */\n Vector2.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n return this;\n };\n /**\n * 向量长度\n * @returns 求值结果\n */\n Vector2.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n };\n /**\n * 向量长度平方\n * @returns 求值结果\n */\n Vector2.prototype.lengthSquared = function () {\n return this.x * this.x + this.y * this.y;\n };\n /**\n * 向量归一化\n * @returns 归一化结果\n */\n Vector2.prototype.normalize = function () {\n return this.divide(this.length() || 1);\n };\n /**\n * 设置向量长度\n * @param length - 长度\n * @returns 向量\n */\n Vector2.prototype.setLength = function (length) {\n return this.normalize().multiply(length);\n };\n /**\n * 向量线性插值\n * @param other - 向量\n * @param alpha - 插值比\n * @returns 计算结果\n */\n Vector2.prototype.lerp = function (other, alpha) {\n this.x += (other.x - this.x) * alpha;\n this.y += (other.y - this.y) * alpha;\n return this;\n };\n /**\n * 向量线性插值\n * @param v1 - 向量\n * @param v2 - 向量\n * @param alpha - 插值比\n * @returns 计算结果\n */\n Vector2.prototype.lerpVectors = function (v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n return this;\n };\n /**\n * 向量点乘\n * @param v - 向量\n * @returns 点乘结果\n */\n Vector2.prototype.dot = function (v) {\n return this.x * v.x + this.y * v.y;\n };\n /**\n * 向量叉乘\n * @param v - 向量\n * @returns 叉乘结果\n */\n Vector2.prototype.cross = function (v) {\n return this.x * v.y - this.y * v.x;\n };\n /**\n * 点距离\n * @param v - 点\n * @returns 距离\n */\n Vector2.prototype.distance = function (v) {\n var dx = this.x - v.x;\n var dy = this.y - v.y;\n return Math.sqrt(dx * dx + dy * dy);\n };\n /**\n * 点距离平方\n * @param v - 点\n * @returns 距离平方\n */\n Vector2.prototype.distanceSquared = function (v) {\n var dx = this.x - v.x;\n var dy = this.y - v.y;\n return dx * dx + dy * dy;\n };\n /**\n * 向量判等\n * @param v - 向量\n * @returns 判等结果\n */\n Vector2.prototype.equals = function (v) {\n return this.x === v.x && this.y === v.y;\n };\n /**\n * 是否零向量\n * @returns 是否零向量\n */\n Vector2.prototype.isZero = function () {\n var _a;\n var eps = NumberEpsilon;\n var x = (_a = this, _a.x), y = _a.y;\n return Math.abs(x) <= eps && Math.abs(y) <= eps;\n };\n /**\n * 向量转数组\n * @returns 数组\n */\n Vector2.prototype.toArray = function () {\n return [this.x, this.y];\n };\n Vector2.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n array[offset] = this.x;\n array[offset + 1] = this.y;\n };\n /**\n * 随机生成向量\n * @returns 向量\n */\n Vector2.prototype.random = function () {\n this.x = Math.random();\n this.y = Math.random();\n return this;\n };\n /**\n * 通过标量创建向量\n * @param num - 数值\n * @returns 向量\n */\n Vector2.fromNumber = function (num) {\n return new Vector2().setFromNumber(num);\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector2.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Vector2().setFromArray(array, offset);\n };\n /**\n * 二维向量的常量\n */\n Vector2.ONE = new Vector2(1.0, 1.0);\n Vector2.ZERO = new Vector2(0.0, 0.0);\n return Vector2;\n}());\n","import { NumberEpsilon } from './utils';\nimport { Vector2 } from './vector2';\n/**\n * 三维向量\n */\nexport var Vector3 = /** @class */ (function () {\n /**\n * 构造函数,默认值为零向量\n * @param [x=0]\n * @param [y=0]\n * @param [z=0]\n */\n function Vector3(x, y, z) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n this.x = x;\n this.y = y;\n this.z = z;\n }\n /**\n * 设置向量\n * @param x - x 轴分量\n * @param y - y 轴分量\n * @param z - z 轴分量\n * @returns 向量\n */\n Vector3.prototype.set = function (x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n };\n /**\n * 设置零向量\n * @returns 向量\n */\n Vector3.prototype.setZero = function () {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n return this;\n };\n /**\n * 通过标量数值设置向量\n * @param num - 数值\n * @returns 向量\n */\n Vector3.prototype.setFromNumber = function (num) {\n this.x = num;\n this.y = num;\n this.z = num;\n return this;\n };\n /**\n * 通过数组设置向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector3.prototype.setFromArray = function (array, offset) {\n var _a, _b, _c;\n if (offset === void 0) { offset = 0; }\n this.x = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.y = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n this.z = (_c = array[offset + 2]) !== null && _c !== void 0 ? _c : 0;\n return this;\n };\n /**\n * 拷贝向量\n * @param v - 要拷贝的对象\n * @returns 向量\n */\n Vector3.prototype.copyFrom = function (v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n return this;\n };\n /**\n * 克隆向量\n * @returns 向量\n */\n Vector3.prototype.clone = function () {\n return new Vector3(this.x, this.y, this.z);\n };\n /**\n * 根据下标设置向量分量\n * @param index - 下标值\n * @param value - 数字\n * @returns 向量\n */\n Vector3.prototype.setElement = function (index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n case 2:\n this.z = value;\n break;\n default: console.error('index is out of range: ' + index);\n }\n return this;\n };\n /**\n * 根据下标获取向量分量\n * @param index - 下标\n * @returns\n */\n Vector3.prototype.getElement = function (index) {\n switch (index) {\n case 0: return this.x;\n case 1: return this.y;\n case 2: return this.z;\n default: console.error('index is out of range: ' + index);\n }\n return 0;\n };\n /**\n * 向量相加\n * @param right - 向量 | 数字\n * @returns 相加结果\n */\n Vector3.prototype.add = function (right) {\n if (typeof right === 'number') {\n this.x += right;\n this.y += right;\n this.z += right;\n }\n else if (right instanceof Array) {\n this.x += right[0];\n this.y += right[1];\n this.z += right[2];\n }\n else {\n this.x += right.x;\n this.y += right.y;\n this.z += right.z;\n }\n return this;\n };\n /**\n * 向量相加\n * @param left - 向量\n * @param right - 向量\n * @returns 相加结果\n */\n Vector3.prototype.addVectors = function (left, right) {\n this.x = left.x + right.x;\n this.y = left.y + right.y;\n this.z = left.z + right.z;\n return this;\n };\n /**\n * 向量乘比例后相加\n * @param right - 向量\n * @param s - 比例\n * @returns 相加结果\n */\n Vector3.prototype.addScaledVector = function (right, s) {\n this.x += right.x * s;\n this.y += right.y * s;\n this.z += right.z * s;\n return this;\n };\n /**\n * 向量相减\n * @param right - 向量 | 数字\n * @returns 相减\n */\n Vector3.prototype.subtract = function (right) {\n if (typeof right === 'number') {\n this.x -= right;\n this.y -= right;\n this.z -= right;\n }\n else if (right instanceof Array) {\n this.x -= right[0];\n this.y -= right[1];\n this.z -= right[2];\n }\n else {\n this.x -= right.x;\n this.y -= right.y;\n this.z -= right.z;\n }\n return this;\n };\n /**\n * 向量相减\n * @param left - 向量\n * @param right - 向量\n * @returns 相减结果\n */\n Vector3.prototype.subtractVectors = function (left, right) {\n this.x = left.x - right.x;\n this.y = left.y - right.y;\n this.z = left.z - right.z;\n return this;\n };\n /**\n * 向量相乘\n * @param right - 向量 | 数字\n * @returns 相乘结果\n */\n Vector3.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n this.x *= right;\n this.y *= right;\n this.z *= right;\n }\n else if (right instanceof Array) {\n this.x *= right[0];\n this.y *= right[1];\n this.z *= right[2];\n }\n else {\n this.x *= right.x;\n this.y *= right.y;\n this.z *= right.z;\n }\n return this;\n };\n /**\n * 向量相乘\n * @param left - 向量\n * @param right - 向量\n * @returns 相乘结果\n */\n Vector3.prototype.multiplyVectors = function (left, right) {\n this.x = left.x * right.x;\n this.y = left.y * right.y;\n this.z = left.z * right.z;\n return this;\n };\n /**\n * 向量相除\n * @param right - 向量 | 数字\n * @returns 相除结果\n */\n Vector3.prototype.divide = function (right) {\n if (typeof right === 'number') {\n this.x /= right;\n this.y /= right;\n this.z /= right;\n }\n else if (right instanceof Array) {\n this.x /= right[0];\n this.y /= right[1];\n this.z /= right[2];\n }\n else {\n this.x /= right.x;\n this.y /= right.y;\n this.z /= right.z;\n }\n return this;\n };\n /**\n * 向量缩放\n * @param v - 数字\n * @returns 缩放结果\n */\n Vector3.prototype.scale = function (v) {\n this.x *= v;\n this.y *= v;\n this.z *= v;\n return this;\n };\n /**\n * 分量求和\n * @returns 求和结果\n */\n Vector3.prototype.sum = function () {\n return this.x + this.y + this.z;\n };\n /**\n * 向量求最小值\n * @param v - 向量或数值\n * @returns 求值结果\n */\n Vector3.prototype.min = function (v) {\n if (typeof v === 'number') {\n this.x = Math.min(this.x, v);\n this.y = Math.min(this.y, v);\n this.z = Math.min(this.z, v);\n }\n else {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n }\n return this;\n };\n /**\n * 向量求最大值\n * @param v - 向量或数值\n * @returns 求值结果\n */\n Vector3.prototype.max = function (v) {\n if (typeof v === 'number') {\n this.x = Math.max(this.x, v);\n this.y = Math.max(this.y, v);\n this.z = Math.max(this.z, v);\n }\n else {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n }\n return this;\n };\n /**\n * 向量阈值约束\n * @param min - 向量\n * @param max - 向量\n * @returns 求值结果\n */\n Vector3.prototype.clamp = function (min, max) {\n return this.max(min).min(max);\n };\n /**\n * 向量向下取整\n * @returns 取整结果\n */\n Vector3.prototype.floor = function () {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n return this;\n };\n /**\n * 向量向上取整\n * @returns 取整结果\n */\n Vector3.prototype.ceil = function () {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n return this;\n };\n /**\n * 向量四舍五入\n * @returns 计算结果\n */\n Vector3.prototype.round = function () {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n return this;\n };\n /**\n * 向量取绝对值\n * @returns 向量\n */\n Vector3.prototype.abs = function () {\n this.x = Math.abs(this.x);\n this.y = Math.abs(this.y);\n this.z = Math.abs(this.z);\n return this;\n };\n /**\n * 向量取反\n * @returns 向量\n */\n Vector3.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n };\n /**\n * 向量长度\n * @returns 长度\n */\n Vector3.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n };\n /**\n * 向量长度平方\n * @returns 长度平方\n */\n Vector3.prototype.lengthSquared = function () {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n };\n /**\n * 向量归一化\n * @returns 向量\n */\n Vector3.prototype.normalize = function () {\n return this.divide(this.length() || 1);\n };\n /**\n * 设置向量长度\n * @param length - 长度\n * @returns 向量\n */\n Vector3.prototype.setLength = function (length) {\n return this.normalize().multiply(length);\n };\n /**\n * 向量间求线性插值\n * @param other - 向量\n * @param alpha - 插值比例\n * @returns 插值结果\n */\n Vector3.prototype.lerp = function (other, alpha) {\n this.x += (other.x - this.x) * alpha;\n this.y += (other.y - this.y) * alpha;\n this.z += (other.z - this.z) * alpha;\n return this;\n };\n /**\n * 向量间求线性插值\n * @param v1 - 第一个向量\n * @param v2 - 第二个向量\n * @param alpha - 插值比例\n * @returns 求值结果\n */\n Vector3.prototype.lerpVectors = function (v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n return this;\n };\n /**\n * 向量求点积,点积为零表示两向量垂直\n * @param v - 向量\n * @returns 点积结果\n */\n Vector3.prototype.dot = function (v) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n };\n /**\n * 向量求叉积\n * @param right - 向量\n * @returns 叉积结果\n */\n Vector3.prototype.cross = function (right) {\n return this.crossVectors(this, right);\n };\n /**\n * 向量(a 与 b)求叉积\n * @param left - 向量\n * @param right - 向量\n * @returns 叉积结果\n */\n Vector3.prototype.crossVectors = function (left, right) {\n var ax = left.x, ay = left.y, az = left.z;\n var bx = right.x, by = right.y, bz = right.z;\n this.x = ay * bz - az * by;\n this.y = az * bx - ax * bz;\n this.z = ax * by - ay * bx;\n return this;\n };\n /**\n * 向量反射\n * @param normal - 法线\n * @returns 反射结果\n */\n Vector3.prototype.reflect = function (normal) {\n // reflect incident vector off plane orthogonal to normal\n // normal is assumed to have unit length\n return this.subtract(normal.clone().multiply(2 * this.dot(normal)));\n };\n /**\n * 计算向量距离\n * @param v - 向量\n * @returns 距离\n */\n Vector3.prototype.distance = function (v) {\n return Math.sqrt(this.distanceSquared(v));\n };\n /**\n * 计算向量距离平方\n * @param v - 向量\n * @returns 距离平方\n */\n Vector3.prototype.distanceSquared = function (v) {\n var dx = this.x - v.x;\n var dy = this.y - v.y;\n var dz = this.z - v.z;\n return dx * dx + dy * dy + dz * dz;\n };\n /**\n * 向量判等\n * @param v - 向量\n * @returns 判等结果\n */\n Vector3.prototype.equals = function (v) {\n return v.x === this.x && v.y === this.y && v.z === this.z;\n };\n /**\n * 是否零向量\n * @returns 是否零向量\n */\n Vector3.prototype.isZero = function () {\n var _a;\n var eps = NumberEpsilon;\n var x = (_a = this, _a.x), y = _a.y, z = _a.z;\n return Math.abs(x) <= eps && Math.abs(y) <= eps && Math.abs(z) <= eps;\n };\n /**\n * 向量转数组\n * @param array - 目标保存对象\n * @returns 数组\n */\n Vector3.prototype.toArray = function () {\n return [this.x, this.y, this.z];\n };\n Vector3.prototype.toVector2 = function () {\n return new Vector2(this.x, this.y);\n };\n Vector3.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n };\n /**\n * 获取随机向量\n * @returns\n */\n Vector3.prototype.random = function () {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n return this;\n };\n /**\n * 用欧拉角旋转向量\n * @param euler - 欧拉角\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 旋转结果\n */\n Vector3.prototype.applyEuler = function (euler, out) {\n return euler.rotateVector3(this, out);\n };\n /**\n * 用四元数旋转向量\n * @param q - 四元数\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 旋转结果\n */\n Vector3.prototype.applyQuaternion = function (q, out) {\n return q.rotateVector3(this, out);\n };\n /**\n * 用矩阵变换点\n * @param m - 变换矩阵\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 结果点\n */\n Vector3.prototype.applyMatrix = function (m, out) {\n return m.transformPoint(this, out);\n };\n /**\n * 用法向量矩阵变换法向量\n * @param m - 法向量矩阵\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 向量\n */\n Vector3.prototype.applyNormalMatrix = function (m, out) {\n return m.transformNormal(this, out);\n };\n /**\n * 用投影矩阵变换点\n * @param m - 投影矩阵\n * @param [out] - 输出结果,如果没有就覆盖当前向量值\n * @returns 结果点\n */\n Vector3.prototype.applyProjectionMatrix = function (m, out) {\n return m.projectPoint(this, out);\n };\n /**\n * 通过标量数值创建向量\n * @param num - 数值\n * @returns 向量\n */\n Vector3.fromNumber = function (num) {\n return new Vector3().setFromNumber(num);\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector3.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Vector3().setFromArray(array, offset);\n };\n /**\n * 三维向量的常量\n */\n Vector3.X = new Vector3(1.0, 0.0, 0.0);\n Vector3.Y = new Vector3(0.0, 1.0, 0.0);\n Vector3.Z = new Vector3(0.0, 0.0, 1.0);\n Vector3.ONE = new Vector3(1.0, 1.0, 1.0);\n Vector3.ZERO = new Vector3(0.0, 0.0, 0.0);\n return Vector3;\n}());\n","import { clamp } from './utils';\nimport { Vector3 } from './vector3';\n/**\n * 四元数\n */\nexport var Quaternion = /** @class */ (function () {\n /**\n * 构造函数\n * @param [x=0] - x 分量\n * @param [y=0] - y 分量\n * @param [z=0] - z 分量\n * @param [w=1] - w 分量\n */\n function Quaternion(x, y, z, w) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n if (w === void 0) { w = 1; }\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n }\n /**\n * 四元数设置\n * @param x - x 分量\n * @param y - y 分量\n * @param z - z 分量\n * @param w - w 分量\n * @returns 四元数\n */\n Quaternion.prototype.set = function (x, y, z, w) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n return this;\n };\n /**\n * 通过欧拉角设置四元数\n * @param euler - 欧拉角\n * @returns\n */\n Quaternion.prototype.setFromEuler = function (euler) {\n euler.toQuaternion(this);\n return this;\n };\n /**\n * 通过旋转轴和旋转角度设置四元数\n * @param axis - 旋转轴\n * @param angle - 旋转角度(弧度)\n * @returns\n */\n Quaternion.prototype.setFromAxisAngle = function (axis, angle) {\n var halfAngle = angle / 2;\n var s = Math.sin(halfAngle);\n var v = Quaternion.tempVec0;\n v.copyFrom(axis).normalize();\n this.x = v.x * s;\n this.y = v.y * s;\n this.z = v.z * s;\n this.w = Math.cos(halfAngle);\n return this;\n };\n /**\n * 通过数组设置四元数\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns\n */\n Quaternion.prototype.setFromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n this.w = array[offset + 3];\n return this;\n };\n /**\n * 通过矩阵设置四元数\n * @param m - 矩阵\n * @returns\n */\n Quaternion.prototype.setFromRotationMatrix = function (m) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n var te = m.elements;\n var m11 = te[0];\n var m12 = te[4];\n var m13 = te[8];\n var m21 = te[1];\n var m22 = te[5];\n var m23 = te[9];\n var m31 = te[2];\n var m32 = te[6];\n var m33 = te[10];\n var trace = m11 + m22 + m33;\n if (trace > 0) {\n var s = 0.5 / Math.sqrt(trace + 1.0);\n this.w = 0.25 / s;\n this.x = (m32 - m23) * s;\n this.y = (m13 - m31) * s;\n this.z = (m21 - m12) * s;\n }\n else if (m11 > m22 && m11 > m33) {\n var s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33);\n this.w = (m32 - m23) / s;\n this.x = 0.25 * s;\n this.y = (m12 + m21) / s;\n this.z = (m13 + m31) / s;\n this.negate();\n }\n else if (m22 > m33) {\n var s = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33);\n this.w = (m13 - m31) / s;\n this.x = (m12 + m21) / s;\n this.y = 0.25 * s;\n this.z = (m23 + m32) / s;\n this.negate();\n }\n else {\n var s = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22);\n this.w = (m21 - m12) / s;\n this.x = (m13 + m31) / s;\n this.y = (m23 + m32) / s;\n this.z = 0.25 * s;\n this.negate();\n }\n // 兼容原先数学库\n return this;\n };\n /**\n * 通过开始和结束向量设置四元数\n * @param from - 开始向量\n * @param to - 结束向量\n * @returns\n */\n Quaternion.prototype.setFromUnitVectors = function (from, to) {\n // assumes direction vectors vFrom and vTo are normalized\n var r = from.dot(to) + 1;\n if (r < Number.EPSILON) {\n r = 0;\n if (Math.abs(from.x) > Math.abs(from.z)) {\n this.x = -from.y;\n this.y = from.x;\n this.z = 0;\n this.w = r;\n }\n else {\n this.x = 0;\n this.y = -from.z;\n this.z = from.y;\n this.w = r;\n }\n }\n else {\n this.x = from.y * to.z - from.z * to.y;\n this.y = from.z * to.x - from.x * to.z;\n this.z = from.x * to.y - from.y * to.x;\n this.w = r;\n }\n return this.normalize();\n };\n /**\n * 四元数拷贝\n * @param quat - 拷贝目标四元数\n * @returns 拷贝四元数\n */\n Quaternion.prototype.copyFrom = function (quat) {\n this.x = quat.x;\n this.y = quat.y;\n this.z = quat.z;\n this.w = quat.w;\n return this;\n };\n /**\n * 四元数克隆\n * @returns 克隆结果\n */\n Quaternion.prototype.clone = function () {\n return new Quaternion(this.x, this.y, this.z, this.w);\n };\n /**\n * 四元数间的夹角计算\n * @param other - 其他四元数\n * @returns 夹角\n */\n Quaternion.prototype.angleTo = function (other) {\n return 2 * Math.acos(Math.abs(clamp(this.dot(other), -1, 1)));\n };\n /**\n * 四元数向目标旋转\n * @param q - 四元数\n * @param step - 旋转弧度\n * @returns 目标四元数\n */\n Quaternion.prototype.rotateTowards = function (q, step) {\n var angle = this.angleTo(q);\n if (angle === 0) {\n return this;\n }\n var t = Math.min(1, step / angle);\n this.slerp(q, t);\n return this;\n };\n /**\n * 四元数单位化\n * @returns 单位四元数\n */\n Quaternion.prototype.identity = function () {\n return this.set(0, 0, 0, 1);\n };\n /**\n * 四元数求逆\n * @returns 四元数的逆\n */\n Quaternion.prototype.invert = function () {\n return this.conjugate();\n };\n /**\n * 四元数取负\n * @returns 负四元数\n */\n Quaternion.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n this.w = -this.w;\n return this;\n };\n /**\n * 四元数求共轭值\n * @returns 四元数的共轭值\n */\n Quaternion.prototype.conjugate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n };\n /**\n * 四元数点乘结果\n * @param v\n * @return\n */\n Quaternion.prototype.dot = function (v) {\n return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n };\n /**\n * 四元数的模平方\n * @return\n */\n Quaternion.prototype.lengthSquared = function () {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n };\n /**\n * 四元数的欧式长度\n * @returns 长度\n */\n Quaternion.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n };\n /**\n * 四元数归一化\n * @returns 归一化值\n */\n Quaternion.prototype.normalize = function () {\n var l = this.length();\n if (l === 0) {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 1;\n }\n else {\n l = 1 / l;\n this.x = this.x * l;\n this.y = this.y * l;\n this.z = this.z * l;\n this.w = this.w * l;\n }\n return this;\n };\n /**\n * 四元数右乘\n * @param right - 右乘的四元数\n * @returns\n */\n Quaternion.prototype.multiply = function (right) {\n return this.multiplyQuaternions(this, right);\n };\n /**\n * 四元数左乘\n * @param left - 左乘的四元数\n * @returns\n */\n Quaternion.prototype.premultiply = function (left) {\n return this.multiplyQuaternions(left, this);\n };\n /**\n * 四元数乘法\n * @param left - 四元数\n * @param right - 四元数\n * @returns 四元数\n */\n Quaternion.prototype.multiplyQuaternions = function (left, right) {\n // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n var qax = left.x;\n var qay = left.y;\n var qaz = left.z;\n var qaw = left.w;\n var qbx = right.x;\n var qby = right.y;\n var qbz = right.z;\n var qbw = right.w;\n this.x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n this.y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n this.z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n this.w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n return this;\n };\n /**\n * 四元数线性插值\n * @see http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n * @param other - 四元数\n * @param t - 插值比\n * @returns 插值结果\n */\n Quaternion.prototype.slerp = function (other, t) {\n var _a;\n if (t === 0) {\n return this;\n }\n if (t === 1) {\n return this.copyFrom(other);\n }\n var x = (_a = this, _a.x), y = _a.y, z = _a.z, w = _a.w;\n var cosHalfTheta = w * other.w + x * other.x + y * other.y + z * other.z;\n if (cosHalfTheta < 0) {\n this.w = -other.w;\n this.x = -other.x;\n this.y = -other.y;\n this.z = -other.z;\n cosHalfTheta = -cosHalfTheta;\n }\n else {\n this.copyFrom(other);\n }\n if (cosHalfTheta >= 1.0) {\n this.w = w;\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n }\n var sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n if (sqrSinHalfTheta <= Number.EPSILON) {\n var s = 1 - t;\n this.w = s * w + t * this.w;\n this.x = s * x + t * this.x;\n this.y = s * y + t * this.y;\n this.z = s * z + t * this.z;\n this.normalize();\n return this;\n }\n var sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n var halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta;\n var ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n this.w = (w * ratioA + this.w * ratioB);\n this.x = (x * ratioA + this.x * ratioB);\n this.y = (y * ratioA + this.y * ratioB);\n this.z = (z * ratioA + this.z * ratioB);\n return this;\n };\n /**\n * 两个四元数的线性插值\n * @param qa - 四元数\n * @param qb - 四元数\n * @param t - 插值比\n */\n Quaternion.prototype.slerpQuaternions = function (qa, qb, t) {\n this.copyFrom(qa).slerp(qb, t);\n };\n /**\n * 通过四元数旋转向量\n * @param v - 待旋转向量\n * @param [out] - 旋转结果,如果没有传入直接覆盖输入值\n * @returns\n */\n Quaternion.prototype.rotateVector3 = function (v, out) {\n var _a;\n var qx = (_a = this, _a.x), qy = _a.y, qz = _a.z, qw = _a.w;\n var vx = v.x, vy = v.y, vz = v.z;\n var ix = qw * vx + qy * vz - qz * vy;\n var iy = qw * vy + qz * vx - qx * vz;\n var iz = qw * vz + qx * vy - qy * vx;\n var iw = -qx * vx - qy * vy - qz * vz;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n res.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n res.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n return res;\n };\n /**\n * 四元数判等\n * @param quaternion - 四元数\n * @returns 判等结果\n */\n Quaternion.prototype.equals = function (quaternion) {\n return quaternion.x === this.x\n && quaternion.y === this.y\n && quaternion.z === this.z\n && quaternion.w === this.w;\n };\n /**\n * 四元数保存为数组\n * @returns\n */\n Quaternion.prototype.toArray = function () {\n return [this.x, this.y, this.z, this.w];\n };\n /**\n * 四元数转四维向量数组\n * @param vec - 目标保存对象\n * @returns 保存结果\n */\n Quaternion.prototype.toVector4 = function (vec) {\n return vec.set(this.x, this.y, this.z, this.w);\n };\n /**\n * 四元数转欧拉角\n * @param euler - 目标欧拉角\n * @returns 欧拉角\n */\n Quaternion.prototype.toEuler = function (euler) {\n return euler.setFromQuaternion(this);\n };\n /**\n * 四元数转矩阵\n * @param mat - 目标矩阵\n * @returns\n */\n Quaternion.prototype.toMatrix4 = function (mat) {\n return mat.compose(Vector3.ZERO, this, Vector3.ONE);\n };\n /**\n * 通过欧拉角创建四元数\n * @param euler - 欧拉角\n * @returns 四元数\n */\n Quaternion.fromEuler = function (euler) {\n return new Quaternion().setFromEuler(euler);\n };\n /**\n * 通过旋转轴和旋转角度创建四元数\n * @param axis - 旋转轴\n * @param angle - 旋转角(弧度值)\n * @returns 四元数\n */\n Quaternion.fromAxisAngle = function (axis, angle) {\n return new Quaternion().setFromAxisAngle(axis, angle);\n };\n /**\n * 通过数组获取四元数\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 四元数\n */\n Quaternion.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Quaternion().setFromArray(array, offset);\n };\n /**\n * 通过旋转矩阵创建四元数\n * @param m - 旋转矩阵\n * @returns 四元数\n */\n Quaternion.fromRotationMatrix = function (m) {\n return new Quaternion().setFromRotationMatrix(m);\n };\n /**\n * 通过开始和结束向量创建四元数\n * @param from - 开始向量\n * @param to - 结束向量\n * @returns\n */\n Quaternion.fromUnitVectors = function (from, to) {\n return new Quaternion().setFromUnitVectors(from, to);\n };\n Quaternion.tempVec0 = new Vector3();\n return Quaternion;\n}());\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { Vector3 } from './vector3';\nimport { isEqual } from './utils';\nimport { Quaternion } from './quaternion';\n/**\n * 四阶矩阵(列优先矩阵)\n */\nexport var Matrix4 = /** @class */ (function () {\n /**\n * 构造函数,初始值为单位矩阵\n * @param [m11=1] - 第 1 行,第 1 列\n * @param [m21=0] - 第 2 行,第 1 列\n * @param [m31=0] - 第 3 行,第 1 列\n * @param [m41=0] - 第 4 行,第 1 列\n * @param [m12=0] - 第 1 行,第 2 列\n * @param [m22=1] - 第 2 行,第 2 列\n * @param [m32=0] - 第 3 行,第 2 列\n * @param [m42=0] - 第 4 行,第 2 列\n * @param [m13=0] - 第 1 行,第 3 列\n * @param [m23=0] - 第 2 行,第 3 列\n * @param [m33=1] - 第 3 行,第 3 列\n * @param [m43=0] - 第 4 行,第 3 列\n * @param [m14=0] - 第 1 行,第 4 列\n * @param [m24=0] - 第 2 行,第 4 列\n * @param [m34=0] - 第 3 行,第 4 列\n * @param [m44=1] - 第 4 行,第 4 列\n */\n function Matrix4(m11, m21, m31, m41, m12, m22, m32, m42, m13, m23, m33, m43, m14, m24, m34, m44) {\n if (m11 === void 0) { m11 = 1; }\n if (m21 === void 0) { m21 = 0; }\n if (m31 === void 0) { m31 = 0; }\n if (m41 === void 0) { m41 = 0; }\n if (m12 === void 0) { m12 = 0; }\n if (m22 === void 0) { m22 = 1; }\n if (m32 === void 0) { m32 = 0; }\n if (m42 === void 0) { m42 = 0; }\n if (m13 === void 0) { m13 = 0; }\n if (m23 === void 0) { m23 = 0; }\n if (m33 === void 0) { m33 = 1; }\n if (m43 === void 0) { m43 = 0; }\n if (m14 === void 0) { m14 = 0; }\n if (m24 === void 0) { m24 = 0; }\n if (m34 === void 0) { m34 = 0; }\n if (m44 === void 0) { m44 = 1; }\n this.elements = [\n m11, m21, m31, m41,\n m12, m22, m32, m42,\n m13, m23, m33, m43,\n m14, m24, m34, m44,\n ];\n }\n /**\n * 设置矩阵\n * @param m11 - 第 1 行,第 1 列\n * @param m21 - 第 2 行,第 1 列\n * @param m31 - 第 3 行,第 1 列\n * @param m41 - 第 4 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m22 - 第 2 行,第 2 列\n * @param m32 - 第 3 行,第 2 列\n * @param m42 - 第 4 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m23 - 第 2 行,第 3 列\n * @param m33 - 第 3 行,第 3 列\n * @param m43 - 第 4 行,第 3 列\n * @param m14 - 第 1 行,第 4 列\n * @param m24 - 第 2 行,第 4 列\n * @param m34 - 第 3 行,第 4 列\n * @param m44 - 第 4 行,第 4 列\n * @returns 矩阵\n */\n Matrix4.prototype.set = function (m11, m21, m31, m41, m12, m22, m32, m42, m13, m23, m33, m43, m14, m24, m34, m44) {\n var e = this.elements;\n e[0] = m11;\n e[1] = m21;\n e[2] = m31;\n e[3] = m41;\n e[4] = m12;\n e[5] = m22;\n e[6] = m32;\n e[7] = m42;\n e[8] = m13;\n e[9] = m23;\n e[10] = m33;\n e[11] = m43;\n e[12] = m14;\n e[13] = m24;\n e[14] = m34;\n e[15] = m44;\n return this;\n };\n /**\n * 通过行优先数据设置矩阵\n * @param m11 - 第 1 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m14 - 第 1 行,第 4 列\n * @param m21 - 第 2 行,第 1 列\n * @param m22 - 第 2 行,第 2 列\n * @param m23 - 第 2 行,第 3 列\n * @param m24 - 第 2 行,第 4 列\n * @param m31 - 第 3 行,第 1 列\n * @param m32 - 第 3 行,第 2 列\n * @param m33 - 第 3 行,第 3 列\n * @param m34 - 第 3 行,第 4 列\n * @param m41 - 第 4 行,第 1 列\n * @param m42 - 第 4 行,第 2 列\n * @param m43 - 第 4 行,第 3 列\n * @param m44 - 第 4 行,第 4 列\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRowMajorData = function (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) {\n var e = this.elements;\n e[0] = m11;\n e[4] = m12;\n e[8] = m13;\n e[12] = m14;\n e[1] = m21;\n e[5] = m22;\n e[9] = m23;\n e[13] = m24;\n e[2] = m31;\n e[6] = m32;\n e[10] = m33;\n e[14] = m34;\n e[3] = m41;\n e[7] = m42;\n e[11] = m43;\n e[15] = m44;\n return this;\n };\n /**\n * 通过四个列向量设置矩阵\n * @param c1 - 第一列\n * @param c2 - 第二列\n * @param c3 - 第三列\n * @param c4 - 第四列\n * @returns 矩阵\n */\n Matrix4.prototype.setFromColumnVectors = function (c1, c2, c3, c4) {\n return this.set(c1.x, c1.y, c1.z, c1.w, c2.x, c2.y, c2.z, c2.w, c3.x, c3.y, c3.z, c3.w, c4.x, c4.y, c4.z, c4.w);\n };\n /**\n * 通过三维矩阵设置矩阵\n * @param m - 三维矩阵\n * @returns 设置结果\n */\n Matrix4.prototype.setFromMatrix3 = function (m) {\n var me = m.elements;\n this.set(me[0], me[1], me[2], 0, me[3], me[4], me[5], 0, me[6], me[7], me[8], 0, 0, 0, 0, 1);\n return this;\n };\n /**\n * 通过数组设置矩阵\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 矩阵\n */\n Matrix4.prototype.setFromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n for (var i = 0; i < 16; i++) {\n this.elements[i] = array[offset + i];\n }\n return this;\n };\n /**\n * 通过缩放设置矩阵\n * @param x - x 方向缩放\n * @param y - y 方向缩放\n * @param z - z 方向缩放\n * @returns 缩放矩阵\n */\n Matrix4.prototype.setFromScale = function (x, y, z) {\n return this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1);\n };\n /**\n * 通过平移设置矩阵\n * @param x - x 方向平移\n * @param y - y 方向平移\n * @param z - z 方向平移\n * @returns 平移矩阵\n */\n Matrix4.prototype.setFromTranslation = function (x, y, z) {\n return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, x, y, z, 1);\n };\n /**\n * 通过 x 轴旋转角度设置矩阵\n * @param theta - x 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRotationX = function (theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n return this.set(1, 0, 0, 0, 0, c, s, 0, 0, -s, c, 0, 0, 0, 0, 1);\n };\n /**\n * 通过 y 轴旋转角度设置矩阵\n * @param theta - y 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRotationY = function (theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n return this.set(c, 0, -s, 0, 0, 1, 0, 0, s, 0, c, 0, 0, 0, 0, 1);\n };\n /**\n * 通过 z 轴旋转角度设置矩阵\n * @param theta - z 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRotationZ = function (theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n return this.set(c, s, 0, 0, -s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n };\n /**\n * 根据三维旋转轴与弧度设置矩阵\n * @param axis - 三维旋转轴\n * @param angle - 旋转弧度\n * @returns 矩阵\n */\n Matrix4.prototype.setFromRotationAxis = function (axis, angle) {\n // Based on http://www.gamedev.net/reference/articles/article1199.asp\n var v = Matrix4.tempVec0;\n v.copyFrom(axis).normalize();\n var c = Math.cos(angle);\n var s = Math.sin(angle);\n var t = 1 - c;\n var x = v.x, y = v.y, z = v.z;\n var tx = t * x;\n var ty = t * y;\n return this.set(tx * x + c, tx * y + s * z, tx * z - s * y, 0, tx * y - s * z, ty * y + c, ty * z + s * x, 0, tx * z + s * y, ty * z - s * x, t * z * z + c, 0, 0, 0, 0, 1);\n };\n /**\n * 通过欧拉角设置矩阵\n * @param euler - 欧拉角\n * @returns 矩阵\n */\n Matrix4.prototype.setFromEuler = function (euler) {\n euler.toMatrix4(this);\n return this;\n };\n /**\n * 通过四元数设置矩阵\n * @param quat - 四元数\n * @returns 矩阵\n */\n Matrix4.prototype.setFromQuaternion = function (quat) {\n return this.compose(Vector3.ZERO, quat, Vector3.ONE);\n };\n /**\n * 通过倾斜参数设置矩阵\n * @param x - x 方向倾斜分量\n * @param y - y 方向倾斜分量\n * @param z - z 方向倾斜分量\n * @returns 倾斜矩阵\n */\n Matrix4.prototype.setFromShear = function (x, y, z) {\n return this.set(1, x, x, 0, y, 1, y, 0, z, z, 1, 0, 0, 0, 0, 1);\n };\n /**\n * 通过基轴设置矩阵\n * @param xAxis - x 轴\n * @param yAxis - y 轴\n * @param zAxis - z 轴\n * @returns 倾斜矩阵\n */\n Matrix4.prototype.setFromBasis = function (xAxis, yAxis, zAxis) {\n return this.set(xAxis.x, xAxis.y, xAxis.z, 0, yAxis.x, yAxis.y, yAxis.z, 0, zAxis.x, zAxis.y, zAxis.z, 0, 0, 0, 0, 1);\n };\n /**\n * 矩阵清零\n * @returns 零矩阵\n */\n Matrix4.prototype.setZero = function () {\n for (var i = 0; i < 16; i++) {\n this.elements[i] = 0;\n }\n return this;\n };\n /**\n * 矩阵单位化\n * @returns 单位矩阵\n */\n Matrix4.prototype.identity = function () {\n return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n };\n /**\n * 单位阵判断\n * @returns 判断结果\n */\n Matrix4.prototype.isIdentity = function () {\n var e = this.elements;\n return e[0] === 1 && e[4] === 0 && e[8] === 0 && e[12] === 0\n && e[1] === 0 && e[5] === 1 && e[9] === 0 && e[13] === 0\n && e[2] === 0 && e[6] === 0 && e[10] === 1 && e[14] === 0\n && e[3] === 0 && e[7] === 0 && e[11] === 0 && e[15] === 1;\n };\n /**\n * 矩阵克隆\n * @returns 克隆结果\n */\n Matrix4.prototype.clone = function () {\n var e = this.elements;\n return new Matrix4(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8], e[9], e[10], e[11], e[12], e[13], e[14], e[15]);\n };\n /**\n * 矩阵复制\n * @param m - 复制对象\n * @returns 复制结果\n */\n Matrix4.prototype.copyFrom = function (m) {\n this.elements = __spreadArray([], __read(m.elements), false);\n return this;\n };\n /**\n * 得到列向量\n * @param i - 列向量索引,从 0 开始\n * @param v\n * @returns 矩阵\n */\n Matrix4.prototype.getColumnVector = function (i, v) {\n return v.set(this.elements[i * 4], this.elements[i * 4 + 1], this.elements[i * 4 + 2], this.elements[i * 4 + 3]);\n };\n /**\n * 设置相机矩阵\n * @param eye - 相机位置\n * @param target - 目标位置\n * @param up - 相机方向\n * @returns 矩阵\n */\n Matrix4.prototype.lookAt = function (eye, target, up) {\n var vX = Matrix4.tempVec0;\n var vY = Matrix4.tempVec1;\n var vZ = Matrix4.tempVec2;\n vZ.subtractVectors(eye, target);\n vZ.normalize();\n vX.crossVectors(up, vZ);\n vX.normalize();\n vY.crossVectors(vZ, vX);\n var te = this.elements;\n te[0] = vX.x;\n te[1] = vY.x;\n te[2] = vZ.x;\n te[3] = 0;\n te[4] = vX.y;\n te[5] = vY.y;\n te[6] = vZ.y;\n te[7] = 0;\n te[8] = vX.z;\n te[9] = vY.z;\n te[10] = vZ.z;\n te[11] = 0;\n te[12] = -vX.dot(eye);\n te[13] = -vY.dot(eye);\n te[14] = -vZ.dot(eye);\n te[15] = 1;\n return this;\n };\n /**\n * 矩阵乘比例后相加\n * @param right - 矩阵\n * @param s - 比例\n * @returns 相加结果\n */\n Matrix4.prototype.addScaledMatrix = function (right, s) {\n var te = this.elements;\n var re = right.elements;\n for (var i = 0; i < 16; i++) {\n te[i] += re[i] * s;\n }\n return this;\n };\n /**\n * 矩阵右乘\n * @param right - 右侧矩阵或数值\n * @returns 右乘结果\n */\n Matrix4.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n for (var i = 0; i < 16; i++) {\n this.elements[i] *= right;\n }\n return this;\n }\n else {\n return this.multiplyMatrices(this, right);\n }\n };\n /**\n * 矩阵左乘\n * @param left - 左侧矩阵\n * @returns 左乘结果\n */\n Matrix4.prototype.premultiply = function (left) {\n return this.multiplyMatrices(left, this);\n };\n /**\n * 矩阵相乘\n * @param left - 矩阵\n * @param right - 矩阵\n * @returns 相乘结果\n */\n Matrix4.prototype.multiplyMatrices = function (left, right) {\n var ae = left.elements;\n var be = right.elements;\n var te = this.elements;\n var a11 = ae[0], a12 = ae[4], a13 = ae[8], a14 = ae[12];\n var a21 = ae[1], a22 = ae[5], a23 = ae[9], a24 = ae[13];\n var a31 = ae[2], a32 = ae[6], a33 = ae[10], a34 = ae[14];\n var a41 = ae[3], a42 = ae[7], a43 = ae[11], a44 = ae[15];\n var b11 = be[0], b12 = be[4], b13 = be[8], b14 = be[12];\n var b21 = be[1], b22 = be[5], b23 = be[9], b24 = be[13];\n var b31 = be[2], b32 = be[6], b33 = be[10], b34 = be[14];\n var b41 = be[3], b42 = be[7], b43 = be[11], b44 = be[15];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n return this;\n };\n /**\n * 矩阵缩放\n * @param s - 缩放比例\n * @returns 缩放结果\n */\n Matrix4.prototype.multiplyScalar = function (s) {\n var e = this.elements;\n e[0] *= s;\n e[4] *= s;\n e[8] *= s;\n e[12] *= s;\n e[1] *= s;\n e[5] *= s;\n e[9] *= s;\n e[13] *= s;\n e[2] *= s;\n e[6] *= s;\n e[10] *= s;\n e[14] *= s;\n e[3] *= s;\n e[7] *= s;\n e[11] *= s;\n e[15] *= s;\n return this;\n };\n /**\n * 矩阵求行列式值\n * @returns 行列式值\n */\n Matrix4.prototype.determinant = function () {\n var e = this.elements;\n var m11 = e[0], m12 = e[4], m13 = e[8], m14 = e[12];\n var m21 = e[1], m22 = e[5], m23 = e[9], m24 = e[13];\n var m31 = e[2], m32 = e[6], m33 = e[10], m34 = e[14];\n var m41 = e[3], m42 = e[7], m43 = e[11], m44 = e[15];\n return (m41 * (+m14 * m23 * m32\n - m13 * m24 * m32\n - m14 * m22 * m33\n + m12 * m24 * m33\n + m13 * m22 * m34\n - m12 * m23 * m34) +\n m42 * (+m11 * m23 * m34\n - m11 * m24 * m33\n + m14 * m21 * m33\n - m13 * m21 * m34\n + m13 * m24 * m31\n - m14 * m23 * m31) +\n m43 * (+m11 * m24 * m32\n - m11 * m22 * m34\n - m14 * m21 * m32\n + m12 * m21 * m34\n + m14 * m22 * m31\n - m12 * m24 * m31) +\n m44 * (-m13 * m22 * m31\n - m11 * m23 * m32\n + m11 * m22 * m33\n + m13 * m21 * m32\n - m12 * m21 * m33\n + m12 * m23 * m31));\n };\n /**\n * 矩阵转置\n * @returns 转置结果\n */\n Matrix4.prototype.transpose = function () {\n var e = this.elements;\n var t;\n t = e[1];\n e[1] = e[4];\n e[4] = t;\n t = e[2];\n e[2] = e[8];\n e[8] = t;\n t = e[3];\n e[3] = e[12];\n e[12] = t;\n //\n t = e[6];\n e[6] = e[9];\n e[9] = t;\n t = e[7];\n e[7] = e[13];\n e[13] = t;\n t = e[11];\n e[11] = e[14];\n e[14] = t;\n return this;\n };\n /**\n * 矩阵求逆\n * @returns 逆矩阵\n */\n Matrix4.prototype.invert = function () {\n // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n var e = this.elements;\n var m11 = e[0], m21 = e[1], m31 = e[2], m41 = e[3];\n var m12 = e[4], m22 = e[5], m32 = e[6], m42 = e[7];\n var m13 = e[8], m23 = e[9], m33 = e[10], m43 = e[11];\n var m14 = e[12], m24 = e[13], m34 = e[14], m44 = e[15];\n var t11 = m23 * m34 * m42 - m24 * m33 * m42 + m24 * m32 * m43 - m22 * m34 * m43 - m23 * m32 * m44 + m22 * m33 * m44;\n var t12 = m14 * m33 * m42 - m13 * m34 * m42 - m14 * m32 * m43 + m12 * m34 * m43 + m13 * m32 * m44 - m12 * m33 * m44;\n var t13 = m13 * m24 * m42 - m14 * m23 * m42 + m14 * m22 * m43 - m12 * m24 * m43 - m13 * m22 * m44 + m12 * m23 * m44;\n var t14 = m14 * m23 * m32 - m13 * m24 * m32 - m14 * m22 * m33 + m12 * m24 * m33 + m13 * m22 * m34 - m12 * m23 * m34;\n var det = m11 * t11 + m21 * t12 + m31 * t13 + m41 * t14;\n if (det === 0) {\n return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n var detInv = 1 / det;\n e[0] = t11 * detInv;\n e[1] = (m24 * m33 * m41 - m23 * m34 * m41 - m24 * m31 * m43 + m21 * m34 * m43 + m23 * m31 * m44 - m21 * m33 * m44) * detInv;\n e[2] = (m22 * m34 * m41 - m24 * m32 * m41 + m24 * m31 * m42 - m21 * m34 * m42 - m22 * m31 * m44 + m21 * m32 * m44) * detInv;\n e[3] = (m23 * m32 * m41 - m22 * m33 * m41 - m23 * m31 * m42 + m21 * m33 * m42 + m22 * m31 * m43 - m21 * m32 * m43) * detInv;\n e[4] = t12 * detInv;\n e[5] = (m13 * m34 * m41 - m14 * m33 * m41 + m14 * m31 * m43 - m11 * m34 * m43 - m13 * m31 * m44 + m11 * m33 * m44) * detInv;\n e[6] = (m14 * m32 * m41 - m12 * m34 * m41 - m14 * m31 * m42 + m11 * m34 * m42 + m12 * m31 * m44 - m11 * m32 * m44) * detInv;\n e[7] = (m12 * m33 * m41 - m13 * m32 * m41 + m13 * m31 * m42 - m11 * m33 * m42 - m12 * m31 * m43 + m11 * m32 * m43) * detInv;\n e[8] = t13 * detInv;\n e[9] = (m14 * m23 * m41 - m13 * m24 * m41 - m14 * m21 * m43 + m11 * m24 * m43 + m13 * m21 * m44 - m11 * m23 * m44) * detInv;\n e[10] = (m12 * m24 * m41 - m14 * m22 * m41 + m14 * m21 * m42 - m11 * m24 * m42 - m12 * m21 * m44 + m11 * m22 * m44) * detInv;\n e[11] = (m13 * m22 * m41 - m12 * m23 * m41 - m13 * m21 * m42 + m11 * m23 * m42 + m12 * m21 * m43 - m11 * m22 * m43) * detInv;\n e[12] = t14 * detInv;\n e[13] = (m13 * m24 * m31 - m14 * m23 * m31 + m14 * m21 * m33 - m11 * m24 * m33 - m13 * m21 * m34 + m11 * m23 * m34) * detInv;\n e[14] = (m14 * m22 * m31 - m12 * m24 * m31 - m14 * m21 * m32 + m11 * m24 * m32 + m12 * m21 * m34 - m11 * m22 * m34) * detInv;\n e[15] = (m12 * m23 * m31 - m13 * m22 * m31 + m13 * m21 * m32 - m11 * m23 * m32 - m12 * m21 * m33 + m11 * m22 * m33) * detInv;\n return this;\n };\n /**\n * 提取基轴\n * @param xAxis - 提取的 x 轴\n * @param yAxis - 提取的 y 轴\n * @param zAxis - 提取的 z 轴\n * @returns\n */\n Matrix4.prototype.extractBasis = function (xAxis, yAxis, zAxis) {\n var te = this.elements;\n xAxis.set(te[0], te[1], te[2]);\n yAxis.set(te[4], te[5], te[6]);\n zAxis.set(te[8], te[9], te[10]);\n return this;\n };\n /**\n * 根据基础信息组装矩阵\n * @param translation - 位置信息\n * @param rotation - 旋转信息\n * @param scale - 缩放信息\n * @param [anchor] - 锚点信息\n * @returns 矩阵\n */\n Matrix4.prototype.compose = function (translation, rotation, scale, anchor) {\n if (anchor === void 0) { anchor = Vector3.ZERO; }\n var te = this.elements;\n var x = rotation.x, y = rotation.y, z = rotation.z, w = rotation.w;\n var l = -anchor.x;\n var m = -anchor.y;\n var n = -anchor.z;\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = scale.x, sy = scale.y, sz = scale.z;\n te[0] = (1 - (yy + zz)) * sx;\n te[1] = (xy + wz) * sx;\n te[2] = (xz - wy) * sx;\n te[3] = 0;\n te[4] = (xy - wz) * sy;\n te[5] = (1 - (xx + zz)) * sy;\n te[6] = (yz + wx) * sy;\n te[7] = 0;\n te[8] = (xz + wy) * sz;\n te[9] = (yz - wx) * sz;\n te[10] = (1 - (xx + yy)) * sz;\n te[11] = 0;\n te[12] = l * te[0] + m * te[4] + n * te[8] - l + translation.x;\n te[13] = l * te[1] + m * te[5] + n * te[9] - m + translation.y;\n te[14] = l * te[2] + m * te[6] + n * te[10] - n + translation.z;\n return this;\n };\n /**\n * 矩阵拆分为基础信息\n * @param translation - 位置信息\n * @param rotation - 旋转信息\n * @param scale - 缩放信息\n * @returns 矩阵\n */\n Matrix4.prototype.decompose = function (translation, rotation, scale) {\n var v = Matrix4.tempVec0;\n var te = this.elements;\n var sx = v.set(te[0], te[1], te[2]).length();\n var sy = v.set(te[4], te[5], te[6]).length();\n var sz = v.set(te[8], te[9], te[10]).length();\n // if determine is negative, we need to invert one scale\n var det = this.determinant();\n if (det < 0) {\n sx = -sx;\n }\n translation.x = te[12];\n translation.y = te[13];\n translation.z = te[14];\n // scale the rotation part\n var m = Matrix4.tempMat0;\n m.copyFrom(this);\n var invSX = 1 / sx;\n var invSY = 1 / sy;\n var invSZ = 1 / sz;\n m.elements[0] *= invSX;\n m.elements[1] *= invSX;\n m.elements[2] *= invSX;\n m.elements[4] *= invSY;\n m.elements[5] *= invSY;\n m.elements[6] *= invSY;\n m.elements[8] *= invSZ;\n m.elements[9] *= invSZ;\n m.elements[10] *= invSZ;\n rotation.setFromRotationMatrix(m);\n scale.x = sx;\n scale.y = sy;\n scale.z = sz;\n return this;\n };\n Matrix4.prototype.getTranslation = function (translation) {\n var te = this.elements;\n return translation.set(te[12], te[13], te[14]);\n };\n Matrix4.prototype.getScale = function (scale) {\n var te = this.elements;\n return scale.set(Math.hypot(te[0], te[1], te[2]), Math.hypot(te[4], te[5], te[6]), Math.hypot(te[8], te[9], te[10]));\n };\n /**\n * 获得矩阵分解的结果\n * @returns 分解的结果\n */\n Matrix4.prototype.getTransform = function () {\n var translation = new Vector3();\n var rotation = new Quaternion();\n var scale = new Vector3();\n this.decompose(translation, rotation, scale);\n return { translation: translation, rotation: rotation, scale: scale };\n };\n /**\n * 根据视窗信息设置正交相机投影矩阵\n * @param left - 视窗左平面位置\n * @param right - 视窗右平面位置\n * @param top - 视窗上平面位置\n * @param bottom - 视窗下平面位置\n * @param near - 视窗近平面位置\n * @param far - 视窗远平面位置\n * @returns 矩阵\n */\n Matrix4.prototype.orthographic = function (left, right, top, bottom, near, far) {\n var a = 1.0 / (right - left);\n var b = 1.0 / (top - bottom);\n var c = 1.0 / (far - near);\n var tx = -(right + left) * a;\n var ty = -(top + bottom) * b;\n var tz = -(far + near) * c;\n a *= 2.0;\n b *= 2.0;\n c *= -2.0;\n var te = this.elements;\n te[0] = a;\n te[1] = 0.0;\n te[2] = 0.0;\n te[3] = 0.0;\n //\n te[4] = 0.0;\n te[5] = b;\n te[6] = 0.0;\n te[7] = 0.0;\n //\n te[8] = 0.0;\n te[9] = 0.0;\n te[10] = c;\n te[11] = 0.0;\n //\n te[12] = tx;\n te[13] = ty;\n te[14] = tz;\n te[15] = 1.0;\n return this;\n };\n /**\n * 通过透视相机基础参数设置投影矩阵\n * @param fov - 视角(弧度)\n * @param aspect - 视窗比例\n * @param near - 近平面\n * @param far - 远平面\n * @param [reverse] - 视锥体长宽反转(3D这里反了?)\n * @returns 投影矩阵\n */\n Matrix4.prototype.perspective = function (fov, aspect, near, far, reverse) {\n var f = 1.0 / Math.tan(fov * 0.5);\n var nf = 1 / (near - far);\n var te = this.elements;\n te[0] = reverse ? f : f / aspect;\n te[1] = 0;\n te[2] = 0;\n te[3] = 0;\n //\n te[4] = 0;\n te[5] = reverse ? f * aspect : f;\n te[6] = 0;\n te[7] = 0;\n //\n te[8] = 0;\n te[9] = 0;\n te[10] = (far + near) * nf;\n te[11] = -1;\n //\n te[12] = 0;\n te[13] = 0;\n te[14] = 2 * far * near * nf;\n te[15] = 0;\n if (far === null || far === Infinity) {\n te[10] = -1;\n te[14] = -2 * near;\n }\n return this;\n };\n /**\n * 对点进行投影变换\n * @param v - 输入点\n * @param [out] - 输出点,如果没有就覆盖输入的数据\n * @returns 投影后的点\n */\n Matrix4.prototype.projectPoint = function (v, out) {\n var x = v.x, y = v.y, z = v.z;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[4] * y + e[8] * z + e[12];\n res.y = e[1] * x + e[5] * y + e[9] * z + e[13];\n res.z = e[2] * x + e[6] * y + e[10] * z + e[14];\n var w = e[3] * x + e[7] * y + e[11] * z + e[15];\n return res.multiply(1 / w);\n };\n /**\n * 对点进行矩阵变换\n * @param v - 输入点\n * @param [out] - 输出点,如果没有就覆盖输入的数据\n * @returns 变换后的点\n */\n Matrix4.prototype.transformPoint = function (v, out) {\n var x = v.x, y = v.y, z = v.z;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[4] * y + e[8] * z + e[12];\n res.y = e[1] * x + e[5] * y + e[9] * z + e[13];\n res.z = e[2] * x + e[6] * y + e[10] * z + e[14];\n return res;\n };\n /**\n * 对法向量进行矩阵变换\n * @param v - 输入法向量\n * @param [out] - 输出法向量,如果没有就覆盖输入的数据\n * @returns 变换后的法向量\n */\n Matrix4.prototype.transformNormal = function (v, out) {\n var x = v.x, y = v.y, z = v.z;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[4] * y + e[8] * z;\n res.y = e[1] * x + e[5] * y + e[9] * z;\n res.z = e[2] * x + e[6] * y + e[10] * z;\n return res.normalize();\n };\n /**\n * 对四维向量进行矩阵变换\n * @param v - 输入向量\n * @param [out] - 输出向量,如果没有就覆盖输入的数据\n * @returns 变换后向量\n */\n Matrix4.prototype.transformVector4 = function (v, out) {\n var x = v.x, y = v.y, z = v.z, w = v.w;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\n res.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\n res.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\n res.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\n return res;\n };\n /**\n * 矩阵判等\n * @param matrix - 矩阵\n * @returns 判等结果\n */\n Matrix4.prototype.equals = function (matrix) {\n var te = this.elements;\n var me = matrix.elements;\n for (var i = 0; i < 16; i++) {\n if (!isEqual(te[i], me[i])) {\n return false;\n }\n }\n return true;\n };\n /**\n * 矩阵转数组\n * @returns\n */\n Matrix4.prototype.toArray = function () {\n return __spreadArray([], __read(this.elements), false);\n };\n Matrix4.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n var te = this.elements;\n array[offset] = te[0];\n array[offset + 1] = te[1];\n array[offset + 2] = te[2];\n array[offset + 3] = te[3];\n array[offset + 4] = te[4];\n array[offset + 5] = te[5];\n array[offset + 6] = te[6];\n array[offset + 7] = te[7];\n array[offset + 8] = te[8];\n array[offset + 9] = te[9];\n array[offset + 10] = te[10];\n array[offset + 11] = te[11];\n array[offset + 12] = te[12];\n array[offset + 13] = te[13];\n array[offset + 14] = te[14];\n array[offset + 15] = te[15];\n };\n /**\n * 创建单位阵\n * @returns 单位矩阵\n */\n Matrix4.fromIdentity = function () {\n return new Matrix4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n };\n /**\n * 创建相机矩阵\n * @param eye - 相机位置\n * @param target - 目标位置\n * @param up - 相机方向\n * @returns 矩阵\n */\n Matrix4.fromLookAt = function (eye, target, up) {\n return new Matrix4().lookAt(eye, target, up);\n };\n /**\n * 创建投影矩阵\n * @param fov - 视角\n * @param aspect - 视窗比例\n * @param near - 近平面\n * @param far - 远平面\n * @param [reverse] - 视锥体长宽反转\n * @returns 投影矩阵\n */\n Matrix4.fromPerspective = function (fov, aspect, near, far, reverse) {\n return new Matrix4().perspective(fov, aspect, near, far, reverse);\n };\n /**\n * 通过四个列向量创建矩阵\n * @param c1 - 第一列\n * @param c2 - 第二列\n * @param c3 - 第三列\n * @param c4 - 第四列\n * @returns\n */\n Matrix4.fromColumnVectors = function (c1, c2, c3, c4) {\n return new Matrix4().setFromColumnVectors(c1, c2, c3, c4);\n };\n /**\n * 通过三阶矩阵创建矩阵\n * @param m - 三阶矩阵\n * @returns 创建的矩阵\n */\n Matrix4.fromMatrix3 = function (m) {\n return new Matrix4().setFromMatrix3(m);\n };\n /**\n * 通过数组创建矩阵\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 矩阵\n */\n Matrix4.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Matrix4().setFromArray(array, offset);\n };\n /**\n * 通过缩放创建矩阵\n * @param x - x 缩放\n * @param y - y 缩放\n * @param z - z 缩放\n * @returns 缩放结果\n */\n Matrix4.fromScale = function (x, y, z) {\n return new Matrix4().setFromScale(x, y, z);\n };\n /**\n * 通过平移创建矩阵\n * @param x - x 平移\n * @param y - y 平移\n * @param z - z 平移\n * @returns 平移结果\n */\n Matrix4.fromTranslation = function (x, y, z) {\n return new Matrix4().setFromTranslation(x, y, z);\n };\n /**\n * 通过 x 轴旋转创建矩阵\n * @param theta - x 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.fromRotationX = function (theta) {\n return new Matrix4().setFromRotationX(theta);\n };\n /**\n * 通过 y 轴旋转创建矩阵\n * @param theta - y 轴旋转弧度\n * @returns 矩阵\n */\n Matrix4.fromRotationY = function (theta) {\n return new Matrix4().setFromRotationY(theta);\n };\n /**\n * 通过 z 轴旋转创建矩阵\n * @param theta - z 轴旋转弧度\n * @returns\n */\n Matrix4.fromRotationZ = function (theta) {\n return new Matrix4().setFromRotationZ(theta);\n };\n /**\n * 通过旋转轴与旋转弧度创建矩阵\n * @param axis - 旋转轴\n * @param angle - 旋转弧度\n * @returns\n */\n Matrix4.fromRotationAxis = function (axis, angle) {\n return new Matrix4().setFromRotationAxis(axis, angle);\n };\n /**\n * 通过欧拉角创建矩阵\n * @param euler - 欧拉角\n * @returns\n */\n Matrix4.fromEuler = function (euler) {\n return new Matrix4().setFromEuler(euler);\n };\n /**\n * 通过四元数创建矩阵\n * @param quat - 四元数\n * @returns\n */\n Matrix4.fromQuaternion = function (quat) {\n return new Matrix4().setFromQuaternion(quat);\n };\n /**\n * 通过倾斜创建矩阵\n * @param x - x 方向倾斜分量\n * @param y - y 方向倾斜分量\n * @param z - z 方向倾斜分量\n * @returns 倾斜矩阵\n */\n Matrix4.fromShear = function (x, y, z) {\n return new Matrix4().setFromShear(x, y, z);\n };\n /**\n * 通过基轴创建矩阵\n * @param xAxis - x 轴\n * @param yAxis - y 轴\n * @param zAxis - z 轴\n * @returns\n */\n Matrix4.fromBasis = function (xAxis, yAxis, zAxis) {\n return new Matrix4().setFromBasis(xAxis, yAxis, zAxis);\n };\n /**\n * 通过行优先数据设置矩阵\n * @param m11 - 第 1 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m14 - 第 1 行,第 4 列\n * @param m21 - 第 2 行,第 1 列\n * @param m22 - 第 2 行,第 2 列\n * @param m23 - 第 2 行,第 3 列\n * @param m24 - 第 2 行,第 4 列\n * @param m31 - 第 3 行,第 1 列\n * @param m32 - 第 3 行,第 2 列\n * @param m33 - 第 3 行,第 3 列\n * @param m34 - 第 3 行,第 4 列\n * @param m41 - 第 4 行,第 1 列\n * @param m42 - 第 4 行,第 2 列\n * @param m43 - 第 4 行,第 3 列\n * @param m44 - 第 4 行,第 4 列\n * @returns\n */\n Matrix4.fromRowMajorData = function (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) {\n return new Matrix4(m11, m21, m31, m41, m12, m22, m32, m42, m13, m23, m33, m43, m14, m24, m34, m44);\n };\n Matrix4.IDENTITY = new Matrix4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n Matrix4.ZERO = new Matrix4(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n Matrix4.tempVec0 = new Vector3();\n Matrix4.tempVec1 = new Vector3();\n Matrix4.tempVec2 = new Vector3();\n Matrix4.tempMat0 = new Matrix4();\n return Matrix4;\n}());\n","import { Quaternion } from './quaternion';\nimport { Matrix4 } from './matrix4';\nimport { RAD2DEG, clamp } from './utils';\nimport { DEG2RAD } from './utils';\n/**\n * 欧拉角顺序\n */\nexport var EulerOrder;\n(function (EulerOrder) {\n EulerOrder[EulerOrder[\"XYZ\"] = 0] = \"XYZ\";\n EulerOrder[EulerOrder[\"XZY\"] = 1] = \"XZY\";\n EulerOrder[EulerOrder[\"YXZ\"] = 2] = \"YXZ\";\n EulerOrder[EulerOrder[\"YZX\"] = 3] = \"YZX\";\n EulerOrder[EulerOrder[\"ZXY\"] = 4] = \"ZXY\";\n EulerOrder[EulerOrder[\"ZYX\"] = 5] = \"ZYX\";\n})(EulerOrder || (EulerOrder = {}));\n/**\n * 欧拉角\n */\nexport var Euler = /** @class */ (function () {\n /**\n * 构造函数,传入值为 x, y, z 方向分量以及欧拉角顺序\n * @param [x=0] - x 方向分量\n * @param [y=0] - y 方向分量\n * @param [z=0] - z 方向分量\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n */\n function Euler(x, y, z, order) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n this.x = x;\n this.y = y;\n this.z = z;\n this.order = order;\n }\n /**\n * 设置欧拉角\n * @param x - x 方向分量\n * @param y - y 方向分量\n * @param z - z 方向分量\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.set = function (x, y, z, order) {\n if (order === void 0) { order = this.order; }\n this.x = x;\n this.y = y;\n this.z = z;\n this.order = order;\n return this;\n };\n Euler.prototype.setZero = function (order) {\n if (order === void 0) { order = this.order; }\n return this.set(0, 0, 0, order);\n };\n /**\n * 通过矩阵设置欧拉角\n * @param m - 矩阵\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.setFromRotationMatrix4 = function (m, order) {\n if (order === void 0) { order = this.order; }\n var te = m.elements;\n var m11 = te[0];\n var m12 = te[4];\n var m13 = te[8];\n var m21 = te[1];\n var m22 = te[5];\n var m23 = te[9];\n var m31 = te[2];\n var m32 = te[6];\n var m33 = te[10];\n switch (order) {\n case EulerOrder.XYZ:\n this.y = Math.asin(clamp(m13, -1, 1));\n if (Math.abs(m13) < 0.9999999) {\n this.x = Math.atan2(-m23, m33);\n this.z = Math.atan2(-m12, m11);\n }\n else {\n this.x = Math.atan2(m32, m22);\n this.z = 0;\n }\n break;\n case EulerOrder.YXZ:\n this.x = Math.asin(-clamp(m23, -1, 1));\n if (Math.abs(m23) < 0.9999999) {\n this.y = Math.atan2(m13, m33);\n this.z = Math.atan2(m21, m22);\n }\n else {\n this.y = Math.atan2(-m31, m11);\n this.z = 0;\n }\n break;\n case EulerOrder.ZXY:\n this.x = Math.asin(clamp(m32, -1, 1));\n if (Math.abs(m32) < 0.9999999) {\n this.y = Math.atan2(-m31, m33);\n this.z = Math.atan2(-m12, m22);\n }\n else {\n this.y = 0;\n this.z = Math.atan2(m21, m11);\n }\n break;\n case EulerOrder.ZYX:\n this.y = Math.asin(-clamp(m31, -1, 1));\n if (Math.abs(m31) < 0.9999999) {\n this.x = Math.atan2(m32, m33);\n this.z = Math.atan2(m21, m11);\n }\n else {\n this.x = 0;\n this.z = Math.atan2(-m12, m22);\n }\n break;\n case EulerOrder.YZX:\n this.z = Math.asin(clamp(m21, -1, 1));\n if (Math.abs(m21) < 0.9999999) {\n this.x = Math.atan2(-m23, m22);\n this.y = Math.atan2(-m31, m11);\n }\n else {\n this.x = 0;\n this.y = Math.atan2(m13, m33);\n }\n break;\n case EulerOrder.XZY:\n this.z = Math.asin(-clamp(m12, -1, 1));\n if (Math.abs(m12) < 0.9999999) {\n this.x = Math.atan2(m32, m22);\n this.y = Math.atan2(m13, m11);\n }\n else {\n this.x = Math.atan2(-m23, m33);\n this.y = 0;\n }\n break;\n default:\n console.error('setFromRotationMatrix: unknown order: ' + order);\n }\n this.x *= RAD2DEG;\n this.y *= RAD2DEG;\n this.z *= RAD2DEG;\n this.order = order;\n return this;\n };\n /**\n * 通过四元数设置欧拉角\n * @param quat - 四元数\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.setFromQuaternion = function (quat, order) {\n if (order === void 0) { order = this.order; }\n var matrix = Euler.tempMat0;\n matrix.setFromQuaternion(quat);\n return this.setFromRotationMatrix4(matrix, order);\n };\n /**\n * 通过三维向量设置欧拉角\n * @param v - 三维向量\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.setFromVector3 = function (v, order) {\n if (order === void 0) { order = this.order; }\n return this.set(v.x, v.y, v.z, order);\n };\n /**\n * 通过数组设置欧拉角\n * @param array - 数组\n * @param [offset=0] - 偏移\n * @param [order] - 欧拉角顺序\n * @returns\n */\n Euler.prototype.setFromArray = function (array, offset, order) {\n var _a, _b, _c, _d;\n if (offset === void 0) { offset = 0; }\n if (order === void 0) { order = this.order; }\n this.x = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.y = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n this.z = (_c = array[offset + 2]) !== null && _c !== void 0 ? _c : 0;\n this.order = (_d = array[offset + 3]) !== null && _d !== void 0 ? _d : order;\n return this;\n };\n /**\n * 克隆欧拉角\n * @returns 克隆结果\n */\n Euler.prototype.clone = function () {\n return new Euler(this.x, this.y, this.z, this.order);\n };\n /**\n * 复制欧拉角\n * @param euler - 复制对象\n * @returns 复制结果\n */\n Euler.prototype.copyFrom = function (euler) {\n this.x = euler.x;\n this.y = euler.y;\n this.z = euler.z;\n this.order = euler.order;\n return this;\n };\n Euler.prototype.add = function (euler) {\n if (this.order != euler.order) {\n console.error('add euler with different order');\n return this;\n }\n this.x += euler.x;\n this.y += euler.y;\n this.z += euler.z;\n return this;\n };\n Euler.prototype.addEulers = function (left, right) {\n if (left.order != right.order) {\n console.error('add euler with different order');\n return this;\n }\n this.x = left.x + right.x;\n this.y = left.y + right.y;\n this.z = left.z + right.z;\n this.order = left.order;\n return this;\n };\n Euler.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n };\n /**\n * 修改欧拉角顺序\n * @param newOrder - 欧拉角顺序\n * @returns 修改结果\n */\n Euler.prototype.reorder = function (newOrder) {\n var quaternion = new Quaternion();\n quaternion.setFromEuler(this);\n return this.setFromQuaternion(quaternion, newOrder);\n };\n /**\n * 通过四元数旋转向量\n * @param v - 待旋转向量\n * @param out - 旋转结果,如果没有传入直接覆盖输入值\n * @returns\n */\n Euler.prototype.rotateVector3 = function (v, out) {\n var q = Euler.tempQuat0;\n return q.setFromEuler(this).rotateVector3(v, out);\n };\n /**\n * 欧拉角相等判断\n * @param euler - 欧拉角\n * @returns 判断结果\n */\n Euler.prototype.equals = function (euler) {\n return euler.x === this.x\n && euler.y === this.y\n && euler.z === this.z\n && euler.order === this.order;\n };\n /**\n * 欧拉角保存于三维向量\n * @param vec - 目标保存对象\n * @returns 保存结果\n */\n Euler.prototype.toVector3 = function (vec) {\n return vec.set(this.x, this.y, this.z);\n };\n /**\n * 欧拉角转数组\n * @returns 保存结果\n */\n Euler.prototype.toArray = function () {\n return [this.x, this.y, this.z];\n };\n /**\n * 欧拉角转四元数\n * @param quat - 目标四元数\n * @returns 目标四元数\n */\n Euler.prototype.toQuaternion = function (quat) {\n var _a;\n var x = (_a = this, _a.x), y = _a.y, z = _a.z, order = _a.order;\n var c1 = Math.cos(x * DEG2RAD * 0.5);\n var c2 = Math.cos(y * DEG2RAD * 0.5);\n var c3 = Math.cos(z * DEG2RAD * 0.5);\n var s1 = Math.sin(x * DEG2RAD * 0.5);\n var s2 = Math.sin(y * DEG2RAD * 0.5);\n var s3 = Math.sin(z * DEG2RAD * 0.5);\n switch (order) {\n case EulerOrder.XYZ:\n quat.set(s1 * c2 * c3 + c1 * s2 * s3, c1 * s2 * c3 - s1 * c2 * s3, c1 * c2 * s3 + s1 * s2 * c3, c1 * c2 * c3 - s1 * s2 * s3);\n break;\n case EulerOrder.YXZ:\n quat.set(s1 * c2 * c3 + c1 * s2 * s3, c1 * s2 * c3 - s1 * c2 * s3, c1 * c2 * s3 - s1 * s2 * c3, c1 * c2 * c3 + s1 * s2 * s3);\n break;\n case EulerOrder.ZXY:\n quat.set(s1 * c2 * c3 - c1 * s2 * s3, c1 * s2 * c3 + s1 * c2 * s3, c1 * c2 * s3 + s1 * s2 * c3, c1 * c2 * c3 - s1 * s2 * s3);\n break;\n case EulerOrder.ZYX:\n quat.set(s1 * c2 * c3 - c1 * s2 * s3, c1 * s2 * c3 + s1 * c2 * s3, c1 * c2 * s3 - s1 * s2 * c3, c1 * c2 * c3 + s1 * s2 * s3);\n break;\n case EulerOrder.YZX:\n quat.set(s1 * c2 * c3 + c1 * s2 * s3, c1 * s2 * c3 + s1 * c2 * s3, c1 * c2 * s3 - s1 * s2 * c3, c1 * c2 * c3 - s1 * s2 * s3);\n break;\n case EulerOrder.XZY:\n quat.set(s1 * c2 * c3 - c1 * s2 * s3, c1 * s2 * c3 - s1 * c2 * s3, c1 * c2 * s3 + s1 * s2 * c3, c1 * c2 * c3 + s1 * s2 * s3);\n break;\n default:\n console.error('unknown euler order: ' + order);\n }\n return quat;\n };\n /**\n * 欧拉角转矩阵\n * @param mat - 目标矩阵\n * @returns 返回目标矩阵\n */\n Euler.prototype.toMatrix4 = function (mat) {\n var _a;\n var me = mat.elements;\n var x = (_a = this, _a.x), y = _a.y, z = _a.z, order = _a.order;\n var cosX = Math.cos(x * DEG2RAD), sinX = Math.sin(x * DEG2RAD);\n var cosY = Math.cos(y * DEG2RAD), sinY = Math.sin(y * DEG2RAD);\n var cosZ = Math.cos(z * DEG2RAD), sinZ = Math.sin(z * DEG2RAD);\n if (order === EulerOrder.XYZ) {\n var cosXcosZ = cosX * cosZ;\n var cosXsinZ = cosX * sinZ;\n var sinXcosZ = sinX * cosZ;\n var sinXsinZ = sinX * sinZ;\n me[0] = cosY * cosZ;\n me[4] = -cosY * sinZ;\n me[8] = sinY;\n me[1] = cosXsinZ + sinXcosZ * sinY;\n me[5] = cosXcosZ - sinXsinZ * sinY;\n me[9] = -sinX * cosY;\n me[2] = sinXsinZ - cosXcosZ * sinY;\n me[6] = sinXcosZ + cosXsinZ * sinY;\n me[10] = cosX * cosY;\n }\n else if (order === EulerOrder.YXZ) {\n var cosYcosZ = cosY * cosZ;\n var cosYsinZ = cosY * sinZ;\n var sinYcosZ = sinY * cosZ;\n var sinYsinZ = sinY * sinZ;\n me[0] = cosYcosZ + sinYsinZ * sinX;\n me[4] = sinYcosZ * sinX - cosYsinZ;\n me[8] = cosX * sinY;\n me[1] = cosX * sinZ;\n me[5] = cosX * cosZ;\n me[9] = -sinX;\n me[2] = cosYsinZ * sinX - sinYcosZ;\n me[6] = sinYsinZ + cosYcosZ * sinX;\n me[10] = cosX * cosY;\n }\n else if (order === EulerOrder.ZXY) {\n var cosYcosZ = cosY * cosZ;\n var cosYsinZ = cosY * sinZ;\n var sinYcosZ = sinY * cosZ;\n var sinYsinZ = sinY * sinZ;\n me[0] = cosYcosZ - sinYsinZ * sinX;\n me[4] = -cosX * sinZ;\n me[8] = sinYcosZ + cosYsinZ * sinX;\n me[1] = cosYsinZ + sinYcosZ * sinX;\n me[5] = cosX * cosZ;\n me[9] = sinYsinZ - cosYcosZ * sinX;\n me[2] = -cosX * sinY;\n me[6] = sinX;\n me[10] = cosX * cosY;\n }\n else if (order === EulerOrder.ZYX) {\n var cosXcosZ = cosX * cosZ;\n var cosXsinZ = cosX * sinZ;\n var sinXcosZ = sinX * cosZ;\n var sinXsinZ = sinX * sinZ;\n me[0] = cosY * cosZ;\n me[4] = sinXcosZ * sinY - cosXsinZ;\n me[8] = cosXcosZ * sinY + sinXsinZ;\n me[1] = cosY * sinZ;\n me[5] = sinXsinZ * sinY + cosXcosZ;\n me[9] = cosXsinZ * sinY - sinXcosZ;\n me[2] = -sinY;\n me[6] = sinX * cosY;\n me[10] = cosX * cosY;\n }\n else if (order === EulerOrder.YZX) {\n var cosXcosY = cosX * cosY;\n var cosXsinY = cosX * sinY;\n var sinXcosY = sinX * cosY;\n var sinXsinY = sinX * sinY;\n me[0] = cosY * cosZ;\n me[4] = sinXsinY - cosXcosY * sinZ;\n me[8] = sinXcosY * sinZ + cosXsinY;\n me[1] = sinZ;\n me[5] = cosX * cosZ;\n me[9] = -sinX * cosZ;\n me[2] = -sinY * cosZ;\n me[6] = cosXsinY * sinZ + sinXcosY;\n me[10] = cosXcosY - sinXsinY * sinZ;\n }\n else if (order === EulerOrder.XZY) {\n var cosXcosY = cosX * cosY;\n var cosXsinY = cosX * sinY;\n var sinXcosY = sinX * cosY;\n var sinXsinY = sinX * sinY;\n me[0] = cosY * cosZ;\n me[4] = -sinZ;\n me[8] = sinY * cosZ;\n me[1] = cosXcosY * sinZ + sinXsinY;\n me[5] = cosX * cosZ;\n me[9] = cosXsinY * sinZ - sinXcosY;\n me[2] = sinXcosY * sinZ - cosXsinY;\n me[6] = sinX * cosZ;\n me[10] = sinXsinY * sinZ + cosXcosY;\n }\n else {\n console.error('toMatrix4: Invalid order ' + order);\n }\n // bottom row\n me[3] = 0;\n me[7] = 0;\n me[11] = 0;\n // last column\n me[12] = 0;\n me[13] = 0;\n me[14] = 0;\n me[15] = 1;\n return mat;\n };\n /**\n * 通过矩阵创建欧拉角\n * @param m - 矩阵\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n * @returns 创建结果\n */\n Euler.fromRotationMatrix4 = function (m, order) {\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n return new Euler().setFromRotationMatrix4(m, order);\n };\n /**\n * 通过四元数创建欧拉角\n * @param quat - 四元数\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n * @returns 创建结果\n */\n Euler.fromQuaternion = function (quat, order) {\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n return new Euler().setFromQuaternion(quat, order);\n };\n /**\n * 通过三维向量创建欧拉角\n * @param v - 三维向量\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n * @returns 创建结果\n */\n Euler.fromVector3 = function (v, order) {\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n return new Euler().setFromVector3(v, order);\n };\n /**\n * 通过数组创建欧拉角\n * @param array - 数组\n * @param [offset=0] - 偏移\n * @param [order=Euler.DEFAULT_ORDER] - 欧拉角顺序\n * @returns 创建结果\n */\n Euler.fromArray = function (array, offset, order) {\n if (offset === void 0) { offset = 0; }\n if (order === void 0) { order = Euler.DEFAULT_ORDER; }\n return new Euler().setFromArray(array, offset, order);\n };\n Euler.DEFAULT_ORDER = EulerOrder.ZYX;\n Euler.tempQuat0 = new Quaternion();\n Euler.tempMat0 = new Matrix4();\n return Euler;\n}());\n","import { NumberEpsilon } from './utils';\nimport { Vector3 } from './vector3';\n/**\n * 四维向量\n */\nexport var Vector4 = /** @class */ (function () {\n /**\n * 构造函数\n * @param [x=0] - x 轴分量\n * @param [y=0] - y 轴分量\n * @param [z=0] - z 轴分量\n * @param [w=1] - w 轴分量\n */\n function Vector4(x, y, z, w) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n if (w === void 0) { w = 0; }\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n }\n /**\n * 设置向量\n * @param x - x 轴分量\n * @param y - y 轴分量\n * @param z - z 轴分量\n * @param w - w 轴分量\n * @returns\n */\n Vector4.prototype.set = function (x, y, z, w) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n return this;\n };\n /**\n * 设置零向量\n * @returns 向量\n */\n Vector4.prototype.setZero = function () {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 0;\n return this;\n };\n /**\n * 通过标量数值设置向量\n * @param num - 数值\n * @returns 向量\n */\n Vector4.prototype.setFromNumber = function (num) {\n this.x = num;\n this.y = num;\n this.z = num;\n this.w = num;\n return this;\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector4.prototype.setFromArray = function (array, offset) {\n var _a, _b, _c, _d;\n if (offset === void 0) { offset = 0; }\n this.x = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.y = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n this.z = (_c = array[offset + 2]) !== null && _c !== void 0 ? _c : 0;\n this.w = (_d = array[offset + 3]) !== null && _d !== void 0 ? _d : 0;\n return this;\n };\n /**\n * 拷贝向量\n * @param v - 复制对象\n * @returns 拷贝结果\n */\n Vector4.prototype.copyFrom = function (v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n this.w = v.w;\n return this;\n };\n /**\n * 克隆向量\n * @returns 克隆结果\n */\n Vector4.prototype.clone = function () {\n return new Vector4(this.x, this.y, this.z, this.w);\n };\n /**\n * 根据下标设置向量分量\n * @param index - 下标值\n * @param value - 分量值\n * @returns 向量\n */\n Vector4.prototype.setElement = function (index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n case 2:\n this.z = value;\n break;\n case 3:\n this.w = value;\n break;\n default: console.error('index is out of range: ' + index);\n }\n return this;\n };\n /**\n * 根据下标获取向量分量\n * @param index - 下标\n * @returns 分量值\n */\n Vector4.prototype.getElement = function (index) {\n switch (index) {\n case 0: return this.x;\n case 1: return this.y;\n case 2: return this.z;\n case 3: return this.w;\n default: console.error('index is out of range: ' + index);\n }\n return 0;\n };\n /**\n * 向量相加\n * @param right - 相加对象,向量 | 数字\n * @returns 相加结果\n */\n Vector4.prototype.add = function (right) {\n if (typeof right === 'number') {\n this.x += right;\n this.y += right;\n this.z += right;\n this.w += right;\n }\n else if (right instanceof Array) {\n this.x += right[0];\n this.y += right[1];\n this.z += right[2];\n this.w += right[3];\n }\n else {\n this.x += right.x;\n this.y += right.y;\n this.z += right.z;\n this.w += right.w;\n }\n return this;\n };\n /**\n * 向量相加\n * @param left - 向量\n * @param right - 向量\n * @returns 求和结果\n */\n Vector4.prototype.addVectors = function (left, right) {\n this.x = left.x + right.x;\n this.y = left.y + right.y;\n this.z = left.z + right.z;\n this.w = left.w + right.w;\n return this;\n };\n /**\n * 向量比例缩放后相加\n * @param right - 向量\n * @param s - 比例\n * @returns 求和结果\n */\n Vector4.prototype.addScaledVector = function (right, s) {\n this.x += right.x * s;\n this.y += right.y * s;\n this.z += right.z * s;\n this.w += right.w * s;\n return this;\n };\n /**\n * 向量相减\n * @param right - 相减对象,向量 | 数字\n * @returns 相减结果\n */\n Vector4.prototype.subtract = function (right) {\n if (typeof right === 'number') {\n this.x -= right;\n this.y -= right;\n this.z -= right;\n this.w -= right;\n }\n else if (right instanceof Array) {\n this.x -= right[0];\n this.y -= right[1];\n this.z -= right[2];\n this.w -= right[3];\n }\n else {\n this.x -= right.x;\n this.y -= right.y;\n this.z -= right.z;\n this.w -= right.w;\n }\n return this;\n };\n /**\n * 向量相减\n * @param left - 向量\n * @param right - 向量\n * @returns 向量\n */\n Vector4.prototype.subtractVectors = function (left, right) {\n this.x = left.x - right.x;\n this.y = left.y - right.y;\n this.z = left.z - right.z;\n this.w = left.w - right.w;\n return this;\n };\n /**\n * 向量相乘\n * @param right - 相乘对象,对象 | 数字\n * @returns 向量\n */\n Vector4.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n this.x *= right;\n this.y *= right;\n this.z *= right;\n this.w *= right;\n }\n else if (right instanceof Array) {\n this.x *= right[0];\n this.y *= right[1];\n this.z *= right[2];\n this.w *= right[3];\n }\n else {\n this.x *= right.x;\n this.y *= right.y;\n this.z *= right.z;\n this.w *= right.w;\n }\n return this;\n };\n /**\n * 向量相乘\n * @param left - 向量\n * @param right - 向量\n * @returns 向量\n */\n Vector4.prototype.multiplyVectors = function (left, right) {\n this.x = left.x * right.x;\n this.y = left.y * right.y;\n this.z = left.z * right.z;\n this.w = left.w * right.w;\n return this;\n };\n /**\n * 向量相除\n * @param right - 相除对象,对象 | 数字\n * @returns 向量\n */\n Vector4.prototype.divide = function (right) {\n if (typeof right === 'number') {\n this.x /= right;\n this.y /= right;\n this.z /= right;\n this.w /= right;\n }\n else if (right instanceof Array) {\n this.x /= right[0];\n this.y /= right[1];\n this.z /= right[2];\n this.w /= right[3];\n }\n else {\n this.x /= right.x;\n this.y /= right.y;\n this.z /= right.z;\n this.w /= right.w;\n }\n return this;\n };\n /**\n * 向量缩放\n * @param v - 数字\n * @returns 缩放结果\n */\n Vector4.prototype.scale = function (v) {\n this.x *= v;\n this.y *= v;\n this.z *= v;\n this.w *= v;\n return this;\n };\n /**\n * 分量求和\n * @returns 求和结果\n */\n Vector4.prototype.sum = function () {\n return this.x + this.y + this.z + this.w;\n };\n /**\n * 向量求最小值\n * @param v - 向量或数值\n * @returns 最小值\n */\n Vector4.prototype.min = function (v) {\n if (typeof v === 'number') {\n this.x = Math.min(this.x, v);\n this.y = Math.min(this.y, v);\n this.z = Math.min(this.z, v);\n this.w = Math.min(this.w, v);\n }\n else {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n this.w = Math.min(this.w, v.w);\n }\n return this;\n };\n /**\n * 向量求最大值\n * @param v - 向量或数值\n * @returns 最大值\n */\n Vector4.prototype.max = function (v) {\n if (typeof v === 'number') {\n this.x = Math.max(this.x, v);\n this.y = Math.max(this.y, v);\n this.z = Math.max(this.z, v);\n this.w = Math.max(this.w, v);\n }\n else {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n this.w = Math.max(this.w, v.w);\n }\n return this;\n };\n /**\n * 向量阈值约束\n * @param min - 最小值\n * @param max - 最大值\n * @returns 向量\n */\n Vector4.prototype.clamp = function (min, max) {\n return this.max(min).min(max);\n };\n /**\n * 向量向下取整\n * @returns 取整结果\n */\n Vector4.prototype.floor = function () {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n this.w = Math.floor(this.w);\n return this;\n };\n /**\n * 向量向上取整\n * @returns 取整结果\n */\n Vector4.prototype.ceil = function () {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n this.w = Math.ceil(this.w);\n return this;\n };\n /**\n * 向量四舍五入\n * @returns 求值结果\n */\n Vector4.prototype.round = function () {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n this.w = Math.round(this.w);\n return this;\n };\n /**\n * 向量取绝对值\n * @returns 向量\n */\n Vector4.prototype.abs = function () {\n this.x = Math.abs(this.x);\n this.y = Math.abs(this.y);\n this.z = Math.abs(this.z);\n this.w = Math.abs(this.w);\n return this;\n };\n /**\n * 向量取反\n * @returns 取反结果\n */\n Vector4.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n this.w = -this.w;\n return this;\n };\n /**\n * 向量长度平方\n * @returns 长度平方\n */\n Vector4.prototype.lengthSquared = function () {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n };\n /**\n * 向量长度\n * @returns 长度\n */\n Vector4.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n };\n /**\n * 向量归一化\n * @returns 归一化结果\n */\n Vector4.prototype.normalize = function () {\n return this.divide(this.length() || 1);\n };\n /**\n * 设置向量长度\n * @param length - 长度\n * @returns 向量\n */\n Vector4.prototype.setLength = function (length) {\n return this.normalize().multiply(length);\n };\n /**\n * 向量求线性插值\n * @param v - 向量\n * @param alpha - 插值比例\n * @returns 插值结果\n */\n Vector4.prototype.lerp = function (v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n this.z += (v.z - this.z) * alpha;\n this.w += (v.w - this.w) * alpha;\n return this;\n };\n /**\n * 两向量求线性插值\n * @param v1 - 第一个向量\n * @param v2 - 第二个向量\n * @param alpha - 插值比例\n * @returns 插值结果\n */\n Vector4.prototype.lerpVectors = function (v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n this.w = v1.w + (v2.w - v1.w) * alpha;\n return this;\n };\n /**\n * 向量求点积\n * @param v - 向量\n * @returns 点积结果\n */\n Vector4.prototype.dot = function (v) {\n return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n };\n /**\n * 向量判等\n * @param v - 向量\n * @returns 判等结果\n */\n Vector4.prototype.equals = function (v) {\n return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\n };\n /**\n * 是否零向量\n * @returns 是否零向量\n */\n Vector4.prototype.isZero = function () {\n var _a;\n var eps = NumberEpsilon;\n var x = (_a = this, _a.x), y = _a.y, z = _a.z, w = _a.w;\n return Math.abs(x) <= eps && Math.abs(y) <= eps && Math.abs(z) <= eps && Math.abs(w) <= eps;\n };\n /**\n * 向量转数组\n * @returns 数组\n */\n Vector4.prototype.toArray = function () {\n return [this.x, this.y, this.z, this.w];\n };\n Vector4.prototype.toVector3 = function () {\n return new Vector3(this.x, this.y, this.z);\n };\n Vector4.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n array[offset + 3] = this.w;\n };\n /**\n * 生成随机向量\n * @returns 向量\n */\n Vector4.prototype.random = function () {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n this.w = Math.random();\n return this;\n };\n /**\n * 变换矩阵作用于向量\n * @param m - 变换矩阵\n * @param [out] - 输出结果,如果没有设置就直接覆盖当前值\n * @returns 向量\n */\n Vector4.prototype.applyMatrix = function (m, out) {\n return m.transformVector4(this, out);\n };\n /**\n * 通过标量数值创建向量\n * @param num - 数值\n * @returns 向量\n */\n Vector4.fromNumber = function (num) {\n return new Vector4().setFromNumber(num);\n };\n /**\n * 通过数组创建向量\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 向量\n */\n Vector4.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Vector4().setFromArray(array, offset);\n };\n /**\n * 四维向量的常量\n */\n Vector4.ONE = new Vector4(1.0, 1.0, 1.0, 1.0);\n Vector4.ZERO = new Vector4(0.0, 0.0, 0.0, 0.0);\n return Vector4;\n}());\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { isEqual } from './utils';\n/**\n * 三维矩阵(列优先矩阵)\n */\nvar Matrix3 = /** @class */ (function () {\n /**\n * 构造函数,初始值为零矩阵\n * @param [m11=1] - 第 1 行,第 1 列\n * @param [m21=0] - 第 2 行,第 1 列\n * @param [m31=0] - 第 3 行,第 1 列\n * @param [m12=0] - 第 1 行,第 2 列\n * @param [m22=1] - 第 2 行,第 2 列\n * @param [m32=0] - 第 3 行,第 2 列\n * @param [m13=0] - 第 1 行,第 3 列\n * @param [m23=0] - 第 2 行,第 3 列\n * @param [m33=1] - 第 3 行,第 3 列\n */\n function Matrix3(m11, m21, m31, m12, m22, m32, m13, m23, m33) {\n if (m11 === void 0) { m11 = 1; }\n if (m21 === void 0) { m21 = 0; }\n if (m31 === void 0) { m31 = 0; }\n if (m12 === void 0) { m12 = 0; }\n if (m22 === void 0) { m22 = 1; }\n if (m32 === void 0) { m32 = 0; }\n if (m13 === void 0) { m13 = 0; }\n if (m23 === void 0) { m23 = 0; }\n if (m33 === void 0) { m33 = 1; }\n this.elements = [\n m11, m21, m31,\n m12, m22, m32,\n m13, m23, m33,\n ];\n }\n /**\n * 设置矩阵\n * @param m11 - 第 1 行,第 1 列\n * @param m21 - 第 2 行,第 1 列\n * @param m31 - 第 3 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m22 - 第 2 行,第 2 列\n * @param m32 - 第 3 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m23 - 第 2 行,第 3 列\n * @param m33 - 第 3 行,第 3 列\n * @returns\n */\n Matrix3.prototype.set = function (m11, m21, m31, m12, m22, m32, m13, m23, m33) {\n var e = this.elements;\n e[0] = m11;\n e[3] = m12;\n e[6] = m13;\n e[1] = m21;\n e[4] = m22;\n e[7] = m23;\n e[2] = m31;\n e[5] = m32;\n e[8] = m33;\n return this;\n };\n /**\n * 设置矩阵通过行优先数据\n * @param m11 - 第 1 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m21 - 第 2 行,第 1 列\n * @param m22 - 第 2 行,第 2 列\n * @param m23 - 第 2 行,第 3 列\n * @param m31 - 第 3 行,第 1 列\n * @param m32 - 第 3 行,第 2 列\n * @param m33 - 第 3 行,第 3 列\n * @returns 矩阵\n */\n Matrix3.prototype.setFromRowMajorData = function (m11, m12, m13, m21, m22, m23, m31, m32, m33) {\n var e = this.elements;\n e[0] = m11;\n e[3] = m12;\n e[6] = m13;\n e[1] = m21;\n e[4] = m22;\n e[7] = m23;\n e[2] = m31;\n e[5] = m32;\n e[8] = m33;\n return this;\n };\n /**\n * 通过列向量设置矩阵\n * @param c1 - 第一列\n * @param c2 - 第二列\n * @param c3 - 第三列\n * @returns 矩阵\n */\n Matrix3.prototype.setFromColumnVectors = function (c1, c2, c3) {\n return this.set(c1.x, c1.y, c1.z, c2.x, c2.y, c2.z, c3.x, c3.y, c3.z);\n };\n /**\n * 通过四阶矩阵设置三阶矩阵\n * @param m - 四阶矩阵\n * @returns 矩阵\n */\n Matrix3.prototype.setFromMatrix4 = function (m) {\n var me = m.elements;\n return this.set(me[0], me[1], me[2], me[4], me[5], me[6], me[8], me[9], me[10]);\n };\n /**\n * 通过数组设置矩阵\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns 矩阵\n */\n Matrix3.prototype.setFromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n for (var i = 0; i < 9; i++) {\n this.elements[i] = array[offset + i];\n }\n return this;\n };\n /**\n * 通过四元数设置矩阵\n * @param quat - 四元数\n * @returns 矩阵\n */\n Matrix3.prototype.setFromQuaternion = function (quat) {\n var x = quat.x, y = quat.y, z = quat.z, w = quat.w;\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var te = this.elements;\n te[0] = 1 - (yy + zz);\n te[1] = xy + wz;\n te[2] = xz - wy;\n te[3] = xy - wz;\n te[4] = 1 - (xx + zz);\n te[5] = yz + wx;\n te[6] = xz + wy;\n te[7] = yz - wx;\n te[8] = 1 - (xx + yy);\n return this;\n };\n /**\n * 矩阵清零\n * @returns 零矩阵\n */\n Matrix3.prototype.setZero = function () {\n for (var i = 0; i < 9; i++) {\n this.elements[i] = 0;\n }\n return this;\n };\n /**\n * 矩阵单位化\n * @returns 单位矩阵\n */\n Matrix3.prototype.identity = function () {\n return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1);\n };\n /**\n * 矩阵克隆\n * @returns 克隆结果\n */\n Matrix3.prototype.clone = function () {\n var e = this.elements;\n return new Matrix3(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8]);\n };\n /**\n * 矩阵复制\n * @param m - 复制对象\n * @returns 复制结果\n */\n Matrix3.prototype.copyFrom = function (m) {\n this.elements = __spreadArray([], __read(m.elements), false);\n return this;\n };\n /**\n * 得到列向量\n * @param i - 列向量索引,从 0 开始\n * @returns 列向量\n */\n Matrix3.prototype.getColumnVector = function (i, v) {\n return v.set(this.elements[i * 3], this.elements[i * 3 + 1], this.elements[i * 3 + 2]);\n };\n /**\n * 矩阵缩放\n * @param sx - x 轴缩放分量\n * @param sy - y 轴缩放分量\n * @returns 缩放结果\n */\n Matrix3.prototype.scale = function (sx, sy) {\n var e = this.elements;\n e[0] *= sx;\n e[3] *= sx;\n e[6] *= sx;\n e[1] *= sy;\n e[4] *= sy;\n e[7] *= sy;\n return this;\n };\n /**\n * 矩阵旋转\n * @param theta - 旋转角度(弧度)\n * @returns 旋转结果\n */\n Matrix3.prototype.rotate = function (theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n var e = this.elements;\n var m11 = e[0], m12 = e[3], m13 = e[6];\n var m21 = e[1], m22 = e[4], m23 = e[7];\n e[0] = c * m11 + s * m21;\n e[3] = c * m12 + s * m22;\n e[6] = c * m13 + s * m23;\n e[1] = -s * m11 + c * m21;\n e[4] = -s * m12 + c * m22;\n e[7] = -s * m13 + c * m23;\n return this;\n };\n /**\n * 矩阵平移\n * @param x - x 轴平移分量\n * @param y - y 轴平移分量\n * @returns 平移结果\n */\n Matrix3.prototype.translate = function (x, y) {\n var e = this.elements;\n e[0] += x * e[2];\n e[3] += x * e[5];\n e[6] += x * e[8];\n e[1] += y * e[2];\n e[4] += y * e[5];\n e[7] += y * e[8];\n return this;\n };\n /**\n * 矩阵右乘\n * @param right - 相乘矩阵\n * @returns 右乘结果\n */\n Matrix3.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n for (var i = 0; i < 9; i++) {\n this.elements[i] *= right;\n }\n return this;\n }\n else {\n return this.multiplyMatrices(this, right);\n }\n };\n /**\n * 矩阵左乘\n * @param left - 相乘矩阵\n * @returns 左乘结果\n */\n Matrix3.prototype.premultiply = function (left) {\n return this.multiplyMatrices(left, this);\n };\n /**\n * 矩阵乘法\n * @param left - 矩阵\n * @param right - 矩阵\n * @returns 相乘结果\n */\n Matrix3.prototype.multiplyMatrices = function (left, right) {\n var ae = left.elements;\n var be = right.elements;\n var te = this.elements;\n var a11 = ae[0], a12 = ae[3], a13 = ae[6];\n var a21 = ae[1], a22 = ae[4], a23 = ae[7];\n var a31 = ae[2], a32 = ae[5], a33 = ae[8];\n var b11 = be[0], b12 = be[3], b13 = be[6];\n var b21 = be[1], b22 = be[4], b23 = be[7];\n var b31 = be[2], b32 = be[5], b33 = be[8];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31;\n te[3] = a11 * b12 + a12 * b22 + a13 * b32;\n te[6] = a11 * b13 + a12 * b23 + a13 * b33;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31;\n te[4] = a21 * b12 + a22 * b22 + a23 * b32;\n te[7] = a21 * b13 + a22 * b23 + a23 * b33;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31;\n te[5] = a31 * b12 + a32 * b22 + a33 * b32;\n te[8] = a31 * b13 + a32 * b23 + a33 * b33;\n return this;\n };\n /**\n * 矩阵求行列式值\n * @returns 行列式结果\n */\n Matrix3.prototype.determinant = function () {\n var e = this.elements;\n var m11 = e[0], m21 = e[3], m31 = e[6];\n var m12 = e[1], m22 = e[4], m32 = e[7];\n var m13 = e[2], m23 = e[5], m33 = e[8];\n return (m11 * (m22 * m33 - m23 * m32) +\n m12 * (m23 * m31 - m21 * m33) +\n m13 * (m21 * m32 - m22 * m31));\n };\n /**\n * 矩阵求逆\n * @returns 逆矩阵\n */\n Matrix3.prototype.invert = function () {\n var e = this.elements;\n var m11 = e[0], m12 = e[3], m13 = e[6];\n var m21 = e[1], m22 = e[4], m23 = e[7];\n var m31 = e[2], m32 = e[5], m33 = e[8];\n var t11 = m33 * m22 - m32 * m23;\n var t12 = m32 * m13 - m33 * m12;\n var t13 = m23 * m12 - m22 * m13;\n var det = m11 * t11 + m21 * t12 + m31 * t13;\n if (det === 0) {\n return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n var detInv = 1 / det;\n e[0] = t11 * detInv;\n e[1] = (m31 * m23 - m33 * m21) * detInv;\n e[2] = (m32 * m21 - m31 * m22) * detInv;\n e[3] = t12 * detInv;\n e[4] = (m33 * m11 - m31 * m13) * detInv;\n e[5] = (m31 * m12 - m32 * m11) * detInv;\n e[6] = t13 * detInv;\n e[7] = (m21 * m13 - m23 * m11) * detInv;\n e[8] = (m22 * m11 - m21 * m12) * detInv;\n return this;\n };\n /**\n * 矩阵转置\n * @returns 转置结果\n */\n Matrix3.prototype.transpose = function () {\n var t;\n var m = this.elements;\n t = m[1];\n m[1] = m[3];\n m[3] = t;\n t = m[2];\n m[2] = m[6];\n m[6] = t;\n t = m[5];\n m[5] = m[7];\n m[7] = t;\n return this;\n };\n /**\n * 对点进行矩阵变换\n * @param v - 输入点\n * @param out - 输出点,如果没有会覆盖输入的数据\n * @returns 变换后的结果\n */\n Matrix3.prototype.transformPoint = function (v, out) {\n var x = v.x, y = v.y, z = v.z;\n var e = this.elements;\n var res = out !== null && out !== void 0 ? out : v;\n res.x = e[0] * x + e[3] * y + e[6] * z;\n res.y = e[1] * x + e[4] * y + e[7] * z;\n res.z = e[2] * x + e[5] * y + e[8] * z;\n return res;\n };\n /**\n * 对法向量进行矩阵变换\n * @param v - 输入向量\n * @param out - 输出向量,如果没有会覆盖输入的数据\n * @returns 变换后的结果\n */\n Matrix3.prototype.transformNormal = function (v, out) {\n return this.transformPoint(v, out).normalize();\n };\n /**\n * 矩阵判等\n * @param matrix - 矩阵\n * @returns 判等结果\n */\n Matrix3.prototype.equals = function (matrix) {\n var te = this.elements;\n var me = matrix.elements;\n for (var i = 0; i < 9; i++) {\n if (!isEqual(te[i], me[i])) {\n return false;\n }\n }\n return true;\n };\n /**\n * 矩阵转为数组\n * @returns\n */\n Matrix3.prototype.toArray = function () {\n return __spreadArray([], __read(this.elements), false);\n };\n Matrix3.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n var e = this.elements;\n array[offset] = e[0];\n array[offset + 1] = e[1];\n array[offset + 2] = e[2];\n array[offset + 3] = e[3];\n array[offset + 4] = e[4];\n array[offset + 5] = e[5];\n array[offset + 6] = e[6];\n array[offset + 7] = e[7];\n array[offset + 8] = e[8];\n };\n /**\n * 创建单位阵\n * @returns 单位矩阵\n */\n Matrix3.fromIdentity = function () {\n return new Matrix3(1, 0, 0, 0, 1, 0, 0, 0, 1);\n };\n /**\n * 通过列向量创建矩阵\n * @param c1 - 第一列\n * @param c2 - 第二列\n * @param c3 - 第三列\n * @returns 矩阵\n */\n Matrix3.fromColumnVectors = function (c1, c2, c3) {\n return new Matrix3().setFromColumnVectors(c1, c2, c3);\n };\n /**\n * 通过四阶矩阵创建矩阵(获取空间变换矩阵旋转缩放部分)\n * @param m - 四阶矩阵\n * @returns 矩阵\n */\n Matrix3.fromMatrix4 = function (m) {\n return new Matrix3().setFromMatrix4(m);\n };\n /**\n * 通过数组创建矩阵\n * @param array - 数组(列优先)\n * @param [offset=0] - 起始偏移值\n * @returns 矩阵\n */\n Matrix3.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Matrix3().setFromArray(array, offset);\n };\n /**\n * 通过四元数创建矩阵\n * @param quat - 四元数\n * @returns 矩阵\n */\n Matrix3.fromQuaternion = function (quat) {\n return new Matrix3().setFromQuaternion(quat);\n };\n /**\n * 设置矩阵通过行优先数据\n * @param m11 - 第 1 行,第 1 列\n * @param m12 - 第 1 行,第 2 列\n * @param m13 - 第 1 行,第 3 列\n * @param m21 - 第 2 行,第 1 列\n * @param m22 - 第 2 行,第 2 列\n * @param m23 - 第 2 行,第 3 列\n * @param m31 - 第 3 行,第 1 列\n * @param m32 - 第 3 行,第 2 列\n * @param m33 - 第 3 行,第 3 列\n * @returns 矩阵\n */\n Matrix3.fromRowMajorData = function (m11, m12, m13, m21, m22, m23, m31, m32, m33) {\n return new Matrix3(m11, m21, m31, m12, m22, m32, m13, m23, m33);\n };\n return Matrix3;\n}());\nexport { Matrix3 };\n","import { Vector3 } from './vector3';\n/**\n * 光线类\n */\nexport var Ray = /** @class */ (function () {\n /**\n * 构造函数\n * @param [origin] - 原点,默认是 (0, 0, 0)\n * @param [direction] - 方向,默认是 (1, 0, 0)\n */\n function Ray(origin, direction) {\n if (origin === void 0) { origin = Vector3.ZERO; }\n if (direction === void 0) { direction = Vector3.X; }\n /**\n * 光线的原点\n */\n this.origin = new Vector3();\n /**\n * 光线的方向\n */\n this.direction = new Vector3();\n // 注意这里必须拷贝\n this.origin.copyFrom(origin);\n this.direction.copyFrom(direction).normalize();\n }\n /**\n * 光线设置\n * @param origin - 原点\n * @param direction - 方向\n * @returns\n */\n Ray.prototype.set = function (origin, direction) {\n this.origin.copyFrom(origin);\n this.direction.copyFrom(direction).normalize();\n return this;\n };\n /**\n * 光线克隆\n * @returns 克隆结果\n */\n Ray.prototype.clone = function () {\n return new Ray(this.origin, this.direction);\n };\n /**\n * 光线拷贝\n * @param ray - 要拷贝对象\n * @returns 拷贝结果\n */\n Ray.prototype.copyFrom = function (ray) {\n return this.set(ray.origin, ray.direction);\n };\n /**\n * 根据t计算新的光线原点\n * @param t - 光线的系数 t\n * @returns\n */\n Ray.prototype.recast = function (t) {\n this.origin.copyFrom(this.at(t, Ray.tempVec0));\n return this;\n };\n /**\n * 根据t值计算光线上的点\n * @param t - 光线的系数 t\n * @param [out] - 计算的点\n * @returns\n */\n Ray.prototype.at = function (t, out) {\n var ret = out ? out : new Vector3();\n ret.copyFrom(this.origin);\n return ret.addScaledVector(this.direction, t);\n };\n /**\n * 光线相等判断\n * @param other - 其他对象\n * @returns\n */\n Ray.prototype.equals = function (other) {\n return this.origin.equals(other.origin) && this.direction.equals(other.direction);\n };\n /**\n * 根据矩阵对光线进行变换\n * @param m - 变换矩阵\n * @returns\n */\n Ray.prototype.applyMatrix = function (m) {\n this.origin.applyProjectionMatrix(m);\n this.direction.applyNormalMatrix(m);\n return this;\n };\n /**\n * 光线和包围盒求交\n * @param box - 类包围盒对象\n * @param [out] - 交点\n * @returns\n */\n Ray.prototype.intersectBox = function (box, out) {\n var _a, _b, _c, _d;\n var ox = (_a = this.origin, _a.x), oy = _a.y, oz = _a.z;\n var dx = (_b = this.direction, _b.x), dy = _b.y, dz = _b.z;\n var bxmin = (_c = box.min, _c.x), bymin = _c.y, bzmin = _c.z;\n var bxmax = (_d = box.max, _d.x), bymax = _d.y, bzmax = _d.z;\n var tmin, tmax, tymin, tymax, tzmin, tzmax;\n var invdirx = 1 / dx;\n var invdiry = 1 / dy;\n var invdirz = 1 / dz;\n if (invdirx >= 0) {\n tmin = (bxmin - ox) * invdirx;\n tmax = (bxmax - ox) * invdirx;\n }\n else {\n tmin = (bxmax - ox) * invdirx;\n tmax = (bxmin - ox) * invdirx;\n }\n if (invdiry >= 0) {\n tymin = (bymin - oy) * invdiry;\n tymax = (bymax - oy) * invdiry;\n }\n else {\n tymin = (bymax - oy) * invdiry;\n tymax = (bymin - oy) * invdiry;\n }\n if ((tmin > tymax) || (tymin > tmax)) {\n return;\n }\n if (tymin > tmin || tmin !== tmin) {\n tmin = tymin;\n }\n if (tymax < tmax || tmax !== tmax) {\n tmax = tymax;\n }\n if (tymin > tmin || tmin !== tmin) {\n tmin = tymin;\n }\n if (tymax < tmax || tmax !== tmax) {\n tmax = tymax;\n }\n if (invdirz >= 0) {\n tzmin = (bzmin - oz) * invdirz;\n tzmax = (bzmax - oz) * invdirz;\n }\n else {\n tzmin = (bzmax - oz) * invdirz;\n tzmax = (bzmin - oz) * invdirz;\n }\n if ((tmin > tzmax) || (tzmin > tmax)) {\n return;\n }\n if (tzmin > tmin || tmin !== tmin) {\n tmin = tzmin;\n }\n if (tzmax < tmax || tmax !== tmax) {\n tmax = tzmax;\n }\n if (tmax < 0) {\n return;\n }\n return tmin >= 0 ? this.at(tmin, out) : this.at(tmax, out);\n };\n /**\n * 光线和平面求交\n * @param plane - 类平面对象\n * @param [out] - 交点\n * @returns\n */\n Ray.prototype.intersectPlane = function (plane, out) {\n var normal = plane.normal;\n var distance = plane.distance;\n var denominator = normal.dot(this.direction);\n if (denominator === 0) {\n // line is coplanar, return origin\n var t_1 = normal.dot(this.origin) + distance;\n if (t_1 === 0) {\n var ret = out ? out : new Vector3();\n return ret.copyFrom(this.origin);\n }\n // Null is preferable to undefined since undefined means.... it is undefined\n return;\n }\n var t = -(this.origin.dot(normal) + distance) / denominator;\n // Return if the ray never intersects the plane\n return t >= 0 ? this.at(t, out) : undefined;\n };\n /**\n * 光线和圆求交\n * @param sphere - 类球对象\n * @param [out] - 交点\n * @returns\n */\n Ray.prototype.intersectSphere = function (sphere, out) {\n var center = sphere.center;\n var vector = Ray.tempVec0.subtractVectors(center, this.origin);\n var tca = vector.dot(this.direction);\n var d2 = vector.dot(vector) - tca * tca;\n var radius2 = sphere.radius * sphere.radius;\n if (d2 > radius2) {\n return;\n }\n var thc = Math.sqrt(radius2 - d2);\n // t0 = first intersect point - entrance on front of sphere\n var t0 = tca - thc;\n // t1 = second intersect point - exit point on back of sphere\n var t1 = tca + thc;\n // test to see if t1 is behind the ray - if so, return null\n if (t1 < 0) {\n return;\n }\n // test to see if t0 is behind the ray:\n // if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n // in order to always return an intersect point that is in front of the ray.\n // else t0 is in front of the ray, so return the first collision point scaled by t0\n return t0 >= 0 ? this.at(t0, out) : this.at(t1, out);\n };\n /**\n * 光线和三角形求交\n * @param triangle - 类三角形对象\n * @param [out] - 交点\n * @param [backfaceCulling] - 是否背面剔除\n * @returns\n */\n Ray.prototype.intersectTriangle = function (triangle, out, backfaceCulling) {\n // FIXME: 交换out和backfaceCulling\n // Compute the offset origin, edges, and normal.\n // from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n var a = triangle.p0;\n var b = triangle.p1;\n var c = triangle.p2;\n var edge1 = Ray.tempVec0.subtractVectors(b, a);\n var edge2 = Ray.tempVec1.subtractVectors(c, a);\n var diff = Ray.tempVec2.subtractVectors(this.origin, a);\n var normal = Ray.tempVec3.crossVectors(edge1, edge2);\n // Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n // E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n // |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n // |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n // |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n var DdN = this.direction.dot(normal);\n var sign;\n if (DdN > 0) {\n if (backfaceCulling) {\n return;\n }\n sign = 1;\n }\n else if (DdN < 0) {\n sign = -1;\n DdN = -DdN;\n }\n else {\n return;\n }\n edge2.crossVectors(diff, edge2);\n var DdQxE2 = sign * this.direction.dot(edge2);\n // b1 < 0, no intersection\n if (DdQxE2 < 0) {\n return;\n }\n edge1.cross(diff);\n var DdE1xQ = sign * this.direction.dot(edge1);\n // b2 < 0, no intersection\n if (DdE1xQ < 0) {\n return;\n }\n // b1+b2 > 1, no intersection\n if (DdQxE2 + DdE1xQ > DdN) {\n return;\n }\n // Line intersects triangle, check if ray does.\n var QdN = -sign * diff.dot(normal);\n // t < 0, no intersection\n if (QdN < 0) {\n return;\n }\n // Ray intersects triangle.\n return this.at(QdN / DdN, out);\n };\n Ray.tempVec0 = new Vector3();\n Ray.tempVec1 = new Vector3();\n Ray.tempVec2 = new Vector3();\n Ray.tempVec3 = new Vector3();\n return Ray;\n}());\n","import { Vector4 } from './vector4';\nexport var Color = /** @class */ (function () {\n /**\n * 构造函数,默认值为黑色\n * @param [r=0]\n * @param [g=0]\n * @param [b=0]\n * @param [a=0]\n */\n function Color(r, g, b, a) {\n if (r === void 0) { r = 0; }\n if (g === void 0) { g = 0; }\n if (b === void 0) { b = 0; }\n if (a === void 0) { a = 0; }\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n /**\n * 设置颜色\n * @param r - r 分量\n * @param g - g 分量\n * @param b - b 分量\n * @param a - a 分量\n * @returns\n */\n Color.prototype.set = function (r, g, b, a) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n return this;\n };\n /**\n * 设置零颜色\n * @returns\n */\n Color.prototype.setZero = function () {\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n return this;\n };\n /**\n * 通过标量数值设置颜色\n * @param num - 数值\n * @returns\n */\n Color.prototype.setFromNumber = function (num) {\n this.r = num;\n this.g = num;\n this.b = num;\n this.a = num;\n return this;\n };\n /**\n * 通过Vector4创建颜色\n * @param v - Vector4\n * @returns\n */\n Color.prototype.setFromVector4 = function (v) {\n this.r = v.x;\n this.g = v.y;\n this.b = v.z;\n this.a = v.w;\n return this;\n };\n /**\n * 通过数组创建颜色\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns\n */\n Color.prototype.setFromArray = function (array, offset) {\n var _a, _b, _c, _d;\n if (offset === void 0) { offset = 0; }\n this.r = (_a = array[offset]) !== null && _a !== void 0 ? _a : 0;\n this.g = (_b = array[offset + 1]) !== null && _b !== void 0 ? _b : 0;\n this.b = (_c = array[offset + 2]) !== null && _c !== void 0 ? _c : 0;\n this.a = (_d = array[offset + 3]) !== null && _d !== void 0 ? _d : 0;\n return this;\n };\n Color.prototype.setFromHSV = function (hue, saturation, value, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var chroma = value * saturation;\n var h = hue / 60;\n var x = chroma * (1 - Math.abs((h % 2) - 1));\n var r = 0;\n var g = 0;\n var b = 0;\n if (h >= 0 && h <= 1) {\n r = chroma;\n g = x;\n }\n else if (h >= 1 && h <= 2) {\n r = x;\n g = chroma;\n }\n else if (h >= 2 && h <= 3) {\n g = chroma;\n b = x;\n }\n else if (h >= 3 && h <= 4) {\n g = x;\n b = chroma;\n }\n else if (h >= 4 && h <= 5) {\n r = x;\n b = chroma;\n }\n else if (h >= 5 && h <= 6) {\n r = chroma;\n b = x;\n }\n var m = value - chroma;\n return this.set(r + m, g + m, b + m, alpha);\n };\n Color.prototype.setFromHexString = function (hex) {\n if (hex.substring(0, 1) !== '#' || (hex.length !== 9 && hex.length !== 7)) {\n return this;\n }\n var r = parseInt(hex.substring(1, 3), 16) / 255.0;\n var g = parseInt(hex.substring(3, 5), 16) / 255.0;\n var b = parseInt(hex.substring(5, 7), 16) / 255.0;\n var a = hex.length === 9 ? parseInt(hex.substring(7, 9), 16) / 255.0 : 1.0;\n return this.set(r, g, b, a);\n };\n /**\n * 拷贝颜色\n * @param v - 复制对象\n * @returns 拷贝结果\n */\n Color.prototype.copyFrom = function (v) {\n this.r = v.r;\n this.g = v.g;\n this.b = v.b;\n this.a = v.a;\n return this;\n };\n /**\n * 克隆颜色\n * @returns 克隆结果\n */\n Color.prototype.clone = function () {\n return new Color(this.r, this.g, this.b, this.a);\n };\n /**\n * 根据下标设置颜色分量\n * @param index - 下标值\n * @param value - 分量值\n * @returns\n */\n Color.prototype.setElement = function (index, value) {\n switch (index) {\n case 0:\n this.r = value;\n break;\n case 1:\n this.g = value;\n break;\n case 2:\n this.b = value;\n break;\n case 3:\n this.a = value;\n break;\n default: console.error('index is out of range: ' + index);\n }\n return this;\n };\n /**\n * 根据下标获取颜色分量\n * @param index - 下标\n * @returns 分量值\n */\n Color.prototype.getElement = function (index) {\n switch (index) {\n case 0: return this.r;\n case 1: return this.g;\n case 2: return this.b;\n case 3: return this.a;\n default: console.error('index is out of range: ' + index);\n }\n return 0;\n };\n /**\n * 颜色相加\n * @param right - 相加对象,颜色 | 数字\n * @returns 相加结果\n */\n Color.prototype.add = function (right) {\n if (typeof right === 'number') {\n this.r += right;\n this.g += right;\n this.b += right;\n this.a += right;\n }\n else if (right instanceof Array) {\n this.r += right[0];\n this.g += right[1];\n this.b += right[2];\n this.a += right[3];\n }\n else {\n this.r += right.r;\n this.g += right.g;\n this.b += right.b;\n this.a += right.a;\n }\n return this;\n };\n /**\n * 颜色相减\n * @param right - 相减对象,颜色 | 数字\n * @returns 相减结果\n */\n Color.prototype.subtract = function (right) {\n if (typeof right === 'number') {\n this.r -= right;\n this.g -= right;\n this.b -= right;\n this.a -= right;\n }\n else if (right instanceof Array) {\n this.r -= right[0];\n this.g -= right[1];\n this.b -= right[2];\n this.a -= right[3];\n }\n else {\n this.r -= right.r;\n this.g -= right.g;\n this.b -= right.b;\n this.a -= right.a;\n }\n return this;\n };\n /**\n * 颜色相乘\n * @param right - 相乘对象,对象 | 数字\n * @returns 颜色\n */\n Color.prototype.multiply = function (right) {\n if (typeof right === 'number') {\n this.r *= right;\n this.g *= right;\n this.b *= right;\n this.a *= right;\n }\n else if (right instanceof Array) {\n this.r *= right[0];\n this.g *= right[1];\n this.b *= right[2];\n this.a *= right[3];\n }\n else {\n this.r *= right.r;\n this.g *= right.g;\n this.b *= right.b;\n this.a *= right.a;\n }\n return this;\n };\n /**\n * 颜色相除\n * @param right - 相除对象,对象 | 数字\n * @returns 颜色\n */\n Color.prototype.divide = function (right) {\n if (typeof right === 'number') {\n this.r /= right;\n this.g /= right;\n this.b /= right;\n this.a /= right;\n }\n else if (right instanceof Array) {\n this.r /= right[0];\n this.g /= right[1];\n this.b /= right[2];\n this.a /= right[3];\n }\n else {\n this.r /= right.r;\n this.g /= right.g;\n this.b /= right.b;\n this.a /= right.a;\n }\n return this;\n };\n /**\n * 颜色缩放\n * @param v - 数字\n * @returns 缩放结果\n */\n Color.prototype.scale = function (v) {\n this.r *= v;\n this.g *= v;\n this.b *= v;\n this.a *= v;\n return this;\n };\n /**\n * 颜色求最小值\n * @param v - 颜色或数值\n * @returns 最小值\n */\n Color.prototype.min = function (v) {\n if (typeof v === 'number') {\n this.r = Math.min(this.r, v);\n this.g = Math.min(this.g, v);\n this.b = Math.min(this.b, v);\n this.a = Math.min(this.a, v);\n }\n else {\n this.r = Math.min(this.r, v.r);\n this.g = Math.min(this.g, v.g);\n this.b = Math.min(this.b, v.b);\n this.a = Math.min(this.a, v.a);\n }\n return this;\n };\n /**\n * 颜色求最大值\n * @param v - 颜色或数值\n * @returns 最大值\n */\n Color.prototype.max = function (v) {\n if (typeof v === 'number') {\n this.r = Math.max(this.r, v);\n this.g = Math.max(this.g, v);\n this.b = Math.max(this.b, v);\n this.a = Math.max(this.a, v);\n }\n else {\n this.r = Math.max(this.r, v.r);\n this.g = Math.max(this.g, v.g);\n this.b = Math.max(this.b, v.b);\n this.a = Math.max(this.a, v.a);\n }\n return this;\n };\n /**\n * 颜色阈值约束\n * @param min - 最小值\n * @param max - 最大值\n * @returns 颜色\n */\n Color.prototype.clamp = function (min, max) {\n return this.max(min).min(max);\n };\n /**\n * 颜色求线性插值\n * @param v - 颜色\n * @param alpha - 插值比例\n * @returns 插值结果\n */\n Color.prototype.lerp = function (v, alpha) {\n this.r += (v.r - this.r) * alpha;\n this.g += (v.g - this.g) * alpha;\n this.b += (v.b - this.b) * alpha;\n this.a += (v.a - this.a) * alpha;\n return this;\n };\n /**\n * 计算颜色亮度值\n * @returns 亮度值\n */\n Color.prototype.luminance = function () {\n return this.r * 0.3 + this.g * 0.59 + this.b * 0.11;\n };\n /**\n * 颜色判等\n * @param v - 颜色\n * @returns 判等结果\n */\n Color.prototype.equals = function (v) {\n return v.r === this.r && v.g === this.g && v.b === this.b && v.a === this.a;\n };\n Color.prototype.toLinear = function () {\n this.r = Color.gammaToLinear(this.r);\n this.g = Color.gammaToLinear(this.g);\n this.b = Color.gammaToLinear(this.b);\n return this;\n };\n Color.prototype.toGamma = function () {\n this.r = Color.linearToGamma(this.r);\n this.g = Color.linearToGamma(this.g);\n this.b = Color.linearToGamma(this.b);\n return this;\n };\n /**\n * 颜色转数组\n * @returns 数组\n */\n Color.prototype.toArray = function () {\n return [this.r, this.g, this.b, this.a];\n };\n Color.prototype.toVector4 = function () {\n return new Vector4(this.r, this.g, this.b, this.a);\n };\n /**\n * RGB 颜色空间转 HSV\n * @param result HSV 值\n */\n Color.prototype.toHSV = function () {\n var _a;\n var r = (_a = this, _a.r), g = _a.g, b = _a.b, a = _a.a;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var v = max;\n var dm = max - min;\n var h = 0;\n var s = 0;\n if (max !== 0) {\n s = dm / max;\n }\n if (max != min) {\n if (max == r) {\n h = (g - b) / dm;\n if (g < b) {\n h += 6;\n }\n }\n else if (max == g) {\n h = (b - r) / dm + 2;\n }\n else if (max == b) {\n h = (r - g) / dm + 4;\n }\n h *= 60;\n }\n return new Color(h, s, v, a);\n };\n Color.prototype.toHexString = function (includeAlpha) {\n if (includeAlpha === void 0) { includeAlpha = true; }\n var R = Color.ToHex(Math.round(this.r * 255));\n var G = Color.ToHex(Math.round(this.g * 255));\n var B = Color.ToHex(Math.round(this.b * 255));\n var A = Color.ToHex(Math.round(this.a * 255));\n if (includeAlpha) {\n return '#' + R + G + B + A;\n }\n else {\n return '#' + R + G + B;\n }\n };\n Color.prototype.fill = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n array[offset] = this.r;\n array[offset + 1] = this.g;\n array[offset + 2] = this.b;\n array[offset + 3] = this.a;\n };\n /**\n * 通过标量数值创建颜色\n * @param num - 数值\n * @returns\n */\n Color.fromNumber = function (num) {\n return new Color().setFromNumber(num);\n };\n /**\n * 通过数组创建颜色\n * @param array - 数组\n * @param [offset=0] - 起始偏移值\n * @returns\n */\n Color.fromArray = function (array, offset) {\n if (offset === void 0) { offset = 0; }\n return new Color().setFromArray(array, offset);\n };\n /**\n * 通过 hex 字符串创建颜色\n * @param hex - hex 字符串\n * @returns\n */\n Color.fromHexString = function (hex) {\n return new Color().setFromHexString(hex);\n };\n Color.fromHSV = function (hue, saturation, value, alpha) {\n if (alpha === void 0) { alpha = 1; }\n return new Color().setFromHSV(hue, saturation, value, alpha);\n };\n /**\n * 颜色值从 Gamma 空间转到线性空间\n * @param v - Gamma 空间颜色值\n * @returns 线性空间颜色值\n */\n Color.gammaToLinear = function (v) {\n if (v <= 0.0) {\n return 0.0;\n }\n else if (v <= 0.04045) {\n return v / 12.92;\n }\n else if (v < 1.0) {\n return Math.pow((v + 0.055) / 1.055, 2.4);\n }\n else {\n return Math.pow(v, 2.4);\n }\n };\n /**\n * 颜色值从线性空间转到 Gamma 空间\n * @param value - 线性空间颜色值\n * @returns Gamma 空间颜色值\n */\n Color.linearToGamma = function (value) {\n if (value <= 0.0) {\n return 0.0;\n }\n else if (value < 0.0031308) {\n return 12.92 * value;\n }\n else if (value < 1.0) {\n return 1.055 * Math.pow(value, 0.41666) - 0.055;\n }\n else {\n return Math.pow(value, 0.41666);\n }\n };\n Color.ToHex = function (i) {\n var str = i.toString(16);\n if (i <= 15) {\n return ('0' + str).toUpperCase();\n }\n return str.toUpperCase();\n };\n /**\n * 颜色的常量\n */\n Color.BLACK = new Color(0, 0, 0, 1); // 纯黑色\n Color.BLUE = new Color(0, 0, 1, 1); // 纯蓝色\n Color.CLEAR = new Color(0, 0, 0, 0); // 完全透明\n Color.CYAN = new Color(0, 1, 1, 1); // 青色\n Color.GRAY = new Color(0.5, 0.5, 0.5, 1); // 灰色\n Color.GREEN = new Color(0, 1, 0, 1); // 纯绿色\n Color.MAGENTA = new Color(1, 0, 1, 1); // 洋红色\n Color.RED = new Color(1, 0, 0, 1); // 纯红色\n Color.WHITE = new Color(1, 1, 1, 1); // 纯白色\n Color.YELLOW = new Color(1, 0.92, 0.016, 1); // 黄色\n return Color;\n}());\n","import { Vector3 } from './vector3';\n/**\n * 三维包围盒\n */\nvar Box3 = /** @class */ (function () {\n /**\n * 构造函数,传入值为空时表示空包围盒\n * @param [min=new Vector3(Infinity)] - 最小角点\n * @param [max=new Vector3(-Infinity)] - 最大角点\n */\n function Box3(min, max) {\n if (min === void 0) { min = new Vector3(Infinity, Infinity, Infinity); }\n if (max === void 0) { max = new Vector3(-Infinity, -Infinity, -Infinity); }\n this.min = min.clone();\n this.max = max.clone();\n }\n /**\n * 设置三维包围盒的值\n * @param min - 三维包围盒最小点\n * @param max - 三维包围盒最大点\n * @returns\n */\n Box3.prototype.set = function (min, max) {\n this.min.copyFrom(min);\n this.max.copyFrom(max);\n return this;\n };\n /**\n * 通过数组构建三维包围盒\n * @param array - 数组集合(每三个数视为一个三维空间点)\n * @returns 三维包围盒\n */\n Box3.prototype.setFromArray = function (array) {\n var minX = Number(Infinity);\n var minY = Number(Infinity);\n var minZ = Number(Infinity);\n var maxX = -Infinity;\n var maxY = -Infinity;\n var maxZ = -Infinity;\n for (var i = 0, l = array.length; i < l; i += 3) {\n var x = array[i];\n var y = array[i + 1];\n var z = array[i + 2];\n if (x < minX) {\n minX = x;\n }\n if (y < minY) {\n minY = y;\n }\n if (z < minZ) {\n minZ = z;\n }\n if (x > maxX) {\n maxX = x;\n }\n if (y > maxY) {\n maxY = y;\n }\n if (z > maxZ) {\n maxZ = z;\n }\n }\n this.min.set(minX, minY, minZ);\n this.max.set(maxX, maxY, maxZ);\n return this;\n };\n /**\n * 通过三维空间点构建三维包围盒\n * @param points - 三维空间点集合\n * @returns 三维包围盒\n */\n Box3.prototype.setFromPoints = function (points) {\n this.makeEmpty();\n for (var i = 0, il = points.length; i < il; i++) {\n this.expandByPoint(points[i]);\n }\n return this;\n };\n /**\n * 通过三维空间点(包围盒中心)和大小确定包围盒\n * @param center - 三维包围盒中心点\n * @param size - 三维包围盒大小值\n * @returns 三维包围盒\n */\n Box3.prototype.setFromCenterAndSize = function (center, size) {\n var halfSize = size.clone().multiply(0.5);\n this.min.copyFrom(center).subtract(halfSize);\n this.max.copyFrom(center).add(halfSize);\n return this;\n };\n // TODO\n /**\n * 通过实体构建包围盒\n * @param object - 构件实体\n * @returns 三维包围盒\n */\n Box3.prototype.setFromObject = function (object) {\n this.makeEmpty();\n return this.expandByObject(object);\n };\n /**\n * 克隆三维包围盒\n * @returns 克隆结果\n */\n Box3.prototype.clone = function () {\n return new Box3().copyFrom(this);\n };\n /**\n * 复制三维包围盒\n * @param box - 复制对象\n * @returns 复制结果\n */\n Box3.prototype.copyFrom = function (box) {\n this.min.copyFrom(box.min);\n this.max.copyFrom(box.max);\n return this;\n };\n /**\n * 三维包围盒置空\n * @returns 置空结果\n */\n Box3.prototype.makeEmpty = function () {\n this.min.x = this.min.y = this.min.z = Number(Infinity);\n this.max.x = this.max.y = this.max.z = -Infinity;\n return this;\n };\n /**\n * 三维包围盒判空\n * @returns 判空结果\n */\n Box3.prototype.isEmpty = function () {\n // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n return this.max.x < this.min.x\n || this.max.y < this.min.y\n || this.max.z < this.min.z;\n };\n /**\n * 获取三维包围盒中心\n * @param [target=new Vector3()]\n * @returns\n */\n Box3.prototype.getCenter = function (target) {\n if (target === void 0) { target = new Vector3(); }\n return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiply(0.5);\n };\n /**\n * 获取三维包围盒大小\n * @param [target=new Vector3()] - 结果保存对象\n * @returns 三维包围盒大小\n */\n Box3.prototype.getSize = function (target) {\n if (target === void 0) { target = new Vector3(); }\n return this.isEmpty() ? target.set(0, 0, 0) : target.subtractVectors(this.max, this.min);\n };\n /**\n * 通过三维空间点扩展三维包围盒\n * @param point - 三维空间点\n * @returns 扩展结果\n */\n Box3.prototype.expandByPoint = function (point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n };\n /**\n * 通过三维向量扩展三维包围盒\n * @param vector - 三维向量\n * @returns 扩展结果\n */\n Box3.prototype.expandByVector = function (vector) {\n this.min.subtract(vector);\n this.max.add(vector);\n return this;\n };\n /**\n * 通过实数扩展三维包围盒\n * @param scalar - 扩展大小\n * @returns 扩展结果\n */\n Box3.prototype.expandByScalar = function (scalar) {\n this.min.add(-scalar);\n this.max.add(scalar);\n return this;\n };\n /**\n * 通过包围盒扩展三维包围盒\n * @param box\n * @returns\n */\n Box3.prototype.expandByBox = function (box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n };\n // TODO\n /**\n * 通过实体扩展三维包围盒\n * @param object - 构件实体\n * @returns 扩展结果\n */\n Box3.prototype.expandByObject = function (object) {\n // Computes the world-axis-aligned bounding box of an object (including its children),\n // accounting for both the object's, and children's, world transforms\n object.updateWorldMatrix(false, false);\n var geometry = object.geometry;\n if (geometry !== undefined) {\n if (geometry.boundingBox === null) {\n geometry.computeBoundingBox();\n }\n var box3 = new Box3();\n box3.copyFrom(geometry.boundingBox);\n box3.applyMatrix4(object.matrixWorld);\n this.union(box3);\n }\n var children = object.children;\n for (var i = 0, l = children.length; i < l; i++) {\n this.expandByObject(children[i]);\n }\n return this;\n };\n /**\n * 判断三维包围盒相交关系(if this intersect other)\n * @param point - 三维空间点\n * @returns 点包含判断结果\n */\n Box3.prototype.containsPoint = function (point) {\n return !(point.x < this.min.x\n || point.x > this.max.x\n || point.y < this.min.y\n || point.y > this.max.y\n || point.z < this.min.z\n || point.z > this.max.z);\n };\n /**\n * 判断三维包围盒与三维包围盒的包含关系\n * @param other - 三维包围盒\n * @returns 包围盒包含结果(true 表示包含 other, false 表示不包含 other)\n */\n Box3.prototype.containsBox = function (other) {\n return this.min.x <= other.min.x\n && this.max.x >= other.max.x\n && this.min.y <= other.min.y\n && this.max.y >= other.max.y\n && this.min.z <= other.min.z\n && this.max.z >= other.max.z;\n };\n // TODO\n /**\n * 获取点在三维包围盒的比例位置\n * @param point - 三维空间点\n * @param [target=new Vector3()] - 结果保存对象\n * @returns 点在包围盒比例位置\n */\n Box3.prototype.getParameter = function (point, target) {\n if (target === void 0) { target = new Vector3(); }\n // This can potentially have a divide by zero if the box\n // has a size dimension of 0.\n return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y), (point.z - this.min.z) / (this.max.z - this.min.z));\n };\n /**\n * 判断三维包围盒相交关系(if this intersect other)\n * @param other - 三维包围盒\n * @returns 相交判断结果\n */\n Box3.prototype.intersectsBox = function (other) {\n // using 6 splitting planes to rule out intersections.\n return !(other.max.x < this.min.x || other.min.x > this.max.x\n || other.max.y < this.min.y || other.min.y > this.max.y\n || other.max.z < this.min.z || other.min.z > this.max.z);\n };\n /**\n * 判断三维包围盒和球是否相交\n * @param sphere\n * @returns\n */\n Box3.prototype.intersectsSphere = function (sphere) {\n // Find the point on the AABB closest to the sphere center.\n var vector = new Vector3();\n this.clampPoint(sphere.center, vector);\n // If that point is inside the sphere, the AABB and sphere intersect.\n return vector.distanceSquared(sphere.center) <= (sphere.radius * sphere.radius);\n };\n /**\n * 求点与三维包围盒的最近点\n * @param point - 三维空间点\n * @param [target=new Vector3()] - 结果存放对象\n * @returns 计算结果\n */\n Box3.prototype.clampPoint = function (point, target) {\n if (target === void 0) { target = new Vector3(); }\n return target.copyFrom(point).clamp(this.min, this.max);\n };\n /**\n * 三维空间点到三维包围盒的距离\n * @param point - 三维包围盒\n * @returns 距离结果\n */\n Box3.prototype.distanceToPoint = function (point) {\n var clampedPoint = point.clone().clamp(this.min, this.max);\n return clampedPoint.subtract(point).length();\n };\n /**\n * 三维包围盒求交集\n * @param box - 三维包围盒\n * @returns 求交结果\n */\n Box3.prototype.intersect = function (box) {\n this.min.max(box.min);\n this.max.min(box.max);\n // ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n if (this.isEmpty()) {\n this.makeEmpty();\n }\n return this;\n };\n /**\n * 三维包围盒求并集\n * @param box - 三维包围盒\n * @returns 求并结果\n */\n Box3.prototype.union = function (box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n };\n /**\n * 通过三维变换矩阵变化三维包围盒\n * @param matrix - 三维变换矩阵\n * @returns 变换结果\n */\n Box3.prototype.applyMatrix4 = function (matrix, center) {\n if (center === void 0) { center = new Vector3(); }\n // transform of empty box is an empty box.\n if (this.isEmpty()) {\n return this;\n }\n var points = this.getOBBPoints(matrix, center);\n this.setFromPoints(points);\n return this;\n };\n Box3.prototype.getOBBPoints = function (matrix, center) {\n if (center === void 0) { center = new Vector3(); }\n // transform of empty box is an empty box.\n if (this.isEmpty()) {\n return [];\n }\n var points = [];\n // NOTE: I am using a binary pattern to specify all 2^3 combinations below\n points[0] = new Vector3(this.min.x, this.min.y, this.min.z); // 000\n points[1] = new Vector3(this.min.x, this.min.y, this.max.z); // 001\n points[2] = new Vector3(this.min.x, this.max.y, this.min.z); // 010\n points[3] = new Vector3(this.min.x, this.max.y, this.max.z); // 011\n points[4] = new Vector3(this.max.x, this.min.y, this.min.z); // 100\n points[5] = new Vector3(this.max.x, this.min.y, this.max.z); // 101\n points[6] = new Vector3(this.max.x, this.max.y, this.min.z); // 110\n points[7] = new Vector3(this.max.x, this.max.y, this.max.z); // 111\n points.forEach(function (p) {\n p.subtract(center);\n p.applyMatrix(matrix);\n p.add(center);\n });\n return points;\n };\n /**\n * 通过包围盒获取包围球\n * @param target\n * @returns\n */\n Box3.prototype.getBoundingSphere = function (target) {\n this.getCenter(target.center);\n var vector = new Vector3();\n target.radius = this.getSize(vector).length() * 0.5;\n return target;\n };\n /**\n * 三维包围盒位移\n * @param offset - 三维位移向量\n * @returns 位移结果\n */\n Box3.prototype.translate = function (offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n };\n /**\n * 三维包围盒判等\n * @param other - 三维包围盒\n * @returns 判等结果\n */\n Box3.prototype.equals = function (other) {\n return other.min.equals(this.min) && other.max.equals(this.max);\n };\n return Box3;\n}());\nexport { Box3 };\n","import { Box3 } from './box3';\nimport { Vector3 } from './vector3';\n/**\n * 球\n */\nvar Sphere = /** @class */ (function () {\n /**\n * 构造函数\n * @param [center=Vector3.ZERO] - 球心,默认值为(0, 0, 0)\n * @param [radius=-1] - 半径\n */\n function Sphere(center, radius) {\n if (center === void 0) { center = Vector3.ZERO; }\n if (radius === void 0) { radius = -1; }\n this.center = center.clone();\n this.radius = radius;\n }\n /**\n * 通过参数设置球\n * @param center - 球心\n * @param radius - 半径\n * @returns\n */\n Sphere.prototype.set = function (center, radius) {\n this.center.copyFrom(center);\n this.radius = radius;\n return this;\n };\n /**\n * 通过空间点与球心设置球\n * @param points - 三维空间点\n * @param [optionalCenter] - 指定球心\n * @returns\n */\n Sphere.prototype.setFromPoints = function (points, optionalCenter) {\n var center = this.center;\n if (optionalCenter !== undefined) {\n center.copyFrom(optionalCenter);\n var maxRadiusSq = 0;\n for (var i = 0; i < points.length; i++) {\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceSquared(points[i]));\n }\n this.radius = Math.sqrt(maxRadiusSq);\n }\n else {\n var box = new Box3().setFromPoints(points);\n box.getCenter(center);\n this.radius = box.getSize().length() / 2;\n }\n return this;\n };\n /**\n * 复制球\n * @param sphere - 球信息\n * @returns 复制结果\n */\n Sphere.prototype.copyFrom = function (sphere) {\n this.center.copyFrom(sphere.center);\n this.radius = sphere.radius;\n return this;\n };\n /**\n * 球判空\n * @returns 判空结果\n */\n Sphere.prototype.isEmpty = function () {\n return this.radius < 0;\n };\n /**\n * 球置空\n * @returns 置空结果\n */\n Sphere.prototype.makeEmpty = function () {\n this.center.set(0, 0, 0);\n this.radius = -1;\n return this;\n };\n /**\n * 三维空间点包围判断\n * @param point - 三维空间点\n * @returns 空间点包含判断\n */\n Sphere.prototype.containsPoint = function (point) {\n return point.distanceSquared(this.center) <= (this.radius * this.radius);\n };\n /**\n * 空间点与球表面的最短距离\n * @param point - 三维空间点\n * @returns 距离结果\n */\n Sphere.prototype.distanceToPoint = function (point) {\n return (point.distance(this.center) - this.radius);\n };\n /**\n * 与球相交判断\n * @param sphere - 球\n * @returns 相交判断结果\n */\n Sphere.prototype.intersectsSphere = function (sphere) {\n var radiusSum = this.radius + sphere.radius;\n return sphere.center.distanceSquared(this.center) <= (radiusSum * radiusSum);\n };\n /**\n * 与包围盒相交判断\n * @param box - 三维包围盒\n * @returns 相交判断结果\n */\n Sphere.prototype.intersectsBox = function (box) {\n return box.intersectsSphere(this);\n };\n /**\n * 收敛空间点在球范围内\n * 注:乘法的效率要比开方高很多\n * @param point - 三维空间点\n * @param [target] - 结果保存对象\n * @returns 收敛结果\n */\n Sphere.prototype.clampPoint = function (point, target) {\n var deltaLengthSq = this.center.distanceSquared(point);\n if (target === undefined) {\n target = new Vector3();\n }\n target.copyFrom(point);\n if (deltaLengthSq > (this.radius * this.radius)) {\n target.subtract(this.center).normalize();\n target.multiply(this.radius).add(this.center);\n }\n return target;\n };\n /**\n * 根据包围盒获取球\n * @param target - 包围盒\n * @returns 球\n */\n Sphere.prototype.getBoundingBox = function (target) {\n if (target === undefined) {\n target = new Box3();\n }\n if (this.isEmpty()) {\n // Empty sphere produces empty bounding box\n target.makeEmpty();\n return target;\n }\n target.set(this.center, this.center);\n target.expandByScalar(this.radius);\n return target;\n };\n /**\n * 球空间变换\n * @param matrix - 空间变化矩阵\n * @returns 变换结果\n */\n Sphere.prototype.applyMatrix4 = function (matrix) {\n var mt = matrix.elements;\n var scaleXSq = mt[0] * mt[0] + mt[1] * mt[1] + mt[2] * mt[2];\n var scaleYSq = mt[4] * mt[4] + mt[5] * mt[5] + mt[6] * mt[6];\n var scaleZSq = mt[8] * mt[8] + mt[9] * mt[9] + mt[10] * mt[10];\n var maxScale = Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n this.center.applyMatrix(matrix);\n this.radius = this.radius * maxScale;\n return this;\n };\n /**\n * 球位移\n * @param offset - 位移信息\n * @returns 位移结果\n */\n Sphere.prototype.translate = function (offset) {\n this.center.add(offset);\n return this;\n };\n /**\n * 通过三维空间点对球进行扩展\n * @param point - 扩展点\n * @returns 扩展结果\n */\n Sphere.prototype.expandByPoint = function (point) {\n var vector = new Vector3().subtractVectors(point, this.center);\n var lengthSquared = vector.lengthSquared();\n if (lengthSquared > (this.radius * this.radius)) {\n var length_1 = Math.sqrt(lengthSquared);\n var missingRadiusHalf = (length_1 - this.radius) * 0.5;\n // Nudge this sphere towards the target point. Add half the missing distance to radius,\n // and the other half to position. This gives a tighter enclosure, instead of if\n // the whole missing distance were just added to radius.\n this.center.add(vector.multiply(missingRadiusHalf / length_1));\n this.radius += missingRadiusHalf;\n }\n return this;\n };\n /**\n * 包围球求并集\n * @param sphere - 包围球\n * @returns 求并结果\n */\n Sphere.prototype.union = function (sphere) {\n // To enclose another sphere into this sphere, we only need to enclose two points:\n // 1) Enclose the farthest point on the other sphere into this sphere.\n // 2) Enclose the opposite point of the farthest point into this sphere.\n var v1 = new Vector3();\n var toFarthestPoint = new Vector3();\n toFarthestPoint.subtractVectors(sphere.center, this.center).normalize().multiply(sphere.radius);\n this.expandByPoint(v1.copyFrom(sphere.center).add(toFarthestPoint));\n this.expandByPoint(v1.copyFrom(sphere.center).subtract(toFarthestPoint));\n return this;\n };\n /**\n * 包围球求交集\n * @param other - 其它包围球\n * @returns 求交结果\n */\n Sphere.prototype.intersect = function (other) {\n var vector = new Vector3().subtractVectors(this.center, other.center);\n var distance = vector.length();\n var radiusSum = this.radius + other.radius;\n if (distance > radiusSum) {\n return this.makeEmpty();\n }\n this.center = this.center.add(vector.normalize().multiply(distance / 2));\n this.radius = this.radius + other.radius - distance;\n return this;\n };\n /**\n * 包围球判等\n * @param sphere - 包围球\n * @returns 判等结果\n */\n Sphere.prototype.equals = function (sphere) {\n return sphere.center.equals(this.center) && (sphere.radius === this.radius);\n };\n /**\n * 包围球克隆\n * @returns 克隆结果\n */\n Sphere.prototype.clone = function () {\n return new Sphere().copyFrom(this);\n };\n return Sphere;\n}());\nexport { Sphere };\n","/**\n * Earcut.js from: https://github.com/mapbox/earcut/tree/v2.2.2\n */\n\nexport function earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n var minX, minY, maxX, maxY, x, y, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nexport function linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nexport function filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nexport function isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nexport function isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),\n minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),\n maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),\n maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nexport function eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n\n // filter collinear points around the cuts\n filterPoints(outerNode, outerNode.next);\n filterPoints(b, b.next);\n }\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nexport function indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nexport function isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nexport function equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nexport function intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nexport function locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nexport function splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nexport function removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nexport function Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n","/*!\n * Name: @galacean/effects-specification\n * Description: Galacean Effects JSON Specification\n * Author: Ant Group CO., Ltd.\n * Version: v1.0.1\n */\n\n/*********************************************/\n/* 元素属性参数类型 */\n/*********************************************/\n/**\n * 渲染等级\n */\nvar RenderLevel;\n(function (RenderLevel) {\n RenderLevel[\"S\"] = \"S\";\n RenderLevel[\"APlus\"] = \"A+\";\n RenderLevel[\"A\"] = \"A\";\n RenderLevel[\"BPlus\"] = \"B+\";\n RenderLevel[\"B\"] = \"B\";\n})(RenderLevel || (RenderLevel = {}));\n/**\n * 混合模式\n */\nvar BlendingMode;\n(function (BlendingMode) {\n /**\n * 普通混合模式\n */\n BlendingMode[BlendingMode[\"ALPHA\"] = 0] = \"ALPHA\";\n /**\n * 叠加混合模式\n */\n BlendingMode[BlendingMode[\"ADD\"] = 1] = \"ADD\";\n /**\n * 相乘混合模式\n */\n BlendingMode[BlendingMode[\"MULTIPLY\"] = 2] = \"MULTIPLY\";\n /**\n * 亮度混合模式\n */\n BlendingMode[BlendingMode[\"BRIGHTNESS\"] = 3] = \"BRIGHTNESS\";\n /**\n * 减色混合模式\n */\n BlendingMode[BlendingMode[\"SUBTRACTION\"] = 4] = \"SUBTRACTION\";\n /**\n * 强光混合模式\n */\n BlendingMode[BlendingMode[\"STRONG_LIGHT\"] = 5] = \"STRONG_LIGHT\";\n /**\n * 弱光混合模式\n */\n BlendingMode[BlendingMode[\"WEAK_LIGHT\"] = 6] = \"WEAK_LIGHT\";\n /**\n * 亮度叠加混合模式\n */\n BlendingMode[BlendingMode[\"SUPERPOSITION\"] = 7] = \"SUPERPOSITION\";\n})(BlendingMode || (BlendingMode = {}));\n/**\n * 单双面模式\n */\nvar SideMode;\n(function (SideMode) {\n /**\n * 双面模式\n */\n SideMode[SideMode[\"DOUBLE\"] = 1032] = \"DOUBLE\";\n /**\n * 正面模式\n */\n SideMode[SideMode[\"FRONT\"] = 1028] = \"FRONT\";\n /**\n * 背面模式\n */\n SideMode[SideMode[\"BACK\"] = 1029] = \"BACK\";\n})(SideMode || (SideMode = {}));\n/**\n * 蒙版模式\n */\nvar MaskMode;\n(function (MaskMode) {\n /**\n * 无蒙版\n */\n MaskMode[MaskMode[\"NONE\"] = 0] = \"NONE\";\n /**\n * 蒙版\n */\n MaskMode[MaskMode[\"MASK\"] = 1] = \"MASK\";\n /**\n * 被遮挡\n */\n MaskMode[MaskMode[\"OBSCURED\"] = 2] = \"OBSCURED\";\n /**\n * 被反向遮挡\n */\n MaskMode[MaskMode[\"REVERSE_OBSCURED\"] = 3] = \"REVERSE_OBSCURED\";\n})(MaskMode || (MaskMode = {}));\n/**\n * 发射器形状\n */\nvar ShapeType;\n(function (ShapeType) {\n /**\n * 没有类型\n */\n ShapeType[ShapeType[\"NONE\"] = 0] = \"NONE\";\n /**\n * 圆球\n */\n ShapeType[ShapeType[\"SPHERE\"] = 1] = \"SPHERE\";\n /**\n * 圆锥\n */\n ShapeType[ShapeType[\"CONE\"] = 2] = \"CONE\";\n /**\n * 半球\n */\n ShapeType[ShapeType[\"HEMISPHERE\"] = 3] = \"HEMISPHERE\";\n /**\n * 圆\n */\n ShapeType[ShapeType[\"CIRCLE\"] = 4] = \"CIRCLE\";\n /**\n * 圆环\n */\n ShapeType[ShapeType[\"DONUT\"] = 5] = \"DONUT\";\n /**\n * 矩形\n */\n ShapeType[ShapeType[\"RECTANGLE\"] = 6] = \"RECTANGLE\";\n /**\n * 矩形框\n */\n ShapeType[ShapeType[\"RECTANGLE_EDGE\"] = 7] = \"RECTANGLE_EDGE\";\n /**\n * 直线\n */\n ShapeType[ShapeType[\"EDGE\"] = 8] = \"EDGE\";\n /**\n * 贴图\n */\n ShapeType[ShapeType[\"TEXTURE\"] = 9] = \"TEXTURE\";\n})(ShapeType || (ShapeType = {}));\n/**\n * 插件类型\n */\nvar PluginType;\n(function (PluginType) {\n /**\n * 陀螺仪\n */\n PluginType[PluginType[\"GYROSCOPE\"] = 0] = \"GYROSCOPE\";\n /**\n * Spine\n */\n PluginType[PluginType[\"SPINE\"] = 1] = \"SPINE\";\n})(PluginType || (PluginType = {}));\n/**\n * 交互类型\n */\nvar InteractType;\n(function (InteractType) {\n /**\n * 点击\n */\n InteractType[InteractType[\"CLICK\"] = 0] = \"CLICK\";\n /**\n * 消息\n * 前端收到 onMessageItem 回调\n */\n InteractType[InteractType[\"MESSAGE\"] = 1] = \"MESSAGE\";\n /**\n * 拖拽\n */\n InteractType[InteractType[\"DRAG\"] = 2] = \"DRAG\";\n})(InteractType || (InteractType = {}));\n/**\n * 交互行为\n */\nvar InteractBehavior;\n(function (InteractBehavior) {\n /**\n * 无\n */\n InteractBehavior[InteractBehavior[\"NONE\"] = 0] = \"NONE\";\n /**\n * 通知\n */\n InteractBehavior[InteractBehavior[\"NOTIFY\"] = 1] = \"NOTIFY\";\n /**\n * 重置播放器\n */\n InteractBehavior[InteractBehavior[\"RESUME_PLAYER\"] = 2] = \"RESUME_PLAYER\";\n /**\n * 清除元素\n */\n InteractBehavior[InteractBehavior[\"REMOVE\"] = 3] = \"REMOVE\";\n /**\n * 暂停播放器\n */\n InteractBehavior[InteractBehavior[\"PAUSE\"] = 4] = \"PAUSE\";\n})(InteractBehavior || (InteractBehavior = {}));\n/**\n * 元素类型\n */\nvar ItemType;\n(function (ItemType) {\n /**\n * 错误元素\n */\n ItemType[\"base\"] = \"0\";\n /**\n * 图层元素\n */\n ItemType[\"sprite\"] = \"1\";\n /**\n * 粒子元素\n */\n ItemType[\"particle\"] = \"2\";\n /**\n * 空节点元素\n */\n ItemType[\"null\"] = \"3\";\n /**\n * 交互元素\n */\n ItemType[\"interact\"] = \"4\";\n /**\n * 插件元素\n */\n ItemType[\"plugin\"] = \"5\";\n /**\n * 相机元素\n */\n ItemType[\"camera\"] = \"6\";\n /**\n * 预合成元素\n */\n ItemType[\"composition\"] = \"7\";\n /**\n * 滤镜图层\n */\n ItemType[\"filter\"] = \"8\";\n /**\n * Spine 元素\n */\n ItemType[\"spine\"] = \"spine\";\n /**\n * Mesh 元素\n */\n ItemType[\"mesh\"] = \"mesh\";\n /**\n * 节点树元素\n */\n ItemType[\"tree\"] = \"tree\";\n /**\n * 文本元素\n */\n ItemType[\"text\"] = \"text\";\n /**\n * 灯光元素\n */\n ItemType[\"light\"] = \"light\";\n /**\n * 天空盒元素\n */\n ItemType[\"skybox\"] = \"skybox\";\n})(ItemType || (ItemType = {}));\n/**\n * 渲染模式\n */\nvar RenderMode;\n(function (RenderMode) {\n /**\n * 广告牌模式\n */\n RenderMode[RenderMode[\"BILLBOARD\"] = 0] = \"BILLBOARD\";\n /**\n * 网格模式\n */\n RenderMode[RenderMode[\"MESH\"] = 1] = \"MESH\";\n /**\n * 垂直广告牌模式\n */\n RenderMode[RenderMode[\"VERTICAL_BILLBOARD\"] = 2] = \"VERTICAL_BILLBOARD\";\n /**\n * 水平广告牌模式\n */\n RenderMode[RenderMode[\"HORIZONTAL_BILLBOARD\"] = 3] = \"HORIZONTAL_BILLBOARD\";\n})(RenderMode || (RenderMode = {}));\n/**\n * 变换中心\n */\nvar ParticleOrigin;\n(function (ParticleOrigin) {\n /**\n * 水平和垂直中点\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER\"] = 0] = \"PARTICLE_ORIGIN_CENTER\";\n /**\n * 水平左侧 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_TOP\"] = 1] = \"PARTICLE_ORIGIN_LEFT_TOP\";\n /**\n * 水平左侧 垂直中间\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_CENTER\"] = 2] = \"PARTICLE_ORIGIN_LEFT_CENTER\";\n /**\n * 水平左侧 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_LEFT_BOTTOM\"] = 3] = \"PARTICLE_ORIGIN_LEFT_BOTTOM\";\n /**\n * 水平中间 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER_TOP\"] = 4] = \"PARTICLE_ORIGIN_CENTER_TOP\";\n /**\n * 水平中间 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_CENTER_BOTTOM\"] = 5] = \"PARTICLE_ORIGIN_CENTER_BOTTOM\";\n /**\n * 水平右侧 垂直顶部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_TOP\"] = 6] = \"PARTICLE_ORIGIN_RIGHT_TOP\";\n /**\n * 水平右侧 垂直中间\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_CENTER\"] = 7] = \"PARTICLE_ORIGIN_RIGHT_CENTER\";\n /**\n * 水平右侧 垂直底部\n */\n ParticleOrigin[ParticleOrigin[\"PARTICLE_ORIGIN_RIGHT_BOTTOM\"] = 8] = \"PARTICLE_ORIGIN_RIGHT_BOTTOM\";\n})(ParticleOrigin || (ParticleOrigin = {}));\n\nvar END_BEHAVIOR_DESTROY = 0;\nvar END_BEHAVIOR_PAUSE = 1;\nvar END_BEHAVIOR_FORWARD = 2;\nvar END_BEHAVIOR_PAUSE_AND_DESTROY = 3;\nvar END_BEHAVIOR_FREEZE = 4;\nvar END_BEHAVIOR_RESTART = 5;\nvar END_BEHAVIOR_DESTROY_CHILDREN = 6;\nvar CAMERA_CLIP_MODE_VERTICAL = 1;\nvar CAMERA_CLIP_MODE_NORMAL = 0;\n\nvar CameraClipMode;\n(function (CameraClipMode) {\n /**\n * 剪裁上下\n */\n CameraClipMode[CameraClipMode[\"portrait\"] = CAMERA_CLIP_MODE_VERTICAL] = \"portrait\";\n /**\n * 剪裁左右\n */\n CameraClipMode[CameraClipMode[\"landscape\"] = CAMERA_CLIP_MODE_NORMAL] = \"landscape\";\n})(CameraClipMode || (CameraClipMode = {}));\n/**\n * 结束行为\n */\nvar CompositionEndBehavior;\n(function (CompositionEndBehavior) {\n /**\n * 销毁\n */\n CompositionEndBehavior[CompositionEndBehavior[\"destroy\"] = END_BEHAVIOR_DESTROY] = \"destroy\";\n /**\n * 暂停\n */\n CompositionEndBehavior[CompositionEndBehavior[\"pause\"] = END_BEHAVIOR_PAUSE] = \"pause\";\n /**\n * 重播\n */\n CompositionEndBehavior[CompositionEndBehavior[\"restart\"] = END_BEHAVIOR_RESTART] = \"restart\";\n /**\n * 无限播放\n */\n CompositionEndBehavior[CompositionEndBehavior[\"forward\"] = END_BEHAVIOR_FORWARD] = \"forward\";\n /**\n * 销毁并保留最后一帧\n */\n CompositionEndBehavior[CompositionEndBehavior[\"pause_destroy\"] = END_BEHAVIOR_PAUSE_AND_DESTROY] = \"pause_destroy\";\n})(CompositionEndBehavior || (CompositionEndBehavior = {}));\n\n/*********************************************/\n/* 基本数值属性参数 */\n/*********************************************/\nvar ValueType;\n(function (ValueType) {\n /**\n * 常数\n */\n ValueType[ValueType[\"CONSTANT\"] = 0] = \"CONSTANT\";\n /**\n * 二维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC2\"] = 1] = \"CONSTANT_VEC2\";\n /**\n * 三维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC3\"] = 2] = \"CONSTANT_VEC3\";\n /**\n * 四维常数向量\n */\n ValueType[ValueType[\"CONSTANT_VEC4\"] = 3] = \"CONSTANT_VEC4\";\n /**\n * 随机数\n */\n ValueType[ValueType[\"RANDOM\"] = 4] = \"RANDOM\";\n /**\n * 直线\n */\n ValueType[ValueType[\"LINE\"] = 5] = \"LINE\";\n /**\n * 曲线\n */\n ValueType[ValueType[\"CURVE\"] = 6] = \"CURVE\";\n /**\n * 贝塞尔路径\n */\n ValueType[ValueType[\"BEZIER_PATH\"] = 7] = \"BEZIER_PATH\";\n /**\n * 颜色\n */\n ValueType[ValueType[\"RGBA_COLOR\"] = 8] = \"RGBA_COLOR\";\n /**\n * 渐变色\n */\n ValueType[ValueType[\"GRADIENT_COLOR\"] = 9] = \"GRADIENT_COLOR\";\n /**\n * 蒙版形状点集\n */\n ValueType[ValueType[\"SHAPE_POINTS\"] = 10] = \"SHAPE_POINTS\";\n /**\n * 蒙版形状切分\n */\n ValueType[ValueType[\"SHAPE_SPLITS\"] = 11] = \"SHAPE_SPLITS\";\n /**\n *直线路径\n */\n ValueType[ValueType[\"LINEAR_PATH\"] = 12] = \"LINEAR_PATH\";\n /**\n * 多色\n */\n ValueType[ValueType[\"COLORS\"] = 13] = \"COLORS\";\n /**\n * 二进制指针\n */\n ValueType[ValueType[\"BINARY\"] = 20] = \"BINARY\";\n /**\n * 贝塞尔曲线\n */\n ValueType[ValueType[\"BEZIER_CURVE\"] = 21] = \"BEZIER_CURVE\";\n /**\n * 贝塞尔曲线路径\n */\n ValueType[ValueType[\"BEZIER_CURVE_PATH\"] = 22] = \"BEZIER_CURVE_PATH\";\n})(ValueType || (ValueType = {}));\n/**\n * 关键帧类型\n */\nvar BezierKeyframeType;\n(function (BezierKeyframeType) {\n BezierKeyframeType[BezierKeyframeType[\"AUTO\"] = 0] = \"AUTO\";\n BezierKeyframeType[BezierKeyframeType[\"EASE\"] = 1] = \"EASE\";\n BezierKeyframeType[BezierKeyframeType[\"EASE_IN\"] = 2] = \"EASE_IN\";\n BezierKeyframeType[BezierKeyframeType[\"EASE_OUT\"] = 3] = \"EASE_OUT\";\n BezierKeyframeType[BezierKeyframeType[\"LINE\"] = 4] = \"LINE\";\n BezierKeyframeType[BezierKeyframeType[\"HOLD\"] = 5] = \"HOLD\";\n BezierKeyframeType[BezierKeyframeType[\"LINE_OUT\"] = 6] = \"LINE_OUT\";\n})(BezierKeyframeType || (BezierKeyframeType = {}));\n\nvar ItemEndBehavior;\n(function (ItemEndBehavior) {\n ItemEndBehavior[ItemEndBehavior[\"destroy\"] = END_BEHAVIOR_DESTROY] = \"destroy\";\n ItemEndBehavior[ItemEndBehavior[\"loop\"] = END_BEHAVIOR_RESTART] = \"loop\";\n ItemEndBehavior[ItemEndBehavior[\"freeze\"] = END_BEHAVIOR_FREEZE] = \"freeze\";\n})(ItemEndBehavior || (ItemEndBehavior = {}));\nvar ParentItemEndBehavior;\n(function (ParentItemEndBehavior) {\n ParentItemEndBehavior[ParentItemEndBehavior[\"destroyChildren\"] = END_BEHAVIOR_DESTROY_CHILDREN] = \"destroyChildren\";\n})(ParentItemEndBehavior || (ParentItemEndBehavior = {}));\n\n/**\n * 粒子交互行为\n */\nvar ParticleInteractionBehavior;\n(function (ParticleInteractionBehavior) {\n /**\n * 无\n */\n ParticleInteractionBehavior[ParticleInteractionBehavior[\"none\"] = 0] = \"none\";\n /**\n * 移出粒子\n */\n ParticleInteractionBehavior[ParticleInteractionBehavior[\"removeParticle\"] = 1] = \"removeParticle\";\n})(ParticleInteractionBehavior || (ParticleInteractionBehavior = {}));\n\nvar ShapeArcMode;\n(function (ShapeArcMode) {\n /**\n * 随机\n */\n ShapeArcMode[ShapeArcMode[\"RANDOM\"] = 0] = \"RANDOM\";\n /**\n * 单向循环\n */\n ShapeArcMode[ShapeArcMode[\"UNIDIRECTIONAL_CYCLE\"] = 1] = \"UNIDIRECTIONAL_CYCLE\";\n /**\n * 双向循环\n */\n ShapeArcMode[ShapeArcMode[\"BIDIRECTIONAL_CYCLE\"] = 2] = \"BIDIRECTIONAL_CYCLE\";\n /**\n * 均匀爆发\n */\n ShapeArcMode[ShapeArcMode[\"UNIFORM_BURST\"] = 3] = \"UNIFORM_BURST\";\n})(ShapeArcMode || (ShapeArcMode = {}));\n\nvar ModelBoundingType;\n(function (ModelBoundingType) {\n ModelBoundingType[ModelBoundingType[\"box\"] = 2] = \"box\";\n ModelBoundingType[ModelBoundingType[\"sphere\"] = 3] = \"sphere\";\n})(ModelBoundingType || (ModelBoundingType = {}));\n\n// 材质类型\nvar MaterialType;\n(function (MaterialType) {\n MaterialType[\"unlit\"] = \"unlit\";\n MaterialType[\"pbr\"] = \"pbr\";\n // 头发材质,在 pbr 材质基础上扩展\n MaterialType[\"hair\"] = \"hair\";\n})(MaterialType || (MaterialType = {}));\n// 混合模式\nvar MaterialBlending;\n(function (MaterialBlending) {\n MaterialBlending[MaterialBlending[\"opaque\"] = 100] = \"opaque\";\n MaterialBlending[MaterialBlending[\"masked\"] = 101] = \"masked\";\n MaterialBlending[MaterialBlending[\"translucent\"] = 102] = \"translucent\";\n MaterialBlending[MaterialBlending[\"additive\"] = 103] = \"additive\";\n})(MaterialBlending || (MaterialBlending = {}));\n\n/**\n * 3D渲染模式:将渲染过程中的中间结果输出,主要用于排查渲染效果问题,支持 pbr 和 unlit 材质\n */\nvar RenderMode3D;\n(function (RenderMode3D) {\n /**\n * 正常渲染\n */\n RenderMode3D[\"none\"] = \"none\";\n /**\n * 纹理坐标\n */\n RenderMode3D[\"uv\"] = \"uv\";\n /**\n * 世界坐标法线\n */\n RenderMode3D[\"normal\"] = \"normal\";\n /**\n * 基础颜色\n */\n RenderMode3D[\"basecolor\"] = \"basecolor\";\n /**\n * 基础颜色 Alpha\n */\n RenderMode3D[\"alpha\"] = \"alpha\";\n /**\n * 金属度\n */\n RenderMode3D[\"metallic\"] = \"metallic\";\n /**\n * 粗超度\n */\n RenderMode3D[\"roughness\"] = \"roughness\";\n /**\n * 环境遮蔽\n */\n RenderMode3D[\"ao\"] = \"ao\";\n /**\n * 自发光\n */\n RenderMode3D[\"emissive\"] = \"emissive\";\n})(RenderMode3D || (RenderMode3D = {}));\n\nvar TextOverflow;\n(function (TextOverflow) {\n /**\n * display 模式下,会显示所有文本,存在文本超过边界框的情况。\n */\n TextOverflow[TextOverflow[\"display\"] = 0] = \"display\";\n /**\n * clip 模式下,当文本内容超出边界框时,多余的会被截断。\n */\n TextOverflow[TextOverflow[\"clip\"] = 1] = \"clip\";\n /**\n * ellipsis 模式下,会使用(...)来代替超出边界框的内容。\n */\n TextOverflow[TextOverflow[\"ellipsis\"] = 2] = \"ellipsis\";\n})(TextOverflow || (TextOverflow = {}));\nvar TextBaseline;\n(function (TextBaseline) {\n /**\n * 文本顶对齐。\n */\n TextBaseline[TextBaseline[\"top\"] = 0] = \"top\";\n /**\n * 文本垂直居中对齐。\n */\n TextBaseline[TextBaseline[\"middle\"] = 1] = \"middle\";\n /**\n * 文本底对齐。\n */\n TextBaseline[TextBaseline[\"bottom\"] = 2] = \"bottom\";\n})(TextBaseline || (TextBaseline = {}));\nvar TextAlignment;\n(function (TextAlignment) {\n /**\n * text alignment starts from(x,y) to right direction\n * 从(x,y)开始第一个字符,向右边延伸\n */\n TextAlignment[TextAlignment[\"left\"] = 0] = \"left\";\n /**\n * (x,y) is middle position of text, where (left + right)/2 =(x,y)\n * (x,y) 为文字中间位置,(最左位置 + 最右位置)/2 = (x,y)\n */\n TextAlignment[TextAlignment[\"middle\"] = 1] = \"middle\";\n /**\n * text alignment ends with(x,y) from left direction\n * 从(x,y)结束最后一个字符,向左边延伸\n */\n TextAlignment[TextAlignment[\"right\"] = 2] = \"right\";\n})(TextAlignment || (TextAlignment = {}));\n/**\n * 文本字重\n */\nvar TextWeight;\n(function (TextWeight) {\n /**\n * 正常\n */\n TextWeight[\"normal\"] = \"normal\";\n /**\n * 粗体\n */\n TextWeight[\"bold\"] = \"bold\";\n /**\n * 瘦体\n */\n TextWeight[\"lighter\"] = \"lighter\";\n})(TextWeight || (TextWeight = {}));\n/**\n * 文本样式\n */\nvar FontStyle;\n(function (FontStyle) {\n /**\n * 正常\n */\n FontStyle[\"normal\"] = \"normal\";\n /**\n * 斜体\n */\n FontStyle[\"italic\"] = \"italic\";\n /**\n * 倾斜体\n */\n FontStyle[\"oblique\"] = \"oblique\";\n})(FontStyle || (FontStyle = {}));\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction arrAdd(arr, item) {\n if (!arr.includes(item)) {\n arr.push(item);\n return true;\n }\n}\n/**\n * @deprecated 请直接使用 Array.prototype.forEach 或 for...of\n * @param object\n * @param callback\n * @returns the mutated input object\n */\nfunction forEach(object, callback, thisObj) {\n if (object) {\n for (var name_1 in object) {\n if (Object.hasOwnProperty.call(object, name_1)) {\n callback.call(thisObj, object[name_1], name_1);\n }\n }\n }\n return object;\n}\nfunction ensureFixedNumber(a) {\n if (Number.isFinite(a)) {\n return [ValueType.CONSTANT, a];\n }\n if (a) {\n if (a[0] === 'lines') {\n return [ValueType.LINE, a[1]];\n }\n if (a[0] === 'curve') {\n return [ValueType.CURVE, a[1]];\n }\n if (a[0] === 'static') {\n return [ValueType.CONSTANT, a[1]];\n }\n }\n}\nfunction ensureFixedNumberWithRandom(a, p) {\n if (Array.isArray(a) && a[0] === 'random') {\n return [ValueType.CONSTANT, a[1][p]];\n }\n return ensureFixedNumber(a);\n}\nfunction ensureRGBAValue(a) {\n if (a && a[0] === 'color') {\n return colorToArr(a[1], true);\n }\n return [1, 1, 1, 1];\n}\nfunction ensureColorExpression(a, normalized) {\n if (a) {\n if (a[0] === 'colors') {\n return [ValueType.COLORS, a[1].map(function (color) { return colorToArr(color, normalized); })];\n }\n else if (a[0] === 'gradient') {\n return ensureGradient(a[1], normalized);\n }\n else if (a[0] === 'color') {\n return [ValueType.RGBA_COLOR, colorToArr(a[1], normalized)];\n }\n }\n}\nfunction ensureNumberExpression(a) {\n if (a && a[0] === 'random') {\n return [ValueType.RANDOM, a[1]];\n }\n return ensureFixedNumber(a);\n}\nfunction ensureValueGetter(a) {\n if (Array.isArray(a) && typeof a[0] === 'string') {\n return ensureNumberExpression(a) || ensureFixedVec3(a) || ensureColorExpression(a) || a;\n }\n return a;\n}\nfunction ensureGradient(a, normalized) {\n if (a) {\n var stops_1 = [];\n Object.getOwnPropertyNames(a).forEach(function (p) {\n var stop = parsePercent(p);\n var color = colorToArr(a[p], normalized);\n stops_1.push([stop, color[0], color[1], color[2], color[3]]);\n });\n stops_1 = stops_1.sort(function (a, b) { return a[0] - b[0]; });\n return [ValueType.GRADIENT_COLOR, stops_1];\n }\n}\nfunction colorToArr(hex, normalized) {\n var ret;\n if (typeof hex === 'string') {\n hex = hex.replace(/[\\s\\t\\r\\n]/g, '');\n var m = /rgba?\\(([.\\d]+),([.\\d]+),([.\\d]+),?([.\\d]+)?\\)/.exec(hex);\n if (m) {\n var a = +m[4];\n ret = [+m[1], +m[2], +m[3], isNaN(a) ? 255 : Math.round(a * 255)];\n }\n else if (/^#[a-f\\d]{3}$/i.test(hex)) {\n ret = [parseInt(hex[1] + hex[1], 16), parseInt(hex[2] + hex[2], 16), parseInt(hex[3] + hex[3], 16), 255];\n // eslint-disable-next-line no-cond-assign\n }\n else if (m = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)) {\n ret = [parseInt(m[1], 16), parseInt(m[2], 16), parseInt(m[3], 16), 255] || [0, 0, 0, 255];\n }\n }\n else if (hex instanceof Array) {\n ret = [hex[0], hex[1], hex[2], isNaN(hex[3]) ? 255 : Math.round(hex[3] * 255)];\n }\n if (normalized) {\n // @ts-expect-error\n ret = normalizeColor(ret);\n }\n // @ts-expect-error\n return ret;\n}\nfunction normalizeColor(a) {\n if (Array.isArray(a)) {\n return a.map(function (i) { return Number.isFinite(i / 255) ? Number((i / 255).toFixed(6)) : 0; });\n }\n}\nfunction parsePercent(c) {\n var match = /^(-)?([\\d+.]+)%$/.exec(c);\n if (match) {\n return +match[2] / 100 * (match[1] ? -1 : 1);\n }\n return +c;\n}\nfunction getGradientColor(color, normalized) {\n if (Array.isArray(color)) {\n // @ts-expect-error\n return (color[0] === 'gradient' || color[0] === 'color') && ensureGradient(color[1], normalized);\n }\n else {\n return ensureGradient(color, normalized);\n }\n}\nfunction ensureFixedVec3(a) {\n if (a) {\n if (a.length === 3) {\n return [ValueType.CONSTANT_VEC3, a];\n }\n if (a[0] === 'path') {\n return [ValueType.LINEAR_PATH, a[1]];\n }\n if (a[0] === 'bezier') {\n return [ValueType.BEZIER_PATH, a[1]];\n }\n }\n}\nfunction objectValueToNumber(o) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.keys(o)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n o[key] = Number(o[key]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return o;\n}\nfunction deleteEmptyValue(o) {\n var e_2, _a;\n try {\n for (var _b = __values(Object.keys(o)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (o[key] === undefined) {\n delete o[key];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return o;\n}\nvar cos = Math.cos;\nvar sin = Math.sin;\nvar d2r = Math.PI / 180;\nvar r2d = 180 / Math.PI;\nfunction quatFromXYZRotation(out, x, y, z) {\n var c1 = cos((x * d2r) / 2);\n var c2 = cos((y * d2r) / 2);\n var c3 = cos((z * d2r) / 2);\n var s1 = sin((x * d2r) / 2);\n var s2 = sin((y * d2r) / 2);\n var s3 = sin((z * d2r) / 2);\n out[0] = s1 * c2 * c3 + c1 * s2 * s3;\n out[1] = c1 * s2 * c3 - s1 * c2 * s3;\n out[2] = c1 * c2 * s3 + s1 * s2 * c3;\n out[3] = c1 * c2 * c3 - s1 * s2 * s3;\n return out;\n}\nfunction clamp(v, min, max) {\n return v > max ? max : (v < min ? min : v);\n}\nfunction rotationZYXFromQuat(out, quat) {\n var x = quat[0];\n var y = quat[1];\n var z = quat[2];\n var w = quat[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var m11 = 1 - yy - zz, m12 = yx - wz;\n var m21 = yx + wz, m22 = 1 - xx - zz;\n var m31 = zx - wy, m32 = zy + wx, m33 = 1 - xx - yy;\n out[1] = Math.asin(clamp(-m31, -1, 1)) * r2d;\n if (Math.abs(m31) < 0.9999999) {\n out[0] = Math.atan2(m32, m33) * r2d;\n out[2] = Math.atan2(m21, m11) * r2d;\n }\n else {\n out[0] = 0;\n out[2] = Math.atan2(-m12, m22) * r2d;\n }\n return out;\n}\n\nfunction getStandardParticleContent(particle) {\n var _a;\n var options = particle.options;\n var transform = particle.transform;\n var shape = {\n type: ShapeType.NONE,\n };\n if (particle.shape) {\n var shapeType = (_a = particle.shape.shape) === null || _a === void 0 ? void 0 : _a.replace(/([A-Z])/g, '_$1').toUpperCase().replace(/^_/, '');\n shape = __assign(__assign({}, particle.shape), { type: ShapeType[shapeType] });\n if (particle.shape.upDirection) {\n var _b = __read(particle.shape.upDirection, 3), x = _b[0], y = _b[1], z = _b[2];\n if (x === 0 && y === 0 && z === 0) {\n delete shape.upDirection;\n }\n }\n }\n if (options.startTurbulence) {\n shape.turbulenceX = ensureNumberExpression(options.turbulenceX);\n shape.turbulenceY = ensureNumberExpression(options.turbulenceY);\n shape.turbulenceZ = ensureNumberExpression(options.turbulenceZ);\n }\n var emission = particle.emission;\n if (emission.bursts && emission.bursts.length > 0) {\n emission.bursts = emission.bursts.map(function (b) { return objectValueToNumber(b); });\n }\n if (emission.burstOffsets && emission.burstOffsets.length > 0) {\n emission.burstOffsets = emission.burstOffsets.map(function (b) { return objectValueToNumber(b); });\n }\n if (emission.rateOverTime) {\n emission.rateOverTime = ensureNumberExpression(emission.rateOverTime);\n }\n var ret = {\n renderer: particle.renderer,\n shape: shape,\n splits: particle.splits,\n emission: emission,\n options: {\n startLifetime: ensureNumberExpression(options.startLifetime),\n start3DSize: !!options.start3DSize,\n startSize: ensureNumberExpression(options.startSize),\n startSizeX: ensureNumberExpression(options.startSizeX),\n startSizeY: ensureNumberExpression(options.startSizeY),\n sizeAspect: ensureNumberExpression(options.sizeAspect),\n maxCount: options.maxCount,\n startDelay: ensureNumberExpression(options.startDelay),\n startColor: ensureColorExpression(options.startColor, true),\n startRotationZ: ensureNumberExpression(options.startRotation || options.startRotationZ),\n particleFollowParent: options.particleFollowParent,\n },\n };\n if (options.start3DRotation) {\n ret.options.startRotationX = ensureNumberExpression(options.startRotationX);\n ret.options.startRotationY = ensureNumberExpression(options.startRotationY);\n }\n if (particle.filter) {\n var filter_1 = {};\n forEach(particle.filter, function (val, key) {\n // @ts-expect-error\n filter_1[key] = ensureValueGetter(val);\n });\n ret.filter = filter_1;\n }\n if (transform && transform.path) {\n ret.emitterTransform = {\n path: ensureFixedVec3(transform.path),\n };\n }\n var sizeOverLifetime = particle.sizeOverLifetime;\n if (sizeOverLifetime) {\n if (sizeOverLifetime.separateAxes) {\n ret.sizeOverLifetime = {\n separateAxes: true,\n x: ensureNumberExpression(sizeOverLifetime.x),\n y: ensureNumberExpression(sizeOverLifetime.y),\n };\n }\n else {\n ret.sizeOverLifetime = {\n size: ensureNumberExpression(sizeOverLifetime.size),\n };\n }\n }\n var velocityOverLifetime = particle.velocityOverLifetime || {};\n var sol = velocityOverLifetime.speedOverLifetime;\n if (sol) {\n sol = ensureFixedNumber(sol);\n }\n else {\n sol = undefined;\n }\n ret.positionOverLifetime = {\n gravity: options.gravity,\n gravityOverLifetime: ensureFixedNumber(options.gravityModifier),\n startSpeed: ensureNumberExpression(options.startSpeed),\n speedOverLifetime: sol,\n asMovement: velocityOverLifetime.asMovement,\n linearX: ensureNumberExpression(velocityOverLifetime.linearX),\n linearY: ensureNumberExpression(velocityOverLifetime.linearY),\n linearZ: ensureNumberExpression(velocityOverLifetime.linearZ),\n asRotation: velocityOverLifetime.asRotation,\n orbCenter: velocityOverLifetime.orbCenter,\n orbitalX: ensureNumberExpression(velocityOverLifetime.orbitalX),\n orbitalY: ensureNumberExpression(velocityOverLifetime.orbitalY),\n orbitalZ: ensureNumberExpression(velocityOverLifetime.orbitalZ),\n forceTarget: velocityOverLifetime.forceTarget,\n target: velocityOverLifetime.target,\n forceCurve: ensureFixedNumber(velocityOverLifetime.forceCurve),\n };\n deleteEmptyValue(ret.positionOverLifetime);\n var rotationOverLifetime = particle.rotationOverLifetime;\n if (rotationOverLifetime) {\n ret.rotationOverLifetime = {\n separateAxes: rotationOverLifetime.separateAxes,\n asRotation: rotationOverLifetime.asRotation,\n z: ensureNumberExpression(rotationOverLifetime.separateAxes ? rotationOverLifetime.z : rotationOverLifetime.angularVelocity),\n };\n if (rotationOverLifetime.separateAxes) {\n ret.rotationOverLifetime.y = ensureFixedNumber(rotationOverLifetime.y);\n ret.rotationOverLifetime.x = ensureFixedNumber(rotationOverLifetime.x);\n }\n }\n var colorOverLifetime = particle.colorOverLifetime;\n if (colorOverLifetime) {\n var col = ret.colorOverLifetime = {\n opacity: ensureFixedNumber(colorOverLifetime.opacity),\n };\n if (colorOverLifetime.color) {\n col.color = getGradientColor(colorOverLifetime.color);\n }\n }\n var textureSheetAnimation = particle.textureSheetAnimation;\n if (textureSheetAnimation) {\n ret.textureSheetAnimation = {\n row: textureSheetAnimation.row,\n col: textureSheetAnimation.col,\n total: textureSheetAnimation.total,\n animate: textureSheetAnimation.animate,\n cycles: ensureFixedNumber(textureSheetAnimation.cycles),\n animationDelay: ensureFixedNumberWithRandom(textureSheetAnimation.animationDelay, 0),\n animationDuration: ensureFixedNumberWithRandom(textureSheetAnimation.animationDuration, 0),\n };\n }\n var trials = particle.trails;\n if (trials) {\n ret.trails = {\n lifetime: ensureNumberExpression(trials.lifetime),\n dieWithParticles: trials.dieWithParticles,\n maxPointPerTrail: trials.maxPointPerTrail,\n minimumVertexDistance: trials.minimumVertexDistance,\n widthOverTrail: ensureFixedNumber(trials.widthOverTrail),\n colorOverTrail: trials.colorOverTrail && getGradientColor(trials.colorOverTrail, false),\n blending: trials.blending,\n colorOverLifetime: trials.colorOverLifetime && getGradientColor(trials.colorOverLifetime, false),\n inheritParticleColor: trials.inheritParticleColor,\n occlusion: trials.occlusion,\n transparentOcclusion: trials.transparentOcclusion,\n orderOffset: trials.orderOffset,\n sizeAffectsLifetime: trials.sizeAffectsLifetime,\n sizeAffectsWidth: trials.sizeAffectsWidth,\n texture: trials.texture,\n parentAffectsPosition: trials.parentAffectsPosition,\n opacityOverLifetime: ensureNumberExpression(trials.opacityOverLifetime),\n };\n }\n ret.trails && deleteEmptyValue(ret.trails);\n var interaction = particle.interaction;\n if (interaction) {\n ret.interaction = {\n behavior: interaction.behavior,\n radius: interaction.radius,\n multiple: interaction.multiple,\n };\n }\n return ret;\n}\n\nfunction getStandardNullContent(sprite, transform) {\n var _a;\n var opt = sprite.options;\n var velocityOverLifetime = sprite.velocityOverLifetime || {};\n var positionOverLifetime = {\n path: ensureFixedVec3((_a = sprite.transform) === null || _a === void 0 ? void 0 : _a.path),\n gravity: opt.gravity,\n gravityOverLifetime: ensureFixedNumber(opt.gravityModifier),\n direction: opt.direction,\n startSpeed: opt.startSpeed,\n asMovement: velocityOverLifetime.asMovement,\n linearX: ensureFixedNumber(velocityOverLifetime.linearX),\n linearY: ensureFixedNumber(velocityOverLifetime.linearY),\n linearZ: ensureFixedNumber(velocityOverLifetime.linearZ),\n asRotation: velocityOverLifetime.asRotation,\n orbCenter: velocityOverLifetime.orbCenter,\n orbitalX: ensureFixedNumber(velocityOverLifetime.orbitalX),\n orbitalY: ensureFixedNumber(velocityOverLifetime.orbitalY),\n orbitalZ: ensureFixedNumber(velocityOverLifetime.orbitalZ),\n speedOverLifetime: ensureFixedNumber(velocityOverLifetime.speedOverLifetime),\n };\n deleteEmptyValue(positionOverLifetime);\n var ret = {\n options: {\n startColor: ensureRGBAValue(opt.startColor),\n },\n positionOverLifetime: positionOverLifetime,\n };\n if (opt.startSize) {\n transform.scale = [opt.startSize, opt.startSize / (opt.sizeAspect || 1), 1];\n }\n if (opt.startRotation) {\n if (!transform.rotation) {\n transform.rotation = [0, 0, opt.startRotation];\n }\n else {\n transform.rotation[2] += opt.startRotation;\n }\n }\n var rotationOverLifetime = sprite.rotationOverLifetime;\n if (rotationOverLifetime) {\n var rot = ret.rotationOverLifetime = {\n separateAxes: rotationOverLifetime.separateAxes,\n asRotation: rotationOverLifetime.asRotation,\n };\n if (rot.separateAxes) {\n rot.x = ensureFixedNumber(rotationOverLifetime.x);\n rot.y = ensureFixedNumber(rotationOverLifetime.y);\n rot.z = ensureFixedNumber(rotationOverLifetime.z);\n }\n else {\n rot.z = ensureFixedNumber(rotationOverLifetime.angularVelocity);\n }\n }\n var colorOverLifetime = sprite.colorOverLifetime;\n if (colorOverLifetime) {\n var col = ret.colorOverLifetime = {\n opacity: ensureFixedNumber(colorOverLifetime.opacity),\n };\n if (colorOverLifetime.color) {\n col.color = getGradientColor(colorOverLifetime.color);\n }\n }\n var sizeOverLifetime = sprite.sizeOverLifetime;\n if (sizeOverLifetime) {\n ret.sizeOverLifetime = {\n separateAxes: sizeOverLifetime.separateAxes,\n size: ensureFixedNumber(sizeOverLifetime.size),\n x: ensureFixedNumber(sizeOverLifetime.x),\n y: ensureFixedNumber(sizeOverLifetime.y),\n z: ensureFixedNumber(sizeOverLifetime.z),\n };\n }\n return ret;\n}\nfunction getStandardSpriteContent(sprite, transform) {\n var ret = getStandardNullContent(sprite, transform);\n var texAni = sprite.textureSheetAnimation;\n if (texAni) {\n ret.textureSheetAnimation = {\n row: texAni.row,\n col: texAni.col,\n total: texAni.total || undefined,\n animate: texAni.animate,\n };\n }\n ret.renderer = sprite.renderer;\n if (sprite.splits) {\n ret.splits = sprite.splits;\n }\n if (sprite.interaction) {\n ret.interaction = sprite.interaction;\n }\n return ret;\n}\n\nfunction getStandardInteractContent(ui) {\n var options = ui.options;\n var option;\n switch (options.type) {\n case 'click': {\n option = {\n type: InteractType.CLICK,\n showPreview: options.showPreview,\n previewColor: options.previewColor && ensureRGBAValue(options.previewColor),\n behavior: options.behavior || InteractBehavior.NOTIFY,\n };\n break;\n }\n case 'drag': {\n option = {\n type: InteractType.DRAG,\n enableInEditor: !!options.enableInEditor,\n dxRange: options.dxRange,\n dyRange: options.dyRange,\n target: options.target,\n };\n break;\n }\n case 'message': {\n option = {\n type: InteractType.MESSAGE,\n };\n break;\n }\n }\n var ret = {\n // @ts-expect-error\n options: option,\n };\n return ret;\n}\n\nfunction getStandardCameraContent(model) {\n var _a, _b;\n var opt = model.options;\n var ret = {\n options: {\n fov: opt.fov,\n far: opt.far,\n near: opt.near,\n clipMode: opt.clipMode,\n },\n };\n var velocityOverLifetime = model.velocityOverLifetime;\n if (velocityOverLifetime || ((_a = model.transform) === null || _a === void 0 ? void 0 : _a.path)) {\n var positionOverLifetime = {\n path: ensureFixedVec3((_b = model.transform) === null || _b === void 0 ? void 0 : _b.path),\n linearX: ensureFixedNumber(velocityOverLifetime === null || velocityOverLifetime === void 0 ? void 0 : velocityOverLifetime.translateX),\n linearY: ensureFixedNumber(velocityOverLifetime === null || velocityOverLifetime === void 0 ? void 0 : velocityOverLifetime.translateY),\n linearZ: ensureFixedNumber(velocityOverLifetime === null || velocityOverLifetime === void 0 ? void 0 : velocityOverLifetime.translateZ),\n };\n deleteEmptyValue(positionOverLifetime);\n ret.positionOverLifetime = positionOverLifetime;\n }\n var rol = model.rotationOverLifetime;\n if (rol) {\n var rotationOverLifetime = {\n separateAxes: rol.separateAxes,\n x: ensureFixedNumber(rol === null || rol === void 0 ? void 0 : rol.rotateX),\n y: ensureFixedNumber(rol === null || rol === void 0 ? void 0 : rol.rotateY),\n z: rol.separateAxes ? ensureFixedNumber(rol === null || rol === void 0 ? void 0 : rol.rotateZ) : ensureFixedNumber(rol.rotation),\n };\n deleteEmptyValue(rotationOverLifetime);\n ret.rotationOverLifetime = rotationOverLifetime;\n }\n return ret;\n}\n\nvar convertParams = [\n 'strength',\n 'bloomAddon',\n 'colorAddon',\n 'period',\n 'waveMovement',\n 'colorThreshold',\n 'xOpacity',\n 'yOpacity',\n 'feather',\n];\nvar pathParams = [\n 'path', 'position',\n];\nfunction getStandardFilterContent(filter) {\n var ret = {};\n forEach(filter, function (val, key) {\n if (convertParams.includes(key)) {\n ret[key] = ensureFixedNumber(val);\n }\n else if (pathParams.includes(key)) {\n ret[key] = ensureFixedVec3(val);\n }\n else {\n ret[key] = val;\n }\n });\n return ret;\n}\n\n/**\n * 2.1 以下版本数据适配(mars-player@2.4.0 及以上版本支持 2.1 以下数据的适配)\n */\nfunction version21Migration(json) {\n json.compositions.forEach(function (composition) {\n composition.items.forEach(function (item) {\n if (item.type === ItemType.null) {\n if (item.endBehavior === ItemEndBehavior.destroy) {\n item.endBehavior = ItemEndBehavior.freeze;\n }\n }\n });\n });\n json.version = '2.1';\n return json;\n}\n/**\n * 2.2 以下版本数据适配(mars-player@2.5.0 及以上版本支持 2.2 以下数据的适配)\n */\nfunction version22Migration(json) {\n var _a;\n var singleVersion = (_a = json.version) === null || _a === void 0 ? void 0 : _a.split('.');\n if (!singleVersion || Number(singleVersion[0]) > 2 || (Number(singleVersion[0]) === 2 && Number(singleVersion[1]) >= 2)) {\n return json;\n }\n json.compositions.forEach(function (composition) {\n composition.items.forEach(function (item) {\n if (item.type === ItemType.mesh || item.type === ItemType.light) {\n item.endBehavior = item.endBehavior === 1 ? ItemEndBehavior.destroy : item.endBehavior;\n }\n });\n });\n return json;\n}\n\nvar v0 = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(\\w+)\\.\\d+)?$/;\nvar standardVersion = /^(\\d+)\\.(\\d+)$/;\nvar reverseParticle = false;\nfunction getStandardJSON(json) {\n var _a, _b;\n if (!json || typeof json !== 'object') {\n throw Error('expect a json object');\n }\n // 修正老版本数据中,meshItem以及lightItem结束行为错误问题\n version22Migration(json);\n if (v0.test(json.version)) {\n reverseParticle = ((_a = (/^(\\d+)/).exec(json.version)) === null || _a === void 0 ? void 0 : _a[0]) === '0';\n return version21Migration(getStandardJSONFromV0(json));\n }\n var mainVersion = (_b = standardVersion.exec(json.version)) === null || _b === void 0 ? void 0 : _b[1];\n if (mainVersion) {\n if (Number(mainVersion) < 2) {\n return version21Migration(json);\n }\n return json;\n }\n throw Error('invalid json version ' + json.version);\n}\nvar currentVersion = '1.0';\nfunction getStandardJSONFromV0(json) {\n var _a, _b;\n currentVersion = '1.0';\n var plugins = json.plugins || [];\n if ((_a = json.bins) === null || _a === void 0 ? void 0 : _a.length) {\n currentVersion = '1.3';\n }\n var requires = (json.requires || []).slice();\n var images = json.images.map(function (img, index) { return getStandardImage(img, index, json.imageTags || []); });\n var textures = json.textures || images.map(function (img, i) { return ({ source: i, flipY: true }); });\n var ret = {\n plugins: plugins,\n shapes: json.shapes || [],\n type: 'ge',\n version: currentVersion,\n playerVersion: (_b = json.playerVersion) !== null && _b !== void 0 ? _b : {\n web: '',\n native: '',\n },\n compositionId: json.compositionId + '',\n compositions: json.compositions.map(function (comp) { return getStandardComposition(comp, { plugins: plugins, requires: requires }); }),\n images: images,\n imgUsage: json._imgs,\n binUsage: json.binUsage,\n spines: json.spines,\n requires: json.requires,\n textures: textures,\n bins: (json.bins || []).slice(),\n };\n if (json._textures) {\n ret._textures = json._textures;\n }\n return ret;\n}\nfunction getStandardImage(image, index, imageTags) {\n var renderLevel = imageTags[index];\n var oriY = image.oriY;\n if (typeof image === 'string') {\n return {\n renderLevel: renderLevel,\n url: image,\n oriY: oriY,\n };\n }\n else if (image.template) {\n return {\n url: image.url,\n template: image.template,\n webp: image.webp,\n renderLevel: renderLevel,\n oriY: oriY,\n };\n }\n else if (image.compressed) {\n return {\n url: image.url,\n oriY: oriY,\n compressed: {\n astc: image.compressed.android,\n pvrtc: image.compressed.iOS,\n },\n webp: image.webp,\n renderLevel: renderLevel,\n };\n }\n else if (image.url) {\n return {\n url: image.url,\n type: image.type,\n webp: image.webp,\n renderLevel: renderLevel,\n oriY: oriY,\n loop: image.loop,\n };\n }\n else if (image && image.sourceType) {\n return image;\n }\n throw Error('invalid image type');\n}\nfunction getStandardComposition(composition, opt) {\n var _a;\n if (opt === void 0) { opt = {}; }\n var ret = {\n id: composition.id + '',\n camera: Object.assign({ clipMode: CAMERA_CLIP_MODE_NORMAL }, composition.camera),\n duration: composition.duration,\n endBehavior: composition.endBehavior,\n items: composition.items.map(function (item) { return getStandardItem(item, opt); }),\n name: composition.name,\n };\n var startTime = composition.startTime || composition.st;\n if (startTime) {\n ret.startTime = startTime;\n }\n var previewSize = (_a = composition.meta) === null || _a === void 0 ? void 0 : _a.previewSize;\n if (previewSize && previewSize[0] === previewSize[1] && previewSize[0] === 0) {\n previewSize = undefined;\n }\n if (previewSize) {\n ret.previewSize = previewSize;\n }\n return ret;\n}\nvar tempQuat = [0, 0, 0, 1];\nvar stdAnchor = 0.5;\nfunction getStandardItem(item, opt) {\n var _a, _b, _c;\n if (opt === void 0) { opt = {}; }\n var type = ItemType.base;\n var transform;\n var originContent;\n var content;\n var endBehavior = item.endBehavior;\n var renderLevel;\n var pluginName;\n var duration = NaN;\n var pn;\n if (item.content) {\n type = item.type || ItemType.plugin;\n pn = item.pn;\n pluginName = item.pluginName;\n content = item.content;\n originContent = item.content;\n if (isNaN(pn) && !pluginName) {\n pluginName = content.options.type;\n }\n if (item.duration) {\n duration = item.duration;\n }\n transform = item.transform || getTransform(originContent.transform);\n if (type === ItemType.filter) {\n if (currentVersion < '1.1') {\n currentVersion = '1.1';\n }\n content = getStandardSpriteContent(originContent, transform);\n // @ts-expect-error\n content.filter = getStandardFilterContent(originContent.filter);\n }\n }\n else if (item.particle) {\n type = ItemType.particle;\n originContent = item.particle;\n transform = getTransform(originContent.transform, reverseParticle, true);\n content = getStandardParticleContent(originContent);\n }\n else if (item.sprite) {\n type = ItemType.sprite;\n originContent = item.sprite;\n transform = getTransform(originContent.transform, false, true);\n content = getStandardSpriteContent(originContent, transform);\n }\n else if (item.cal) {\n type = ItemType.null;\n originContent = item.cal;\n transform = getTransform(originContent.transform, false, true);\n content = getStandardNullContent(originContent, transform);\n }\n else if (item.ui) {\n type = ItemType.interact;\n originContent = item.ui;\n transform = getTransform(originContent.transform);\n content = getStandardInteractContent(originContent);\n transform.scale = [originContent.options.width || 1, originContent.options.height || 1, 1];\n }\n else if (item.model) {\n originContent = item.model;\n if (item.model.options.type === 1) {\n type = ItemType.camera;\n transform = getTransform(originContent.transform);\n content = getStandardCameraContent(originContent);\n }\n }\n if ((_a = content.renderer) === null || _a === void 0 ? void 0 : _a.anchor) {\n var anchor = new Float32Array(content.renderer.anchor);\n if (anchor[0] == stdAnchor && anchor[1] == stdAnchor) {\n delete content.renderer.anchor;\n }\n else if (opt.requires) {\n arrAdd(opt.requires, 'anchor');\n }\n }\n if (originContent) {\n var looping = (_b = originContent.options) === null || _b === void 0 ? void 0 : _b.looping;\n if (looping) {\n if (Array.isArray(looping)) {\n endBehavior = looping[1] ? ItemEndBehavior.loop : ItemEndBehavior.destroy;\n }\n else {\n endBehavior = ItemEndBehavior.loop;\n }\n }\n else {\n endBehavior = endBehavior || ((_c = originContent === null || originContent === void 0 ? void 0 : originContent.options) === null || _c === void 0 ? void 0 : _c.endBehavior) || ItemEndBehavior.destroy;\n }\n if (originContent.options.renderLevel) {\n renderLevel = originContent.options.renderLevel;\n }\n if (isNaN(duration)) {\n duration = originContent.options.duration;\n }\n }\n var ret = {\n type: type,\n name: item.name,\n delay: item.delay,\n duration: duration,\n id: item.id + '',\n // @ts-expect-error\n transform: transform,\n endBehavior: endBehavior,\n // @ts-expect-error\n renderLevel: renderLevel,\n content: content,\n };\n // @ts-expect-error\n if (pluginName) {\n if (opt.plugins) {\n arrAdd(opt.plugins, pluginName);\n ret.pn = opt.plugins.indexOf(pluginName);\n }\n else {\n ret.pluginName = pluginName;\n }\n // @ts-expect-error\n }\n else if (Number.isInteger(pn)) {\n // @ts-expect-error\n ret.pn = pn;\n }\n if (item.parentId) {\n ret.parentId = item.parentId + '';\n }\n return ret;\n function getTransform(originTransform, inverseRotation, changeOrder) {\n if (originTransform) {\n var transform_1 = {};\n var rotation = originTransform.rotation;\n if (rotation) {\n if (inverseRotation) {\n transform_1.rotation = [-rotation[0], -rotation[1], -rotation[2]];\n }\n else {\n transform_1.rotation = [rotation[0], rotation[1], rotation[2]];\n }\n if (changeOrder) {\n var q = quatFromXYZRotation(tempQuat, transform_1.rotation[0], transform_1.rotation[1], transform_1.rotation[2]);\n transform_1.rotation = rotationZYXFromQuat([], q);\n }\n }\n var position = originTransform.position;\n if (position) {\n transform_1.position = originTransform.position;\n }\n if (Array.isArray(originTransform.scale)) {\n transform_1.scale = [originTransform.scale[0] || 1, originTransform.scale[1] || 1, originTransform.scale[2] || 1];\n }\n return transform_1;\n }\n return {};\n }\n}\n\nexport { arrAdd, colorToArr, deleteEmptyValue, ensureColorExpression, ensureFixedNumber, ensureFixedNumberWithRandom, ensureFixedVec3, ensureGradient, ensureNumberExpression, ensureRGBAValue, ensureValueGetter, forEach, getGradientColor, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, normalizeColor, objectValueToNumber, parsePercent, quatFromXYZRotation, rotationZYXFromQuat };\n//# sourceMappingURL=fallback.mjs.map\n"],"names":["RenderLevel","BlendingMode","SideMode","MaskMode","ShapeType","PluginType","InteractType","InteractBehavior","ItemType","RenderMode","ParticleOrigin","END_BEHAVIOR_DESTROY","END_BEHAVIOR_PAUSE","END_BEHAVIOR_FORWARD","END_BEHAVIOR_PAUSE_AND_DESTROY","END_BEHAVIOR_FREEZE","END_BEHAVIOR_RESTART","END_BEHAVIOR_DESTROY_CHILDREN","CAMERA_CLIP_MODE_VERTICAL","CAMERA_CLIP_MODE_NORMAL","CameraClipMode","CompositionEndBehavior","ValueType","BezierKeyframeType","ItemEndBehavior","ParentItemEndBehavior","ParticleInteractionBehavior","ShapeArcMode","ModelBoundingType","MaterialType","MaterialBlending","RenderMode3D","TextOverflow","TextBaseline","TextAlignment","TextWeight","FontStyle","clamp","__read","this","__spreadArray","Sphere"],"mappings":"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EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/D,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9D,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/D,QAAQ,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G,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACpI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OJ;AACA;AACA;AAwCA;AACA;AACO,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE;AAC7D,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC;AAChB;AACA,IAAI,IAAI,SAAS,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/D,QAAQ,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5F,KAAK,MAAM;AACX,QAAQ,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnG,KAAK;AACL;AACA,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACzC,QAAQ,UAAU,CAAC,IAAI,CAAC,CAAC;AACzB,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA;AACO,SAAS,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE;AACzC,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC;AAC1B;AACA,IAAI,IAAI,CAAC,GAAG,KAAK;AACjB,QAAQ,KAAK,CAAC;AACd,IAAI,GAAG;AACP,QAAQ,KAAK,GAAG,KAAK,CAAC;AACtB;AACA,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAChF,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM;AACpC,YAAY,KAAK,GAAG,IAAI,CAAC;AACzB;AACA,SAAS,MAAM;AACf,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,SAAS;AACT,KAAK,QAAQ,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE;AACjC;AACA,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AAsDD;AACA;AACO,SAAS,KAAK,CAAC,GAAG,EAAE;AAC3B,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI;AACpB,QAAQ,CAAC,GAAG,GAAG;AACf,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACrB;AACA,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACzC;AACA;AACA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B;AACA,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE;AAC3B,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACO,SAAS,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI;AACpB,QAAQ,CAAC,GAAG,GAAG;AACf,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACrB;AACA,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACzC;AACA;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E;AACA;AACA,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AACxD,QAAQ,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACzD;AACA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK;AACrB,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AACtB;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AACjD,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAC5C,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAC5C,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAC5C,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAC5C,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AAoDD;AACA;AACO,SAAS,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;AAClE,IAAI,IAAI,KAAK,GAAG,EAAE;AAClB,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;AACjC;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACxD,QAAQ,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACrC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACnE,QAAQ,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpD,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,KAAK;AACL;AACA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB;AACA;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,QAAQ,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3C,QAAQ,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5D,KAAK;AACL;AACA,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE;AACxC,IAAI,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAChD,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC9C;AACA;AACA,QAAQ,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAChD,QAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAChC,KAAK;AACL,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;AACzC,IAAI,IAAI,CAAC,GAAG,SAAS;AACrB,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;AACnB,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;AACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;AACtB,QAAQ,CAAC,CAAC;AACV;AACA;AACA;AACA,IAAI,GAAG;AACP,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC7D,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,YAAY,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;AACnC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AACvB,gBAAgB,IAAI,CAAC,KAAK,EAAE,EAAE;AAC9B,oBAAoB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7C,oBAAoB,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AACvD,iBAAiB;AACjB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAChD,aAAa;AACb,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,SAAS,EAAE;AAC9B;AACA,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AACxB;AACA,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,GAAG,CAAC;AAChB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAChB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAChB,QAAQ,MAAM,GAAG,QAAQ;AACzB,QAAQ,GAAG,CAAC;AACZ;AACA,IAAI,CAAC,GAAG,CAAC,CAAC;AACV;AACA,IAAI,GAAG;AACP,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAChD,gBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG;AACA,YAAY,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD;AACA,YAAY,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC;AACtC,iBAAiB,GAAG,GAAG,MAAM,KAAK,GAAG,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClH,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,GAAG,GAAG,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,IAAI,EAAE;AACzB;AACA,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE;AACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC;AACD;AACA;AACO,SAAS,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACvD,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AAClB,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACtE,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,KAAK,EAAE;AAC1B;AACA,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AACzB,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AACnB;AACA,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK;AACjD,QAAQ,MAAM,GAAG,CAAC,CAAC;AACnB;AACA,IAAI,GAAG;AACP,QAAQ,CAAC,GAAG,IAAI,CAAC;AACjB,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,QAAQ,SAAS,GAAG,CAAC,CAAC;AACtB;AACA,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,SAAS,EAAE,CAAC;AACxB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,KAAK,GAAG,CAAC,CAAC;AACtB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC5B,gBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM;AAC9B,aAAa;AACb,YAAY,KAAK,GAAG,MAAM,CAAC;AAC3B;AACA,YAAY,OAAO,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AAClD;AACA,gBAAgB,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACtE,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAChC,oBAAoB,KAAK,EAAE,CAAC;AAC5B,iBAAiB,MAAM;AACvB,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAChC,oBAAoB,KAAK,EAAE,CAAC;AAC5B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACzC,qBAAqB,IAAI,GAAG,CAAC,CAAC;AAC9B;AACA,gBAAgB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb;AACA,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1B,QAAQ,MAAM,IAAI,CAAC,CAAC;AACpB;AACA,KAAK,QAAQ,SAAS,GAAG,CAAC,EAAE;AAC5B;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C;AACA,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;AACrC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;AACrC;AACA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC;AACA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,IAAI,IAAI,CAAC,GAAG,KAAK;AACjB,QAAQ,QAAQ,GAAG,KAAK,CAAC;AACzB,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;AACvF,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,KAAK,EAAE;AAC1B;AACA,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACzD,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AAC7D,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AAC7D,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AACD;AACA;AACO,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,YAAY,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,aAAa,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3D,YAAY,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACO,SAAS,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AAC/B,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AACD;AACA;AACO,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3C,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC;AACA,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;AAC5C;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5H,CAAC;AACD;AACA,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,gBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AACzD,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE;AACtB;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA;AACO,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;AACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC1D,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,QAAQ,MAAM,GAAG,KAAK;AACtB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAY,MAAM,GAAG,CAAC,MAAM,CAAC;AAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE;AACtB;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD;AACA;AACA;AACO,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AACnC,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI;AACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACf,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACf;AACA,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB;AACA,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB;AACA,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB;AACA,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;AACnC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACnB,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACnB;AACA,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACtB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACtB,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD;AACO,SAAS,UAAU,CAAC,CAAC,EAAE;AAC9B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB;AACA,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACzC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACzC,CAAC;AACD;AACO,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9B;AACA,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACf;AACA;AACA,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACf;AACA;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB;AACA;AACA,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAClB;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB;AACA;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,CAAC;AA8BD;AACA,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;AAC3C,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE;AAC1D,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|